Passa al contenuto principale
Technology

Emulator

L'emulatore esegue in un ambiente virtuale sicuro, una ad una, le istruzioni relative all'oggetto; raccoglie gli artefatti e li inoltra all'analisi euristica, al fine di rilevare le caratteristiche che evidenziano il comportamento dannoso di un file binario o di uno script.

La tecnologia di emulazione del codice

Nell'ambito delle procedure adottate per il rilevamento del malware occupa un posto di primaria importanza il metodo che prevede l'emulazione del codice: consente in effetti di analizzare il comportamento di un file emulando l'esecuzione dello stesso in un ambiente virtuale (emulato). In generale, questo approccio è simile a quello utilizzato per il rilevamento del malware all'interno di una sandbox; tuttavia, l'emulazione e il sandboxing completo differiscono nei dettagli a livello di progettazione e relativa applicazione. Vedremo, qui di seguito, quali sono le effettive differenze.

Una sandbox dotata di funzionalità complete è un metodo "pesante", a differenza dell'emulatore. Emula l'intero ambiente ed esegue un campione scansionato in una macchina virtuale provvista di un sistema operativo (OS) reale e relative applicazioni installate. Tale metodo richiede quindi un'elevata potenza computazionale e pone limitazioni di compatibilità a livello di sistema host. Per questo motivo, la sandbox si rivela più efficace nelle soluzioni centralizzate on-premise e in-cloud. Non è adatta per il rilevamento del malware sugli host degli utenti e su altri computer ordinari.

Un emulatore emula esclusivamente l'esecuzione del sample stesso. Crea in modo temporaneo oggetti con cui interagisce il sample: le password prese di mira dal malware, gli antivirus la cui memoria quest'ultimo tenterà di bloccare, il registro di sistema e via dicendo. Questi oggetti non sono parti reali del sistema operativo o del software: si tratta di imitazioni realizzate dall'emulatore. L'efficace controllo esercitato sull'ambiente emulato consente all'emulatore di compiere veloci salti in avanti nel tempo: in tal modo si riesce a prevedere il comportamento futuro dei file, impedendo quindi al malware di attivarsi in ritardo.

Un emulatore determina le principali caratteristiche di comportamento del file sottoposto a scansione, utilizzando una quantità di risorse nettamente inferiore rispetto alla sandbox; si rivela inoltre particolarmente adatto per gli host utente. L'esecuzione dei file sconosciuti viene di solito posticipata sino al momento in cui gli stessi vengono scansionati tramite un emulatore. Il fattore emulazione non rappresenta di certo un elemento di novità: alcuni emulatori sono in ogni caso molto avanzati e svolgono un ruolo di primaria importanza a livello di rilevamento del malware. Gli emulatori attualmente in uso si avvalgono di sofisticati servizi di reputazione cloud-based; inoltre, la loro efficacia viene ulteriormente potenziata dal machine learning.

L'emulatore Kaspersky

Le nostre soluzioni comprendono un emulatore in qualità di elemento della linea di difesa implementata nell'ambito di un approccio multilivello alla protezione. Il componente qui analizzato è in grado di emulare file binari e script: l'importanza di questi ultimi sta crescendo di pari passo con la sempre maggiore diffusione degli attacchi fileless basati su script.

Il processo di emulazione è ottimizzato per risorse del computer limitate. Rispetto alla sandbox richiede, per oggetto, una quantità di RAM nettamente inferiore; inoltre, è in grado di analizzare contemporaneamente numerosi oggetti, senza peraltro esercitare un carico significativo sul sistema. Grazie all'accelerazione hardware, l'emulazione utilizza in modo sicuro il processore per accelerare la scansione di circa 20 volte.

Le nostre soluzioni avviano la scansione in modalità emulazione "on-demand" nel momento in cui l'utente richiede una scansione del disco, oppure "on-access" quando un oggetto viene scansionato in maniera automatica prima di accedere allo stesso o prima di lanciarne l'esecuzione. L'attività di emulazione può iniziare in parallelo con altri metodi di rilevamento, come le richieste in-the-cloud relative alla reputazione del processo.

Gli emulatori sono implementati nelle soluzioni endpoint di Kaspersky, nelle soluzioni a livello di gateway (ad esempio server proxy e mail server) e nella protezione dell'ambiente di virtualizzazione. Nell'infrastruttura Kaspersky, potenti emulatori fanno parte della pipeline di classificazione degli oggetti.

Task dell'emulatore:

  • Emula l'esecuzione di qualsiasi file eseguibile (PE): *.exe, *.dll, *.sys e altri ancora in ambiente Windows.
  • Elabora i tipi di script JavaScript, VBScript e AutoIT, script standalone (scaricati in veste di file).
  • Esegue la scansione degli script ricevuti tramite un link web (su una pagina web, un'e-mail, un messaggio), incorporati in file PDF e MS Office.

Aggiornamenti

La tecnologia qui descritta viene implementata con un core di emulazione e record di rilevamento, che analizzano i dati forniti dal core. I record vengono creati in Kaspersky; gli aggiornamenti, da parte loro, vengono scaricati ogni ora dalle soluzioni di sicurezza. Un record di rilevamento è in grado di individuare numerosi sample di malware di natura diversa, con contenuto binario diverso, ma dal comportamento simile.

Flusso operativo nel rilevamento del malware

  1. L'emulatore riceve una richiesta di scansione di un oggetto (un file eseguibile o uno script) da un altro componente di una soluzione di sicurezza.
  2. L'emulatore esegue in un ambiente virtuale sicuro, una ad una, le istruzioni relative all'oggetto, a partire dal punto di ingresso di quest'ultimo. Se un'istruzione interagisce con l'ambiente (sistema operativo, registro, altri file, web, memoria, ecc.), l'emulatore imita la risposta fornita da questi oggetti.
  3. L'emulatore raccoglie gli artefatti e li inoltra all'analisi euristica. L'analizzatore invia un verdetto, elaborato sulla base di tali artefatti, al componente che ha richiesto l'analisi.
  4. Il processo di emulazione si interrompe quando è presente un numero sufficiente di artefatti per eseguire il rilevamento del malware, oppure a seguito di un timeout.

Artefatti raccolti dall'emulatore

Per i file eseguibili (binari):

  • Log chiamate API
  • Tutte le modifiche intervenute a livello di file system e registro di sistema
  • Dump di memoria

Per gli script:

  • Argomenti e valori di ritorno relativi alle operazioni su stringhe
  • Chiamate di funzioni embedded e funzioni fornite dall'ambiente
  • Eventi
  • Inserimenti nel file system e negli script figlio

Funzionalità antievasione

Gli autori dei malware avanzati dotano i loro programmi nocivi di funzionalità volte a impedire il rilevamento in fase di emulazione. Il nostro emulatore monitora e contrasta queste nuove tecniche di evasione. Esempi:

Evasione A: Prima della relativa esecuzione, il malware deve essere decompresso. Questo richiede molto tempo in termini computazionali, di solito sufficiente per eludere il rilevamento tramite timeout dell'emulazione.

Antievasione A: L'emulatore riconosce i file compressi e regola di conseguenza la profondità di emulazione. L'accelerazione hardware fornisce all'emulatore una potenza sufficiente per effettuare la procedura di decompressione.

Evasione B: Prima di eseguire il proprio payload nocivo, il malware può accedere a risorse web o a parametri dell'ambiente in cui opera (ad es. nome del computer, dimensioni del disco) e verificare se questi elementi sono disponibili e rilevanti. Non ottenendo risposte significative, il malware non eseguirà il payload dannoso di cui è dotato ed eluderà il rilevamento.

Antievasione B: In base alle richieste formulate dal file sottoposto a scansione, l'emulatore imita le informazioni relative all'ambiente e alle risorse di sistema, rendendole il più rilevanti possibile. Ad esempio, randomizza i nomi dei computer, in modo tale che il malware non possa utilizzare specifici nomi di computer in qualità di segnale rivelatore dell'esecuzione del processo di emulazione

Related Products

Tecnologie correlate

Sandbox

Le nostre sandbox si avvalgono di numerose tecniche antievasione, durante l'esecuzione on-premise, nel cloud e nell'infrastruttura di analisi del malware di Kaspersky; le loro performance in termini di rilevamento sono supportate dalla sofisticata Threat Intelligence del Kaspersky Security Network.

Protezione basata sul comportamento delle minacce

Il motore di rilevamento del comportamento, provvisto di appositi modelli basati su ML, è in grado di individuare schemi dannosi sconosciuti sin dalle prime fasi della loro esecuzione, mentre il meccanismo di protezione della memoria e il remediation engine impediscono la compromissione e la perdita dei dati degli utenti.

Approccio multilivello alla sicurezza

La True Cybersecurity si deve basare sull'effettiva sinergia di varie tecniche di protezione: dai classici record AV al rilevamento basato sui comportamenti, mediante l'impiego di avanzati modelli di deep learning.

ARTICLE

A Modern Hypervisor as a Basis for a Sandbox


ARTICLE

“The evolution of technologies used to...

Risultati di benchmark indipendenti