Elementi di Sicurezza e Privatezza
Lezione 17
Malware
Chiara Braghin
Obiettivo di oggi •  Definizione di malware
•  Come infettano gli host
•  Come si nascondono
•  Come si propagano
•  Come rilevarli
•  Credits: Elie Bursztein
1
Cosa è un malware?
•  Malware = Malitious + Software
w software progettato per interferire con il
normale funzionamento del computer,
causando danni più o meno gravi
w un insieme di istruzioni che vengono
eseguite su di un computer e gli fanno
fare qualcosa che l’attaccante vuole che
faccia.
2
A cosa serve?
Rubare informazioni personali
Cancellare file
Rubare i numeri seriali del software
Usare il tuo computer come relay
(ripetitore)
•  Click fraudolenti
• 
• 
• 
• 
3
Un esempio
•  Christians On
Facebook
•  Il “web master” ha
subito un attacco nel
marzo del 2009
w  Postato un messaggio
di fede islamica
w  Conseguenza: persi
più di 10 000 membri
4
The Malware Zoo
•  Virus
•  Worm •  Trojan horse •  Backdoor •  Spyware
•  Rootkit
•  Scareware
•  Adware
•  Dialer
•  Rabbit
5
Virus
•  A program that can infect other programs
by modifying them to include a, possibly
evolved, version of itself.
•  Fred Cohen, 1983
•  Parti di codice che si diffondono copiandosi
all'interno di altri programmi, o una
particolare sezione del disco fisso, in modo da
essere eseguiti ogni volta che il file infetto
viene ancora aperto. Si trasmettono mediante
lo spostamento del file infetto
6
Tipi di virus
•  Polimorfico: virus mutuante che
mantiene sempre uguale la
cosiddetta "impronta virale", ovvero
la sequenza di byte che identifica in
maniera univoca un virus
•  Metamorfico: cambia dopo ogni
infezione
7
Trojan horse
•  Software che, oltre ad avere delle
funzionalità lecite, utili per indurre l'utente
ad utilizzarli, contiene istruzioni dannose
che vengono eseguite all'insaputa
dell'utilizzatore. •  Non possiede funzioni di auto-replicazione,
quindi per diffondersi deve essere
consapevolmente inviato alla vittima.!
8
Worm
•  Un programma che non ha bisogno di
infettare altri file per diffondersi, perché
modifica il sistema operativo della macchina
ospite in modo da venire eseguito
automaticamente. In genere tenta di
replicarsi usando Internet, spedendo copie
di se stesso ad altri host. !
9
Virus vs Worm vs Trojan
•  Le parole vengono usate come sinonimi, ma non
sono esattamente la stessa cosa:
•  In comune: programmi maliziosi che possono
infettare il computer
•  Differenze:
w  Virus: attaccato ad un file eseguibile, non riesce a
infettare il computer a meno che non venga
eseguito o aperto il programma (richiede un’azione
umana)
w  Worm: una sotto-classe di un virus che ha la
capacità di trasmettersi senza interazione umana
w  Trojan: non si riproduce infettando altri file e non si
replica in modo autonomo
10
Backdoor
•  Una backdoor (porta sul retro) è una
tecnica per bypassare la normale
autenticazione ottenendo accesso non
autorizzato al sistema, a volte in modo
non visibile •  Può essere un programma installato (e.g.,
Back Orifice), oppure una modifica di un
programma esistente o un dispositivo
hardware.
11
Rootkit
•  I rootkit solitamente sono composti da un
driver e, a volte, da copie modificate di
programmi normalmente presenti nel
sistema. Non sono dannosi in sé, ma hanno
la funzione di nascondere, sia all'utente
che a programmi tipo antivirus, la presenza
di particolari file o impostazioni del
sistema. •  Vengono quindi utilizzati per mascherare
spyware e trojan.
12
Scareware
•  Scareware è un termine che identifica diverse
classi di scam software, spesso con benefici
limitati, venduto a consumatori per motivi di
marketing
w  Spyware: software usato per raccogliere
informazioni dal sistema su cui sono installati e per
trasmetterle ad un destinatario interessato. Le
informazioni carpite possono andare dalle abitudini
di navigazione fino alle password e alle chiavi
crittografiche di un utente. w  Adware o advertising-supported software: software
che presenta all'utente messaggi pubblicitari
durante l'uso, a fronte di un prezzo ridotto o nullo.
Causa rallentamenti del PC:
13
30 anni di malware
14
• From: Malware fighting malicious code, 2004
Storia • 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
• 
1981 First reported virus : Elk Cloner (Apple 2)
1983 Virus get defined
1986 First PC virus MS DOS
1988 First worm: Morris worm
1990 First polymorphic virus 1998 First Java virus
1998 Back Orifice 1999 Melissa virus
Melissa spread by email and share
1999 Zombie concept
Knark rootkit made to demonstrate the first
1999 Knark rootkit
ideas
2000 Love bug
Love bug vb script that abused a weakness in
Outlook
2001 Code Red Worm
2001 Kernel Intrusion System
Kernel intrusion by optyx gui and efficent
hidding mechanims
2001 Nimda worm
15
2003 SQL Slammer worm
Numero di malware signature
Symantec report 2009! 16
Ripartizione di malware
Panda Q1 report 2009!
17
Metodi di infezione
Cosa infettare?
• 
• 
• 
• 
• 
File eseguibili
File interpretati
Kernel
Servizi
Master boot record (MBR) 19
Overwriting malware
Malware!
Targeted!
Executable!
Malware!
•  I virus contaminano attaccandosi o
sostituendosi ad una porzione di codice"
20
Prepending malware
Malware!
Malware!
Targeted!
Executable!
Infected
host!
Executable!
21
Appending malware
Malware!
Targeted!
Executable!
Infected!
host!
Executable!
Malware!
22
Cavity malware
Malware!
Targeted!
Executable!
!
Malware!
!
Infected
host!
Executable!
23
Multi-Cavity malware
Malware!
Malware!
Targeted!
Executable!
Malware!
Malware!
24
Esempio: Auto start (1)
•  Cartella auto-start: w  C:\Documents and Settings\[user_name]\Start Menu\Programs\Startup
•  Win.ini: basic settings usate nel boot time
w  run=[backdoor]" or "load=[backdoor]".
•  System.ini: carica I driver dei vari
dispositivi e delle shell
w  shell=”myexplorer.exe”
•  Wininit
•  Config.sys: configura i componenti hw di
un PC
25
Esempio: Auto start (2)
•  Assegnare un’estensione nota (.doc)
al malware
•  Modificare un registry key •  Aggiungere il task nel task scheduler
•  Eseguirlo come servizio
26
Esempio: Unix autostart
•  Init.d
w  contiene una serie di script per avviare/
terminare vari servizi del sistema
•  /etc/rc.local
w  In esecuzione alla fine di tutti i livelli di boot
multi-user
•  .login .xsession •  Crontab: contiene istruzioni del demone cron nella
forma: ``run this command at this time on this date''
w  crontab -e
w  /etc/crontab
27
Esempio: Document based malware
•  MS Office
•  Open Office
•  Acrobat
28
Userland rootkit
•  Un rootkit è un programma progettato per controllare il
comportamento di una certa macchina
w  In genere viene utilizzato per nascondere la presenza
illegittima di una backdoor o di altri malware
•  Userland toolkits hanno come obiettivo le applicazioni
utenti piuttosto che il sistema stesso
w  Eseguono
§  login §  sshd
§  Passwd
w  Nascondono attività del tipo
§  ps
§  netstat
§  ls
§  find
29
Subverting del Kernel
• 
• 
• 
• 
• 
Kernel task
Cosa nascondere!
Gestione dei processi
➡ Processi!
Accesso ai file
Gestione della memoria ➡ File !
➡ Traffico della rete !
Gestione della rete
!
!
30
Tecniche di subverting
•  Kernel patch
•  Loadable Kernel Module •  Kernel memory patching (/dev/kmem)
31
Metodi di propagazione
Cartelle condivise
33
Tramite mail
34
• from pandalab blog
Esempio: a San Valentino ...
• Waledac malicious domain from pandalab 35
blog
Altro esempio
36
Symantec 2009!
Fake codec
37
Fake antivirus
38
• from pandalab blog
Hijack del browser
39
• from pandalab blog
File P2P
•  Richiesta popolare
•  Il 35.5% sono
malwares (Kalafut 2006)
40
Rilevazione
Anti-virus
•  Analizzano il
comportamento
del sistema
•  Analizzano i binari
per decidere se si
tratta di un virus
•  Tipi:
w  Scanner
w  Real time monitor
42
Anti-virus: Impossibility result
•  Non è possibile cotruire un perfetto
rilevatore di virus/malware (Cohen)
43
Virus signature
•  Trovare una stringa che possa
identificare un virus
•  Generare una specie di fingerprint
44
Euristiche
•  Analizzare il comportamento
w Accessi alla rete
w Apertura di file
w Tentativi di cancellazione di file
w Tentativi di modifica del boot sector
45
Checksum
•  Calcolare la checksum per
w Binary originali e non-malware
w File di configurazione
•  Rilevare modifiche confrontando i
checksum
46
Sandbox analysis
•  Eseguire gli eseguibili in una VM
•  Osservare:
w File activity
w Network
w Memory
47
Altri esempi
Adware
49
BackOrifice
•  Defcon 1998
•  Nuova versione nel 2000
50
Netbus
•  Un programma per
controllare da remoto un
PC running Microsoft
Windows •  Creato nel 1998 e non
bene accetto perché visto
come una possibile
backdoor
•  Nel 1999, NetBus usato
per mettere foto
pedopornografiche
(3500) nel PC di lavoro di
Magnus Eriksson, uno
studente di legge della
Lund University
51
Browser Toolbar ...
52
Toolbar again
53
Worm, again
•  Un worm è un software che si autoreplica
e che ha come obiettivo il diffondersi
nella rete w  In genere sfrutta vulnerabilità note di servizi
molto usati w  Può causare grossi danni §  Lanciare attacchi DDOS
§  Accesso a informazione sensibile
§  Causare confusione modificando informazione
sensibile
54
Costo di alcuni worm attack
•  Morris worm, 1988
w  Infettate circa 6,000 macchine
§  10% dei computer connessi a Internet w  ~ $10 million in downtime e cleanup
•  Code Red worm, July 16 2001
w  Discendente diretto del worm Morris
w  Infettati 500,000 server
§  Programmati per andare in modalità infinite sleep il 28
luglio
w  ~ $2.6 billion di danni
•  Love Bug worm: $8.75 billion
w  Statistics: Computer Economics Inc., Carlsbad, California55
Click fraud
56