SSPING

SSping è un tipo di attacco con pacchetti icmp in grado di congelare un computer sotto diversi sistemi operativi.
In pratica e' possibile mandare in crash, forzare il reboot, e in definitiva mandare in blocco un gran numero di sistemi operativimediante l'invio di un ping di certa grandezza da una macchina remota.
La sua semplicità lo rende un'attacco molto diffuso, dato che in in fin dei conti si tratta  di un sempice ping, per lanciare il quale basta conoscere l'indirizzo IP della amcchina da assalire.
L'ssping conosciuto anche come "jolt", "ICMP Bug", "Ice Newk", "Ping Of Death" è basato su un codice datato che congela le vecchie implementazioni SysV e Posix e opera principalmente mediante l'invio di una serie di pacchetti ping icmp frammentati (e a volta spoofati cioè con intestazione recante un ip differente da quello della macchian che li ha generati) all'obiettivo, che tenta di rspondere ricostruendo una risposta al ping framentato da 64 k, mandando in crash il sistema operativo.
Il funzionamento di questo attacco è nel contempo semplice e letale, dato che e' in grado di mettere a terra non solo macchine Unix, ma anche Mac, Windows, Netware, router, stamapnti di rete e molto altro ancora.
In pratica, un datagramma IP di 65536 bytes è illegale, nel senso che i computer non permettono il loro invio, ma è posibile ovviare  a questo limite creandone uno in modo che il pacchetto sia fragmentato, ovvero diviso in pezzi per la trasmissione.
Quando i frammenti vengono riassemblati viene creato un pacchetto i dimensioni non consentite, inondando il buffer di qualsiasi sistema, causando, a seconda di chi lo riceve, effetti differenti.
Per ovviare a questo tipo di problema, le software house hanno rilasciato le apposite patch(ovvero "pezzi" di codice che vanno  a rimpiazzare bachi presenti nei programmi) in tempi ridottissimi: quella per Linux è stata rilasciata dopo tre ore( 2 ore e 35 minuti 10 secondi, per la precisione), e Bill Webb della Telebit assicura che la patch per Netblazer è stata rilasciata in due ore!
Per capire meglio come la meccanica dell'icmp flood bisogna approfondire alcune informazioni di fondo sull'ICMP ECHO (ping): i pacchetti ip, secondo la RFC-791(Request for comments, documentazione redatta dalla Internet Engeneering Task Force), possono essere superiori alla lunghezza di 65,535 (2^16-1) otteti, la quale include anche la lunghezza dell'intestazione (tipicamente 20 otteti se nessuna opzione IP e' specificata). I pacchetti piu' grandi della grandezza massima possono essere maneggiati dallo strato di underlying (MTU) e frammentati in pacchetti piu' piccoli, che vengono riassemblati dal ricevitore (per apparecchiature modello ethernet, l' MTU e' tipicamente 1500).
Una richiesta di icmp echo "vive" nel pachetto IP, che è composto da otto otteti di informazioni di intestazione ICMP (RFC-792), seguito dal numero di dati degli otteti nella richiesta "ping". Da adesso la grandezza massima di informazioni ammessa all'area dei dati è: 65535-20-8=65507 otteti.
Ma cos'e' ce causa il crash della macchina ricevente?
Bisogna notare che e' possibile inviare un pacchetto illegale con piu' di 65507 oteti di dati grazie al mecanismo di ricostruzione dei pacchetti, che fa affidamento su un valore di offset in ciscun frammento per determinare il punto in cui il frammento individualevga riassemblato. In questo modo, sull'ultimo frammento, è possibile combinare un offset valido con un frammento di grandezza superiore a 65535 (offset+grandezza).
Da quando le macchine tipiche non processano i frammenti fino a quando non li hanno ricevuti tutti e hanno provato a riassemblarli, c'e' la possibilità di un overflow dei 16 bit variabili interni, che conducono il sistema la crash, reboot, alla caduta del kernel, al kernel panic ecc..
Il problema apparenteemnete sembra essere limitato al ping, che in definitiva puo' essere facilmente fermato con un buon firewall; in verita' questo attacco puo' essere sfruttato da qualsiasi cosa in grado di spedire un datagramma ip: non solo icmp echo ma anche tcp, udp, e probabilmente anche il nuovo modello ipx puo' essere sfruttato per colpire i computer nei loro punti deboli.
Molto probabilmente un FIREWALL può essere la soluzione migliore per difendersi il culo, ma qualsiasi cosa, dall'nfs, all'http, fino al comune telnet potrebbero diventare un valido strumento di aggressione
Ecco qua sotto una tabella riassuntiva sulle porte piu' generiche e il loro utilizzo:

Numero di porta Funzione
9 DISCARD
15 NETSTAT
19 CHARGEN
21 FTP
23 TELNETD
25 SMTP
39 RLP
67 BOOTP
71 FINGERK
80/8080 HTTP
80/8080/5580 MILITARY  HTTP
87 LINK
110 POP3
113 IDENTD
119 NNTP
144 NEWSK
512 EXECK
513 LOGIN
515 PKILL
517 KTALK
518 NTALK
533 NETWALL
560 RMONTIOR
561 MONTIOR
750 KERBEROS



Come difendersi;

Se non è disponibile una patch(anche se ormai è disponibile per la maggior parte dei sistemi operativi), la miglior soluzione è bloccare i ping con un firewall; questa non e' una soluzione  a lungo termine, dato che siete costretti a tenere aperta una porta per utilizzare un servizio pubblico, avete un potenziale punto vulnerabile nel vostro sistema.
L'unica vera difesa consiste in una patch al sistema operativo che consenta di bloccare definitavamente qualsiasi ping frammentato superiore a 64K: in questo modo il ping comune da 64byte potrebe passare, mentre verrebbero bloccati i pacchetti con dimensioni superiori all'MTU, questo puo' variare , ma circa 1k e' una buona scelta.