Master's thesis (2018)
Open Access document in PolyPublie |
|
Open Access to the full text of this document Terms of Use: All rights reserved Download (1MB) |
Abstract
Return Oriented Programming (ROP) is a technique by which an attacker can induce arbitrary behavior inside a vulnerable program without injecting a malicious code. It is presently one of the most effective ways to bypass modern protection mechanisms such as Data Execution Prevention (DEP) which prevents attackers from executing the malicious code already injected into the memory. ROP is also considered as one of the most flexible attacks, its level of flexibility, unlike other attacks, reaches the Turing completeness. The tremendous success of ROP attacks made the headlines in the cybersecurity space, they became one of the top security concerns and one of the most powerful cross-platform weapons. Several efforts have been undertaken to study this threat and to propose better defence mechanisms (mitigation or prevention), yet the majority of them are not deeply reviewed nor officially implemented. Furthermore, similar studies show that the techniques proposed to prevent ROP-based exploits usually yield a high false-negative rate and a higher false-positive rate, not to mention the overhead that they introduce into the protected program. The first part of this research work aims at providing an in-depth analysis of the currently available anti-ROP solutions (deployed and proposed), focusing on inspecting their defense logic and summarizing their weaknesses and problems. The second part of this work aims at introducing our proposed Indicators Of Compromise (IOC) that could be used to improve the detection rate of ROP attacks. The three suggested indicators could detect these attacks at run-time by checking the presence of some futures during the execution of the targeted program. We also proposed a measurement technique that allows measuring these indicators at run-time. The last part of this work covers the subject of the experimental phase. More specifically, the Proof of Concept performed with the objective of proving the effectiveness of our proposed indicators, as well as the proposed measurement technique. The results of this experimental phase show that only the first two indicators are able to detect ROP attacks. Another important finding was about the non-expected ROP features discovered and visualized during the experiment. These features could be used to strengthen our indicators in future works.
Résumé
La programmation orientée retour (ROP) est une technique par laquelle un attaquant peut introduire un comportement arbitraire dans un programme vulnérable. ROP est actuellement l'un des moyens les plus efficaces pour contourner les dispositifs de protection modernes. Ce type d'attaque a connu un essor phénoménal au cours des cinq dernières années. Les techniques utilisées pour se protéger contre ce type d'exploit génèrent un taux de faux négatif élevé car elles sont facilement contournables. De plus, elles ont tendance à ajouter une surcharge importante sur le programme qu'elles protègent. Dans la première partie de ce travail, nous avons étudié ces solutions proposées ou utilisées pour détecter ou atténuer les attaques ROP. Dans la deuxième partie, nous présentons une nouvelle approche pour détecter les attaques ROP lors de l'exécution. Cette partie vise à présenter nos Indicateurs de Compromis (IOC) qui pourraient être utilisés pour améliorer le taux de détection des attaques RDP. Nous avons également proposé une technique de mesure permettant de mesurer ces indicateurs lors de l'exécution en utilisant des techniques d'instrumentation dynamique de binaires (Dynamic Binary Instrumentation). Nos indicateurs proposés essaient d'identifier une attaque au moment de l'exécution en vérifiant la présence de certaines caractéristiques. Cette approche permet de détecter les attaques ROP sans compter sur toute autre information complémentaire comme le code source ou le support du compilateur. La dernière partie de ce travail couvre le sujet de la phase expérimentale, plus précisément, le prototype réalisé dans le but de prouver l'efficacité de nos indicateurs proposés ainsi que la technique de mesure proposée. Les résultats de cette phase expérimentale montrent que seuls les deux premiers indicateurs sont capables de détecter les attaques ROP.
Department: | Department of Computer Engineering and Software Engineering |
---|---|
Program: | Génie informatique |
Academic/Research Directors: | Joan Calvet and Jose Manuel Fernandez |
PolyPublie URL: | https://publications.polymtl.ca/3243/ |
Institution: | École Polytechnique de Montréal |
Date Deposited: | 17 Oct 2018 15:12 |
Last Modified: | 27 Sep 2024 02:55 |
Cite in APA 7: | Ammari, N. (2018). Defeating Code-Reuse Attacks with Binary Instrumentation [Master's thesis, École Polytechnique de Montréal]. PolyPublie. https://publications.polymtl.ca/3243/ |
---|---|
Statistics
Total downloads
Downloads per month in the last year
Origin of downloads