Dynamic analysis of programs is a methodology of fundamental importance in the cybersecurity domain, providing a way to study the behavior of applications while they are executing; this type of analysis is quite relevant for the study of malicious applications, as it allows to better understand the harmful activity of malwares and improve the resilience of a system against their attacks. Over the years, malware authors started designing methods to trick the analysis environment, making the programs pretend to be harmless by performing particular checks: these behaviors are known as evasive techniques. In the latest years, several studies proposed a systematic classification of existing evasive techniques, divided in many different categories, and also provided tools to make the analysis more stealthy and resilient to them. However, while many works focused on evasive techniques employed by malicious applications, no experimental study has been conducted to quantify their adoption in goodware. This work aims to provide a large and complete taxonomy of evasion techniques, touching both anti-debugging and anti-virtualization techniques. Based on this classification, we also developed PINvader, an analysis framework built with the help of Pin, a Dynamic Binary Instrumentation (DBI) suite by Intel; tools like this are are extremely useful, thanks to their ability to inject and execute analysis code within a process to monitor and change its activities. We employed PINvader to test more than 11,000 samples, to detect and bypass the evasive techniques implemented by Windows 64-bit benign programs. In our experiments, we aimed to identify the most common evasive techniques families and also to provide an overview of the usage of evasion in different categories of executables. The results of our study show over 17,500 detections of Timing techniques, which perform time measurements to detect slow downs and overhead due to the injection of analysis routines; we also found over 10,000 detections related to System Environment information and about 7,800 related to Exception Handling exploitation. As for the executable categories, our findings indicate that the most evasive classes are the ones regarding Virtualization, Multimedia and Hardware Drivers and Utilities, with their samples presenting, on average, about 5 different techniques.

L'analisi dinamica di programmi è una metodologia di fondamentale importanza nel dominio della sicurezza informatica, poiché fornisce un modo per studiare il comportamento di applicazioni mentre esse sono in esecuzione; questo tipo di analisi è piuttosto rilevante per lo studio di applicazioni malevole, perché consente di comprendere meglio l'attività dannosa dei malwares e migliorare la resilienza di un sistema contro i loro attacchi. Nel corso degli anni, gli autori di programmi malevoli hanno iniziato a progettare metodi per ingannare l'ambiente di analisi, facendo in modo che i programmi fingano di essere innocui eseguendo controlli specifici: questi comportamenti sono conosciuti come tecniche evasive. Negli ultimi anni, diversi studi hanno proposto una classificazione sistematica delle tecniche evasive esistenti, suddivise in molte categorie differenti tra loro, e hanno anche fornito strumenti per rendere l'analisi più furtiva e resiliente a questi comportamenti particolari. Tuttavia, mentre molti lavori si sono concentrati sulle tecniche evasive impiegate da applicazioni malevole, non è stato condotto alcuno studio sperimentale per quantificare la loro adozione nei programmi non-malevoli. Questo lavoro mira a fornire un'ampia e completa tassonomia delle tecniche evasive, toccando sia le tecniche di anti-debugging sia le tecniche di anti-virtualizzazione. Sulla base di questa classificazione, abbiamo anche sviluppato PINvader, un framework di analisi costruito con l'aiuto di Pin, una suite di strumentazione binaria dinamica (DBI) di Intel; strumenti come questo sono estremamente utili, grazie alla loro abilità di iniettare ed eseguire codice di analisi all'interno di un processo per controllare e modificare le sue attività. Abbiamo impiegato PINvader per testare più di 11,000 campioni, per rilevare e aggirare le tecniche evasive impiegate dai programmi benigni di Windows a 64 bit. Nei nostri esperimenti, abbiamo puntato a identificare le famiglie di tecniche evasive più comuni e anche a fornire una panoramica dell'uso dell'evasione in diverse categorie di eseguibili. I risultati del nostro studio mostrano oltre 17,500 rilevamenti di tecniche di Timing, che eseguono misurazioni del tempo per rilevare rallentamenti e aumenti del tempo di esecuzione dovuti all'iniezione di routine di analisi; abbiamo anche trovato oltre 10,000 rilevamenti relativi alle informazioni sull'ambiente di sistema e circa 7,800 rilevamenti legati allo sfruttamento della gestione delle eccezioni. Per quanto riguarda le categorie di eseguibili, i nostri risultati indicano che le classi più evasive sono quelle relative alla virtualizzazione, alle applicazioni multimediali e ai driver e utilità per l'hardware, con i loro campioni che presentano, in media, circa 5 diverse tecniche.

PINvader: a dynamic analysis tool for evasive techniques detection and bypass in 64-bit windows binaries

Gozzini, Stefano
2021/2022

Abstract

Dynamic analysis of programs is a methodology of fundamental importance in the cybersecurity domain, providing a way to study the behavior of applications while they are executing; this type of analysis is quite relevant for the study of malicious applications, as it allows to better understand the harmful activity of malwares and improve the resilience of a system against their attacks. Over the years, malware authors started designing methods to trick the analysis environment, making the programs pretend to be harmless by performing particular checks: these behaviors are known as evasive techniques. In the latest years, several studies proposed a systematic classification of existing evasive techniques, divided in many different categories, and also provided tools to make the analysis more stealthy and resilient to them. However, while many works focused on evasive techniques employed by malicious applications, no experimental study has been conducted to quantify their adoption in goodware. This work aims to provide a large and complete taxonomy of evasion techniques, touching both anti-debugging and anti-virtualization techniques. Based on this classification, we also developed PINvader, an analysis framework built with the help of Pin, a Dynamic Binary Instrumentation (DBI) suite by Intel; tools like this are are extremely useful, thanks to their ability to inject and execute analysis code within a process to monitor and change its activities. We employed PINvader to test more than 11,000 samples, to detect and bypass the evasive techniques implemented by Windows 64-bit benign programs. In our experiments, we aimed to identify the most common evasive techniques families and also to provide an overview of the usage of evasion in different categories of executables. The results of our study show over 17,500 detections of Timing techniques, which perform time measurements to detect slow downs and overhead due to the injection of analysis routines; we also found over 10,000 detections related to System Environment information and about 7,800 related to Exception Handling exploitation. As for the executable categories, our findings indicate that the most evasive classes are the ones regarding Virtualization, Multimedia and Hardware Drivers and Utilities, with their samples presenting, on average, about 5 different techniques.
CARMINATI, MICHELE
ZANERO, STEFANO
ING - Scuola di Ingegneria Industriale e dell'Informazione
20-dic-2022
2021/2022
L'analisi dinamica di programmi è una metodologia di fondamentale importanza nel dominio della sicurezza informatica, poiché fornisce un modo per studiare il comportamento di applicazioni mentre esse sono in esecuzione; questo tipo di analisi è piuttosto rilevante per lo studio di applicazioni malevole, perché consente di comprendere meglio l'attività dannosa dei malwares e migliorare la resilienza di un sistema contro i loro attacchi. Nel corso degli anni, gli autori di programmi malevoli hanno iniziato a progettare metodi per ingannare l'ambiente di analisi, facendo in modo che i programmi fingano di essere innocui eseguendo controlli specifici: questi comportamenti sono conosciuti come tecniche evasive. Negli ultimi anni, diversi studi hanno proposto una classificazione sistematica delle tecniche evasive esistenti, suddivise in molte categorie differenti tra loro, e hanno anche fornito strumenti per rendere l'analisi più furtiva e resiliente a questi comportamenti particolari. Tuttavia, mentre molti lavori si sono concentrati sulle tecniche evasive impiegate da applicazioni malevole, non è stato condotto alcuno studio sperimentale per quantificare la loro adozione nei programmi non-malevoli. Questo lavoro mira a fornire un'ampia e completa tassonomia delle tecniche evasive, toccando sia le tecniche di anti-debugging sia le tecniche di anti-virtualizzazione. Sulla base di questa classificazione, abbiamo anche sviluppato PINvader, un framework di analisi costruito con l'aiuto di Pin, una suite di strumentazione binaria dinamica (DBI) di Intel; strumenti come questo sono estremamente utili, grazie alla loro abilità di iniettare ed eseguire codice di analisi all'interno di un processo per controllare e modificare le sue attività. Abbiamo impiegato PINvader per testare più di 11,000 campioni, per rilevare e aggirare le tecniche evasive impiegate dai programmi benigni di Windows a 64 bit. Nei nostri esperimenti, abbiamo puntato a identificare le famiglie di tecniche evasive più comuni e anche a fornire una panoramica dell'uso dell'evasione in diverse categorie di eseguibili. I risultati del nostro studio mostrano oltre 17,500 rilevamenti di tecniche di Timing, che eseguono misurazioni del tempo per rilevare rallentamenti e aumenti del tempo di esecuzione dovuti all'iniezione di routine di analisi; abbiamo anche trovato oltre 10,000 rilevamenti relativi alle informazioni sull'ambiente di sistema e circa 7,800 rilevamenti legati allo sfruttamento della gestione delle eccezioni. Per quanto riguarda le categorie di eseguibili, i nostri risultati indicano che le classi più evasive sono quelle relative alla virtualizzazione, alle applicazioni multimediali e ai driver e utilità per l'hardware, con i loro campioni che presentano, in media, circa 5 diverse tecniche.
File allegati
File Dimensione Formato  
FINAL_EXECUTIVE_SUMMARY.pdf

accessibile in internet per tutti

Descrizione: Executive Summary
Dimensione 874.81 kB
Formato Adobe PDF
874.81 kB Adobe PDF Visualizza/Apri
FINAL_THESIS.pdf

accessibile in internet per tutti

Descrizione: Thesis
Dimensione 2.86 MB
Formato Adobe PDF
2.86 MB Adobe PDF Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/196436