Er det en dårlig idé for en brannmur å blokkere ICMP?

Dette spørsmålet ble inspirert av dette svaret som delvis sier:

Den generelle brannmuren manifestfilen avsluttes ved å slippe alt jeg ikke ellers tillot (i tillegg til ICMP. Ikke slå av ICMP).

Men, er det virkelig en god praksis for en brannmur å tillate ICMP? Hva er sikkerhetsimplikasjonene, og er det tilfeller der ICMP bør slås av?

Kommentarer

Svar

Sammenlignet med andre IP-protokoller er ICMP ganske liten, men den tjener et stort antall forskjellige funksjoner. I kjernen var ICMP designet som feilsøkings-, feilsøkings- og feilrapporteringsmekanismen for IP. Dette gjør det vanvittig verdifullt, så mye tanke trenger å legge den ned. Det ville være litt som å takle >/dev/null 2>&1 til slutten av alle dine cron-oppføringer.

Mesteparten av tiden når jeg snakker med folk om å blokkere ICMP, er de virkelig snakker om ping og traceroute. Dette oversettes til tre typer

  • 0 – Echo Reply (ping response)
  • 8 – Echo Request (ping request)
  • 11 – Tid overskredet

Det er 3 typer av 16. La oss se på et par av de andre ICMP-typene som er tilgjengelige.

  • 4 – Source Quench (sendt av en ruter for å be en vert om å senke overføringen)
  • 3 – Destination Unreachable (består av 16 forskjellige typer meldinger som spenner fra rapportering av et fragmenteringsproblem til en brannmur rapporterer at en port er stengt)

Begge deler kan være uvurderlige for å holde ikke-ondsinnede verter i orden på et nettverk. Det er faktisk to (sannsynligvis flere, men disse er de mest åpenbare for meg) veldig gode saker der du ikke vil begrense ICMP.

  • Sti MTU Discovery – Vi bruker en kombinasjon av Don t Fragment flagg og type 3 kode 4 (Destination Unreachable – Fragmentation required, and DF flag set) for å bestemme den minste MTU på banen mellom vertene. På denne måten unngår vi fragmentering under overføringen.
  • Active Directory krever at klienter pinger domenekontrollerne for å trekke ned GPO-er. De bruker ping for å bestemme den «nærmeste» kontrolleren, og hvis ingen svarer, antas det at ingen er nær nok. Så policyoppdateringen skjer ikke.

Det er ikke å si at vi nødvendigvis bør la alt være åpent for hele verden. Rekognosering er mulig med ICMP, og det er generelt årsaken til blokkeringen. Man kan bruke pings for å avgjøre om en vert faktisk er på, eller Time Exceeded (som en del av en traceroute) for å kartlegge nettverksarkitekturer, eller Rory forbyr en omdirigering (type 5-kode 0) for å endre standardruten til en vert. / p>

Gitt alt dette, er mitt råd som alltid å ta en målrettet og gjennomtenkt tilnærming til beskyttelsen din. Å blokkere ICMP i sin helhet er sannsynligvis ikke den beste ideen, men å velge og velge hva du blokkerer og til / fra hvor sannsynligvis vil gi deg det du vil.

Kommentarer

  • liten detalj: Selv om ICMP er valgfritt i IPv4, kreves det av IPv6 å fungere normalt. ICMPs rolle har endret seg mye. Lett lese om det: blogs.cisco.com/security/icmp-and-security-in-ipv6
  • @Mike Åh, Jeg antar at jeg ikke var ‘ ikke klar, men jeg snakket spesifikt om v4. IPv6 er et annerledes dyr som vi virkelig trenger å behandle det som en helt annen protokoll når vi designer og beskytter v6-nettverk.
  • +1 » .. . eller Rory forby … » Jeg lo faktisk høyt.
  • @tylerl: Jeg lo og skrev det også. Gitt at jeg hadde fått litt vin, og det var 1,5 time etter leggetiden.
  • Source Quench er formelt avviklet ( RFC 6633 ). Og har nesten aldri blitt sett på Internett i flere tiår.

Svar

ICMP eksisterer av en grunn, og ikke alle av den grunn er ping. Det er «meta» -protokollen som brukes til å kommunisere kontrollmeldinger om selve nettverket. Ta en titt på ICMP på Wikipedia for å få en bedre ide om hva det er og hva det er til for.

Andre ICMP-meldinger inkluderer også destinasjonsverten som ikke kan nås, fragmentering kreves, overbelastningskontroll, TTL overskredet, IP-protokollfeil og et antall andre.

Nettverket vil fungere uten ICMP – motstandsdyktighet i møte med pakkedråper er en av IPs kjernestyrker – men det vil fungere saktere, mindre effektivt og uten fordel av disse signalene for å hjelpe deg med å diagnostisere og løse problemer .

Sikkerhetsproblemer med ICMP pleier å være de mer nebuløse «informasjonsinformasjon» -problemene. F.eks. Hvis ruteren din sender en ICMP-melding tilbake til noen, så at noen vet at du har en ruter. Kanskje angriperen kjenner deg har en ruter er noe du er bekymret for, eller mer sannsynlig er det ikke. Men sikkerhetsforskning har en tendens til å feile på siden av stillhet bare for å være på den sikre siden, bare i tilfelle.

Noen ganger er det et ICMP-relatert «ping of death» -stil sårbarhet i et operativsystem. For øyeblikket eksisterer ingen i noen vanlige operativsystemer. Men nok en gang feiler advokater feil på siden av forsiktighet, bare i tilfelle.

Kommentarer

  • Du ‘ er feil, men jeg er enig med deg i at ordinære brukere / administratorer ikke skal blokkere ICMP. Det er flere kritiske sikkerhetsproblemer med ICMP. Hovedproblemet er å ha tilbakemelding på kontrollnivå (ttl-overskredet) som ikke bare sendes av destinasjonen, men også av mellomhopp. Den kan brukes til enhetsfingeravtrykk basert på egenskaper (innledende TTL, IP-flagg og enda viktigere IP ID) for ICMP-meldingen. Videre kan ICMP-meldinger også være en tilbakemelding for gjennomføring av brannmur, og kombinert med TCP-vindusjekkende brannmurer kan du utføre sekvensnummerinferens angrep. div class = «answer»>

    For å være ærlig er det smart å filtrere noe utgående ICMP både ruternivå og programvarebrannmurnivå som et ekstra sikkerhetslag.

    Det er ikke viktig å stoppe en DoS eller DDoS, men ondsinnede bruker fortsatt ICMP for å prøve å hente så mye informasjon om et nettverk som mulig før de prøver å bryte det.

    Jeg sier ikke at de KUN bruker ICMP, men det er en av få pakketyper de bruker, og avhengig av om du har flomportene åpne, kan de få en detaljert informasjon på veldig kort tid.

    Ta deg tid til å google og se etter informasjon om hvordan NMAP og en få andre programmer bruker ICMP som en av ressursene for å samle informasjon, og baserer filtrene dine av det du føler er nødvendig for å beskytte deg selv og nettverket ditt.

    Hvis det i det hele tatt er mulig å sette opp et internt testnettverk (jeg kjøpte personlig en sekundær wifi-ruter billig og har en sekundær pc som en brannmur for å teste alle ruteren / ipchains / software firewalls innstillinger før jeg bruker dem på tvers av hovednettverket for husholdningen min og enhver kunde som ansetter meg for å sikre nettverkene deres.

    Jeg oppfordrer folk til å prøve å undersøke portskanning og hvordan de kan bryte brannmurer på eget nettverk slik at de bedre kan beskytte seg selv og enhver familie de hjelper.

    Her er et par ressurser jeg har brukt og henvist venner til tidligere. Sans Information Security Hvordan ICMP brukes til rekognosering

    Og også

    InfoSec Institute ICMP Attacks

    Noen av angrepene er ikke lenger levedyktige, men det er nyere former for Smurf som fortsatt fungerer på grunn av hvordan programmereren var i stand til å kode det opprinnelige angrepet og endre hvordan det fungerer og bruker ressurser.

    Grav rundt og google er din venn sammen med Stack Exchange, og også duckduckgo-søkemotoren er fantastisk for ressurser som google kan filtrere ut, bare vær forsiktig og bruk vettet!

    Jeg har vært pc-teknologi i 22 år og nettverkssikkerhetsspesialist i 10 år. Jeg er for tiden i skole for ECH og CPTS, og jeg ser på Offensive Security-kurs når jeg er ferdig med disse.

    Håper dette hjelper og andre finner denne informasjonen nyttig når jeg gjenoppretter sikkerhetskopier jeg har gjort til dette systemet, og jeg finner mine andre lenker og ressurser i denne saken. Jeg vil oppdatere dette svaret.

Svar

Blokkering av ICMP er ikke bare ubrukelig, men i de fleste tilfeller er det også skadelig. Det er flere grunner til at du ikke bør blokkere ICMP hvis du ikke er helt sikker på hva du gjør og spesielt hvorfor du gjør. Ja icmp ping kan hjelpe andre med å «profilere» nettverket ditt. Men la oss være ærlige, hvis du i det hele tatt har noen tcp-tjenester åpen, vil du bli sett. Hvis du bare slipper pakker, blir du sett. Hvis du svarer feil måte vil du bli sett.Så hvis du tror teorien om at du må skjule våre viktige servere på nettverket fordi det gjør dem sikrere, så når du blokkerer icmp er det mer mulig at verten din er enda mer lyst mål. Det er bare mange måter å gjøre det galt, slik at du bryter oppdagelsen av mtu-stier, overbelastningskontroll osv. Og til og med gjør at serveren din skiller seg ut fra masse. Så i nøttecellen, ikke blokker icmp hvis du ikke har veldig god grunn til å gjøre det, og gjør det deretter med forsiktighet og les icmp protokollspesifikasjoner, slik at du forstår hva og hvorfor du gjør det du er. Ja, det kan være lurt å blokkere icmp-omdirigering ved kanten av nettet ditt hvis du ikke er sikker på at du har gamle kjerner. Men en annen hånd er det bare bedre å oppdatere serverne dine og andre verter (fikse reelle problemer) enn å gjemme dem under teppe der noen vil finne feilene dine uansett.

Svar

Som du kan se fra protokollstrukturen, avhenger alt av området det brukes i og siden brannmurer er i stand til å handle på type- og kodeparametere, kan du bestemme hva du skal passere gjennom brannmuren og hva ikke. Det er tydelig at hvis brannmuren mottar ICMP Echo-forespørselen, og du ikke har noe problem med å fortelle den om destinasjonsverten er aktiv eller ikke, må brannmuren også kunne la et ekkosvar passere. Men vær forsiktig: ICMP-pakker må utsettes for DPI, det vil si at de må være i samsvar med spesifikasjonene til pakken: Hvis en ICMP-pakke passerte gjennom den innkommende / utgående brannmuren og det var skadelig programvare på en eller flere verter i nettverket ditt, disse vertene kunne skaffe seg kommandoer fra en C & C-server og eksfiltrere informasjon til den serveren. Generelt synes jeg ikke det er lurt å bruke den på grenseruter, men til intern nettverksdiagnostikk, ja.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *