Lenovo, software persistenti installati sfruttando Windows

Lenovo, software persistenti installati sfruttando Windows

Sfruttando una funzionalità in origine pensata per i sistemi anti-theft, Lenovo ha installato programmi di dubbia utilità e di impossibile rimozione sui suoi sistemi desktop e notebook da ottobre 2014 ad aprile 2015.

Lenovo

I sistemi operativi Windows 8 e Windows 10 incorporano una funzionalità che consente ai produttori di PC di integrare un eseguibile di Windows all’interno del firmware di sistema. Questo eseguibile potrà essere estratto durante il boot e avviato, permettendo così al produttore di installare un proprio software anche nel momento in cui un computer viene “piallato” e viene eseguita una installazione ex-novo.

Se la maggior parte degli OEM non sembra fare uso di questa funzionalità, Ars Technica ha recentemente scoperto che Lenovo l’ha invece sfruttata tra ottobre 2014 e aprile 2015 per installare un software in alcuni dei suoi sistemi desktop e notebook. Si tratta del software Lenovo Service Engine, che compie attività differenti a seconda che sia installato su un sistema desktop o su un notebook.

Nel primo caso il software raccoglie solamente alcune informazioni di base (il modello di PC, la regione geografica, la data e l’ID di sistema) e le invia ai server Lenovo solo al momento della prima connessione del sistema ad Internet. Le informazioni raccolte non dovrebbero consentire alcun tipo di identificazione dell’utente, anche se l’ID di sistema è un codice unico per ciascun dispositivo.

Quando LSE è installato su un notebook, provvede ad installare un’altra applicazione chiamata OneKey Optimizer. Si tratta di un software che pur occupandosi di alcune attività utili, come ad esempio l’aggiornamento dei driver, svolge anche altre funzioni la cui utilità è invece dubbia, come “ottimizzazione” del sistema e “pulizia” di file.

Il problema, però, è che LSE e/o OKO non sono software affidabili, avendo mostrato una serie di problemi (tra cui buffer overflow e connessioni di rete non sicure) che sono stati resi noti a Lenovo e a Microsoft negli scorsi mesi dal ricercatore di sicurezza Roel Schouwenberg. A seguito delle notifiche ricevute da Schouweberg, Lenovo ha deciso di non includere più LSE nei nuovi sistemi (i prodotti in commercio da giugno non dovrebbero più presentare il software) e ha rilasciato un aggiornamento firmware sia per notebook, sia per desktop.

Legato ad LSE, però, è stato scoperto un problema ancor più fastidioso e che riguarda inaspettatamente il sistema operativo Windows 7. In questo caso LSE pare andare a sostituire un file di sistema di Windows, autochk.exe, che esegue un controllo del disco all’avvio. Il finto autochk.exe crea servizi di sistema che riportano file su una connessione HTTP non cifrata.

Le indicazioni di Lenovo parlano della possibile sovrascrittura di file di sistema, ma non è chiaro come ciò possa avvenire su Windows 7 dal momento che la capacità di avviare eseguibili stoccati nel firmware è una caratteristica inserita solo da Windows 8 in poi e non è nemmeno chiaro per quale motivo debba sovrascrivere un file di sistema.

Lo scopo principale della funzionalità di avvio di eseguibili dal firmware è pensata principalmente per poter installare in maniera automatica le soluzioni software anti-theft. Questo tipo di software fa una serie di cose che richiedono la connettività, come ad esempio comunicare la propria posizione o consentire il blocco da remoto. Dato che è abbastanza frequente che i portatili si vedano il disco cancellato, la funzionalità è stata pensata per consentire di ristabilire il software anti-theft anche a seguito della cancellazione del disco e poter così segnalare che il sistema è stato rubato.

Non è l’unica tecnica che viene utilizzata nel settore per iniettare nel sistema operativo soluzioni anti-theft: nel caso ad esempio di una delle soluzioni anti-theft più usate, LoJack/Computrace, viene impiegata una porzione di codice BIOS che va a modificare i file di sistema Windows, incluso autochk.exe. E’ quindi possibile che anche LSE usi una tecnica simile quando si esegue l’avvio si sistemi operativi meno recenti come Windows 7.

Limitatamente ai sistemi anti-theft si tratta di una funzionalità sensata e utile che lascia a tutti gli effetti al proprietario di un sistema la decisione di determinare un adeguato livello di protezione in caso di furto. LoJack/Computrace, per esempio, è di norma presente in stato “disabilitato” e richiede un intervento dell’utente per poter essere reso operativo. Molto differente è il caso di LSE: non si tratta di un software realmente utile, mostra problemi di sicurezza e, per di più, è abilitato di default.