Ferla, Daniele
(2019)
ROPfuscator: machine code obfuscation through Return Oriented Programming.
[Laurea magistrale], Università di Bologna, Corso di Studio in
Ingegneria informatica [LM-DM270]
Documenti full-text disponibili:
Abstract
La protezione del software da attacchi di reverse engineering, atti a violarne la proprietà intellettuale, `e diventata una priorità assoluta per le aziende produttrici di soluzioni informatiche: dilatare il tempo richiesto per ottenere informazioni cruciali sul funzionamento interno di un programma può giocare un ruolo determinante in termini di profitti generabili. Allo stato dell’arte, soluzioni per l’offuscamento di programmi sono presenti in letteratura e utilizzano un’ampia varietà di tecniche per raggiungere lo scopo.
In questo lavoro di tesi viene presentata l’implementazione di un offuscatore che impiega Return Oriented Programming (ROP) - da cui il nome -, una tecnica ampiamente utilizzata nell’ambito dell’exploit development, ma poco approfondita nel campo della software obfuscation. Vengono inoltre presentate delle innovative metodologie per aumentare l’efficacia dell’offuscamento: symbol anchoring, per referenziare ROP gadget in memoria nonostante il binario di appartenenza sia allocato in memoria in una locazione non-deterministica, e gadget generalisation, per consentire il riutilizzo di ROP gadget anche con operandi differenti.
Abstract
La protezione del software da attacchi di reverse engineering, atti a violarne la proprietà intellettuale, `e diventata una priorità assoluta per le aziende produttrici di soluzioni informatiche: dilatare il tempo richiesto per ottenere informazioni cruciali sul funzionamento interno di un programma può giocare un ruolo determinante in termini di profitti generabili. Allo stato dell’arte, soluzioni per l’offuscamento di programmi sono presenti in letteratura e utilizzano un’ampia varietà di tecniche per raggiungere lo scopo.
In questo lavoro di tesi viene presentata l’implementazione di un offuscatore che impiega Return Oriented Programming (ROP) - da cui il nome -, una tecnica ampiamente utilizzata nell’ambito dell’exploit development, ma poco approfondita nel campo della software obfuscation. Vengono inoltre presentate delle innovative metodologie per aumentare l’efficacia dell’offuscamento: symbol anchoring, per referenziare ROP gadget in memoria nonostante il binario di appartenenza sia allocato in memoria in una locazione non-deterministica, e gadget generalisation, per consentire il riutilizzo di ROP gadget anche con operandi differenti.
Tipologia del documento
Tesi di laurea
(Laurea magistrale)
Autore della tesi
Ferla, Daniele
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
obfuscation,rop,return oriented programming,llvm
Data di discussione della Tesi
14 Marzo 2019
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Ferla, Daniele
Relatore della tesi
Correlatore della tesi
Scuola
Corso di studio
Ordinamento Cds
DM270
Parole chiave
obfuscation,rop,return oriented programming,llvm
Data di discussione della Tesi
14 Marzo 2019
URI
Gestione del documento: