I virus

Più o meno a tutti è chiara l’idea di cosa siano i virus informatici, ma pochi sanno come realmente funzionano e come sono fatti.

Lo scopo primario di un virus è solitamente la “self-replication” che, esattamente come i virus degli esseri umani, causa la propagazione all’interno dell’entità infetta e verso l’esterno nel tentativo di diffondersi e infettare altre entità. Nel fare questo i virus informatici possono fare anche di più. Possono danneggiare l’entità infetta volontariamente, non solo per esigenze di sopravvivenza come i virus che colpiscono gli esseri viventi. I virus vengono catalogati in categorie in base alla tipologia di infezione.

Virus polimorfi

Mutano quando infettano un PC. Questi virus sono senz’altro insidiosi in quanto il loro codice macchina muta ad ogni infezione. Questo, ovviamente, nel tentativo di ingannare gli antivirus. Esistono presino dei toolkit che consentono a chi non abbia alcuna competenza nella programmazione di virus di creare da zero un nuovissimo virus polimorfo. Fortunatamente gli attuali antivirus hanno tecniche sufficientemente sofisticate da essere in grado di riconoscere comunque immediatamente un virus costruito con uno di questi toolkit.

Stealth virus

Tentano di rendersi invisibili agli antivirus. Per definizione un virus deve modificare qualcosa nel sistema per rendersi attivo. Che sia l’MBR (Master Boot Record), la partition table, uno o più file di sistema non è importante. Il concetto di fondo non cambia il virus deve modificare qualcosa. Ma nel momento in cui modifica qualcosa per auto attivarsi il virus commette una azione solitamente monitorata dagli antivirus e quindi espone se stesso all’identificazione. Per evitare questo gli stealth virus prendono il controllo delle funzioni di sistema che, ad esempio, leggono e scrivono i file. Quando l’antivirus andrà a leggere determinati file di sistema che sono stati modificati dal virus, il virus stesso risponderà con il vecchio contenuto del file tentando di ingannare l’antivirus che crederà che il file non sia stato modificato.

Fast Infectors

Tentano di infettare milioni di PC nel più breve tempo possibile, contano quindi sulla rapidità della diffusione. Sapendo che solitamente nel giro di poche ore dalla scoperta le software house produttrici di antivirus sono in grado di rilasciare gli update necessari per debellare il virus, il tentativo è quello di infettare il maggior numero di vittime nel più breve tempo possibile tutti i più importanti e famosi virus dell’ultima generazione sono infatti fatti così. Non è un caso che al TG si sentano notizie del tipo: “Nuovo virus infetta 40 milioni di PC in due ore”. Poche ore dopo gli antivirus vengono aggiornati ed il virus viene sconfitto (in buona parte) ma i danni più gravi sono stati provocati proprio nelle poche ore scoperte.

Armored Virus

Virus difficili da disassemblare. I ricercatori che lavorano per le case produttrici di antivirus devono disassemblare i virus per capire come operano e predisporre quindi un update da distribuire per identificare il nuovo virus. Il tentativo degli armored virus è quello di rendere difficile il disassembling e la comprensione del codice disassemblato. Le tecniche di oggi sono così sofisticate che comunque gli armored virus sono ormai quasi inutili. L’utlimo armored virus di una certa importanza che si ricordi è “Whale” ed è ormai di qualche anno fa.

Virus "tappabuchi"

Tentano di infettare un file senza alterarne le dimensioni. Un file eseguibile contiene svariate parti “sostituibili” senza comprometterne l’eseguibilità. Sono fatti così per migliorare la velocità di caricamento ed esecuzione. Il virus tappabuchi sostituirà un pezzo del codice dell’eseguibile con il corpo del virus stesso mantenendo inalterata la dimensione del file. Ma sebbene la dimensioni non cambi, cambia sicuramente l’MD5 del file in questione (un Host Intrusion Detection System riuscirebbe facilmente a rilevare il fatto). Data la difficoltà di programmazione e la relativa facilità di identificazione (a causa del diverso valore di hash del file) questo tipo di virus è molto raro.

Tunneling virus

Tentano di sfruttare dei tunnel attraverso gli antivirus ed i personal firewall. Per intercettare l’azione dei virus gli antivirus devono monitorare l’attività del PC a basso livello. Per far questo installano degli hook alla catena di notifica degli interrupt tentando di intercettarli prima degli altri programmi. I tunneling virus fanno la stessa cosa. Tentano di installare degli hook al livello più basso possibile, ossia al di sotto dell’azione dell’antivirus. La catena degli interrupt viene rotta sempre dall’applicazione che gestisce l’interrupt specifico. Quindi se è il virus stesso a gestire un certo interrupt questo non verrà propagato ai livello superiori e quindi l’antivirus non verrà nemmeno notificato riguardo a cosa sta accadendo nel sistema. Per questo motivo in Windows vista, gli antivirus.

Virus Camuffati

Tentano di apparire agli antivirus come programmi legittimi. È un tipo di virus molto vecchio e per via di come funzionano i moderni antivirus oggi difficilmente sarebbe possibile scrivere un virus camuffato che funzioni davvero. In passato gli antivirus controllavano solo le segnature dei virus, cioè sequenze di byte sempre presenti nel corpo dei virus. Questo però generava dei falsi positivi, ossia ogni tanto quelle sequenze di byte venivano trovate all’interno di programmi non infetti. In quei casi venivano ignorate. Ecco perché i virus tentavano di camuffarsi. Non per non essere identificati ma per essere scambiati per un falso positivo e quindi ignorati. Le moderne tecniche antivirus non si limitano a controllare le segnature ma effettuano check molto più sofisticati rendendo praticamente impossibile il diffondersi di virus camuffati in questo modo.

Ma come infettano i virus oggi? Una ricerca di CkNow ha dimostrato come negli ultimi tempi la robustezza e la sempre crescente qualità dei sistemi antivirus abbia reso terribilmente difficile ingannare questi strumenti di difesa. Risultato: è diventato più facile ingannare gli esseri umani che gli antivirus. Ecco che quindi si comincia a parlare di social engineering applicato alla diffusione dei virus.

Si può quindi concludere che le due grandi strade che negli ultimi anni seguono i virus-makers per rendere più immediata ed efficace l'infezione sono sempre due:

Fonte: Appunti del corso universitario: "Sistemi Operativi Sicuri", Paolo Bettini