Security Advisory (2286198) [1] - si tratta di una vulnerabilità 0day molto pericolosa poiché permette l'esecuzione di codice arbitrario ed è sfruttabile sia in locale che da remoto, un attacco portato a termine utilizzando questa vulnerabilità può considerarsi piuttosto affidabile e ciò che lo rende possibile è un difetto di design della procedura di estrazione delle icone che Windows Shell (shell32.dll) associa ai file .LNK (i collegamenti). Tutte le versioni di Windows sono affette da tale problema.
La vulnerabilità può essere sfruttata sia in attacchi mirati che di massa, BlackHat e Virus Writers hanno la possibilità di impiegarla al fine di creare meccanismi di diffusione ed auto-replicazione di Worm e Backdoor, il sistema operativo viene compromesso con la semplice visualizzazione (non servono clic) di un collegamento che può essere contenuto all'interno di una memoria USB, unità locali e di rete, pagine web, e-mail ed altri documenti che supportano l'inclusione di collegamenti... le possibilità sono veramente tante.
Fino a questo momento il bug sembra essere stato impiegato quasi esclusivamente in attacchi mirati di spionaggio industriale ma, dal momento che sono già disponibili un proof of concept pubblico [2] ed un modulo per metasploit framework [3], molti sostengono che si tratti soltanto di una questione di tempo prima che questa tecnica venga adottata anche per la diffusione dei malware più comuni.
Workaround e tecniche di mitigazione in attesa di un patch ufficiale
Tecniche di mitigazione:
- Disabilitare la funzionalità AutoRun [5] (non aiuta a risolvere il problema specifico di questa vulnerabilità ma in un quadro generale è sicuramente qualcosa da mettere in pratica).
- Applicare il principio LUA ovvero ridurre i privilegi ed i diritti concessi agli utenti (anche questa tecnica non risolve il problema specifico ma permette di ridurre l'impatto di una eventuale infezione: se l'utente non dispone di permessi amministrativi risulta molto più difficile compromettere l'intero sistema).
- Bloccare il protocollo SMB in uscita verso Internet (aiuta a ridurre il rischio di infezione da remoto attraverso Internet).
Soluzioni:
- Disabilitare la visualizzazione delle icone per i collegamenti cancellando il valore "Predefinito" delle chiavi di registro "HKEY_CLASSES_ROOT\lnkfile\shellex\IconHandler" e "HKEY_CLASSES_ROOT\piffile\shellex\IconHandler", questa soluzione risolve di fatto il problema (è disponibile anche un FixIt automatico [6]) ma il risultato su Windows 7, come potete vedere nel seguente screenshot pubblicato da Chester Wisniewski [7], è a dir poco scoraggiante.
Su Windows XP invece le conseguenze sono meno disastrose, in ogni caso ho preparato un ADM che permette di abilitare e disabilitare questi due IconHandler tramite Group Policy:
CLASS MACHINE CATEGORY "CVE-2010-2568 Windows Shell LNK Vuln Workaround" POLICY "Disable lnkfile IconHandler" KEYNAME "SOFTWARE\Classes\lnkfile\shellex\IconHandler" VALUENAME "" VALUEON "" VALUEOFF "{00021401-0000-0000-C000-000000000046}" END POLICY POLICY "Disable piffile IconHandler" KEYNAME "SOFTWARE\Classes\piffile\shellex\IconHandler" VALUENAME "" VALUEON "" VALUEOFF "{00021401-0000-0000-C000-000000000046}" END POLICY END CATEGORY
- Disabilitare il servizio WebClient su tutte le macchine della LAN, questa soluzione è piuttosto semplice da implementare per mezzo di Group Policy ma serve soltanto a ridurre le possibilità di attacco da remoto mentre il sistema rimane comunque vulnerabile ad attacchi locali (ad es. propagazione dell'infezione tramite penna USB o condivisioni di rete SMB). Applicando questo workaround non sarà più possibile visualizzare le condivisioni WebDAV (Web Distributed Authoring and Versioning) ed avviare quei servizi che dipendono direttamente dal servizio WebClient.
- Didier Stevens ha dimostrato come sia possibile risolvere completamente il problema utilizzando uno strumento da lui creato (Ariad) [9], questa soluzione è però quasi impossibile da applicare in ambito aziendale.
- Chester Wisniewski [7] ha suggerito di creare una Software Restriction Policy [10] che impedisca l'esecuzione di tutti gli eseguibili memorizzati su unità diverse da "C:", questa sembra essere la migliore alternativa per l'ambito aziendale anche se sicuramente risulterà di difficile applicazione per la maggior parte degli amministratori di sistema.
- Installare Sophos Windows Shortcut Exploit Protection Tool [11], si tratta di un nuovo IconHandler fornito gratuitamente da Sophos che rileva ed impedisce il tentativo di sfruttare la vulnerabilità, una buona soluzione per gli utenti "casalinghi".