Domanda:
È una cattiva idea che un firewall blocchi ICMP?
Justin Ethier
2012-10-17 06:57:15 UTC
view on stackexchange narkive permalink

Questa domanda è stata ispirata da questa risposta che afferma in parte:

Il file manifest generico del firewall termina eliminando tutto ciò che altrimenti non avrei consentito (oltre ICMP. Non disattivare ICMP).

Ma è davvero una buona pratica per un firewall consentire l'ICMP? Quali sono le implicazioni per la sicurezza e ci sono casi in cui ICMP dovrebbe essere disattivato?

Sono sicuro che ci sono molti altri motivi, ma per uno: rende l'amministrazione remota un incubo.
È una di quelle cose tipo "A meno che tu non sia un dio del networking e sappia davvero cosa stai facendo, non scherzare".
IMO, questa regola si applica all'intero firewall, non solo a ICMP.
Vedi anche: [Stop Breaking the Internet!] (Http://serverfault.com/a/84981/6800)
RFC 4890: http://www.ietf.org/rfc/rfc4890.txt e questa bozza RFC: https://datatracker.ietf.org/doc/draft-ietf-opsec-icmp-filtering/history/ ... entrambi forniscono consigli dettagliati su come filtrare i pacchetti ICMPv4 e ICMPv6.
Ho bloccato tutto il traffico in entrata della mia rete locale con iptables per evitare l'accesso non autorizzato ai servizi in esecuzione sul mio computer.Tuttavia a volte ho notato che l'accesso a siti Web come GitHub si bloccava (ad esempio il primo accesso su un profilo Firefox pulito).Wireshark ha visualizzato i pacchetti ICMP con il messaggio "Destinazione irraggiungibile (frammentazione necessaria)".Sembra che il problema provenisse dalle regole del mio firewall che bloccavano l'ICMP che era necessario al router perché era stato risolto quando si consentiva l'ICMP.
Cinque risposte:
#1
+127
Scott Pack
2012-10-17 08:08:09 UTC
view on stackexchange narkive permalink

Rispetto ad altri protocolli IP, l'ICMP è piuttosto piccolo, ma serve un gran numero di funzioni disparate. Fondamentalmente ICMP è stato progettato come meccanismo di debug, risoluzione dei problemi e segnalazione degli errori per IP. Questo lo rende incredibilmente prezioso, quindi è necessario riflettere molto per spegnerlo. Sarebbe un po 'come aggiungere > / dev / null 2>&1 alla fine di tutte le voci di cron.

La maggior parte delle volte quando parlo con le persone del blocco di ICMP loro " Stiamo davvero parlando di ping e traceroute. Questo si traduce in 3 tipi

  • 0 - Risposta eco (risposta ping)
  • 8 - Richiesta eco (richiesta ping)
  • 11 - Tempo scaduto

Sono 3 tipi su 16. Diamo un'occhiata a un paio degli altri tipi di ICMP disponibili.

  • 4 - Source Quench (inviato da un router per chiedere a un host di rallentare le sue trasmissioni)
  • 3 - Destinazione irraggiungibile (consiste in 16 diversi tipi di messaggi che vanno dalla segnalazione di un problema di frammentazione fino a un firewall che segnala che una porta è chiusa)

Entrambi possono essere preziosi per mantenere gli host non dannosi funzionanti correttamente su una rete. In effetti ci sono due (probabilmente di più, ma questi sono i più ovvi per me) casi molto buoni in cui non vuoi limitare ICMP.

  • Path MTU Discovery - Usiamo una combinazione del flag Don't Fragment e del codice di tipo 3 4 (Destination Unreachable - Fragmentation required e DF flag impostato) per determinare la MTU più piccola sul percorso tra gli host. In questo modo evitiamo la frammentazione durante la trasmissione.
  • Active Directory richiede che i client eseguano il ping dei controller di dominio per estrarre gli oggetti Criteri di gruppo. Usano il ping per determinare il controller "più vicino" e se nessuno risponde, si presume che nessuno sia abbastanza vicino. Quindi l'aggiornamento dei criteri non avviene.

Questo non vuol dire che dovremmo necessariamente lasciare tutto aperto affinché tutto il mondo possa vederlo. La ricognizione è possibile con ICMP e questo è generalmente il motivo addotto per il blocco. È possibile utilizzare i ping per determinare se un host è effettivamente attivo o il tempo scaduto (come parte di un traceroute) per mappare le architetture di rete, oppure Rory proibisce un reindirizzamento (tipo 5 codice 0) per modificare il percorso predefinito di un host.

Detto questo, il mio consiglio è, come sempre, di adottare un approccio misurato e ponderato alle tue protezioni. Bloccare ICMP nella sua interezza probabilmente non è l'idea migliore, ma scegliere e scegliere cosa bloccare e da / verso dove probabilmente otterrai ciò che desideri.

piccolo dettaglio: sebbene ICMP sia opzionale in IPv4, è richiesto da IPv6 per funzionare normalmente. Il ruolo dell'ICMP è cambiato molto. Leggi leggere a riguardo: http://blogs.cisco.com/security/icmp-and-security-in-ipv6/
@Mike Oh certo, immagino di non essere stato chiaro, ma stavo parlando specificamente della v4. IPv6 è una bestia abbastanza diversa che abbiamo davvero bisogno di trattarlo come un protocollo completamente diverso durante la progettazione e la protezione delle reti v6.
+1 "* ... o Rory non voglia ... *" In realtà ho riso ad alta voce.
@tylerl: Ho riso anch'io scrivendolo. Certo che avevo bevuto del vino ed era passata un'ora e mezza dalla mia ora di andare a letto.
Source Quench è stato formalmente deprecato ([RFC 6633] (http://tools.ietf.org/html/rfc6633)). E da decenni non si vede quasi mai su Internet.
Anche ICMP Redirect è abbastanza ben abbandonato, ma a volte succede. È un buon esempio di come sono moglie gli utenti di ICMP. La RFC collegata è interessante, ma anche molto nuova. Mi aspetto che un numero molto elevato di stack di rete in uso non sia stato aggiornato da quando è stato rilasciato.
[RFC 5927 sezione 6.2] (http://tools.ietf.org/html/rfc5927#section-6.2) rileva che Source Quench è stato rimosso da molti sistemi operativi dal 2005 o prima, in base alla sua inutilità per il controllo della congestione e la sua potenziale da utilizzare per un attacco cieco di riduzione del throughput.
FYI: non bloccare le richieste ping su IPv6 poiché viene utilizzato per la connessione in entrata da persone ancora su reti IPv4 che utilizzano teredo per accedere alla rete IPv6
Il documento Cisco del commento di @Mike's è archiviato su https://web.archive.org/web/20190907224403/https://blogs.cisco.com/security/icmp-and-security-in-ipv6
#2
+34
tylerl
2012-10-17 07:52:58 UTC
view on stackexchange narkive permalink

ICMP esiste per un motivo, e non tutto questo è ping . È il "meta" protocollo utilizzato per comunicare messaggi di controllo sulla rete stessa. Dai un'occhiata a ICMP su Wikipedia per avere un'idea migliore di cosa sia e a cosa serve.

Altri messaggi ICMP includono anche host di destinazione irraggiungibile, frammentazione richiesta, controllo della congestione, TTL superato, errori del protocollo IP e molti altri.

La rete funzionerà senza ICMP - la resilienza di fronte alla caduta di pacchetti è uno dei punti di forza di IP - ma funzionerà più lentamente, in modo meno efficiente e senza il vantaggio di questi segnali per aiutarti a diagnosticare e risolvere i problemi.

I problemi di sicurezza con ICMP tendono ad essere i più nebulosi problemi di "divulgazione di informazioni". Per esempio. Se il tuo router invia un messaggio ICMP a qualcuno, allora quel qualcuno sa che hai un router. Forse l'attaccante che sa che hai un router è qualcosa di cui sei preoccupato, o più probabilmente non lo è. Ma la ricerca sulla sicurezza tende ad andare dalla parte del silenzio solo per essere al sicuro, per ogni evenienza.

Occasionalmente c'è una vulnerabilità in stile "ping of death" correlata all'ICMP in un sistema operativo. Attualmente non ne esiste in nessun sistema operativo mainstream. Ma ancora una volta, i sostenitori della sicurezza sbagliano sul lato della cautela, per ogni evenienza.

Ti sbagli, ma sono d'accordo con te che dici che gli utenti / amministratori regolari non dovrebbero bloccare ICMP. Esistono più problemi di sicurezza critici con ICMP. Il problema principale è avere un feedback a livello di controllo (ttl-superato) che non viene inviato solo dalla destinazione, ma anche da hop intermedi e può essere utilizzato per il fingerprinting del dispositivo in base alle caratteristiche (TTL iniziale, flag IP e soprattutto IP ID) del messaggio ICMP. Inoltre, i messaggi ICMP possono anche essere un feedback per l'attraversamento del firewall e, combinati con i firewall TCP per il controllo delle finestre, è possibile eseguire attacchi di inferenza del numero di sequenza.
#3
+5
brandizzle
2016-07-17 10:05:44 UTC
view on stackexchange narkive permalink

Ad essere onesti, è intelligente filtrare alcuni ICMP in uscita sia a livello di router che a livello di firewall software come ulteriore livello di sicurezza.

Non è pertinente fermare un DoS o un DDoS, ma i malintenzionati continuano a utilizzare ICMP per cercare di recuperare quante più informazioni possibili su una rete prima che tentino di violarla.

Non sto dicendo che usano SOLO ICMP ma questo è uno dei pochi tipi di pacchetti che usano e dipende se hai i cancelli aperti, puoi ottenere molti dettagli di informazioni in pochissimo tempo.

Prenditi un po 'di tempo su google e cerca informazioni su come NMAP e pochi altri programmi utilizzano ICMP come uno delle risorse per raccogliere informazioni, quindi basare i filtri su ciò che ritieni necessario per proteggere te stesso e la tua rete.

Se possibile, imposta una rete di test interna (ho acquistato personalmente un router wifi secondario un uno economico e avere un PC secondario come firewall per testare tutte le impostazioni del mio router / ipchains / firewall software b prima di impiegarli nella mia rete principale per la mia famiglia e per qualsiasi cliente che mi assume per proteggere le loro reti.

Incoraggio vivamente le persone a provare a fare qualche ricerca sulla scansione delle porte e su come violare i firewall da soli rete in modo che possano proteggere meglio se stessi e qualsiasi famiglia che stanno aiutando.

Ecco un paio di risorse che ho usato e indirizzato ad amici in precedenza. Sans Information Security Come viene utilizzato l'ICMP per la ricognizione

E anche

Attacchi ICMP di InfoSec Institute

Alcuni degli attacchi non sono più praticabili ma ci sono forme più nuove di Smurf che funzionano ancora a causa di come il programmatore è stato in grado di ricodificare l'attacco originale e cambiare il modo in cui funziona e utilizza le risorse.

Scava in giro e Google è tuo amico insieme a Stack Exchange e anche al motore di ricerca duckduckgo è meraviglioso per le risorse che Google potrebbe filtrare, basta essere cauti e usare il tuo ingegno!

Sono un tecnico dei computer da 22 anni e uno specialista della sicurezza di rete da 10. Attualmente sono in scuola per il mio ECH e il mio CPTS e sto guardando i corsi sulla sicurezza offensiva quando li finisco.

questo aiuta e altri a trovare queste informazioni utili mentre ripristino i backup che ho fatto su questo sistema e trovo i miei altri collegamenti e risorse su questo argomento aggiornerò questa risposta.
#4
+2
Tapio Haapala
2016-08-17 02:44:34 UTC
view on stackexchange narkive permalink

Bloccare ICMP non solo è inutile, ma nella maggior parte dei casi è anche dannoso. Ci sono diversi motivi per cui non dovresti bloccare ICMP se non sei assolutamente sicuro di cosa stai facendo e specialmente perché lo stai facendo. Sì, il ping icmp può aiutare gli altri a "profilare" la tua rete. Ma siamo onesti, se hai un servizio tcp aperto, sarai visto. Se lasci cadere solo i pacchetti, sarai visto. Se rispondi in modo sbagliato sarai visto. Quindi, se credi alla teoria che devi nascondere i nostri server importanti in rete perché li rende più sicuri, allora quando blocchi il tuo icmp è più possibile che il tuo host sia un bersaglio ancora più luminoso. Ci sono solo un sacco di modi per farlo in modo sbagliato in modo da interrompere la scoperta del percorso mtu, il controllo della congestione ecc. E persino fare in modo che il tuo server si distingua dalla massa. Quindi nella cella del dado, non bloccare il tuo icmp se non hai davvero una buona ragione per farlo e poi fallo con attenzione e leggi le specifiche del protocollo icmp in modo da capire cosa e perché stai facendo quello che stai. Sì, può essere una buona idea bloccare il reindirizzamento icmp ai margini della rete se non sei sicuro di avere vecchi kernel. Ma un'altra mano è semplicemente meglio aggiornare i tuoi server e altri host (risolvere problemi reali) piuttosto che nasconderli sotto il tappeto dove qualcuno troverà comunque i tuoi bug.

#5
+2
lone
2020-02-25 18:21:06 UTC
view on stackexchange narkive permalink

Come puoi vedere dalla struttura del protocollo, tutto dipende dall'area in cui viene utilizzato e poiché i firewall sono in grado di agire sui parametri di tipo e codice, puoi decidere cosa passare attraverso il firewall e cosa no. , se il firewall riceve la richiesta Echo ICMP e non si hanno problemi a fargli sapere se l'host di destinazione è attivo o meno, il firewall deve anche essere in grado di consentire il passaggio di una risposta Echo. , cioè, devono essere coerenti con le specifiche del pacchetto: se un pacchetto ICMP è passato attraverso il firewall in entrata / uscita e c'era malware su uno o più host all'interno della rete, quegli host potrebbero acquisire comandi da un server C&C ed esfiltrare informazioni a quel server. In generale, non penso sia saggio usarlo sui router di confine, ma per la diagnostica di rete interna, sì.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 3.0 con cui è distribuito.
Loading...