Riprendo, possibilmente per fare maggiore chiarezza, l’argomento relativo al servizio BITS di Windows e alle possibili problematiche legate ad esso in ambito malware. Ne avevo già parlato in questa sede qualche giorno fa, ma ho potuto leggere in giro per il web alcuni commenti fuorvianti e che potrebbero spostare il punto focale del problema dove invece il problema non sussiste.

Come avevo già detto nell’articolo precedente, per riassumere, BITS è un servizio utilizzato per il trasferimento dati da e verso internet, sfruttando intelligentemente la banda inutilizzata per il download/upload. Questo servizio è utilizzato anche da Windows Update.
E qui arriva il primo errore in cui molti, erroneamente e frettolosamente, sono caduti: non è Windows Update in sé vulnerabile a qualcosa, non è Windows Update che può scaricare del malware. Windows Update per scaricare gli aggiornamenti dalla Microsoft utilizza il servizio BITS, consideratelo come un download manager al quale Windows Update ordina di scaricare gli aggiornamenti.

Secondo punto: non c’è nessun bug, nessuna vulnerabilità intrinseca nel codice di BITS tale che necessiti di un update urgente da parte di Microsoft onde evitare un exploit 0-day e un danno di proporzioni epocali. BITS funziona bene, anche troppo. È come è stato concettualmente applicato il problema su cui si sta riflettendo, perché potrebbe essere utilizzato per il download di malware.
Fatta chiarezza su questi due punti, mi è capitato di leggere il commento di risposta della Microsoft al problema evidenziato da Symantec e dal ricercatore Frank Boldewin. Microsoft afferma che

the attack does not come from a flaw in Windows Update but rather “relies on TrojanDownloader:Win32/Jowspry already being present on the system; it is not an attack vector for initial infection

e un altro articolo recita:

To get infected, the user still has to first download a malicious file and execute it. At that point, it doesn’t matter whether the user has Windows Update’s BITS download installed or not: the system is already compromised.

In altre parole: non è un problema perché il sistema deve già essere stato compromesso da un malware, niente di particolarmente importante.

Personalmente, ritengo sbagliato l’approccio che viene preso se si considera la questione sotto questo punto di vista.

Chiaro, il sistema deve essere stato compromesso a priori da qualche malware che sfrutta o qualche falla di sistema, o qualche falla di qualche applicativo, o qualche ingenuità dell’utente – non che siano accadimenti così rari.
In un’ottica di protezione a più layer, come avevo già messo in evidenza in questo articolo, oltre a tecniche di protezione applicate attraverso software antivirus e software che utilizzano politiche di individuazione malware attraverso firme virali, è possibile applicare software complementari che possano intercettare eventuali comportamenti dannosi attraverso un’analisi comportamentale.

Mi spiego meglio: vanno molto di moda, al momento e per vari motivi tecnici, i trojan downloader, cavalli di troia utilizzati come dropper iniziale per scaricare poi all’interno del pc altre tipologie di malware. Un esempio è l’ultimo malware che è arrivato nelle e-mail di parecchi gli italiani insieme ad una presunta accusa da parte del capitano di polizia Prisco Mazzi.

Può accadere, per svariati motivi che non mi metto ad elencare, che l’antivirus non riconosca l’infezione. Se un utente ha installato nel pc esclusivamente un software antivirus, il pc sarà rimasto infetto. Diversamente, un personal firewall si può accorgere del tentativo di un file sconosciuto di accedere ad internet e, di conseguenza, bloccarne la connessione. È quì che entra in gioco la riflessione di Elia Florio, che personalmente ritengo fondata e non un problema da sottovalutare in nessuna maniera.

Il servizio BITS può essere utilizzato da qualunque applicazione voglia scaricare qualcosa da internet, la facilità di utilizzo del componente è quasi ridicola, le API sono documentate all’interno dell’MSDN affinché chiunque voglia, possa utilizzarlo. Il servizio BITS, materiamente, si presenta sottoforma di svchost.exe. Quest’ultimo file è un file generico utilizzato da Windows per caricare determinati servizi – spiegazione semplice ed essenziale, senza perderci troppo nei meandri del file in questione.
Spesso e volentieri questo file è autorizzato di default ad uscire verso internet, perché i servizi ospitati possono aver bisogno di uscire in Internet, perché lo stesso BITS ha bisogno di uscire in Internet per il download degli aggiornamenti dal sito della Microsoft.

Ora, se un malware tentasse di iniettare il proprio codice all’interno di svchost.exe, molti firewall se ne accorgerebbero perché sta tentando qualcosa di illegale. Se un malware tenta autonomamente di connettersi ad internet, il controllo outbound del firewall se ne accorgerebbe. Se però il malware istruisce BITS per scaricare ciò che deve scaricare – un altro malware ad esempio – molti firewall sono bypassati, il loro controllo è saltato. È questo il punto focale della riflessione.

Dire che il sistema deve essere già compromesso è vero, ma ciò non toglie che sia comunque importante sapere che esiste un modo per evitare il controllo dei firewall e che un malware che abbia sfondato le difese di un software antivirus può scaricare all’interno del pc altro malware senza doversi preoccupare di un possibile blocco da parte di gran parte dei firewall.

In altre parole, mi sembra ovvio che prima di tutto sia necessario rafforzare le difese principali, bisogna evitare che il sistema venga compromesso. Se però viene compromesso? Per come è stato detto da Microsoft o dai giornali, o per come posso avere erroneamente capito io – e in caso chiedo scusa, sembrerebbe quasi che a quel punto il controllo in outbound di un eventuale firewall sia un qualcosa in più di cui si possa fare tranquillamente a meno, tanto il computer è stato compromesso.

In realtà ritengo il controllo in uscita di un personal firewall una componente fondamentale nella protezione a più layer di un sistema, per cui la notizia – non così tragica come in alcuni casi è stata dipinta – mi sembrerebbe particolarmente interessante perché significherebbe per un malware writer aver semplificato parte del lavoro, non dovendosi preoccupare del problema firewall ma solo di bypassare le difese di un software antivirus classico.