LoadLibrary, ένα επίπεδο για τη φόρτωση DLL των Windows σε εφαρμογές Linux

Tavis Ormandy (Τάβις Ορμάντι), ερευνητής ασφάλειας στην Google που αναπτύσσει το έργο Loadlibrary, με στόχο τη μεταφορά DLL που έχουν μεταγλωττιστεί για Windows για χρήση σε εφαρμογές Linux. Το έργο παρέχει μια βιβλιοθήκη επιπέδου με την οποία μπορείτε να φορτώσετε ένα αρχείο DLL σε μορφή PE/COFF και να καλέσετε τις λειτουργίες που ορίζονται σε αυτό. Ο bootloader PE/COFF βασίζεται σε κώδικα ξετυλίγματος. Κωδικός έργου διανέμονται από άδεια σύμφωνα με το GPLv2.

Το LoadLibrary φροντίζει για τη φόρτωση της βιβλιοθήκης στη μνήμη και την εισαγωγή υπαρχόντων συμβόλων, παρέχοντας στην εφαρμογή Linux ένα API τύπου dlopen. Ο κώδικας προσθήκης μπορεί να εντοπιστεί σφαλμάτων χρησιμοποιώντας gdb, ASAN και Valgrind. Είναι δυνατή η προσαρμογή του εκτελέσιμου κώδικα κατά την εκτέλεση συνδέοντας άγκιστρα και εφαρμόζοντας ενημερώσεις κώδικα (patching χρόνου εκτέλεσης). Υποστηρίζει χειρισμό εξαιρέσεων και ξετύλιγμα για C++.

Ο στόχος του έργου είναι να οργανώσει κλιμακωτές και αποτελεσματικές δοκιμές κατανεμημένων fuzzing βιβλιοθηκών DLL σε περιβάλλον που βασίζεται σε Linux. Στα Windows, ο έλεγχος ασάφειας και κάλυψης δεν είναι πολύ αποτελεσματικός και συχνά απαιτεί την εκτέλεση μιας ξεχωριστής εικονικοποιημένης παρουσίας των Windows, ειδικά όταν προσπαθείτε να αναλύσετε σύνθετα προϊόντα, όπως λογισμικό προστασίας από ιούς που εκτείνονται στον πυρήνα και τον χώρο χρήστη. Χρησιμοποιώντας το LoadLibrary, οι ερευνητές της Google αναζητούν τρωτά σημεία σε κωδικοποιητές βίντεο, σαρωτές ιών, βιβλιοθήκες αποσυμπίεσης δεδομένων, αποκωδικοποιητές εικόνας κ.λπ.

Για παράδειγμα, με τη βοήθεια του LoadLibrary μπορέσαμε να μεταφέρουμε τη μηχανή προστασίας από ιούς του Windows Defender για να λειτουργεί σε Linux. Η μελέτη του mpengine.dll, που αποτελεί τη βάση του Windows Defender, κατέστησε δυνατή την ανάλυση ενός μεγάλου αριθμού εξελιγμένων επεξεργαστών για διάφορες μορφές, εξομοιωτές συστημάτων αρχείων και διερμηνείς γλωσσών που δυνητικά παρέχουν διανύσματα για δυνατόν επίθεση.

Το LoadLibrary χρησιμοποιήθηκε επίσης για την αναγνώριση απομακρυσμένη ευπάθεια στο πακέτο προστασίας από ιούς Avast. Κατά τη μελέτη του DLL από αυτό το πρόγραμμα προστασίας από ιούς, αποκαλύφθηκε ότι η βασική προνομιακή διαδικασία σάρωσης περιλαμβάνει έναν πλήρη διερμηνέα JavaScript που χρησιμοποιείται για την εξομοίωση της εκτέλεσης κώδικα JavaScript τρίτων κατασκευαστών. Αυτή η διαδικασία δεν είναι απομονωμένη σε περιβάλλον sandbox, δεν επαναφέρει τα δικαιώματα και αναλύει μη επαληθευμένα εξωτερικά δεδομένα από το σύστημα αρχείων και την υποκλαπόμενη κυκλοφορία δικτύου. Δεδομένου ότι οποιαδήποτε ευπάθεια σε αυτήν την περίπλοκη και απροστάτευτη διαδικασία θα μπορούσε ενδεχομένως να οδηγήσει σε απομακρυσμένο συμβιβασμό ολόκληρου του συστήματος, αναπτύχθηκε ένα ειδικό κέλυφος με βάση το LoadLibrary avscript για την ανάλυση τρωτών σημείων στον σαρωτή προστασίας από ιούς Avast σε περιβάλλον που βασίζεται σε Linux.

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο