Le tre condizioni necessarie per l’esistenza del malware

Un sistema operativo o un’applicazione possono essere sottoposti all’attacco del malware qualora essi siano in grado di eseguire un programma non facente parte del sistema stesso o dell’applicazione stessa. Tale condizione è valida per tutti i sistemi operativi desktop di larga diffusione, per molte applicazioni utilizzate per il lavoro d’ufficio, editor di grafica, sistemi di progettazione ed altri insiemi di programmi che incorporano linguaggi script.

Sono stati scritti virus informatici, worm e programmi trojan per decine di sistemi operativi e applicazioni di vario genere. Esiste tuttavia, al tempo stesso, un gran numero di ulteriori applicazioni e sistemi operativi per i quali non è stato ancora rilevato alcun programma malware. Qual’è, allora, la ragione per cui esistono software nocivi destinati a specifici sistemi operativi, mentre per altri OS non viene di fatto individuato alcun tipo di malware?

I programmi maligni rivolti ad un determinato sistema operativo o ad una particolare applicazione compaiono, in genere, quando vengono contemporaneamente soddisfatte le tre seguenti condizioni:

  • vasta popolarità, o utilizzo particolarmente diffuso di uno specifico sistema operativo;
  • disponibilità di documentazione — il funzionamento del sistema operativo deve essere adeguatamente e sufficientemente documentato;
  • vulnerabilità del sistema — il sistema operativo deve risultare privo di protezione, oppure devono esistere vulnerabilità note relativamente alla sicurezza dell’OS e/o alle applicazioni eseguite al suo interno.

Si rivela necessaria ognuna delle condizioni qui sopra elencate; la realizzazione simultanea delle stesse risulta sufficiente affinché programmi malevoli di vario genere possano fare la loro comparsa nel sistema.

Per attirare l’attenzione di almeno un cybercriminale o un hacker, il sistema operativo deve essere popolare. In effetti, se esiste soltanto una manciata di copie del sistema, le probabilità che quest’ultimo possa essere utilizzato in maniera malevola sono pressoché nulle. Se invece lo sviluppatore del sistema operativo è riuscito ad ottenere una distribuzione di massa del proprio prodotto, è altamente probabile che hacker e virus writer cerchino, prima o poi, di utilizzare lo stesso a proprio vantaggio.

Questo ci porta a concludere che maggiore è il grado di popolarità di un sistema operativo o di un’applicazione, tanto più spesso questi ultimi potranno costituire l’oggetto di attacchi da parte di virus informatici. La pratica stessa supporta tale conclusione: il numero di programmi maligni creati per Windows, Linux e MacOS coincide, in sostanza, con le quote di mercato acquisite da tali sistemi operativi.

La disponibilità di una documentazione completa rappresenta anch’essa una condizione richiesta per l’esistenza del malware, per un motivo molto semplice: uno scrittore di virus (o, in genere, un programmatore) ha di fatto bisogno di disporre di una descrizione tecnica per sapere come utilizzare i servizi del sistema operativo e creare applicazioni eseguibili in tale sistema. A cavallo tra la fine del secolo passato e l’inizio del nuovo, ad esempio, i produttori di telefoni cellulari non svelavano tali informazioni, per cui né gli sviluppatori di software, né gli hacker avevano la possibilità di creare programmi per questi dispositivi. I telefoni dotati di supporto Java e gli smartphone sono invece provvisti di apposita documentazione riguardante le modalità di sviluppo delle applicazioni; è per tale motivo che compaiono di frequente, sulla scena del malware, programmi nocivi specificamente progettati per colpire questo genere di dispositivi.

Le vulnerabilità nel software possono essere relazionate sia alla programmazione (un particolare errore nel codice del programma che consente al malware di insinuarsi nel sistema ed assumere il controllo di quest’ultimo), sia alla logica (possibilità di penetrare all’interno del sistema mediante l’utilizzo di metodi legittimi, talvolta persino documentati). Se nel sistema operativo o nelle sue applicazioni esistono vulnerabilità note, tale sistema risulta in pratica aperto all’ingresso di programmi malevoli, indipendentemente da quanto esso sia più o meno protetto.

La protezione di un sistema operativo è rappresentata da quelle soluzioni, insite nell’architettura dello stesso, che impediscono ad un’applicazione nuova o sconosciuta di ottenere il pieno accesso – o un accesso sufficientemente ampio – ai file custoditi nel disco (incluso le altre applicazioni) ed ai servizi del sistema potenzialmente pericolosi. Una limitazione del genere, di fatto, è in grado di bloccare qualsiasi tipo di attività malevola, ma, al tempo stesso, impone significative restrizioni ai programmi abitualmente utilizzati.

Non vi sono, purtroppo, esempi di sistemi operativi o applicazioni multifunzionali open source provvisti di protezione e, al contempo, ampiamente conosciuti. La Java machine soddisfa solo parzialmente i requisiti di protezione; essa esegue le applicazioni Java in modalità sandbox, controllando rigorosamente tutte le azioni, di ogni applicazione, che si possono rivelare potenzialmente pericolose. In effetti, per molto tempo, non è comparso nessun virus o programma trojan “reale” mascherato sotto forma di applicazione Java, ad eccezione dei test virus, in pratica privi di effettive funzionalità. I programmi nocivi camuffati sotto forma di applicazioni Java si sono in pratica manifestati solo nel momento in cui sono stati scoperti dei metodi per bypassare il sistema di sicurezza integrato nella Java machine.

Possono costituire un esempio di sistemi protetti ad ampio utilizzo i sistemi operativi installati nei telefoni cellulari (non negli smartphone, e senza il supporto di programmi Java esterni). Tuttavia, in tali sistemi non possono essere installati nuovi programmi e, inoltre, non esiste alcuna documentazione su come creare nuovi programmi per essi; ciò significa che la loro funzionalità risulta seriamente limitata, non essendovi, in pratica, alcuna possibilità di espansione. L’aspetto positivo, comunque, è che in tal modo non esistono virus ad essi dedicati.

Un altro esempio di piattaforma in pratica chiusa ai virus è rappresentato da BREW. Sui telefoni mobili che fanno uso di questa piattaforma viene consentita esclusivamente l’installazione di applicazioni certificate provviste di firme criptate, e solo attraverso gli operatori di telefonia mobile. L’elaborazione delle applicazioni per BREW viene affidata a sviluppatori di software di terze parti, visto che esiste, in materia, una documentazione dettagliata. Ogni applicazione deve essere tuttavia certificata e questo rallenta inevitabilmente lo sviluppo del software, complicando, tra l’altro, i processi di business. Ne consegue che tale sistema non può acquisire un’elevata popolarità, e non può essere nemmeno caratterizzato, rispetto ai competitor, da un’ampia scelta di applicazioni disponibili.

È difficile immaginare cosa avverrebbe se i sistemi operativi desktop, quali Windows o MacOS, fossero basati sugli stessi principi. Sostanzialmente si complicherebbe (o semplicemente diverrebbe impossibile) lo sviluppo di software da parte di società indipendenti; la gamma dei servizi web si impoverirebbe, mentre i processi di business sarebbero, a loro volta, decisamente più lenti. Il mondo sarebbe, quindi, un luogo ben diverso, con minori opportunità, molto più noioso e decisamente più lento. I danni causati dagli attacchi informatici condotti mediante l’utilizzo di programmi malware possono pertanto essere considerati come una sorta di prezzo da pagare per vivere in un mondo dinamico, ricco di informazioni e caratterizzato dall’impiego di tecnologie avanzate.