Denna fråga inspirerades av det här svaret som delvis säger:
Den generiska brandväggsmanifestfilen avslutas genom att släppa allt jag inte tillät annars (förutom ICMP. Stäng inte av ICMP).
Men är det verkligen en bra metod för en brandvägg att tillåta ICMP? Vilka är säkerhetsimplikationerna och finns det fall där ICMP ska stängas av?
Kommentarer
- I ’ är säker på att det finns många andra anledningar, men för en – det gör fjärradministration till en mardröm.
- Det ’ är en av dessa ” Om du inte ’ är en nätverksgud och verkligen vet vad du ’ gör, don ’ töra med det ” saker.
- IMO, denna regel gäller för hela brandväggen, inte bara ICMP .
- Se även: Sluta bryta internet!
- RFC 4890: ietf.org/rfc/rfc4890.txt och detta utkast till RFC: datatracker.ietf.org/doc/draft-ietf-opsec-icmp- filtering / … … båda ger detaljerade råd om hur man filtrerar både ICMPv4- och ICMPv6-paket.
Svar
Jämfört med andra IP-protokoll är ICMP ganska liten, men den har ett stort antal olika funktioner. I grunden var ICMP utformad som felsöknings-, felsöknings- och felrapporteringsmekanism för IP. Detta gör det vansinnigt värdefullt så mycket tanke måste stängas av. Det skulle vara lite som att klämma >/dev/null 2>&1
till slutet av alla dina cron-poster.
För det mesta när jag pratar med människor om att blockera ICMP är de verkligen talar om ping och traceroute. Detta översätts till tre typer
- 0 – Echo Reply (ping response)
- 8 – Echo Request (ping request)
- 11 – Tiden har överskridits
Det är tre typer av 16. Låt oss titta på ett par av de andra ICMP-typerna som finns tillgängliga.
- 4 – Source Quench (skickas av en router för att be en värd att sakta ner sina överföringar)
- 3 – Destination Unreachable (består av 16 olika typer av meddelanden som sträcker sig från att rapportera ett fragmenteringsproblem till en brandvägg rapportera att en port är stängd)
Båda kan vara ovärderliga för att hålla icke-skadliga värdar fungerar ordentligt i ett nätverk. Det finns faktiskt två (förmodligen fler men dessa är de mest uppenbara för mig) mycket bra fall där du inte vill begränsa ICMP.
- Sökväg MTU Discovery – Vi använder en kombination av Don t Fragment-flaggan och typ 3-kod 4 (Destination Unreachable – Fragmentation required, and DF flag set) för att bestämma den minsta MTU på vägen mellan värdarna. På så sätt undviker vi fragmentering under överföringen.
- Active Directory kräver att klienter pingar domänkontrollanterna för att dra ner GPO: er. De använder ping för att bestämma den ”närmaste” styrenheten och om ingen svarar antas det att ingen är tillräckligt nära. Så policyuppdateringen händer inte.
Det betyder inte att vi nödvändigtvis ska lämna allt öppet för hela världen att se. Rekognoscering är möjlig med ICMP och det är i allmänhet anledningen till att blockera. Man kan använda pings för att avgöra om en värd verkligen är på, eller Time Exceeded (som en del av en spårväg) för att kartlägga nätverksarkitekturer, eller Rory förbjuder en omdirigering (typ 5-kod 0) för att ändra standardvärd för en värd.
Med tanke på allt detta är mitt råd som alltid att ta en uppmätt och tankeväckande inställning till ditt skydd. Att blockera ICMP i sin helhet är förmodligen inte den bästa idén, men att välja och välja vad du blockerar och till / från var kommer förmodligen att ge dig vad du vill.
Kommentarer
- liten detalj: Även om ICMP är valfritt i IPv4 krävs det av IPv6 för att fungera normalt. ICMP: s roll har förändrats mycket. Lätt läsning om det: blogs.cisco.com/security/icmp-and-security-in-ipv6
- @Mike Åh säker, Jag antar att jag inte var ’ inte klar men jag pratade specifikt om v4. IPv6 är ett tillräckligt annorlunda odjur för att vi verkligen behöver behandla det som ett helt annat protokoll när vi utformar och skyddar v6-nätverk.
- +1 ” .. . eller Rory förbjuder … ” Jag skrattade faktiskt högt.
- @tylerl: Jag skrattade att jag skrev det också. Beviljas att jag hade fått lite vin och det var 1,5 timmar efter min läggdags.
- Source Quench har formellt upphört att gälla ( RFC 6633 ). Och har nästan aldrig sett på Internet i årtionden.
Svar
ICMP finns av en anledning och inte alla av den anledningen är ping
. Det är ”meta” -protokollet som används för att kommunicera kontrollmeddelanden om nätverket i sig. Ta en titt på ICMP på Wikipedia för att få en bättre uppfattning om vad det är och vad det är till för.
Andra ICMP-meddelanden inkluderar även målvärd som inte kan nås, fragmentering krävs, överbelastningskontroll, TTL överskridits, IP-protokollfel och ett antal andra.
Nätverket kommer att fungera utan ICMP – motståndskraft inför paketfall är en av IP: s kärnstyrkor – men det kommer att fungera långsammare, mindre effektivt och utan fördelen med dessa signaler för att hjälpa dig att diagnostisera och lösa problem .
Säkerhetsproblem med ICMP tenderar att vara de mer otydliga frågorna om ”information avslöjande”. Till exempel om din router skickar tillbaka ett ICMP-meddelande till någon, vet någon att du har en router. Kanske kan angriparen känna dig ha en router är något du är orolig för, eller mer sannolikt är det inte. Men säkerhetsforskning tenderar att fela på tystnadens sida bara för att vara på den säkra sidan, bara om det är fallet.
Ibland finns det ett ICMP-relaterat ”ping of death” -stil sårbarhet i ett operativsystem. För närvarande finns det inga i några vanliga operativsystem. Men återigen försvårar säkerhetsförespråkarna på sidan av försiktighet, bara i fallet.
Kommentarer
- Du ’ är fel, men jag håller med om att du säger att vanliga användare / administratörer inte borde blockera ICMP. Det finns flera kritiska säkerhetsproblem med ICMP. Huvudproblemet är att ha en återkoppling på kontrollnivå (ttl-överskridits) som inte bara skickas av destinationen utan också av mellanhopp. Den kan användas för enhetsfingeravtryck baserat på egenskaper (initial TTL, IP-flaggor och ännu viktigare IP ID) för ICMP-meddelandet. Dessutom kan ICMP-meddelanden också vara en återkoppling för brandväggspassering, och i kombination med TCP-fönstrekontroll av brandväggar kan du utföra attacker med sekvensnummer.
Svar
För att vara ärlig är det smart att filtrera utgående ICMP både routernivå och mjukvarubrandväggsnivå som ett extra säkerhetslager.
Det är inte viktigt att stoppa en DoS eller DDoS men skadliga människor använder fortfarande ICMP för att försöka hämta så mycket information om ett nätverk som möjligt innan de försöker bryta mot det.
Jag säger inte att de ENDAST använder ICMP men det är en av få pakettyper som de använder och beroende på om du har översvämningsgrindarna öppna kan de få mycket detaljerad information på mycket kort tid.
Ta dig tid att google och leta upp information om hur NMAP och en få andra program använder ICMP som en av resurserna för att samla in information och baserar sedan dina filter på vad du tycker är nödvändigt för att skydda dig själv och ditt nätverk.
Om det är möjligt ställa in ett internt testnätverk (jag har personligen köpt en sekundär wifi-router billigt och har en sekundär dator som brandvägg för att testa alla mina router / ipchains / programvarubrandväggar inställningar innan jag använder dem i mitt huvudnätverk för mitt hushåll och alla kunder som anställer mig för att säkra deras nätverk.
Jag uppmuntrar starkt människor att försöka undersöka hamnsökning och hur man bryter mot brandväggar på deras eget nätverk så att de bättre kan skydda sig själva och alla familjer de hjälper.
Här är ett par resurser som jag tidigare använt och hänvisat vänner till. Sans Informationssäkerhet Hur ICMP används för spaning
Och även
InfoSec Institute ICMP Attacks
Några av attackerna är inte längre genomförbara men det finns nyare former av Smurf som fortfarande fungerar på grund av hur programmeraren kunde omkoda den ursprungliga attacken och ändra hur det fungerar och använder resurser.
Gräva runt och google är din vän tillsammans med Stack Exchange och även duckduckgo-sökmotorn är underbar för resurser som google kan filtrera ut, var bara försiktig och använd dina förstånd!
Jag har varit pc-teknik i 22 år och nätverkssäkerhetsspecialist i 10 år. Jag är för närvarande i skolan för min ECH och min CPTS och jag tittar på offensiva säkerhetskurser när jag är klar med dessa.
Hoppas det hjälper och andra hittar den här informationen användbar när jag återställer säkerhetskopior som jag har gjort till detta system och jag hittar mina andra länkar och resurser i den här frågan. Jag kommer att uppdatera det här svaret.
Svar
Blockering av ICMP är inte bara värdelös utan i de flesta fall är det också skadligt. Det finns flera anledningar till att du inte ska blockera ICMP om du inte är helt säker på vad du gör och speciellt varför du gör. Ja icmp ping kan hjälpa andra att ”profilera” ditt nätverk. Men låt oss vara ärliga, om du har någon tcp-tjänst öppen alls kommer du att ses. Om du bara släpper paket kommer du att ses. Om du svarar fel sätt kommer du att ses.Så om du tror att du måste dölja våra viktiga servrar i nätverket eftersom det gör dem säkrare, är det mer möjligt att din värd är ännu ljusare när du blockerar din icmp. Det finns bara massor av sätt att göra det fel så att du bryter mtu-sökning, trängselskontroll etc och till och med gör att din server sticker ut från massan. Så i nötcellen, blockera inte din icmp om du inte har riktigt goda skäl att göra det och gör det sedan med försiktighet och läs icmp-protokollspecifikationer så att du förstår vad och varför du gör vad du är. Ja, det kan vara bra att blockera icmp-omdirigering vid kanten av ditt nät om du inte är säker på att du har gamla kärnor. Men en annan hand är det bara bättre att uppdatera dina servrar och andra värdar (åtgärda verkliga problem) än att gömma dem under mattan där någon ändå hittar dina buggar.
Svar
Som du kan se från protokollstrukturen beror allt på vilket område det används och eftersom brandväggar har möjlighet att agera på typ- och kodparametrar kan du bestämma vad du ska passera genom brandväggen och vad inte. Det är uppenbart att om brandväggen tar emot ICMP Echo-begäran och du inte har några problem att meddela den om destinationsvärd är aktiv eller inte, måste brandväggen också kunna låta ett Echo Reply passera. Men var försiktig: ICMP-paket måste utsättas för DPI, det vill säga de måste överensstämma med paketets specifikationer: Om ett ICMP-paket passerade genom den inkommande / utgående brandväggen och det fanns skadlig kod på en eller flera värdar i ditt nätverk, dessa värdar kan skaffa kommandon från en C & C-server och exfiltrera information till den servern. I allmänhet tycker jag inte att det är klokt att använda den på gränsroutrar, men för intern nätverksdiagnostik, ja.