Estrazione di funzionalità da file PE. Apprendimento automatico e malware

1

Le funzionalità che possono essere estratte da un file PE (alcune informazioni da intestazioni, nomi di sezione, stringhe, importazione, sezioni di esportazione, ecc.) sono sufficienti per utilizzarle per addestrare determinati algoritmi di apprendimento automatico per rilevare se il file sospetto è dannoso o non?

Ho incontrato due opinioni diverse:

La prima opzione afferma che queste funzionalità sono sufficienti per creare un sistema di rilevamento di base. Inoltre, per aumentare l'efficienza e la precisione, è possibile includere gli attributi comportamentali (ad esempio le chiamate API).

Tuttavia, la seconda opinione afferma che questi attributi sono inutili in molti casi perché molte di queste funzionalità sono ridondanti e le funzionalità ridondanti possono danneggiare la qualità di un modello.

Mi chiedo anche se sia possibile rilevare se un campione di malware è simile a un altro campione e implica che uno è una variante dell'altro? Questo tipo di informazioni è utile nel rilevamento di malware?

    
posta bielu000 29.08.2018 - 20:03
fonte

3 risposte

0

la mia esperienza con i sistemi di machine learning che rileva "cose" nel tuo caso è malware, è che questi sistemi devono disporre di molti campioni per imparare cos'è il malware da ciò che non lo è. Generano molti falsi positivi dalla mia esperienza e alla fine è meglio seguire un approccio ibrido, cioè eseguire la scansione di alcune parti dell'eseguibile, applicare alcune regole, quindi applicare un altro tipo di euristica e quindi l'apprendimento automatico, ciò dipende da ciascuna caso.

Ad esempio se qualcuno ti invia un'email con un eseguibile, qual è la probabilità che l'eseguibile sia malware? Prenderai il rischio del tuo sistema? fare una scansione regolare o un sha256sum e verificare con terze parti? o applicare una strategia di apprendimento automatico

    
risposta data 29.08.2018 - 21:17
fonte
0

Se incontri un malware compresso, le funzionalità estraibili dal file PE e le sue funzioni di libreria importate probabilmente non ti porteranno da nessuna parte. Questo perché ci saranno solo piccole chiamate di funzioni importate e le informazioni di intestazione possono essere modificate per fuorviare il tuo modello appreso di malware.

Si noti che il fatto che un eseguibile sia impacchettato non è sufficiente per determinarlo come malware, come anche i programmi normali possono farlo.

    
risposta data 29.08.2018 - 21:17
fonte
0

Molti degli attributi delle intestazioni possono essere modificati senza influire sull'eseguibile e persino su quelli che lo influenzano, possono essere modificati cambiando le parti dell'eseguibile su cui incidono (sizeofimage come esempio), quindi mentre lo si ottiene i dati possono essere utili per rilevare alcune cose, qualsiasi coder decente renderà il loro pe immune a questo.

Un'altra cosa sono le firme, in grado di rilevare malware di base nudi, ma tutto ciò che è crittografato li aggirerà facilmente.

La soluzione migliore è rilevare l'entropia delle sezioni e le caratteristiche. Alta entropia significa che è probabile che l'eseguibile sia imballato / crittografato. La presenza di una sezione con caratteristiche di lettura, scrittura ed esecuzione significa quasi sempre che l'eseguibile è impacchettato.

Ma indovina un po ', ci sono modi per diminuire l'entropia quanto vuoi, e anche di impacchettare un pe senza una sezione di lettura / scrittura / esecuzione.

Più aggressiva è la tua euristica, più probabile che tu debba rilevare malware, ma anche molti falsi positivi (non tutti i file eseguibili sono malware).

    
risposta data 23.09.2018 - 16:28
fonte

Leggi altre domande sui tag