Corso di Sicurezza Informatica
Sicurezza del software
Ing. Gianluca Caminiti
Software Doloso
Sommario
•
•
•
•
Tassonomia del software doloso
Virus
Worm
Tecniche antivirus
3
Tassonomia del software doloso
Software
doloso
Necessita di
programma ospite
Indipendente
Trapdoor
Logic
Bomb
Trojan
Horse
Zombie
Virus
Batterio
Worm
4
Definizioni
• Trap Door (o Back Door) – modalità di accesso non
documentata ad un programma (spesso realizzata per scopi
di debug) che è sfruttata per ottenere un accesso non
autorizzato.
• Logic Bomb – codice che si “attiva” in corrispondenza di
un evento (es. una certa data, l’esistenza di un file).
• Trojan Horse – codice malevolo “cammuffato” all’interno
di programma “utile” (a volte in apparenza).
• Easter Egg – Codice “sorpresa” all’interno di software
commerciale. Un modo per i programmatori di mostrare
che hanno il controllo del software.
5
Definizioni
• Zombie – programma che prende segretamente il controllo
di un computer connesso alla rete al fine di usarlo per
lanciare attacchi verso altri computer.
• Virus – codice che può effettuare operazioni malevole e, in
aggiunta, copia se stesso in un altro programma.
• Batterio – programma che tende a riempire l’harddisk o
che “consuma” cicli di CPU.
• Worm – similmente al Virus, si replica, ma sfruttando la
rete (email, ecc.)
• Payload – è il nome dato alle operazioni dolose compiute
da queste categorie di software, dopo la diffusione.
6
Fasi di un Virus
• Fase Latente (Dormant phase) – Il virus è inerte.
Attende il verificarsi di un evento per passare alla
fase successiva.
• Fase di Propagazione (Propagation ph.) – Il
virus copia se stesso all’interno di altri programmi.
• Fase di Innesco (Triggering ph.) – Il virus si
attiva (in corrispondenza di un evento) per
realizzare l’operazione dolosa per cui è stato
scritto.
• Fase di Esecuzione (Execution ph.) –
L’operazione dolosa è eseguita.
7
Struttura di un Virus
8
Propagazione Classica
Virus
Programma
Programma
infetto
9
Propagazione e compressione
10
Tipi di Virus
•
Virus Parassiti – Si agganciano ai programmi e sono eseguiti quando
è eseguito il programma ospite.
•
Virus residenti in memoria – Sono associati a processi che
permangono in memoria (anche celati nel sistema operativo).
•
Virus del settore di avvio – Si insediano nell’MBR e sono eseguiti
all’avvio.
•
Virus Stealth – usano tecniche che “intercettano” gli interrupt o le
funzioni del s.o. per celarsi alle analisi.
•
Virus Polimorfici – cambiano la propria “signature” usando tecniche
di permutazione del codice o di crittografia.
11
Virus Macro
• Codice malevolo contenuto in documenti anziché
in programmi (aumenta la velocità di diffusione).
Il trigger può essere un evento come apertura o
chiusura del file.
• Indipendenza dalla piattaforma (MSOffice è
presente su diversi S.O.).
• Azioni dolose equivalenti a quelle effettuate da
virus classici (accesso ai file…).
12
Virus di Posta Elettronica
• Macro-Virus diffusi via e-mail
• Virus scritti usando linguaggi di scripting (es.
VBScript) supportati dai client di posta
elettronica.
13
Worm
• Un worm (letteralmente "verme") è una particolare
categoria di malware in grado di autoreplicarsi. È simile ad
un virus, ma a differenza di questo non necessita di legarsi
ad altri eseguibili per diffondersi.
• Un worm modifica il computer che infetta, in modo da
venire eseguito ogni volta che si avvia la macchina e
rimanere attivo finché non si spegne il computer o non si
arresta il processo corrispondente (simile ai virus residenti
in memoria).
14
Worm
• Diffusione via rete
• Capacità di eseguire codice remoto
• Capacità di stabilire connessioni remote
15
Worm: Modalità di diffusione
Il worm sfrutta le connessioni di rete in diversi modi:
– la posta elettronica: il worm ricerca indirizzi e-mail
memorizzati nel computer ospite ed invia una copia di
sé stesso come file allegato a tutti o parte degli indirizzi
che è riuscito a raccogliere;
– file sharing: In questo caso si copiano tra i file condivisi
dall'utente vittima, spacciandosi per programmi ambiti
o per crack di programmi, in modo da indurre altri
utenti a scaricarlo ed eseguirlo;
– Sfruttando i bug di software o sistemi operativi, in
modo da diffondersi automaticamente a tutti i computer
vulnerabili connessi in rete.
16
Danni
Danni diretti
• spreco di risorse computazionali;
• interferenza con il funzionamento di antivirus e
firewall;
• il payload ha il solo scopo di causare dei danni al
sistema infettato;
• essere veicolo per l'installazione automatica sul
maggior numero di macchine di altri malware
(backdoor o keylogger).
17
Esempi
•
•
•
•
•
Worm di Morris (1988): Unix.
Code Red (2001): MS IIS
MyDoom, Sasser, Blaster (Windows)
…
http://en.wikipedia.org/wiki/Notable_comp
uter_viruses_and_worms
18
Danni
Danni indiretti
• possibile interferenza sul corretto funzionamento e
sull'efficacia delle comunicazioni che avvengono
tramite infrastrutture informatiche;
• aumento della mole di posta indesiderata che
arriva nelle caselle e-mail, sprecando risorse
preziose in termini di banda e di attenzione
dell’utente;
• instabilità del sistema operativo Æ spegnimenti e
riavvii forzati.
19
Tecniche Antivirus
1° Generazione, Scanner:
•
•
ricercano “signature” di virus
verificano la lunghezza dei file
2° Generazione, Scanner Euristici:
•
•
ricercano frammenti di codice comune a molti virus
verificano l’integrità dei file usando checksum o hash
3° Generazione, Monitoraggio delle attività:
•
Rimangono residenti in memoria e controllano determinate
azioni del sistema (accesso a file di sistema, registry, ecc.)
4° Generazione, Protezione completa:
•
combinano le migliori tecniche di cui sopra
20
Tecniche avanzate Antivirus
• Generic Decryption (GD) – contro i
polimorfici
– esecuzione su CPU virtuale
– scansione della signature
– controllo delle azioni effettuate dal codice.
• Vantaggi: decifrazione e sandboxing
• Svantaggi: per quanto tempo si deve
eseguire l’analisi?
21
Altre Tecniche avanzate
22
Altre Tecniche avanzate:
Blocco del comportamento
• Si integra con il S.O. e controlla costantemente il
comportamento (le azioni) eseguite dai programmi al fine
di bloccare quelle potenzialmente dannose:
• aprire, cancellare, modificare files
• formattare dischi
• modifiche alla logica delle macro
• avvio di connessioni di rete
Svantaggi: non utilizzando una macchina virtuale, il sistema
potrebbe avere già subito molti danni prima che si riesca a
bloccare il processo doloso.
23
Altre Tecniche “avanzate”:
User Access Control
• Vista introduce UAC al fine di permettere
determinate azioni (es. deframmentazione
del disco) solamente quando si hanno
elevati privilegi.
24
User Access Control:
funzionamento
• Gli utenti del sistema sono distinti in due categorie:
Utenti standard (gruppo Users) e Amministratori (gruppo
Administrators)
• Anche le applicazioni sono distinte in due categorie:
1. applicazioni per utente standard e 2. appl. per amministratore
• Al login di un utente corrisponde l’emissione di uno o più
token, contenenti informazioni sul livello di accesso,
privilegi, ecc. e necessari per l’avvio delle applicazioni
– utente standard (1 token): può avviare solo applicazioni di tipo 1
– amministratore (2 token: uno di utente standard ed uno di
amministratore): col primo token può avviare solo applicazioni di
tipo 1, col secondo solo quelle di tipo 2
25
User Access Control:
funzionamento
• Le applicazioni “per utente standard” (1) possono
essere eseguite da entrambe le categorie di utenti
senza alcuna richiesta di autorizzazione.
• Le applicazioni “per amministratore” (2) possono
essere eseguite “elevando” i privilegi dell’utente:
– da un utente standard, se inserisce nome/utente e
password di un utente del gruppo Administrators
– da un amministratore, se conferma la volontà di
eseguire l’applicazione “come amministratore”.
26
User Access Control: Trigger
* Running an Application as an
Administrator
* Changes to system-wide
settings or to files in
%SystemRoot% or
%ProgramFiles%
* Installing and uninstalling
applications
* Installing device drivers
* Installing ActiveX controls
* Changing settings for
Windows Firewall
* Changing UAC settings
* Configuring Windows Update
* Adding or removing user
accounts
* Changing a user’s account
type
* Configuring Parental Controls
* Running Task Scheduler
* Restoring backed-up system
files
* Viewing or changing another
user’s folders and files
* Running Disk Defragmenter
27
User Access Control:
Secure Desktop
• Modalità di visualizzazione in cui solo la
finestra dello UAC è evidenziata e il resto
dello schermo è oscurato.
• Non è possibile l'interazione con le altre
applicazioni, al fine di evitare attacchi di
spoofing (es. keylogging).
28
Allentare le morse di
User Access Control
• L’usabilità di Vista è stata criticata a causa
“delle interferenze” di UAC.
• E’ possibile disabilitare del tutto UAC.
• Su alcune versioni di Vista (Enterprise,
Business, Ultimate), è possibile abilitare
UAC solo per specifiche azioni.
29
Alternative a UAC su altri S.O.
• su (e varianti UI-based: gksu, kdesu)
– permette di eseguire un’applicazione (da terminale) con le
credenziali di un altro utente (tipicamente root)
– richiede la password dell’utente privilegiato
• sudo (e varianti UI-based: gksudo, kdesudo)
– permette
di
eseguire
applicazioni
(preconfigurate
dall’amministratore) con privilegi elevati
– richiede la stessa pwd dell’utente regolare
– abilita i privilegi fino alla scadenza di un timeout (5m)
• su e sudo possono ricevere spoofing
• gksudo blocca ogni interferenza con la dialog di conferma
(come fa UAC di Vista)
30
Riferimenti
• http://windows.microsoft.com/itIT/windows-vista/User-Account-ControlOverview
• UAC su Wikipedia
• http://linux.die.net/man/
pagine man di su e sudo
31