BITS - tornando sull’argomento
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.



Alfonso Maruccia aka The King of GnG
Maggio 19th, 2007 at 13:03
Interessante, come sempre, il punto di vista di Microsoft: questo è il design di Windows, e funziona bene. Il fatto che sia stato exploitato non cambia di una virgola i piani della corporation, che evidentemente confida molto nella “comodità” di un componente come BITS per patchare il sistema…
Come al solito, la responsabilità è scaricata sugli utenti. Se si beccano il malware che “apre” indebitamente BITS ad azioni esterne al normale funzionamento del sistema sono cacchi loro, mica di Microsoft. Normale che sia così, in fondo, dal loro punto di Vista. Dal mio, non posso che notare ancora una volta che l’interesse della società, l’unico interesse, è vendere software, non certo pensare alle necessità dell’utente.
Da parte mia, nel mio piccolo, consiglierò HIPS, antivirus motorizzati in maniera adeguata (i russi li fanno rombanti, in questo caso, i motori
) e usare il cervello, soprattutto. Il problema, come sempre, è dove questo cervello - o conoscenza delle problematiche di sicurezza che dir si voglia - non c’è….
luc
Maggio 21st, 2007 at 15:11
Il tuo articolo è ridicolo per diverse ragioni:
1) scaricare file non vuol dire mandarli in esecuzione
2) un malware può scaricare file aprendo connessioni in uscita, non serve che usi BITS.
3) se non hai i privilegi di sistema, non puoi in alcun modo iniettare codice in svchost
4) un sistema già compromesso è già compromesso, quindi tutto quello che dici è FUD
5) anche sotto linux un malware in un sistema già compromesso può modificare il “servizio” che si occupa di aggiornare Ubuntu 7.0.4 e quindi scaricare malware nello stesso modo
Marco
Maggio 21st, 2007 at 15:52
1) e chi l’ha mai detto?
Solitamente mandarli in esecuzione é il passo successivo
2) Un malware puó certamente, ma un firewall software solitamente permette di controllare l’uscita dei files, altrimenti si puo tranquillamente mandare a benedire il controllo in outbound dei personal firewall
3) esatto, infatti se usi un account limitato non puoi, ma puoi utilizzare BITS da quello che ho potuto vedere…un modo in piu per bypassare il firewall software, visto che non puoi iniettare codice all’interno di svchost
4) questa frase lascia intendere che non hai del tutto chiara una strategia di difesa multi-layered
Peró hai chiara la parola FUD
5) non ho provato sinceramente, mi informeró, ma nessuno sta parlando di linux
se volessimo parlare di linux ci sono molti altri lidi interessanti, cosí come interessantissimi argomenti.
Grazie mille comunque per il commento
Marco
m4v3rick
Maggio 22nd, 2007 at 11:38
E’ vero marco usa il FUD. Fa terrorismo psicologico.Che mascalzone!
Comunque l’importante è che non utilizzi il Fard