Strumenti e Metodologie dello Script Kiddie
Conosci il tuo nemico

Lance Spitzner
http://www.enteract.com/~lspitz/papers.html

Ultima modifica: 21 Luglio, 2000

 

Il mio comandante era solito dirmi che per difendersi da un nemico, e' necessario conoscerlo. Questo concetto militare e' facilmente applicabile al mondo della sicurezza di rete. Come il militare, voi avete risorse che cercate di proteggere. Per poterlo fare avete bisogno di conoscere chi è il vostro avversario e come ha intenzione di attaccarvi. Questo articolo, il primo di una serie, fa proprio questo, tratta degli strumenti e delle metodologie di una delle più comuni ed universali minacce, lo Script Kiddie.  Se voi o la vostra organizzazione avete delle risorse in Internet, allora tutto ciò è applicabile anche a voi.

Conosci il tuo nemico: II incentrato su come è possibile  rilevare questi attacchi, come identificare gli strumenti che vengono usati e quali vulnerabilità vengono cercate. Conosci il tuo nemico: III incentrato su cosa accade una volta che gli attaccanti siano riusciti ad avere accesso come root.  In particolare come gli attaccanti coprono le loro tracce e cosa posso fare in seguito. Conosci il tuo nemico: Forensics tratta di come potete analizzare un tale attacco. Infine, Conosci il tuo nemico: Motivazioni, il risultato di un gruppo di lavoro, rivela le motivazioni e la psicologia di alcuni membri della comunità "oscura", dalle loro stesse parole.

Chi è lo Script Kiddie

Lo script kiddie è qualcuno alla ricerca di una intrusione facile. Non sono alla ricerca di informazioni specifiche nè cercano una particolare compagnia. Il loro obiettivo è quello di ottenere i privilegi di root nel modo più semplice possibile. Per ottenere ciò si concentrano su un piccolo numero di vulnerabilità, e cercano su tutta la Rete. Presto o tardi trovano qualche sistema vulnerabile.

Alcuni di loro sono utenti esperti  che sviluppano da soli i propri strumenti software (tools) e si lasciano dietro sofisticate "porte di servizio" (backdoors). Altri non hanno idea di quello che stanno facendo e sanno solo come digitare "via" al  prompt dei comandi. Comunque, a prescindere dal loro livello di preparazione, hanno in comune una strategia comune, cercare in modo casuale per vulnerabilità specifiche e sfruttare queste debolezze. 

La Minaccia

E' questa selezione casuale dei bersagli che rende cosi' pericoloso lo script kiddie. Presto o tardi il vostro sistema e la vostra rete verranno verranno testati, non potete nascondervi. Conosco amministratori che si sono stupiti di avere i loro sistemi esplorati quando erano funzionanti da appena un paio di giorni e nessuno li conosceva. Non c'è da stupirsi. Molto probabilmente, i loro sistemi erano testati da uno script kiddie che stava "spazzolando" quel segmento di rete.

Se questo fosse limitato a poche scansioni individuali la statistica sarebbe con voi. Con milioni di sistemi su Internet, è probabile che non vi trovino. Ma non e' questo il caso. Molti di questi strumenti sono facili da usare e largamente distribuiti, e chiunque può usarli. Un numero sempre maggiore di persone ottiene questi strumenti con un incremento allarmante. Non essendoci confini geografici su Internet, questa minaccia si è rapidamente sparsa nel mondo. Improvvisamente la legge delle probabilità vi e' contro. Con così tanti utenti su Internet che usano questi strumenti, non passerà molto tempo prima che voi veniate esplorati.

Questo è un esempio di come la sicurezza tramite l'invisibilità può mettervi nei guai. Potreste credere che se nessuno conosce i vostri sistemi, siete al sicuro. Altri pensano che essendo i loro sistemi privi di interesse specifico, perchè qualcuno dovrebbe ispezionarli ? Sono questi i sistemi che gli script kiddie cercano, i sistemi non protetti che sono facilmente sfruttabili, l'intrusione facile.

La Metodologia

La metodologia usata è semplice. Esplora Internet per una specifica vulnerabilità, quando la trovi, sfruttala. Molti degli strumenti usati sono automatici e richiedono solo una piccola interazione. Si lancia lo strumento e si torna a controllare i risultati qualche giorno. Non ci sono due script uguali, così come non ci sono vulnerabilità uguali. Comunque molti di questi strumenti usano la stessa strategia. Per prima cosa costruiscono un archivio di indirizzi IP. Quindi li testano per una specifica vulnerabilità.

Per esempio, mettiamo che un utente abbia uno strumento che può sfruttare una vulnerabilità del programma imap su un sistema Linux, come fa  imapd_exploit.c. Prima di tutto l'attaccante costruisce un database di indirizzi IP che sia possibile testare (p.e., sistemi che siano funzionanti e raggiungibili). Una volta che questo database di indirizzi IP e' costruito, l'utente può determinare quali sistemi hanno Linux come sistema operativo. Molti scanner attuali possono facilmente determinare il sistema operativo spedendo pacchetti malformati a un sistema e vedendone la risposta, come fa nmap di Fyodor. Quindi possono essere usati strumenti per determinare quali di questi sistemi Linux hanno in esecuzione imap. Tutto quello che rimane da fare ora e' entrare in quei sistemi vulnerabili. .

Penserete che tutto ciò sia estremamente "rumoroso", e che attragga l'attenzione. In realtà molte persone non controllano i sistemi, e non realizzano di essere sotto esame. Inoltre molti script kiddie ricercano silenziosamente un sistema in cui entrare. Una volta trovato, usano questo sistema come rampa di lancio. Così possono esaminare l'intera Internet senza timore di essere individuati. Se le loro operazioni vengono scoperte, sarà l'amministratore del sistema e non l'aggressore ad essere ritenuto responsabile.

Inoltre i risultati di queste operazioni sono spesso archiviati o condivisi tra diversi utenti per essere usati in un altro momento.  Per esempio un utente può creare una database con l'elenco delle porte aperte su un sistema Linux raggiungibile. L'utente costruisce questo database per sfruttare le vulnerabilità attuali di imap.  Diciamo che un mese dopo venga identificata una nuova vulnerabilità Linux su una porta differente. Invece di costruire un nuovo database (che è la parte che porta via più tempo), l'utente può velocemente rivedere il suo database e compromettere i sistemi vulnerabili.  In alternativa, è possibile condividere o anche acquistare database di sistemi vulnerabili. Potete leggere esempi di ciò in Conosci il tuo nemico: Motivazioni . In definitiva uno script kiddie può attaccare con successo il vostro sistema senza averlo mai esaminato prima. Quindi se il vostro sistema non è stato esaminato di recente, ciò non vuol dire che siate al sicuro.

Gli aggressori più smaliziati, una volta compromesso il sistema vi piazzeranno trojans e backdoor . Le backdoor (porte di servizio) permettono un facile e sicuro accesso al sistema in qualsiasi momento. I trojans (cavalli di Troia) rendono invisibile l'intruso. Egli non sarà visibile in nessun log, processo di sistema o struttura file. Avrà un posto sicuro e confortevole da dove potrà continuare ad esaminare la Rete. Per maggiori informazioni, leggete Conosci il tuo nemico: III.

Questi attacchi non sono circoscritti a certe ore della giornata. Molti amministratori controllano i loro log in cerca di eventi notturni, pensando che queste siano le ore in cui gli aggressori agiscono. I script kiddie attaccano in ogni momento. Siccome lavorano 24 ore al giorno, voi non potete avere idea di quando toccherà a voi. Inoltre questi attacchi sono lanciati da ovunque nel mondo. E siccome Internet non conosce confini geografici, non conosce neanche fusi orari. Potrebbe essere mezzanotte per l'intruso, ma essere l'una del pomeriggio per voi.

Questa metodologia di ricerca di sistemi vulnerabili può essere usata per diversi fini. Recentemente sono stati riportati nuovi attacchi di "negazione di servizio" (Denial of Service, DoS), in particolare DDoS (Distributed Denial of Service attacks).  Questi attacchi sono effettuati da un singolo utente che controlla centinaia, se non migliaia, di sistemi compromessi in tutto il mondo.  Questi sistemi compromessi sono quindi coordinati remotamente per eseguire l'attacco contro la vittima o le vittime. A causa della molteplicità dei sistemi compromessi  in uso, è estremamente difficile difendersi da questi attacchi ed identificarne la sorgente.  Per prendere il controllo di così tanti sistemi, spesso sono impiegate tattiche di script kiddie.  I sistemi vulnerabili vengono identificati in modo casuale e quindi compromessi per essere usati come rampe di lancio dell'attacco.  Più sistemi compromessi, maggiore la potenza dell'attacco DDoS. Un esempio di un simile attacco è 'stacheldraht',. Per saperne di più circa gli attacchi "Distributed Denial of Service" e su come proteggersi, potete vedere il sito di Paul Ferguson Denialinfo

Gli Strumenti

Gli strumenti implicati sono estremamente semplici da usare. Molti sono limitati ad un singolo fine con poche opzioni. Per primi vengono gli strumenti usati per costruire un database di indirizzi IP. Questi strumenti sono realmente casuali, in quanto esaminano indiscriminatamente Internet. Per esempio uno strumento ha una sola opzione, A, B, o C. La lettera che viene selezionata determina la dimensione della rete da esaminare. Lo strumento quindi seleziona casualmente quali rete IP esaminare. Un altro strumento usa un nome di dominio (z0ne è un eccellente esempio). Costruisce un database di indirizzi IP effettuando un trasferimento di zona del nome di dominio e di tutti i sotto domini. Alcuni utenti hanno costruito database con oltre 2 milioni di indirizzi IP esaminando gli interi domini  .com e .edu . Una volta scoperti, gli IP vengono esaminati con strumenti atti a determinare varie vulnerabilità, quali la versione di named, il sistema operativo, o i servizi in esecuzione sul sistema. Una volta identificato il sistema vulnerabile, l'aggressore colpisce. Per una migliore comprensione sull'utilizzo di questi strumenti potete leggere Conosci Il Tuo Nemico: Forensics.

Come Proteggersi Contro Questa Minaccia

Ci sono alcune cose che si possono fare per proteggersi da questa minaccia. Per prima cosa, lo script kiddie e' alla ricerca di una intrusione facile, cerca delle vulnerabilità comuni. Assicuratevi che i vostri sistemi e le vostre reti non siano soggetti a tali vulnerabilità. Sia  www.cert.org che www.ciac.org sono eccellenti fonti riguardo le vulnerabilità più comuni. Inoltre, la lista bugtraq (tenuta a securityfocus.com ) è una della migliori fonti di informazione. Un'altra modo di proteggersi è quella di eseguire solo i servizi che vi sono necessari. Se un servizio non vi è necessario eliminatelo. Se un servizio vi è necessario, assicuratevi di usare l'ultima versione. Per esempi di come fare ciò, leggete Proteggere SolarisProteggere Linux  o  Proteggere NT.

Come avete visto nella sezione strumenti, i server DNS sono spesso usati per sviluppare database di sistemi che possono essere esaminati. Limitate i sistemi che possono fare trasferimenti di zona a partire dai vostri Name Server. Registrate ogni trasferimento di zona non autorizzato e seguitelo. Vi raccomando caldamente di aggiornarvi all'ultima versione di BIND (software usato per il Domain Name Service), che potete trovare a www.isc.org/bind.html. Infine, controllate se i vostri sistemi sono sotto esame. Una volta identificati, potete tracciare questi eventi per ottenere una migliore comprensione della minaccia e poter reagire.

Conclusione

Lo script kiddie minaccia tutti i sistemi. Non mostra preferenze ed esamina tutti i sistemi, a prescindere dalla localizzazione e dall'importanza. Presto o tardi, il vostro sistema sarà esaminato. Comprendendo le motivazioni ed i metodi, potrete proteggere in modo più efficace i vostri sistemi da questa minaccia.

 Biografia dell'Autore
Lance Spitzner si diverte ad imparare facendo saltare i suoi sistemi Unix a casa. Prima di questo, era Ufficiale della Forza di Intervento Rapido, dove faceva saltare cose di diversa natura. E' raggiungibile a lance@spitzner.net .
 
 

Whitepapers / Publications