• Corso di Sicurezza su reti
• 29-05-2012
Codice malizioso
Barbara Masucci
Dipartimento di Informatica
Università di Salerno
masucci@dia.unisa.it
http://www.dia.unisa.it/professori/masucci
Codice “malizioso”
Dopo una violazione del sistema, un intruso
potrebbe installare del codice per
sottrarre dati riservati
muovere attacchi verso altre macchine
Tale codice può anche sostituire comandi di sistema
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
Codice “malizioso”
Altro metodo per l’installazione o esecuzione
di software malizioso su una macchina
indurre un utente/amministratore a scaricarlo
dalla rete ed eseguirlo (anche inconsapevolmente)
Un’applicazione tipica di questo approccio sono
i Virus
Programmi che penetrano in un programma ospite
modificandolo, per riprodursi e danneggiare dati
e/o programmi
• 1
• Corso di Sicurezza su reti
• 29-05-2012
Il termine “Virus”
David Gerrold, 1972
Nel libro “When Harlie Was One” viene descritto un
programma chiamato virus creato da uno scienziato pazzo
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
Antivirus Vaccine creato dall’inventore a scopo di lucro
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 "
Software Malizioso
Virus e simili
Backdoor
Punto di accesso segreto in un programma sfruttabile per
acquisire l’accesso al sistema
Utilizzate dai programmatori per test e debug di programmi
Attivate con particolari sequenze di input
Bomba logica
Codice incluso in un programma legittimo
Configurata per esplodere in particolari condizioni
Una volta innescata, può compiere azioni dannose
Zombie
Programma che assume segretamente il controllo di altri
computer in rete
I computer “controllati” sono usati per attacchi che non
consentono di identificare il responsabile
Esempio: DoS (Denial of Service)
• 2
• Corso di Sicurezza su reti
• 29-05-2012
Virus e simili
Cavallo di Troia
Programma apparentemente legale che contiene
istruzioni che realizzano funzioni non richieste
dell’utente (anche dannose)
Worm
Programma che si ricopia su reti di computer sfruttando
bug del sistema operativo
Non necessita di un programma portatore
Virus
Porzioni di codice autoreplicante
Boot virus, macrovirus, etc…
Virus: Classificazione
o Innocui
o Non alterano le operazioni del computer
o Il risultato della loro propagazione comporta solo una
diminuzione dello spazio libero sul disco
o Non dannosi
o La loro influenza si manifesta solo con una
diminuzione dello spazio libero sul disco, col mostrare
grafici, suoni o altri effetti multimediali
Virus: Classificazione
o Dannosi
o Possono causare problemi alle normali operazioni del
computer
o Cancellazione di alcune parti dei file
o Molto dannosi
o Provocano danni difficilmente recuperabili
o Distruzione dei programmi
o Cancellazione di informazioni vitali per il sistema
o Formattazione di porzioni del disco
• 3
• Corso di Sicurezza su reti
• 29-05-2012
Ciclo di vita di un virus
Creazione
Fase in cui lo sviluppatore progetta, programma e diffonde
il virus
Incubazione
Il virus controlla che il file o il sistema da infettare sia
libero da infezioni
Infezione
Se l'infezione non è attiva sullo stesso sistema, allora il
virus infetta il file e di conseguenza il sistema
Ciclo di vita di un virus
Attivazione
Al verificarsi delle condizioni previste il virus viene attivato
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)
Riconoscimento
Viene individuata la stringa di riconoscimento del virus
Estirpazione
Il virus viene eliminato dal sistema mediante un antivirus
Un semplice virus
program V :=
{ goto main;
subroutine infetta_eseguibile :=
{loop:
file := scegli _file_eseguibile;
if (file già infetto)
then goto loop
else aggiungi_V_inizio_file;}
subroutine danneggia := {esegui il danno}
subroutine controlla_condizione_trigger := {restituisci true se vale la condizione}
main:
programma principale :=
{ infetta_eseguibile;
if (controlla_condizione_trigger) then danneggia; }
}
• 4
• Corso di Sicurezza su reti
• 29-05-2012
Un virus a compressione
program CV:=
{ goto main;
subroutine infetta_eseguibile :=
{loop:
file := scegli _file_eseguibile;
if (file già infetto)
then goto loop
else
comprimi file;
aggiungi_CV_inizio_file;}
main:
programma principale :=
{ infetta_eseguibile;
espandi file;
esegui file non compresso;}
}
Un virus a compressione
Virus polimorfici
Il codice del virus viene crittografato
Serve per aggirare la ricerca di stringhe note da
parte di antivirus
Vari livelli di polimorfismo
• Oligomorfi (stessa routine)
• Strettamente polimorfi (routine random)
Motore polimorfico
• Cripta il virus con una chiave casuale
• La chiave è conservata nel virus
• Inserisce nella routine di cifratura istruzioni casuali
(garbage) per confondere l’antivirus
• Alla replicazione, sceglie una chiave differente
• 5
• Corso di Sicurezza su reti
• 29-05-2012
Macrovirus
Virus scritti come macro di applicazioni utente
Macro: insieme di istruzioni usate per automatizzare
compiti
Possono essere eseguiti all’atto dell’apertura di
un documento
Esempi: Melissa e I Love You
Scritti in VBS
Si trasmettono via E-Mail
Accedono e modificano il file registro di Windows
Melissa
Individuato nel marzo del 1999
In tre giorni, 100000 computer infettati
Un sito ricevette 32000 copie di Melissa via email in
soli 45 minuti…
Nato per:
Replicarsi sotto Office97
Infettare i documenti Word 97 e successive versioni
Spedire sue copie attraverso messaggi di posta
elettronica usando Microsoft Outlook
Melissa: diffusione
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
• 6
• Corso di Sicurezza su reti
• 29-05-2012
Come funziona Melissa
L'allegato, una volta aperto, svolge due azioni:
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
Come funziona Melissa
Supponiamo che l'infezione sia avvenuta alle ore 8:08 a.m.
Se l'8 agosto successivo si scrive un documento Word…
I Love You
Il mese di Maggio del 2000 è stato segnato dalla comparsa del
virus "I Love You“
In pochi giorni, oltre 50 milioni di
computer infettati
Danni provocati: oltre 10 milioni
di dollari
• 7
• Corso di Sicurezza su reti
• 29-05-2012
I Love You: diffusione
Arriva tramite una e-mail contenente un file con
estensione VBS come allegato (il virus)
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
Come funziona I Love You
Si propaga tramite e-mail, inviando messaggi infetti
da computer dove è stato precedentemente eseguito
Usa Microsoft Outlook per spedire se stesso a tutti
gli indirizzi contenuti nella rubrica
Quando viene eseguito
Si spedisce via email
Si installa nel sistema
Sviluppa azioni distruttive
Scarica ed installa un cavallo di troia
Come funziona I Love You
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
Si ricopia nella directory system di Windows con il
nome di WINFAT32.EXE
Rimette come pagina iniziale una pagina bianca
(about:blank)
• 8
• Corso di Sicurezza su reti
• 29-05-2012
Come funziona I Love You
Il virus cerca nelle sottodirectory di tutti i
drive i file con estensione:
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
Nasconde i file originali e crea nuovi file contenenti il suo
codice ma con estensione VBS aggiunto al nome completo di
tutti i file
Worm
Votati principalmente alla diffusione
Danneggiamento o sottrazione di dati
Rallentano fino a bloccare il computer ospite
Possono intasare una rete locale con le loro “spore”
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)
Difendersi dai virus
La migliore contromisura è la prevenzione
Bisogna poter svolgere le seguenti attività
Rilevamento
Identificazione
Rimozione
• 9
• Corso di Sicurezza su reti
• 29-05-2012
Software Anti-Virus
Prima generazione
scanner che identificano virus in base alle
signature (struttura e configurazione)
Seconda generazione
usano euristiche per ricercare segni di infezione
eseguono il controllo dell’integrità
Terza generazione
identificano i virus in base alle loro azioni
non richiedono elenco di signature
Quarta generazione
pacchetti che combinano diverse tecniche antivirus
Denial of Service
Attacco che impedisce l’uso legittimo
di un servizio
Metodi
consumo larghezza di banda
consumo delle risorse
sfruttamento errori programmazione
modifica tabelle di instradamento
Denial of Service
Vari tipi di attacchi
Smurf/Ping Broadcast
Fraggle Attack
Syn Flooding
• 10
• Corso di Sicurezza su reti
• 29-05-2012
Denial of Service:
Smurf/Ping Broadcast
Idea:
inviare un messaggio ECHO (con protocollo
ICMP) all’indirizzo di broadcast di una rete
inserendo come mittente l’indirizzo della
vittima (spoofing)
La vittima viene sommersa di messaggi di
risposta
Denial of Service:
Fraggle Attack
Idea:
Come l’attacco Smurf/Ping Broadcast, ma usa
il protocollo UDP
La vittima viene sommersa di messaggi di
risposta di tipo ECHO REPLY o
UNREACHABLE
Esempio di DoS:
Smurf/Ping Broadcast e Fraggle Attack
• 11
• Corso di Sicurezza su reti
• 29-05-2012
Denial of Service:
Syn Flooding
Sfrutta le debolezze dell’handshake di TCP
La comunicazione su B non termina finchè A non
risponde o al timeout della connessione
B deve mantenere in memoria le info sulla connessione
Denial of Service:
Syn Flooding
Se B deve tenere in memoria molti pacchetti, il servizio
per sovraccarico
non risponde
si blocca
blocca l'intera macchina sulla quale è ospitato
Denial of Service:
Syn Flooding
Come fare?
Sostituire l'indirizzo di A (di ritorno) del pacchetto con uno
inesistente
B non riesce a contattare il finto chiamante e si blocca o
risponde in tempi inaccettabili
• 12
• Corso di Sicurezza su reti
• 29-05-2012
Distributed Denial of Service
Stesso approccio del DoS ma usa più punti di
ingresso contemporaneamente
L’attacco non parte dagli host dell’hacker ma da
sistemi di aziende ignare e strutture pubbliche
Su queste macchine (slave) viene installato e lanciato
un programma per attivare un processo zombie che
resta in attesa di un comando di attivazione
Distributed Denial of Service
Minaccia seria per le aziende
Nel 2001 più di 12000 attacchi contro oltre
5000 obiettivi, tra cui Amazon e Hotmail
Cryptography and Network Security
by W. Stallings (2005)
cap. 19
Tesina di Sicurezza su reti
Virus
• 13