polito.it
Politecnico di Torino (logo)

Tecniche di Binary Code Similarity e Binary Diffing per la classificazione di malware

Daniele Bevilacqua

Tecniche di Binary Code Similarity e Binary Diffing per la classificazione di malware.

Rel. Giovanni Squillero, Andrea Marcelli. Politecnico di Torino, Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering), 2019

[img]
Preview
PDF (Tesi_di_laurea) - Tesi
Licenza: Creative Commons Attribution Non-commercial No Derivatives.

Download (6MB) | Preview
Abstract:

La tesi affronta il problema della valutazione della similarità tra binari (Binary Code Similarity Detection), che consiste nel determinare, a partire dal codice compilato, se due funzioni sono simili tra loro. Il problema trova diverse applicazioni pratiche, tra cui l’analisi dei malware, la ricerca di nuove vulnerabilità e dispute sul copyright. Lo stato dell’arte è rappresentato da modelli basati su “embeddings”, una tecnica di machine learning che mappa ciascuna porzione di codice in un vettore all’interno di uno spazio n-dimensionale, permettendo di catturare la somiglianza sintattica e semantica tra binari. Le tecniche esistenti differiscono nel pre-processamento utilizzato per estrarre gli embeddings, come l’estrazione del Control Flow Graph (CFG), o l’utilizzo di attributi statistici e strutturali dei programmi. Mentre altri modelli basano il loro funzionamento sugli algoritmi di Locality Sensitive Hashing (LSH) applicati ai frammenti di codice che compongono il binario. In tali modelli la somiglianza tra due funzioni è data dalla similarità dei loro hash. In questo caso vengo applicati degli algoritmi di hash che garantiscono maggiore probabilità di collisione per oggetti vicini tra di loro. Il lavoro presentato rappresenta una valutazione dello stato dell’arte delle tecniche di Binary Code Similarity applicate alla classificazione dei malware. In una prima fase è stato creato il dataset contenete 1000 sample suddivisi equamente tra malware e goodware. I malware presi in considerazione appartengono a 16 famiglie diverse, raggruppate in tre macro categorie (Banking Trojan, Cryptojacking e Ransomware). I risultati mostrano che gli approcci presi in considerazione, sono in grado di classificare un gran numero di sample, attribuendogli la famiglia malware corretta. In particolare si è stimato che il livello di precisione varia dal 56% al 83% in base alla tipologia di algoritmo utilizzato. Inoltre sono stati messi a confronto i vari approcci anche in termini di tempi di esecuzione e di scalabilità. Considerando la mole di nuovi sample raccolti giornalmente dalle industrie AV, gli algoritmi presentati rappresentano un ottimo mezzo di supporto agli analisti, nonostante non sostituiscano la necessità di un’attenta analisi da parte di esperti al fine di verificare i risultati restituiti dai motori di machine learning.

Relatori: Giovanni Squillero, Andrea Marcelli
Anno accademico: 2018/19
Tipo di pubblicazione: Elettronica
Numero di pagine: 73
Soggetti:
Corso di laurea: Corso di laurea magistrale in Ingegneria Informatica (Computer Engineering)
Classe di laurea: Nuovo ordinamento > Laurea magistrale > LM-32 - INGEGNERIA INFORMATICA
Aziende collaboratrici: NON SPECIFICATO
URI: http://webthesis.biblio.polito.it/id/eprint/10900
Modifica (riservato agli operatori) Modifica (riservato agli operatori)