Automatic Reverse Engineering from Binary Code and Execution Traces

Anno
2020
Proponente Serena Ferracci - Dottorando
Sottosettore ERC del proponente del progetto
PE6_5
Componenti gruppo di ricerca
Componente Categoria
Leonardo Querzoni Tutor di riferimento
Abstract

Il progetto di ricerca proposto mira ad automatizzare il processo di reverse engineering (RE) al fine di recuperare informazioni di alto livello senza analizzare manualmente l'intero codice sorgente. Il reverse engineering è ampiamente utilizzato in cyber security per verificare che un sistema software sia privo di difetti di sicurezza o vulnerabilità: aiuta a rendere un sistema robusto, proteggendolo così da attacchi hacker e spyware. Ci sono due componenti nel reverse engineering: redocumentation e design recovery. Il componente considerato nel progetto è il design recovery, cioè l'utilizzo della deduzione o del ragionamento per comprendere appieno la funzionalità, non documentata, del prodotto.

Per facilitare il processo di analisi del software, sarebbe ideale disporre di strumenti che generino automaticamente un modello a partire dal codice sorgente. Il modello creato fornirebbe le informazioni essenziali, ma utili per l'analisi. Le informazioni ottenute saranno utilizzate per facilitare il lavoro dell'analista, ma soprattutto per determinare una classificazione del codice analizzato. L'analisi automatizzata non andrebbe a sostituire completamente la figura dell'analista, ma fungerebbe come strumento di supporto per guidare l'analisi.

In questo modo l'analista avendo un modello astratto del codice da analizzare potrà decidere quali sono le parti di codice che sono necessarie da analizzare perché risultano più interessanti secondo la classificazione proposta. Il codice sarà classificato seguendo due principali obiettivi. Per il primo obiettivo verrà effettuata una distinzione tra il codice maligno da quello non maligno. Invece per il secondo obiettivo si farà la distinzione tra codice di bassa qualità (codice soggetto a errori/bugs) e codice di alta qualità (ovvero un codice che segue le best practices di programmazioni).

ERC
PE6_11, PE6_3
Keywords:
PRIVACY E SICUREZZA, SICUREZZA INFORMATICA E PRIVACY, SICUREZZA, INFORMATICA E SISTEMI INFORMATIVI, INGEGNERIA INFORMATICA

© Università degli Studi di Roma "La Sapienza" - Piazzale Aldo Moro 5, 00185 Roma