Codice malizioso - Dipartimento di Informatica

Codice malizioso
Alfredo De Santis
Dipartimento di Informatica
Università di Salerno
[email protected]
http://www.dia.unisa.it/professori/ads
Maggio 2014
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
1
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
2
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 "
3
Software Malizioso
4
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)
5
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…
6
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
7
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
8
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
9
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
10
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; }
}
11
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;}
}
12
Un virus a compressione
13
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
14
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
15
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
16
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
17
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
18
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…
19
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
20
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
21
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
22
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)
23
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
24
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)
25
Difendersi dai virus
La migliore contromisura è la prevenzione
Bisogna poter svolgere le seguenti attività
 Rilevamento
 Identificazione
 Rimozione
26
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
27
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
28
Denial of Service
 Vari tipi di attacchi
 Smurf/Ping Broadcast
 Fraggle Attack
 Syn Flooding
29
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
30
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
31
Esempio di DoS:
Smurf/Ping Broadcast e Fraggle Attack
32
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
33
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
34
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
35
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
36
Distributed Denial of Service
 Minaccia seria per le aziende
 Nel 2001 più di 12000 attacchi contro oltre
5000 obiettivi, tra cui Amazon e Hotmail
37
Bibliografia
 Cryptography and Network Security
by W. Stallings (2005)
 cap. 19
 Tesina di Sicurezza su reti
 Virus
38
Domande?