Domanda:
Rischio per la sicurezza di PING?
Mr. Jefferson
2011-06-08 22:31:58 UTC
view on stackexchange narkive permalink

Mi è stato detto che PING presenta un rischio per la sicurezza ed è una buona idea disabilitarlo / bloccarlo sui server web di produzione. Alcune ricerche mi dicono che ci sono effettivamente rischi per la sicurezza. È pratica comune disabilitare / bloccare il PING su server visibili pubblicamente? E questo si applica ad altri membri della famiglia ICMP, come traceroute ( wikipedia sulla sicurezza)?

Penso che sia più appropriato chiedere quando disabilita il ping ICMP appropriato. In quale ambiente di minaccia devono essere disabilitate le risposte ping ICMP? Quali vulnerabilità ha / potrebbe avere l'ICMP? Come possiamo limitare l'esposizione alle vulnerabilità dell'ICMP?
Se il ping è un rischio per la sicurezza della tua rete, ha problemi più grandi della sicurezza: P
Otto risposte:
Thomas Pornin
2011-06-08 23:22:01 UTC
view on stackexchange narkive permalink

Il protocollo Echo ICMP (solitamente noto come "Ping") è per lo più innocuo. I suoi principali problemi relativi alla sicurezza sono:

  • In presenza di richieste con un indirizzo di origine falso ("spoofing"), possono fare in modo che una macchina di destinazione invii pacchetti relativamente grandi a un altro host . Si noti che una risposta Ping non è sostanzialmente più grande della richiesta corrispondente, quindi non vi è alcun effetto moltiplicatore: non darà ulteriore potenza all'attaccante nel contesto di un attacco Denial of Service. Tuttavia, potrebbe proteggere l'attaccante dall'identificazione.

  • La richiesta di ping onorato può fornire informazioni sulla struttura interna di una rete. Ciò non è rilevante per i server visibili pubblicamente, tuttavia, poiché questi sono già visibili pubblicamente.

  • C'erano falle di sicurezza in alcune implementazioni TCP / IP diffuse, dove un ping non valido richiesta potrebbe mandare in crash una macchina (il "ping of death"). Ma questi sono stati debitamente corretti durante il secolo precedente e non sono più un problema.

È pratica comune disabilitare o bloccare Ping su server visibili pubblicamente, ma essendo comune non è la stessa cosa che essere consigliato . www.google.com risponde alle richieste di ping; www.microsoft.com non lo fa. Personalmente, consiglierei di lasciare che tutti gli ICMP passino per server visibili pubblicamente.

Alcuni tipi di pacchetti ICMP NON DEVONO essere bloccati, in particolare il messaggio ICMP "destinazione irraggiungibile", perché il blocco si interrompe il percorso MTU discovery, i sintomi sono che gli utenti DSL (dietro un livello PPPoE che limita MTU a 1492 byte) non possono accedere ai siti Web che bloccano quei pacchetti (a meno che non utilizzino il proxy Web fornito dal proprio ISP) .

questo non è completamente corretto, vedere la risposta di @Ori's per alcune informazioni aggiuntive.
Trovo sempre più difficile spiegare agli ingegneri di rete la necessità di dest unreach per PMTU-disc, tipi di squench e altri scenari di "buon ICMP". Vedi anche - http://rfc-ignorant.org
@atdre Sono d'accordo che ci sono tipi che sono necessari, ICMP echo / reply era davvero dove stavo andando. Gli irraggiungibili sono assolutamente necessari. @Thomas Amo sempre "Mostly Harmless" (come Douglas Adams) in ogni post, è quello che mi ha fatto desiderare di rispondere in primo luogo.
Ping of death è in realtà un nome fuorviante, poiché in realtà è un attacco al livello IP piuttosto che a ICMP. In altre parole, l'attacco potrebbe essere ugualmente mirato a qualsiasi altro protocollo IP non filtrato.
destinazione irraggiungibile non viene utilizzata per il percorso MTU - la frammentazione necessaria lo è.
Quando si utilizza IPv6, non è necessario bloccare la richiesta di ping e l'eco del ping perché interrompe il supporto per le persone che si connettono al server tramite teredo
google.com accetta il pacchetto ICMP sì, ma se la dimensione del pacchetto non viene modificata!
Ori
2011-06-08 23:57:58 UTC
view on stackexchange narkive permalink

ICMP ha una componente dati. Può essere usato per costruire tunnel, e questa non è solo una questione teorica, è disponibile in natura. È stato trovato da diversi ricercatori come parte di toolkit di malware. Per non parlare dell'esistenza di un importante howto su questo argomento, per non parlare del wiki o del hackaday

ICMPTX utilizza l'eco ICMP e la risposta ICMP . ICMP echo non è sempre innocuo, poiché contiene un componente dati, può essere esfiltrato dati o essere utilizzato come canale di controllo, o essere utilizzato (nel caso di ICMPTX) come protocollo di tunneling.

Attuale implementazione nella distribuzione, con howto, (ICMPTX): http://thomer.com/icmptx/

Scenario di attacco reale che utilizza la trasmissione di dati ICMP per payload injection: Open Packet Capture

Utilizzo di un protocollo di trasmissione dati ICMP tramite metodi simili a ICMPTX (2006) per trojan C&C ed Exfiltration: Network World

Per favore, citi le ricerche che hanno trovato ICMPTX nei toolkit di malware.
È passato quasi un decennio, vedrò se c'è ancora qualcosa di tangibile. Al momento è qui, ma ho lavorato con persone che hanno avuto esperienza diretta in alcuni primi casi.
Ang Cui darà una demo degli attacchi IOS utilizzando ICMP come canale di controllo. http://www.blackhat.com/html/bh-us-11/bh-us-11-briefings.html Questa sera farò qualche ricerca sui framework di exploit esistenti per vedere se c'è un payload ICMP comunemente distribuito come bene.
Grazie. Per ulteriori chiarimenti: Ang Cui, [Killing the Myth of Cisco IOS Diversity] (http://www.blackhat.com/html/bh-us-11/bh-us-11-briefings.html): Towards Reliable, Large -Sfruttamento in scala di Cisco IOS "Questa capacità consente all'autore dell'attacco di utilizzare il payload di pacchetti innocui, come ICMP, come canale di comando e controllo nascosto."
E se ICMP potesse essere utilizzato per eseguire il tunneling dei dati? Così può qualsiasi altro protocollo di rete che scegli. Quindi può DNS: bloccherai tutto il traffico DNS? Quindi può HTTP: bloccherai tutte le porte 80? Penso che questo sia un motivo fasullo per bloccare il ping.
È un altro "servizio" che potrebbe essere disponibile per un utente malintenzionato da sfruttare in uno scenario in più fasi. Perché abilitarlo se non ne hai bisogno?
@D.W. Non consentirai il traffico DNS * nella * rete, giusto? Non prenderesti in considerazione l'idea di consentire la porta 80 a nessun server arbitrario, giusto? Inoltre, se non ci sono ragioni operative o di usabilità, allarga inutilmente la superficie di attacco.
@AviD: tuttavia, i pacchetti Ping _sono_ utili, anche se solo come strumento diagnostico dall'esterno. È un compromesso.
@D.W. il titolo della domanda è "Rischio per la sicurezza di PING?" e questa risposta è un ottimo punto che dovrebbe essere incluso. Anche se questo è vero, l'uso nascosto del canale non è l'unica ragione per bloccare l'ICMP (francamente, il motivo più comune dietro il blocco dell'ICMP è solo per complicare i tentativi di ricognizione). Inoltre, escluderei sicuramente DNS e HTTP ... e lo faccio, a parte il mio proxy.
Il punto è che se vuoi interrompere la comunicazione segreta, devi bloccare TUTTE le comunicazioni (in entrambe le direzioni, indipendentemente dall'endpoint che ha avviato la connessione). Questo è chiaramente assurdo. Quindi è sciocco bloccare il ping allo scopo di bloccare la comunicazione segreta; anche dopo aver bloccato il ping, le persone saranno comunque in grado di comunicare di nascosto. Non è un compromesso tra sicurezza e funzionalità: è il genere di cose che induce le persone a maledire le persone che si occupano della sicurezza, perché interrompe la funzionalità senza alcun beneficio percettibile per la sicurezza.
ICMP non è veramente utile a meno che tu non stia parlando da qualche parte nel regno di un dispositivo di infrastruttura di rete adiacente o di un dispositivo di monitoraggio di rete remoto, e in tal caso utilizzerei una tecnica simile a quella con cui Daniel sta rispondendo. Non credo che dovrebbe essere sempre * completamente * disabilitato, ma se non è necessario, perché lasciarlo usare a qualcuno?
Sono d'accordo con @Ori: la regola dovrebbe essere "consenti solo ciò che è necessario" per ridurre il tuo panorama di vulnerabilità. Limitare i possibili canali significa che è più facile monitorarli.
Daniel Miessler
2011-06-10 05:20:02 UTC
view on stackexchange narkive permalink

È vero che ICMP può essere utilizzato dagli aggressori per ottenere informazioni, trasportare dati di nascosto, ecc. È anche vero che ICMP è estremamente utile e che disabilitarlo può spesso causare problemi. Traceroute utilizza in effetti ICMP, quindi disabilitare determinati tipi di ICMP lo interromperà.

La domanda evidenzia il classico equilibrio tra sicurezza e funzionalità e sta a te determinare quanta funzionalità sei disposto a perdere per guadagnare x quantità di sicurezza.

Una raccomandazione è di consentire solo alcuni tipi (i più comunemente usati) e disabilitare tutti gli altri. Ecco le mie regole di iptables. Tieni presente che questi sono consentiti perché tutto il resto è disabilitato per impostazione predefinita.

  # Consenti ICMP in arrivo: ping, rilevamento MTU, TTL scaduto / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 8/0 -j ACCEPT / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 3/4 -j ACCEPT / sbin / iptables -A INPUT -i eth0 -p icmp -d $ YOURBOX --icmp-type 11/0 -j ACCETTA  
buona risposta. Tuttavia, non lo vedo come un compromesso: il blocco del ping probabilmente porta al massimo un vantaggio di sicurezza trascurabile. Ovviamente, se non ne hai bisogno, vai avanti e bloccalo se vuoi (ehi, le whitelist sono meglio delle blacklist).
Tuttavia, il traceroute basato su ICMP non è l'unica opzione: puoi utilizzare traceroute basato su TCP (vedi 'tcptraceroute' per esempio) o UDP (che è il modo in cui funziona il tracert di Microsoft, anche se questo richiede ICMP in entrata).È inoltre possibile inserire nella whitelist alcune destinazioni ICMP esterne per il test e la gestione della rete.
atdre
2011-06-10 08:19:07 UTC
view on stackexchange narkive permalink

Penso che la risposta echo in uscita sia più pericolosa della richiesta echo in entrata a causa dell'amplificazione ICMP (o limite di velocità o nega questo traffico). Tuttavia, dopo decenni di riflessione su questo argomento, ho concluso che ICMP è più pericoloso che utile e quindi dovrebbe essere bloccato in entrambe le direzioni, con l'accesso al traffico in uscita potenzialmente contraffatto.

Il meglio di all worlds è percorsi nulli su tutto ciò che potrebbe essere con stato ma non desiderato (connessioni TCP) e ACL riflessivi (guidati dalle prestazioni) per qualsiasi cosa con stato ma consentito e / o non completamente con stato (datagrammi UDP), mentre la rimozione di altri Tipi di protocollo IP, poiché non sono necessari. IPsec AH / ESP non è necessario, usa invece OpenVPN (o simile).

Dopo aver bloccato il traceroute ICMP, devi anche fare i conti con il traceroute basato su UDP, così come con concetti tecnologici come quelli trovati nel 0trace, LFT e osstmm_afd.

Anche se le scansioni di Natale di Nmap non vengono rilevate da Snort / Suricata, per non parlare di attacchi basati su SQLi o Javascript (in qualsiasi direzione), dobbiamo riconoscere l'importanza dei rischi legati agli attacchi alla sicurezza della rete e delle applicazioni contro l'infrastruttura moderna. Dovremmo negare, testare e verificare qualsiasi tipo di traffico di impronta e non vedo perché questo non includerebbe l'ICMP, ma in realtà non si avvia o si ferma qui.

Christopher Alfred
2015-02-04 20:23:28 UTC
view on stackexchange narkive permalink

Ping e Traceroute sono necessari per la risoluzione dei problemi delle reti. Con i firewall moderni e gli strumenti di sicurezza ce n'è molto poco e rasenta la possibilità che uno dei due protocolli venga utilizzato con successo in modo dannoso.

Nel 1996, sicuramente era un problema, ma ora è il 2015, quasi 20 anni dopo, e bloccarli porta solo a un drastico aumento dei tempi per risolvere la connettività e le prestazioni. Paralizzare la capacità dei team di livello 1/2 di identificare e risolvere semplici problemi di instradamento e di rete è un problema di fornitura del servizio che influisce sulla soddisfazione del cliente per qualsiasi servizio di rete fornito.

goodguys_activate
2012-01-25 23:08:43 UTC
view on stackexchange narkive permalink

Invece di rispondere alla domanda principale "quali sono i rischi per la sicurezza del ping", risponderò alla tua domanda secondaria "È una buona idea bloccare / disabilitare sui server web di produzione"

Penso che qui possiamo trovare un equilibrio tra sicurezza e utilità. Il personale di supporto generalmente trova il ping utile durante il controllo della latenza o della disponibilità di un determinato nodo. Il personale addetto alla sicurezza è preoccupato per molti dei problemi di sicurezza delineati in questa pagina e spesso sono i "cattivi".

Perché non considerare di disabilitare Ping in un formato whitelist / blacklist e farlo sapere al tuo supporto personale. Se il tuo pubblico principale si trova in una determinata area geografica, limita la possibilità di eseguire il ping in base all ' allocazione IP IANA

Verissimo, soprattutto se si considera che l'utilità di ping è importante per la disponibilità, quella spesso dimenticata [fratello di riservatezza e integrità] (http://en.wikipedia.org/wiki/CIA_triad#Key_concepts).
Furkan Turan
2020-03-10 17:13:42 UTC
view on stackexchange narkive permalink

Dopo un primo accesso al tuo server, un software dannoso può utilizzare il protocollo ping come mezzo di comunicazione con il suo server di comando e controllo. Ad esempio, una shell inversa che utilizza il protocollo ping: https://github.com/inquisb/icmpsh

Questo è già coperto da un'altra risposta
Penso che la domanda si riferisse se ci sono rischi per la sicurezza nel rispondere ai ping, non avendo un programma installato in grado di inviare ping.
Tomas Zubiri
2020-03-10 13:51:08 UTC
view on stackexchange narkive permalink

In "Requirement for internet hosts", una rispettata autorità responsabile della standardizzazione di ICMP, TCP, IP e altri protocolli, IETF, specifica che gli host devono rispondere alle query ICMP. Quindi non solo la pratica è sicura, ma è considerata obbligatoria per la conformità con i loro standard:

Ogni host DEVE implementare una funzione del server Echo ICMP che riceve le richieste di eco e invia le corrispondenti risposte di eco. Un host DOVREBBE implementare anche un'interfaccia a livello di applicazione per inviare una richiesta di eco e ricevere una risposta di eco, per scopi diagnostici.

Nel linguaggio IETF standard, DEVE significa che "l'elemento è un valore assoluto requisito della specifica. " Sebbene DOVREBBE significare che "possono esistere valide ragioni in particolari circostanze per ignorare questo elemento, ma tutte le implicazioni dovrebbero essere comprese"

Ciò significa che un server deve rispondere a una domanda echo ICMP, ma potrebbe non fornire loro un'interfaccia utente.

Il documento fa riferimento a un ampio dibattito che ha avuto luogo prima della data della redazione 1989:

"Questa disposizione neutra è il risultato di un appassionato dibattito tra coloro che ritengono che l'eco ICMP a un indirizzo di trasmissione fornisca una preziosa capacità diagnostica e coloro che ritengono che l'uso improprio di questa funzione possa creare troppo facilmente tempeste di pacchetti. "

Anche dopo più recenti ( 2010) discussioni sugli attacchi teorici tramite ICMP su RFC 5927, l'IETF non ha ancora declassato le risposte ECHO dell'ICMP da un MUST a un DOVREBBE. L'obiettivo di questa RFC sono i fornitori e gli implementatori di ICMP e TCP, non i consumatori. Gli scenari peggiori descritti sono il degrado del servizio.

In breve, ICMP è sicuro. La disabilitazione non è consigliata.

Se rispetti le spalle dei giganti su cui ti trovi, rispetti la loro decisione ed eviti di deviare dalle convenzioni.

"DEVE" non significa niente.Cosa farà l'IETF se disobbedisco?Probabilmente non hanno il budget per assumere un avvocato o un sicario.Inoltre, un sacco di router consumer hanno impostazioni predefinite per eliminare i messaggi ICMP in arrivo e non esplodono neanche tutti.
Stiamo parlando del gruppo che ha progettato e standardizzato icmp insieme a tcp, ip, dns, ecc ... Ignora a tuo rischio e pericolo
Questo non risponde esattamente a nessuno dei miei punti.Qual è lo svantaggio di disabilitarlo?Qual è lo svantaggio della disobbedienza?Ti comporti come se Internet si rompesse, ma non è così.
Capisco la tua preoccupazione, è un appello all'autorità, ma per me funziona.Non ho alcun interesse a scavare più a fondo, un appello a questa autorità mi sembra un buon limite di profondità a qualsiasi mia ricerca di conoscenza.E risponde alla domanda originale, è pratica comune disabilitare l'ICMP?no, c'è qualche rischio per l'ICMP?no.
Tuttavia, la RFC è notoriamente vecchia.Questa risposta potrebbe essere migliorata con l'aggiunta di https://tools.ietf.org/html/rfc5927.Non ci sono modifiche allo stato MUST, ma si fa tutto il possibile per descrivere i possibili rischi teorici di icmp.
Ho aggiunto un collegamento a RFC 5927 che collega a più discussioni sui rischi per la sicurezza di quante ne avrete mai bisogno.
Tomas - ma hai scritto la falsa dichiarazione "ICMP è sicuro" - come qualsiasi altra cosa, non è sicuro.Presenta un rischio che dovrebbe essere compreso in un contesto particolare.
Dobbiamo essere in grado di etichettare almeno una cosa come sicura, altrimenti la risposta a qualsiasi domanda "È considerata sicura?"sarà "tutto ha un rischio".Sto mettendo piede su ICMP.
Questo non risponde alla domanda e si basa su un enorme errore logico.E stai interpretando erroneamente "rischio" come "sicuro".Non *** dobbiamo *** etichettare * niente * come "sicuro".La domanda letteralmente è "quali sono i rischi?"Lo eviti completamente del tutto.
"Ignora a tuo rischio e pericolo" - ok - quale pericolo?Qual è il rischio***?
L'RFC 5927 *** non è *** "più discussioni sui rischi per la sicurezza di quante ne avrete mai bisogno".Copre leggermente una piccola dimensione di un tipo di rischio.
Forse un compromesso consiste nel rendere tutto in una sottorete eseguibile tramite ping da host virtuali o router.
Sicuro è l'assenza di rischi, sono contrari.Il rischio di temere caratteristiche sicure è che sarai sviato dai rischi reali.È come quelle terribili build che producono 5mila avvertimenti, perdi quelli importanti se non riesci a filtrare quelli banali.
@TomasZubiri non si capisce il concetto di rischio, e questo ancora non aiuta a rispondere alla domanda "quali sono i rischi?"Questa è una non risposta.


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...