Virus e Sicurezza informatica Introduzione ai virus Fino ad alcuni anni fa, nessuno si era mai preoccupato che il proprio computer potesse essere infettato da un virus. Certo, esistevano, ma nella maggior parte dei casi se ne parlava senza troppa convinzione; gli unici che facevano attenzione a questi programmi nefasti erano coloro che scambiavano software pirata o che utilizzavano i dischetti per spostare file dal computer dell’ufficio a quello di casa. Oggi la situazione è purtroppo ben diversa: grazie alle e-mail, ad Internet e soprattutto grazie alla facilità con la quale si può creare un virus, questi pericolosi parassiti sono entrati a far parte della nostra vita di tutti i giorni. I malicious code Solitamente si tende ad utilizzare il termine virus per indicare una generica intrusione nel computer da parte di un programma; ciò non è, però, esatto, dal momento che il termine “virus” indica solo una delle categorie di programmi che rientrano sotto il nome di “malicious code” (codice maligno): si definiscono malicious code tutti quei programmi che sono stati creati per invadere un altro computer per scopi fraudolenti. Questa denominazione raggruppa quindi non solo i virus, ma anche programmi come i trojan e i worm. I soggetti che dedicano il proprio tempo a creare questi programmi, possono essere distinti in craker e script kiddies: i primi sono persone tecnicamente competenti che cercano soprattutto il brivido della sfida, i secondi, invece, sono figure con competenze scarse, ma sufficienti per consentir loro di modificare il codice di un virus già esistente o per scaricare uno di questi programmi per la creazione di virus accessibili su Internet (così è stato, ad esempio, per il famigerato Anna Kournikova). I diversi tipi di codice si sono classificati in base a come si comportano e si diffondono. All’inizio era abbastanza semplice distinguere un virus da un worm o da un Trojan, mentre ora, l’evoluzione dei sistemi operativi e la diffusione di Internet e della posta elettronica ha favorito la nascita di programmi molto pericolosi che non possono essere classificati così facilmente. I virus Un virus è un programma che, ad insaputa dell’utente, si introduce nel computer e si replica, infettando dei file. Molti virus (non tutti, per fortuna) includono anche un cosiddetto “payload”, ovvero una serie di azioni di disturbo, nocive o fastidiose, che il codice del virus esegue sui sistemi che infetta. La diffusione dei virus è legata alla copia dei file infetti. - Virus da boot sector. E’ il tipo più vecchio di virus: non infetta i singoli file, ma il settore di avvio dei dischi fissi e dei dischetti. Il settore di avvio di un disco contiene alcune procedure di sistema eseguite automaticamente ogni volta che si utilizza quel disco per avviare un computer; se il settore di avvio di un disco è infettato, il codice del virus sarà mandato in esecuzione ogni volta che si utilizza quel disco per avviare un sistema, si caricherà automaticamente nella memoria di quel sistema e si replicherà infettando tutti i dischi che saranno utilizzati su quel sistema. Se un floppy infetto è utilizzato per avviare un altro computer, anche quel computer sarà contaminato. Il primo virus che si è diffuso sui sistemi MS-DOS, nel 1986, è stato proprio un virus di boot sector, chiamato “Brain”; i suoi successori più noti furono “Stoned” (1987) e Michelangelo (1991). Stoned non eseguiva alcuna azione pericolosa e si limitava a visualizzare un fastidioso messaggio, mentre Michielangelo era distruttivo in quanto conteneva una procedura che ogni 6 marzo cercava di sovrascrivere il contenuto di tutto il disco C con dei caratteri casuali. - Virus da file. Sono anche chiamati “virus parassiti” o “da contagio”: essi, infatti, infettano e sostituiscono i file eseguibili, replicandosi ogni volta che il file infetto è mandato in esecuzione, cercando altri file da infettare e, molto spesso, eseguendo anche alcune azioni distruttive. Lo scenario più frequente di diffusione di questi virus è il seguente: un cracker crea il virus ed infetta un programma freeware o shareware che pubblica su Internet; tutti gli utenti che scaricano il programma sul proprio computer e lo mandano in esecuzione, consentono inconsapevolmente al virus di infettare alcuni dei file eseguibili e di caricarsi in memoria in modo da infettare gli altri programmi che saranno mandati in esecuzione. Ogni qual volta, poi, l’utente copia alcuni dei programmi residenti sul suo Pc (e quindi infetti) ad altri utenti, incrementa la diffusione del virus. La catena descritta va avanti almeno fino a che il virus non rilascia il proprio payload sui computer che ha infettato: solo in questo momento l’utente inizia a riscontrare tutta una serie di problemi sulla macchina. Un esempio molto noto in ambito informatico, e non solo, è Chernobil, del 1998. Oltre a diffondersi infettando gli altri file eseguibili di sistema, questo virus contiene un payload programmato per attivarsi il 26 di ogni mese, che prima sovrascrive il primo megabyte del disco fisso e poi tenta di sovrascrivere anche il BIOS del sistema: anche per i meno esperti, non è difficile comprendere come, dopo un simile trattamento, un computer sia praticamente inutilizzabile. - Virus macro. Una macro è un determinato insieme di istruzioni che permette di automatizzare l’esecuzione di una funzione di routine all’interno di un’applicazione; le macro sono componenti comuni dei modelli e dei documenti prodotti e utilizzati da alcune applicazioni di Microsoft Office, come Word ed Excel, e questo le rende un obiettivo molto allettante per gli sviluppatori di virus. Un virus macro è appunto una macro che contiene un insieme di istruzioni dannose, creata utilizzando i linguaggi di programmazione per le macro, come Visual Basic di Microsoft, e inserita all’interno di un documento o di un modello, aprendo il quale si manda in esecuzione i codice del virus macro, che per prima cosa infetta il modello di base utilizzato da tutti i documenti di quell’applicazione e quindi esegue il suo payload. La portata del payload di un virus macro non è limitata ai soli documenti dell’applicazione colpita, ma è la stessa delle azioni consentite alle funzzioni di quell’applicazione; grazie alla forte integrazione che oggi esiste tra sistemi operativi e applicazioni, poi, questi virus possono fare di tutto e possono arrivare a danneggiare anche il file di sistema. I virus macro si differenziano dai virus da file perché non colpiscono i file eseguibili, ma i file di dati. Il primo virus macro per Microsoft Word, chiamato “W.M.Concept”, è stato scoperto alla fine del 1994. Entro la fine del 1995, i virus macro per Word ed Excel si erano diffusi in tutto il mondo. All’inizio del 1999, su uno dei newsgroup di Usenet un utente pubblicò un messaggio che conteneva in allegato un documento Word 97. Senza saperlo, tutti gli utenti che scaricarono e aprirono l’allegato furono infettati da un nuovo tipo di virus ibrido, diventato tristemente noto come Melissa, che iniziò rapidamente a diffondersi in tutto il mondo utilizzando come vettore i sistemi di posta elettronica. Nel giro di tre giorni, furono infettati più di 100.000 computer e da allora sono apparsi centinaia di virus che nascevano come una semplice variazione di Melissa. Melissa è un ottimo esempio di virus macro, ma implementa un meccanismo di diffusione tipico dei worm in quanto riesce ad aprire Microsoft Outlook e ad inviarsi automaticcamente a tutti gli indirizzi contenuti nella rubrica. I worm Un worm è un programma dotato di un proprio payload, che si replica e si diffonde senza infettare altri file, propagandosi attraverso le connessioni di rete, le e-mail e altri meccanismi di Internet. Molti worm si possono diffondere anche senza l’intervento dell’uomo. - Script worm Sono creati utilizzando un linguaggio di scripting, come per esempio VBScript. Il propagarsi di questo tipo di worm ha inizio, normalmente, da un allegato ricevuto per posta elettronica: aprendolo, l’utente attiva lo script ed infetta il computer. Lo script sovrascrive tutti i file con una certa estensione (ad esempio, .jpg, .vbs, .mp3) e si duplica su un file che gli permetta di essere eseguito automaticamente a ogni riavvio del sistema. Oltre ad eseguire l’eventuale payload, il worm avvia Microsoft Outlook e si trasmette automaticamente come allegato email a tutti gli indirizzi contenuti nella rubrica. - Worm Internet Si diffondono attraverso i messaggi di posta elettronica, proprio come gli script worm, ma in più riescono ad autoattivarsi e a diffondersi sfruttando le falle di sicurezza dei sistemi operativi, delle reti e di Internet. In questo modo, si possono diffondere senza che nessuno li debba attivare. Trojan In perfetta analogia con il loro precedente mitologico, i cavalli di Troia sono programmi dall’apparenza innocente, che nascondono intenzionalmente la loro natura maligna camuffandosi da giochi o da utilità. Diversamente dai virus , però, i Trojan non si copiano all’interno di altri file o del settore di avvio e non possiedono un meccanismo di replica e di diffusione. - Backdoor Trojan Sono programmi che modificano la connessione ad Internet o alla rete del computer sul quale sono installati e consentono ad un cracker di accedere al sistema per caricare altri programmi ancor più pericolosi. - RAT (Remote administration Trojan) Sono una particolare categoria di backdoor Trojan, dai quali si differenziano per la loro capacità di fornire ai cracker il completo controllo di un computer, permettendo loro di effettuare quasi tutte le operazioni possibili. Un buon esempio di questi programmi è Subseven che utilizza la posta elettronica o i canali IRC per comunicare al cracker le coordinate del computer permettendogli di accedere a più di cento funzioni amministrative. Nella maggior parte dei casi, i cracker usano le macchine infettate dai loro Trojan come trampolino di lancio per infettare o attaccare altre macchine, catturare password e altri dati e avviare attacchi DoS (Denial of Service), che tentano di soprafare un particolare server attraverso il ripetuto invio di una gran quantità di richieste errate da parte di più sistemi.