########################################################## # # # GGG L OOO SSS SSS AAA RRRR I OOO # # G G L O O S S S S A A R R I O O # # G L O O S S A A R R I O O # # G GG L O O SSS SSS AAAAA RRRR I O O # # G G L O O S S A A R R I O O # # G G L O O S S S S A A R R I O O # # GGG LLLLL OOO SSS SSS A A R R I OOO # # # ########################################################## ROUTER: Su Internet, un router e' un dispositivo o, in certi casi, un software che gira su un computer, che determina il prossimo nodo di rete al quale un pacchetto dovra' essere inoltrato verso la sua destinazione. Il router e' connesso ad almeno due reti e decide su quale uscita mandare ogni pacchetto basandosi sulla sua conoscenza corrente dello stato delle reti a cui e' connesso. Un router si trova ad ogni punto di congiunzione di reti e di gateway, compresi tutti i POP (point-of-presence) Internet. Un router e' spesso incorporato in un commutatore di rete ("network switch"). Un router crea o mantiene una tabella dei percorsi disponibili e delle loro condizioni e si serve di queste informazioni insieme alla distanza e ad algoritmi di costo per determinare il miglior percorso per un dato pacchetto. Tipicamente un pacchetto puo' viaggiare attraverso un certo numero di nodi di rete con router prima di giungere a destinazione. Un router di confine ("edge router") e' un router che si interfaccia con una rete a trasferimento asincrono ("asynchronous transfer mode" - ATM - network). Un brouter e' un bridge di rete combinato con un router. SPOOFING: 1. definizione di spoofing Spoofing e' un termine improprio utilizzato per definire il source IP address forging, ovvero: mandare in rete un pacchetto che risulti con provenienza arbitraria (www.microsoft.com non e' male: provatelo). 2. varianti dello spoofing Sostanzialmente si basano sull'indirizzo che metti. Un indirizzo puo' essere illegale, inesistente o inattivo. A seconda di cosa c'e', alla ricezione del pacchetto succederanno o potranno succedere varie cose. Esempio banale: ci sono programmi-pseudo-firewall che, alla ricezione di un pacchetto losco, contrattaccano a furia di nukes assortiti. Non nominero' programmi o SO, solo una libreria linkata: VBRUN300.DLL :-) Allora, immaginiamo che mi sia arrivata una sfrazzata di nukes da uno di questi piccioni. Potrei inviargli un 'probe' tipo finto Netbus, ma con indirizzo di provenienza 127.0.0.1. Il piccion-firewall riceve il pacchetto e vede la provenienza (che e' lui stesso, l'host locale all'interno del firewall, e quindi privo di protezioni contro se stesso), carica il fucile a pallettoni, lo punta contro i propri testicoli (virtuali, tuttavia) e tira il grilletto. Game over. Altro esempio: esistono firewalls che offrono la possibilita' di fare una ricerca via traceroute, ARIN, InterNIC e 'r tegame di su' ma'. Se mi voglio divertire, invio a uno di questi sventurati una raffichetta di pacchetti del tutto innocui e provenienti da Saturno. Prima che lo Zone Alarm di turno abbia: a) Risolto i DNS diritti, rovesci e carpiati b) Fatto il traceroute che avro' scelto su 65 hops *minimo* c) Interrogato ARINco e ricevuto il regolamentare 'affan... per CIASCUNO di quei pacchetti, s'e' fatta notte. 3. metodi per effettuare lo spoofing in modo (i) manuale (ii) automatico Uhm, che vuol dire? Per forza di cose e' un'operazione manuale. Forse si puo' automatizzarla con Linux e ipfw, ma poi uno si _taglia fuori_ da Internet da solo. Vale la pena? 4. metodi di prevenzione dello spoofing Il provider deve _impedirti_ di mandar pacchetti falsificati ("egress filtering"). Altri metodi non ce ne sono. Chi riceve un pacchetto falso puo' a volte capirlo da alcune opzioni; per esempio, un pacchetto da 127.0.0.1 ha sempre un determinato TTL e viene sempre da una certa interfaccia (lo). Se mi arriva da eth0 o da ippp0, mi posso incazzare come una faina. *** (C) Leonardo *** NUKE: Sappiamo tutti (in particolare gli utenti Windows) che non esiste il sistema operativo perfetto. E' possibile mandare in crisi un sistema operativo connesso in rete inviandogli pacchetti di dati costruiti a regola d'arte, che sfruttino per esempio una cattiva implementazione del protocollo TCP/IP, quello usato in Internet. Gli effetti vanno dal Blue Screen of Death al congelamento totale della macchina (= unico comando funzionante: pulsante di reset hardware). Un esempio di nuke e' dato da un pacchetto con indirizzo IP mittente uguale a quello del destinatario, che cortocircuita la connessione (in pratica, il computer nel rispondere comincia a mandare dati a se stesso), oppure un pacchetto sapientemente frammentato in maniera che le parti si sovrappongano parzialmente. Ovviamente il nuke e' fatto su misura e sfrutta le debolezze di uno specifico stack TCP abbinato al suo specifico sistema operativo; quindi il nuke che va bene per Windows non va bene (o almeno non e' detto che vada bene) per altri computer, e viceversa nuke che buttano giu' altri computer, _forse_ potrebbero anche non buttare giu' Windows. FIREWALL: E' un software. Puo' girare su macchinette speciali ridotte al minimo, nel qual caso ti vendono un mattoncino hardware con dentro il software su (E)EPROM. Alternativamente, puo' girare su un "server" apposito, tipo Linux (v., per esempio, www.debian.org, www.suse.com, www.slackware.org, ecc.). In tutti i casi e' un programma che effettua quattro funzioni: 1) INPUT: determina cosa puo' ARRIVARE 2) OUTPUT: determina cosa puo' USCIRE 3) FORWARDING: prende un pacchetto in arrivo dall'interno e lo butta fuori, o viceversa 4) MASQUERADING: prende pacchetti dall'interno e li butta fuori, ma, contemporaneamente, maschera l'indirizzo di partenza, mettendo il proprio. Quando arriva una risposta a lui, cambia l'indirizzo del destinatario, mettendo quello della macchina originaria: PC protetto: "Da PC1 a WWW.ALTAVISTA.COM, HELLO" --> Firewall Firewall: "Da FIREWALL a WWW.ALTAVISTA.COM, HELLO" --> Altavista Altavista: "Da Altavista a Firewall, TI SENTO" --> Firewall Firewall: "Da Altavista a PC1, TI SENTO" --> PC Protetto Nel caso di pacchetti DIRETTI Nemico: "Da NEMICO a PC1, MUORI" --> Firewall Firewall (opzione 1): (niente) Firewall (opzione 2): "NESSUN PC1 PRESENTE" --> Nemico Firewall (opzione 3): "MUORI TE, CAATA!" --> Nemico (crash!) ...le opzioni 2 e soprattutto 3 non sono fornite di serie 8-D In ogni caso, anche con opzione 1, al server non capita nulla. Naturalmente, il firewall deve essere in grado di resistere ad un attacco diretto contro di lui. *** (C) Leonardo Serni COOKIES: Sono molti ormai i siti che fanno uso di questi file. Il cookie e' una informazione originata dal server a cui ci si connette, che poi gli viene rispedita pari pari. E' come il biglietto dei famosi "salvacoda" nei negozi: serve cosi' che il negoziante possa sapere se e' il tuo turno o no, ma non dice nulla su come ti chiami o quanti soldi hai in tasca. PERO', se quel biglietto te lo appunti al bavero, chiunque potra' sapere che ti servi in quel negozio. Per esempio: se ci colleghiamo ad Amazon, la libreria virtuale, questa puo' mandarci una cosa tipo Set-Cookie:ID=298934538; path=/; domain=www.amazon.com il browser a questo punto ogni volta che si RICOLLEGA a Amazon manda il msg "Cookie:ID=298934538", cosicche' Amazon, avendo un database, sapra' cosa abbiamo acquistato la volta precedente e si regolera' di conseguenza. Dove c'entra la privacy in tutto questo? Be', se "domain" e' per esempio Set-Cookie:ID=298934538; path=/; domain=.amazon.com il cookie non lo mandiamo solo connettendoci a www.amazon.com, ma anche a mail.amazon.com (se esistesse!), cosi' che saprebbero che ti colleghi ad Amazon appunto. Se domain= fosse vuoto, QUALSIASI web server a cui ci si collegasse verrebbe "informato" che siamo clienti di Amazon. Se poi il web server fa qualcosa con questa informazione e' cosa aperta alla discussione. E facciamo un esempio limite: dopo aver fatto login su www.sex.com, quel server manda un cookie Set-Cookie:User=Nome&Pass=pass&Email=email; path=/; domain=.com ...questo cookie viene rispedito a _qualsiasi_ server .com, e contiene i nostri dati di email, password e quant'altro. E' utile aggiungere che questo e' possibile soltanto se l'agent, cioe' il browser, non rispetta certe regole di sicurezza. Secondo le specifiche della RFC 2109 i Set-Cookie che hanno un campo domain privo di "embedded dot" devono essere automaticamente rifiutati. Ad esempio, Netscape rispetta questa specifica rifiutando campi domain con meno di 2 dot. Non e' quindi possibile, mediante un cookie, sapere cos'abbiamo sull'HD. Per farlo occorrerebbe che un software GIA' PRESENTE sul nostro PC aggiungesse, alla lista dei cookies per un certo server, dei dati relativi a quel che abbiamo sull'HD, per esempio Software=MSWord60&ID=198345-9283&User=John+Q.+Glen ...ma se cosi' fosse, disattivare i cookies NON SERVIREBBE A NIENTE, dal momento che la "protezione cookie" agisce contro i cookies IN ARRIVO, ma non impedisce l'invio di cookies DAL PC, verso il server. Con le recenti versioni di Netscape e IE, pero', disabilitando completamente i cookie si dovrebbe essere in grado di inibire anche la loro trasmissione, non solo l'accettazione: ai server viene impedita la lettura di eventuali cookie salvati su disco. O almeno cosi' sostengono le guide. Tecnicamente, il campo HTTP_COOKIE non dovrebbe essere popolato di dati. PACCHETTI: Quando parliamo di pacchetto NON intendiamo, come si puo' pensare, TCP. In realta' parlando di pacchetto, si intende il complesso del cosiddetto frame, ovvero il livello di datalink ed il datagramma IP, che contiene a sua volta un segmento quale TCP, ed un payload. Ma attenzione, perche' un pacchetto necessario a pingare una macchina e' sempre un datagramma (IP) con messaggio ICMP, mentre una tipica query al DNS e' un datagramma (IP) con datagramma (UDP). Oltre c'e' sempre il cosiddetto payload, che potremmo definire come 'i dati veicolati'. Quindi si puo' subito pensare che per datagramma si intenda un header, e rispettivo payload, di un protocollo NON orientato alla connessione, quindi UDP e IP, laddove TCP sia un 'segmento' (di una connessione) all'interno di un datagramma (IP). ICMP invece non solo non e' orientato alla connessione, ma nemmeno al trasporto di dati tra applicazioni [almeno legalmente :P] quindi riveste ruolo di messaggio. L'importante e' che UDP e' comunque etichettato con mittente e destinatario [le porte] cosi' come OGNI datagramma IP [con indirizzo sorgente e destinazione] altrimenti che razza di scambio dati avremmo? :) Tralasciamo il concetto del livello datalink e del frame, per ora un po' prematuro. *** (C) invy *** REDIREZIONE L'IP redirect significa (per esempio) che il lamer si collega alla TUA porta 7654 ed e' COME SE fosse connesso alla porta 6667 di irc.tin.it; e puo' fare IRC con il tuo IP - perche' sei TU che sei connesso a irc.tin.it, e non lui. E se qualcuno manda un nuke, sei TU quello che se lo becca. Il lamer si limita a ricollegarsi ad un'altra vittima. Questo naturalmente nell'ipotesi che la tua macchina invii a irc.tin.it quello che il lamer le manda (e gli invii le risposte), senza metterci, come dire?, del suo ;-) (vedi [C16-X]). ICMP Internet Control Message Protocol, e' il protocollo di diagnosi/errore che serve da supporto, nello stack TCP/IP, alle comunicazioni a livello di rete. Viene messo 'in essere' sia dal solo protocollo IP, quanto da situazioni connesse ai protocolli di trasporto quali TCP e UDP. Puo' anche far pervenire messaggi di errore alle applicazioni e NON al solo kernel. Viene veicolato in un datagramma IP. *** (C) invy *** BLIND SPOOFING Si manda un syn al server (nagari cambiando l'indirizzo del mittente nei pacchetti IP) e invece di aspettare l'ack (che se ha cambiato appunto il mittente non gli arrivera' mai) dopo un po' si finge (o suppone) di aver stabilito la connessione e si comincia a sparare dati (con il mittente giusto). E' possibile che il server a un certo punto si "distragga" e accetti la connessione senza controllare se l'indirizzo IP dei pacchetti che gli arrivano corrisponde a quello che c'era sul SYN, e cosi' si aggirerebbe il tcp wrapper. HALF SCAN Lo "half-scan" consiste nel mandare un SYN, aspettare l'ACK od il RST, e passare oltre. ACK = porta aperta RST = porta chiusa = firewall? TROJAN Un trojan, da non confondere con i virus che sono un'altra cosa, e' un programma che si nasconde sotto le mentite spoglie di un altro programma. Per esempio l'autoinstallante che si spaccia come un fantastico screen saver con il filmato di Pamela. Oltre al Bo rientrano in questa categoria anche programmi come NetBus e TeleCommando. Il nome ovviamente deriva dal mitico Cavallo di Troia, che dentro l'apparenza di un dono di pace celava gli uomini che avrebbero distrutto la citta' stessa. NETBIOS NETBEUI Il NetBIOS (Network Basic Input/Output System) e' sostanzialmente un'interfaccia di programmazione, una API (Application Programming Interface). Anzi, per dirlo in termini piu' rigorosi possibili, e' "un'interfaccia a livello di sessione", usata dalle applicazioni per comunicare con protocolli basati su tale interfaccia, come NetBEUI (NetBIOS Extended User Interface - introdotto da IBM nel 1985) o il network redirector di Windows. Originariamente, il NetBIOS venne sviluppato nel 1983 dalla Sytek Inc. per conto di IBM ed era incluso come firmware nei chip ROM delle schede di rete. In seguito, Microsoft sviluppo' un'interfaccia NetBIOS per Windows allo scopo di supportare nei propri prodotti questo standard emergente. *** (C) Paolo Monti *** ISN Initial Sequence Number. Sulla sua scelta si basa la vulnerabilita' o meno di uno stack agli attacchi di predizione del numero di sequenza. invy SMURFING Lo smurfing ("puffare") e' simile al ping flood, ma l'attaccante non ha la velocita' necessaria per generare la banda richiesta. E' chiaro che, con il mio modem 56K, non posso inviare piu' di 56K di PING a qualcuno; se quel qualcuno ha una ADSL a 640K, gliene rimangono 528 nel caso piu' sfavorevole. In pratica gli ho fatto un baffo. Esistono pero' dei dispositivi che traducono indirizzi di broadcast del tipo 192.168.0.255 in pacchettoni multipli (254 pacchetti, uno per ogni host nella sottorete). Cioe', se io faccio ping 192.168.0.255 invio un solo pacchetto al gateway di 192.168.0.255; questo inviera' il mio PING a tutti gli hosts che serve, diciamo una sessantina; e TUTTI a quel punto risponderanno, mandandomi 60 ICMP-ECHO-REPLY in totale. Nello smurf, fase uno, eseguo uno scanning e cerco dei siti veloci, con molti hosts attivi ed un gateway configurato di merda (in genere, basta un veloce scan, sulla porta 135; se aperta, ci sono ottime possibilita' di avere di fronte un host debole/mal configurato). Quando ho a mia disposizione diciamo 50 indirizzi di reti per un totale di 7500 hosts, invio 10K di PING su questi 50 indirizzi, fingendo pero' di essere la mia vittima. I 7500 hosts invieranno ciascuno 0.5K di replies a colui che credono li abbia contattati; la mia vittima si vede arrivare 3 megabits al secondo di ICMP, che affogano la sua ADSL e probabilmente anche il suo provider per buona misura. Vengono prese rapide contromisure e il mio PC viene tracciato, e quindi il mattino dopo m'arriva in casa la DIGOS, che, scoprendo sul PC il mio Internet Explorer (e un modem), si convince di aver messo le mani su un pericoloso pedofilo. PING FLOODING Qualcosa di più complicato dello [SMURF] da effettuare, e che richiede di solito che l'attaccante sia più di uno, e con a disposizione linee molto veloci). Per capire quanto può essere pericoloso una smurf fatto bene, considera che gli attacchi a Yahoo, E-bay, Amazon e co.. erano di questo tipo! SSPING Ovvero l'attacco effettuato utilizzando pacchetti ICMP frammentati. Vengono inviati pacchetti IP frammentati in modo illegale (per il computer) che una volta ricostruiti riempiono il buffer della macchina (dato che la dimensione del pacchetto IP diventa maggiore del consentito) Un attacco del genere non dovrebbe essere un pericolo, dato che i SO recenti ne sono immuni. Ma se avete Win95 prima edizione, senza patch... BRRRRRRR!!!!! NETBIOS NUKE (conosciuto anche come Blue Screen Of Death) Consiste nell'invio di un codice non valido alla porta 139, usata appunto da NetBios di Win. Vi potete accorgere di aver subito un attacco del genere grazie al (tristemente) famoso SCHERMO BLU di Windows (portatore di somme sciagure!). Spero di essere stato utile, spaventando chi non ha ancora installato un firewall, e spingendo tutti a leggere le faq di questo e degli altri NG trattanti la sicurezza. (N.d.F.: grazie Giovy per la pubblicita', anche se un po' terroristica ^____^)