Codice malizioso - Dipartimento di Informatica

•Corso di Sicurezza su Reti
•18/06/2004
Codice malizioso
Codice “malizioso”
ØDopo una violazione del sistema, un intruso
potrebbe installare del codice per
Ø sottrarre dati riservati
Ø muovere attacchi verso altre macchine
Alfredo De Santis
ØTale codice può anche sostituire comandi di sistema
Dipartimento di Informatica ed Applicazioni
Ø Sostituzione di sendmail con una nuova versione che
memorizza in un file i messaggi inviati dall’utente
Ø Sostituzione di ls con una nuova versione che non
visualizza il file creato dal sendmail fasullo
Università di Salerno
Alfredo De Santis - DIA – Università di Salerno
Codice “malizioso”
Il termine “Virus”
ØDavid Gerrold, 1972
ØAltro metodo per l’installazione o esecuzione
di software malizioso su una macchina
Ø Nel libro “When Harlie Was One” viene descritto un
programma chiamato virus creato da uno scienziato pazzo
Ø indurre un utente/amministratore a scaricarlo
dalla rete ed eseguirlo (anche inconsapevolmente)
Ø Il computer infettato provava a contattare un altro
computer via telefono
Ø Entrava in quel sistema e lo infettava con una sua copia
Ø Si infiltrava nel software di sistema e lo rallentava fino a
renderlo inutilizzabile
ØUn’applicazione tipica di questo approccio sono
i Virus
Ø Antivirus Vaccine creato dall’inventore a scopo di lucro
Ø Programmi che penetrano in un programma ospite
modificandolo, per riprodursi e danneggiare dati
e/o programmi
Alfredo De Santis - DIA – Università di Salerno
1
ØFred Cohen
Ø Il primo a definire in modo formale il concetto di virus
Ø "... a program that can infect other programs by modifing
them to include a possibly evolved copy of itself "
2
Ciclo di vita di un virus
Alfredo De Santis - DIA – Università di Salerno
3
Ciclo di vita di un virus
ØAttivazione
ØCreazione
Ø Al verificarsi delle condizioni previste il virus viene attivato
Ø Fase in cui lo sviluppatore progetta, programma e diffonde
il virus
ØPropagazione
Ø Il virus propaga l'infezione, riproducendosi e infettando sia
file nella stessa macchina che altri sistemi (tramite scambio
di dischi, connessioni via modem o collegamenti in rete)
ØIncubazione
Ø Il virus controlla che il file o il sistema da infettare sia
libero da infezioni
ØRiconoscimento
ØInfezione
Ø Viene individuata la stringa di riconoscimento del virus
Ø Se l'infezione non è attiva sullo stesso sistema, allora il
virus infetta il file e di conseguenza il sistema
ØEstirpazione
Ø Il virus viene eliminato dal sistema mediante un antivirus
Alfredo De Santis - DIA – Università di Salerno
4
Alfredo De Santis - DIA – Università di Salerno
5
•1
•Corso di Sicurezza su Reti
•18/06/2004
Virus: Classificazione
Virus: Classificazione
o Dannosi
o Innocui
o Possono causare problemi alle normali operazioni del
computer
o Non alterano le operazioni del computer
o Il risultato della loro propagazione comporta solo una
diminuzione dello spazio libero sul disco
o Cancellazione di alcune parti dei file
o Molto dannosi
o Non dannosi
o Provocano danni difficilmente recuperabili
o La loro influenza si manifesta solo con una
diminuzione dello spazio libero sul disco, col mostrare
grafici, suoni o altri effetti multimediali
o Distruzione dei programmi
o Cancellazione di informazioni vitali per il sistema
o Formattazione di porzioni del disco
Alfredo De Santis - DIA – Università di Salerno
6
Virus e simili
Kevin Mitnich, 1986
Ø Programma apparentemente legale che contiene
istruzioni che realizzano funzioni non richieste
dell’utente (anche dannose)
Ø Progettò un cavallo di Troia che infettò
Ø Nove università
Ø Quindici compagnie della Silicon Valley
Ø Nove siti Arpanet
Ø Tre laboratori governativi
Ø Etc…
ØWorm
Ø Programma che si ricopia su reti di computer sfruttando
bug del sistema operativo
Ø Non necessita di un programma portatore
Ø Il virus sostituiva il programma di accesso alla rete con
una sua copia modificata
ØVirus
Ø Porzioni di codice autoreplicante
Ø Boot virus, macrovirus, etc…
Ø Restituiva al suo autore login e password dell'utente che si
stava identificando in quell'istante
8
Worm
Alfredo De Santis - DIA – Università di Salerno
9
Boot Virus
ØVotati principalmente alla diffusione
ØInfettano il Boot Sector di un floppy o il
Master Boot Record degli hard disk
Ø Danneggiamento o sottrazione di dati
Ø Rallentano fino a bloccare il computer ospite
Ø Possono intasare una rete locale con le loro “spore”
Ø MBR copiato su un altro settore del disco
Ø Virus copiato nell’MBR
Ø Se più grande del settore sono usati altri settori
marcati BAD
Ø Alcuni esempi
Ø Il worm di Morris (novembre 1988)
Ø Code Red (luglio 2001), Nimda (settembre 2001)
Ø SQL Slammer (gennaio 2003), SoBig (agosto 2003),
MsBlaster (agosto 2003)
Ø Sasser (aprile 2004), Gaobot (aprile 2004)
Alfredo De Santis - DIA – Università di Salerno
7
Cavallo di Troia
ØCavallo di Troia
Alfredo De Santis - DIA – Università di Salerno
Alfredo De Santis - DIA – Università di Salerno
ØBoot da disco infetto
Ø Viene letto il Boot Sector (contente il virus), copiato
in memoria ed eseguito
Ø Virus setta i vettori di interrupt
Ø Carica il vero Boot sector e gli trasferisce il
controllo
10
Alfredo De Santis - DIA – Università di Salerno
11
•2
•Corso di Sicurezza su Reti
•18/06/2004
Macrovirus
Melissa
ØVirus scritti come macro di applicazioni utente
ØIndividuato nel marzo del 1999
Ø Macro: insieme di istruzioni usate per automatizzare
compiti
Ø In tre giorni, 100000 computer infettati
Ø Un sito ricevette 32000 copie di Melissa via email in
soli 45 minuti…
ØPossono essere eseguiti all’atto dell’apertura di
un documento
ØNato per:
ØEsempi: Melissa e I Love You
Ø Replicarsi sotto Office97
Ø Infettare i documenti Word 97 e successive versioni
Ø Spedire sue copie attraverso messaggi di posta
elettronica usando Microsoft Outlook
Ø Scritti in VBS
Ø Si trasmettono via E-Mail
Ø Accedono e modificano il file registro di Windows
Alfredo De Santis - DIA – Università di Salerno
12
Melissa: diffusione
13
Come funziona Melissa
L'allegato, una volta aperto, svolge due azioni:
ØArriva come allegato di una email
Ø Oggetto: "Important message from (mittente)...".
Ø Body: “Here is that document you asked for…don’t
show anyone else”
Ø list.doc, documento Word, che contiene il macrovirus
Melissa
Alfredo De Santis - DIA – Università di Salerno
Alfredo De Santis - DIA – Università di Salerno
14
Come funziona Melissa
ØDiffusione
Ø Spedisce il documento infetto ai primi 50 indirizzi nella
rubrica
ØInfezione
Ø Disabilita la finestra di avvertimento per lo stato delle
macro e la protezione macro di Word
Ø Si mostra quando il valore della data corrisponde al valore
dell'ora
Alfredo De Santis - DIA – Università di Salerno
15
I Love You
Il mese di Maggio del 2000 è stato segnato dalla comparsa del
virus "I Love You“
ØSupponiamo che l'infezione sia avvenuta alle ore 8:08 a.m.
ØSe l'8 agosto successivo si scrive un documento Word…
ØIn pochi giorni, oltre 50 milioni di
computer infettati
ØDanni provocati: oltre 10 milioni
di dollari
Alfredo De Santis - DIA – Università di Salerno
16
Alfredo De Santis - DIA – Università di Salerno
17
•3
•Corso di Sicurezza su Reti
•18/06/2004
I Love You: diffusione
Come funziona I Love You
ØArriva tramite una e-mail contenente un file con
estensione VBS come allegato (il virus)
ØSi propaga tramite e-mail, inviando messaggi infetti
da computer dove è stato precedentemente eseguito
ØIl messaggio originale è il seguente:
Ø The Subject: ILOVEYOU
Message test: kindly check the attached
LOVELETTER coming from me.
Attached file name: LOVE-LETTER-FORYOU.TXT.vbs
Alfredo De Santis - DIA – Università di Salerno
ØUsa Microsoft Outlook per spedire se stesso a tutti
gli indirizzi contenuti nella rubrica
ØQuando viene eseguito
Ø
Ø
Ø
Ø
18
19
Il virus cerca nelle sottodirectory di tutti i
drive i file con estensione:
ØI Love You modifica l'URL della pagina iniziale
del browser
ØIl nuovo URL punta ad un sito Web contenente il
cavallo di troia WIN-BUGSFIX.EXE
ØAl prossimo riavvio del browser, il virus scarica
il cavallo di troia
ØAl prossimo riavvio di Windows, il cavallo di
troia prende il controllo del sistema
Ø VBS, VBE, JS, JSE, CSS, WSH, SCT e HTA
Ø Crea un nuovo file con nome originale ed estensione VBS
cancellando quello precedente
Ø JPG e JPEG
Ø Esegue le stesse operazioni precedenti ma aggiunge
l'estensione VBS al nome completo di ciascun file
Ø MP3
Ø Si ricopia nella directory system di Windows con il
nome di WINFAT32.EXE
Ø Rimette come pagina iniziale una pagina bianca
(about: blank)
Ø Nasconde i file originali e crea nuovi file contenenti il suo
codice ma con estensione VBS aggiunto al nome completo di
tutti i file
20
Difendersi dai macrovirus
Ø Nelle applicazioni Office, controllare che sia
selezionata la voce Macro virus protection
Alfredo De Santis - DIA – Università di Salerno
Alfredo De Santis - DIA – Università di Salerno
Come funziona I Love You
Come funziona I Love You
Alfredo De Santis - DIA – Università di Salerno
Si spedisce via email
Si installa nel sistema
Sviluppa azioni distruttive
Scarica ed installa un cavallo di troia
Alfredo De Santis - DIA – Università di Salerno
21
Difendersi dai macrovirus
Ø Aprendo un documento contenente macro possiamo
scegliere se attivare o disattivare le macro incluse
22
Alfredo De Santis - DIA – Università di Salerno
23
•4
•Corso di Sicurezza su Reti
•18/06/2004
Difendersi dai macrovirus
Ø Se non si è certi dello scopo o della funzione di tali
macro, si consiglia di disattivarle sempre
Ø In questo modo si impedirà l'esecuzione dei virus
macro rendendoli innocui
Ø Il virus viene attivato solo se
Ø si apre il documento allegato e si sceglie di attivare le macro
Ø la protezione da virus macro è disattivata
Alfredo De Santis - DIA – Università di Salerno
24
Self--Reproducing Executable
Self
File (SREF)
Alfredo De Santis - DIA – Università di Salerno
25
Programma Auto
Auto--replicante che produce in output una
copia esatta del suo codice sorgente
compilazione(File Sorgente) = Eseguibile
esecuzione (Eseguibile) = File Sorgente
compilazione(File Sorgente) = Eseguibile
esecuzione(Eseguibile)
= Eseguibile
26
Metodi di risoluzione
Alfredo De Santis - DIA – Università di Salerno
27
Metodo Leggi/Scrivi
Legge i dati contenuti nel file sorgente e
li riproduce in output:
Ø Self
Self--Reproducing Executable File (SREF)
Ø leggi/scrivi
Ø Self
Self--Reproducing Program (SRP)
while (non hai letto tutti i dati dal file sorgente/eseguibile) {
leggi i dati dal file sorgente/eseguibile;
scrivi in output i dati letti;
}
Ø leggi/scrivi
Ø ricostruzione intrinseca
Alfredo De Santis - DIA – Università di Salerno
ØUtilizzare/installare software solo se di
provenienza fidata
ØMicrosoft e Sun hanno proposto alcuni sistemi per
la certificazione (mediante firma digitale)
dell’affidabilità di ActiveX ed Applet
ØMolti Anti Virus possono verificare la presenza di
file infetti anche quando questi sono giunti sul
sistema come allegati di posta elettronica
Self--Reproducing Program (SRP)
Self
Eseguibili Auto
Auto--replicanti la cui esecuzione produce in
output una copia esatta del file eseguibile stesso.
Alfredo De Santis - DIA – Università di Salerno
Difendersi dai virus
28
Alfredo De Santis - DIA – Università di Salerno
29
•5
•Corso di Sicurezza su Reti
•18/06/2004
Vincolo del Metodo Leggi/Scrivi
per SRP
Ricostruzione intrinseca
Ø La ricostruzione del file sorgente è intrinseca
al codice sorgente stesso
Disporre a run
run--time del file sorgente da
copiare
ØSi utilizzano delle stringhe costanti
opportunamente formattate
Alfredo De Santis - DIA – Università di Salerno
30
Alfredo De Santis - DIA – Università di Salerno
Esempio del Metodo in
Linguaggio C
31
Printf
printf(stringa
printf
(stringa di controllo, lista dei parametri);
Utilizzeremo le seguenti potenzialità della
funzione printf fornita dal linguaggio C
Ø Fornisce output opportunamente formattato
Ø Permette di stampare un elenco di parametri di lunghezza
arbitraria
Ø Permette di controllare la stampa attraverso semplici
specifiche di conversione (o formati)
Esempio: %c formato per stampare il valore di un’espressione
come un carattere
La stringa di controllo contiene una specifica di
conversione per ogni parametro
Alcune specifiche di conversione:
Ø %d (conversione ad intero)
Ø %c (conversione a carattere)
Ø %s (conversione a stringa)
Esempio:
printf(“Esempio
printf
(“Esempio %d %c della funzione %s
%s.”,
.”, 1 , ‘ a’ , “printf
“ printf”);
”);
Output: Esempio 1 a della funzione printf
printf..
Alfredo De Santis - DIA – Università di Salerno
32
Alfredo De Santis - DIA – Università di Salerno
33
Esempio del Metodo in
Linguaggio C
char*f="char*f=%c%s%c;main(){printf(f,34,f,34);}";
main ( )
codice ASCII
{
34 à ”
printf( f, 34, f, 34 );
}
printf("char*f=%c%s%c;main(){printf(f,34,f,34);}", 34, f, 34 );
Esecuzione della printf ed output:
char*f= “char*f=%c%s%c;main(){printf(f,34,f,34);}”;main(){printf(f,34,f,34);}
Alfredo De Santis - DIA – Università di Salerno
34
•6