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