This item is provided by the institution :
University of Crete
Repository :
E-Locus Institutional Repository
see the original item page
in the repository's web site and access all digital files if the item*
share



PhD thesis (EN)

2009 (EN)
Ανίχνευση επιθέσεων κακόβουλου κώδικα με χρήση εξομοίωσης
Generic detection of code injection attacks using network-level emulation

Πολυχρονάκης, Μιχαήλ Ιωάννη

Μαρκάτος, Ευάγγελος Π

Οι επιθέσεις κακόβουλου κώδικα (code injection attacks) εναντίον δικτυακών εφαρμογών αποτελούν πλέον την κύρια μέθοδο διάδοσης κακόβουλου λογισμικού (malware). Ο εντοπισμός του κακόβουλου κώδικα (shellcode) που περιέχεται στην επίθεση είναι μια υποσχόμενη προσέγγιση για την ανίχνευση πρωτοεμφανιζόμενων επιθέσεων στο διαδίκτυο. Αρχικές υλοποιήσεις αυτής της μεθόδου βασίζονται στην τεχνική της στατικής ανάλυσης κώδικα. Ωστόσο, οι τεχνικές αυτές δεν είναι αποτελεσματικές στον εντοπισμό κακόβουλου κώδικα που χρησιμοποιεί εξελιγμένες τεχνικές απόκρυψης όπως ο αυτοτροποποιούμενος κώδικας. Ως μέρος της προσπάθειας εξεύρεσης μιας αποτελεσματικής μεθόδου ανίχνευσης πρωτοεμφανιζόμενων επιθέσεων, προτείνουμε την τεχνική της εξομοίωσης κώδικα στο επίπεδο του δικτύου (network-level emulation). Η τεχνική βασίζεται στη δυναμική ανάλυση κώδικα χαμηλού επιπέδου με τη χρήση ενός εξομοιωτή κεντρικής μονάδας επεξεργασίας (CPU emulator). Η υλοποίηση ενός συστήματος ανίχνευσης επιθέσεων που χρησιμοποιεί την παραπάνω μέθοδο, το οποίο ονομάζουμε Nemu, αναλύει δυναμικά έγκυρες ακολουθίες εντολών που περιέχονται στα δεδομένα δικτύου υπό ανάλυση. Χρησιμοποιώντας ευρηστικές μεθόδους ανίχνευσης χαρακτηριστικών συμπεριφορών που εκδηλώνονται κατά την εκτέλεση του κακόβουλου κώδικα, το σύστημα μπορεί να ανιχνεύσει την ύπαρξη διαφορετικών τύπων κακόβουλου κώδικα σε δεδομένα δικτύου. Οι ευρηστικές μέθοδοι που έχουμε αναπτύξει ανιχνεύουν με ακρίβεια τους πιο ευρέως διαδεδομένους τύπους επιθέσεων όπως οι πολυμορφικές και οι μεταμορφικές επιθέσεις. Η τεχνική δε βασίζεται στη χρήση υπογραφών, οπότε μπορεί να ανιχνεύει επιθέσεις που δεν ήταν προηγουμένως γνωστές. Ταυτόχρονα, η πραγματική εκτέλεση του κακόβουλου κώδικα της επίθεσης στον εξομοιωτή καθιστά τη μέθοδο ανθεκτική σε εξελιγμένες τεχνικές απόκρυψης κώδικα. Επιπλέον, κάθε είσοδος ελέγχεται αυτόνομα, γεγονός που καθιστά τη μέθοδο αποτελεσματική στην ανίχνευση στοχευμένων επιθέσεων. Η πειραματική αξιολόγηση της μεθόδου με ένα μεγάλο εύρος δειγμάτων πραγματικών επιθέσεων έδειξε ότι το Nemu είναι πιο ανθεκτικό σε εξελιγμένες τεχνικές συσκότισης σε σύγκριση με προηγούμενες μεθόδους. Εκτενείς δοκιμές με πραγματικά και τεχνητά δεδομένα έδειξαν ότι η προτεινόμενη μέθοδος δεν παράγει εσφαλμένες ανιχνεύσεις. Για να εκτιμήσουμε την αποτελεσματικότητα της προσέγγισής μας υπό πραγματικές συνθήκες, το σύστημα εγκαταστάθηκε σε δίκτυα οργανισμών όπου εξέταζε τα πραγματικά δεδομένα δικτύου. Μετά από ένα και πλέον χρόνο συνεχούς λειτουργίας, το Nemu ανίχνευσε περισσότερες από 1.2 εκατομμύρια επιθέσεις εναντίον πραγματικών υπολογιστών στα παραπάνω δίκτυα. Παρουσιάζουμε μια εκτενή ανάλυση των επιθέσεων που ανιχνεύθηκαν, εστιάζοντας στη δομή και τη λειτουργία του κακόβουλου κώδικα της επίθεσης, καθώς και στη συνολική δραστηριότητα σε σχέση με τις δικτυακές υπηρεσίες που δέχθηκαν επιθέσεις. (EL)
Code injection attacks against server and client applications have become the primary method of malware spreading. Identifying the shellcode that is part of the attack vector is a promising approach for the detection of previously unknown code injection attacks, irrespective of the particular exploitation method used or the vulnerability being exploited. Initial implementations of this approach attempt to identify the presence of shellcode in network inputs using static code analysis. However, attack detection methods based on static analysis cannot effectively handle malicious code that employs advanced obfuscation methods such as anti-disassembly tricks or self-modifying code. In this dissertation we present network-level emulation, a generic code injection attack detection method based on dynamic code analysis using emulation. Our prototype attack detection system, called Nemu, uses a CPU emulator to dynamically analyze valid instruction sequences in the inspected traffic. Based on runtime behavioral heuristics, the system identifies inherent patterns exhibited during the execution of the shellcode, and thus can identify the presence of malicious code in arbitrary inputs. We have developed heuristics that cover the most widely used shellcode types, including self-decrypting and non-self-contained polymorphic shellcode, plain or metamorphic shellcode, and memory-scanning shellcode. Network-level emulation does not rely on any exploit or vulnerability specific signatures, which allows the detection of previously unknown attacks. At the same time, the actual execution of the attack code on a CPU emulator makes the detector robust to evasion techniques like indirect jumps and self-modifications. Furthermore, each input is inspected autonomously, which makes the approach effective against targeted attacks. Our experimental evaluation with publicly available shellcode implementations and real attacks captured in the wild, shows that Nemu is more robust to obfuscation techniques compared to previous proposals, while it can effectively detect a large and diverse set of different shellcode implementations without any prior exploit-specific information. At the same time, extensive testing using a large and diverse set of generated and real data did not produce any false positives. To assess the effectiveness of our approach under realistic conditions we have deployed Nemu in several production networks. Over the course of more than one year of continuous operation, Nemu has detected more than 1.2 million attacks against real systems. The large and diverse set of the detected attacks combined with the zero false positive rate over the whole period demonstrate the effectiveness and practicality of our approach. We provide a thorough analysis of the captured attacks, focusing on the structure and operation of the shellcode, as well as the overall attack activity in relation to the different targeted services. Finally, we identify challenges faced by existing network trace anonymization schemes for the sharing of attack traces that contain self-decrypting shellcode. To alleviate this problem, we present an anonymization method that identifies and properly sanitizes sensitive information contained in the encrypted part of polymorphic shellcodes, which is not exposed on the wire. (EN)

Τύπος Εργασίας--Διδακτορικές διατριβές
text

Πανεπιστήμιο Κρήτης (EL)
University of Crete (EN)

English

2009-10-27


Σχολή/Τμήμα--Σχολή Θετικών και Τεχνολογικών Επιστημών--Τμήμα Επιστήμης Υπολογιστών--Διδακτορικές διατριβές



*Institutions are responsible for keeping their URLs functional (digital file, item page in repository site)