Antivirus bacati da 14 anni…

Ebbene sì esiste una vulnerabilità nota e “storica” grazie alla quale un malware potrebbe bypassare la scansione in tempo reale di un antivirus e prendere il controllo del sistema.

La cosa va però inquadrata nella giusta prospettiva:

  1. Gli Antivirus interessati dal problema sono quelli che sfruttano l’hooking nel kernel di Windows attraverso la System Service Descriptor Table (SSDT) per monitorare il software in esecuzione. Utilizzando la tecnica descritta da Matousec sarebbe possibile sfruttare i ridottissimi tempi di risposta relativi alle operazioni di switch tra i processi per superare la protezione dell’antivirus e compiere un’azione malevola (installare un driver di periferica fittizio, modificare chiavi di registry e copiare dll in directory di sistema, etc).
    Il tecnica usata da Matousec consiste nel verificare in quale istante il processo del software antivirus termina il controllo della chiamata per poi intervenire sul nome del driver da caricare, sui puntatori o sull’handle. Per le prove Matousec ha sviluppato un framework chiamato KHOBE (Kernel HOok Bypassing Engine) informando i vari vendor circa i risultati dei test.
  2. Il bug sfruttato da Matousec è noto col nome di TOCTTOU (time-of-check-to-time-of-use bug) già da 14 anni, ma per riuscire a sfruttarlo l’attacco occorre avere la possibilità di eseguire del codice arbitrario sul sistema, utilizzando, ad esempio, un’altra vulnerabilità oppure nel malaugurato caso in cui il codice sia eseguito all’interno di una sessione con privilegi amministrativi senza che sia attiva la UAC.
  3. Molti Antivirus basano la scansione real time sull’hooking SSDT e risultano quindi vulnerabili come si può vedere dalla lista Table of vulnerable software e non mancano nomi noti (Avast, AVG, Avira, Norton Internet Security, F-Secure Internet Security, McAfee Total Protection, Trend Micro Internet Security , Kaspersky Internet Security, Sophos Endpoint Security and Control)
  4. Sono immuni al problema gli antivirus che non utilizzano l’SSDT hooking o modifiche al Kernel, ma che utilizzano il modello di sviluppo (raccomandato) dei mini-filter driver del file system come ad esempio Microsoft Security Essentials e Forefront Client Security.
  5. Secondo McAffe la modifica dell’argomento di una chiamata richiederebbe un gran numero di tentativi che porterebbero alla comparsa di una schermata blu (BSoD) con conseguente blocco del sistema.
  6. L’intercettazione delle operazioni di context switching (ovvero del passaggio tra due processi attivi in memoria) richiede una temporizzazione estremamente precisa nell’esecuzione del payload, anche se nel caso delle CPU multi-core questo tipo di attacco si semplifica grazie al fatto che più thread possono essere eseguiti contemporaneamente su più core:
    ”If the single argument-switch attack was seemed to be a very unlikely thing to happen, the combined version seems to be a miracle. Using KHOBE, however, we have proved again that on multiprocessor hardware the combined attack can be performed again in real time, the combined attack needs only few seconds to succeed.”
  7. Inoltre molto probabilmente eventuali malware che utilizzassero tale tecnica, una volta isolati, verrebbero bloccati dai software antivirus col rilascio delle nuove firme o potrebbero essere bloccati euristicamente.

In sostanza i consigli sono sempre gli stessi:

  1. Non lavorare con privilegi amministrativi
  2. Utilizzare la UAC se il sistema la implementa (Windows Vista e successivi)
  3. Mantenere il sistema aggiornato installando le hotfix critiche e di sicurezza
  4. Utilizzare un antivirus (meglio se non basa la scansione real time sull’hooking SSDT)

Ovviamente alla luce di quanto detto i problemi possono esserci su macchine XP su cui si opera con privilegi amministrativi utilizzando un antivirus che l’hooking SSDT per eseguire la scansione real time e magari per giunta non esegue regolarmente gli aggiornamenti.