Ho avuto modo di leggere un interessantissimo post scritto nel blog di Joanna Rutkowska. Per chi non la conoscesse, è una ricercatrice nel campo della sicurezza informatica molto conosciuta nel settore per le sue ricerche riguardanti la sicurezza, specialmente nel campo di rootkit e stealth malware.

Il suo ultimo post parla di come, secondo la sua opinione, le società di sicurezza – specialmente le società di antivirus – stiano praticamente buttando via soldi e denaro sviluppando prodotti antivirus quando ci sarebbero soluzioni meno costose e molto più efficaci, ad esempio l’utilizzo di firme digitali potrebbe fermare il diffondersi dei file infector virus. Detto in parole semplici, una firma digitale ci garantirebbe l’integrità del file, cioè che il file non è stato alterato. In altre parole, nessun file infector ha infettato il codice dell’eseguibile.

Anche se potrebbe essere vero, sinceramente non me la sento di dire che le società di antivirus abbiano buttato via i propri soldi e il proprio tempo sviluppando tecnologie inutili.

Proviamo ad immaginare un mondo che utilizzi le firme digitali per garantire l’integrità dei file che vengono eseguiti nel nostro pc.

Al momento possiamo contare miliardi di differenti software nel mondo, sviluppati dalle più grandi società fino al programmatore singolo che occupa le proprie ore della notte scrivendo qualche progetto. La prima cosa che dovremmo chiederci dovrebbe essere: è necessario che i file siano firmati? Se no, di conseguenza moltissimi singoli sviluppatori o piccole società potrebbero valutare l’ipotesi di non firmare i propri software, potrebbero non voler spendere il proprio tempo e magari anche soldi (si, probabilmente le firme digitali dovrebbero essere pagate – come lo sono i certificati per i driver di Windows Vista 64 bit).

Moltissimi sviluppatori rilasciano centinaia di aggiornamenti per i propri software, o versioni beta, anche ogni giorno. Di conseguenza necessiterebbero di firmarli ogni volta.

Ora la questione sta in questi termini: che succede se il software non è firmato? Viene eseguito lo stesso (magari con un avviso) o viene bloccato dal sistema operativo?

Parliamo della prima opzione: possono essere eseguiti comunque. Di conseguenza il problema software antivirus ritorna: abbiamo bisogno di uno scanner.

Joanna ha affermato che noi dovremmo pensare agli utenti non come “stupidi“. Secondo me non è propriamente corretto. Gli utenti non sono stupidi, semplicemente non hanno né voglia né tempo da perdere per mettersi a studiare tutte le problematiche di sicurezza come facciamo noi. Hanno già tanti problemi ogni giorno, vogliono che sia qualcun altro a preoccuparsi di problematiche di sicurezza.

Se hanno bisogno di eseguire un software che non è firmato per qualunque motivo, vogliono poterlo lanciare essendo sicuri che quel software non danneggerà il sistema, o perlomeno cercare di ridurre i rischi a cui potrebbero andare incontro. Sì, come dice Joanna un software antivirus non dà la certezza al 100% che un file sia innocuo, ma almeno è un controllo aggiuntivo.

Parliamo ora della seconda opzione: il file non firmato viene bloccato dal sistema operativo. Chi gestirà questi certificati? Chi ci assicura che i certificati vengono gestiti nella giusta maniera? Chi ci assicura che non possono essere ottenuti anche dai malware writer? Joanna lo sa bene, lei stessa ha mostrato come acquistare un certificato per firmare i propri driver per Windows Vista. Ok, sono necessari tutti i dati personali per comprare il certificato ma, semplicemente, a chi importa? Se non c’è nessun software che controlla cosa possano fare quei file, cosa contengono, nessuno si accorgerà mai se contengono malware, o anche se siano parzialmente malevoli. Un utente potrebbe pensare: “Perché deve essere nocivo? Sono sicuro, è firmato digitalmente!”.

Ma andiamo avanti: chi assicura che le modalità di controllo delle firme digitali siano a prova di bug? E, se ci sono falle – come ci sono nella quasi totalità dei software – inoltre chi assicura che i server utilizzati da questa fantomatica società che gestisce le licenze siano così sicuri da poter respingere qualunque attacco di pirati informatici, impedendo che quest’ultimi possano alterare il codice prima che venga certificato? Chi assicura che qualcuno non riesca a penetrare i server della società che produce il prodotto alterando qualche sorgente prima che vengano mandati via per la certificazione?

Basti ripensare all’attacco in cui pirati informatici penetrarono i server del progetto GNU/Linux Debian. Si tratta totalmente di fantasia? Sì, forse. Però quando lanciamo un file firmato digitalmente dobbiamo essere sicuri di tutti i punti sopra elencati. In altre parole si crede ciecamente e totalmente al software che arriva al nostro pc, così come arriva. Crediamo totalmente in qualcuno esterno che ci dice: “questo software è sicuro”. Almeno con un software antivirus è possibile fare ulteriori controlli sul contenuto del file, indipendentemente se quest’ultimo è firmato o meno. Controlliamo il file così com’è. Come ho detto prima, non è possibile garantire la sicurezza al 100%, ma almeno facciamo qualche controllo in piu piuttosto di credere ad occhi chiusi.

Ciò che è vero è che con un semplice software antivirus, anche con le tecnologie euristiche attuali, rimane sempre una falla nell’identificazione dei nuovi malware. Noi siamo i primi a dirlo, promuovendo un approccio al problema rivoluzionario ed innovativo. Quello che però non è vero è che le società abbiano speso soldi inutilmente e perso il proprio tempo sviluppando qualcosa di inutile invece di focalizzarsi su qualcosa che potesse risolvere il problema in maniera semplice ed efficace.

Sicuramente le firme digitali sarebbero un modo per incrementare la sicurezza del sistema, ma nessuno nel mondo della sicurezza informatica è così ingenuo da non aver pensato a questa soluzione. Semplicemente ci sono state motivazioni tecniche e storiche che hanno motivato lo sviluppo di scanner antivirus.

Microsoft con Windows Vista 64 bit ha tentato di utilizzare le firme digitali per evitare che driver sconosciuti possano essere caricati, così eventuali rootkit kernel mode non possono compromettere il sistema. Non è stata forse Joanna tra i primi ricercatori a mostrare come tentare di bypassare il controllo della Microsoft?

Prevx Blog