Process injection techniques and detection using the Volatility Framework
Τεχνικές εισαγωγής σε διεργασία και ανίχνευσή τους με τη χρήση του εργαλείου Volatility

Master Thesis
Συγγραφέας
Μπαλαούρα, Σωτηρία
Balaoura, Sotiria
Ημερομηνία
2018-11Επιβλέπων
Νταντογιάν, ΧριστόφοροςΠροβολή/ Άνοιγμα
Λέξεις κλειδιά
Remote or Classic DLL Injection ; Hollow Process Injection ; Volatility Framework ; PE file ; IAT (Import Address Table) ; Process injection ; Process replacement ; Memory analysis ; Injection detectionΠερίληψη
Τα κακόβουλα λογισμικά συνήθως περιλαμβάνουν μηχανισμούς αποφυγής της ανίχνευσής τους. Η εισαγωγή (injection) σε διεργασία είναι μία τεχνική η οποία προκαλεί την εκτέλεση κακόβουλου κώδικα μέσω της εισαγωγής του κώδικα σε μια άλλη ενεργή διεργασία εξαναγκάζοντας την διεργασία να τον εκτελέσει με ένα τρόπο που δεν είναι προφανής στο χρήστη. Το πρόγραμμα που εισάγει τον κακόβουλο κώδικα ονομάζεται εισαγωγέας (injector).
Ο σκοπός αυτής της μεταπτυχιακής διατριβής είναι να προτείνει μεθοδολογίες ανίχνευσης κακόβουλου λογισμικού στη μνήμη. Όσο αφορά τον τύπο του κακόβουλου λογισμικού επικεντρώνεται σε δύο τεχνικές εισαγωγής σε διεργασία : Δημιουργία κοιλότητας στη διεργασία (Hollow process) και εισαγωγή απομακρυσμένου DLL (Remote DLL- Dynamic Link Library injection). Προκειμένου να επιτευχθεί η εισαγωγή, χρησιμοποιήθηκαν διάφορα προγράμματα (injector). Τα κακόβουλα λογισμικά εκτελέστηκαν σε εικονικές μηχανές με Windows 10 και πάρθηκαν αντίγραφα της μνήμης τους. Εκτελέστηκε Δυναμική Ανάλυση Μνήμης χρησιμοποιώντας το εργαλείο Volatility.
Η δημιουργία κοιλότητας στη διεργασία (Hollow process) παρουσιάζεται με λεπτομέρεια και εφαρμόστηκε παράγοντας διάφορα αντίγραφα μνήμης για δοκιμή. Προτείνεται μία πλήρης μεθοδολογία ανίχνευσης χρησιμοποιώντας το εργαλείο Volatility, η οποία αποκαλύπτει και ανιχνεύει τις ανωμαλίες που προκαλεί αυτή η τεχνική στη μνήμη. Αυτή η μεθοδολογία περιλαμβάνει και οργανώνει σε διακριτά βήματα την περισσότερη από τη βιβλιογραφία, σχετικά άρθρα στον παγκόσμιο ιστό και έρευνα πάνω στο θέμα. Εκτελέστηκε στα παραχθέντα αντίγραφα μνήμης και τα αποτελέσματά της επιβεβαιώθηκαν.
Η εισαγωγή απομακρυσμένου DLL (remote DLL injection) αναλύθηκε και εφαρμόστηκε σε διάφορα συστήματα παράγοντας διάφορα αντίγραφα μνήμης. Μια εντελώς νέα μεθοδολογία ανίχνευσης προτάθηκε, ελέγχθηκε, υλοποιήθηκε και δοκιμάστηκε. Η ιδέα υλοποιήθηκε με ένα script περίπου 200 γραμμών κώδικα δημιουργημένο με python. Αυτό εκτελείται μέσω του περιβάλλοντος του Volatility volshell πρόσθετου. Τα αποτελέσματα του κώδικα που δοκιμάστηκε σε 12 αντίγραφα μνήμης, τα οποία παρουσιάζονται σε σχετικό πίνακα, αποδεικνύουν ότι ο κώδικας λειτουργεί ικανοποιητικά.