Το νέο εργαλείο ODGen αποκαλύπτει 180 Zero-Days στις βιβλιοθήκες Node.js PlatoBlockchain Data Intelligence. Κάθετη αναζήτηση. Ολα συμπεριλαμβάνονται.

Νέο εργαλείο ODGen αποκαλύπτει 180 Zero-Days στις βιβλιοθήκες Node.js

Ερευνητές στο Πανεπιστήμιο Johns Hopkins ανακάλυψαν πρόσφατα μια εκπληκτική ευπάθεια 180 zero-day σε χιλιάδες βιβλιοθήκες Node.js χρησιμοποιώντας ένα νέο εργαλείο ανάλυσης κώδικα που ανέπτυξαν ειδικά για το σκοπό αυτό, που ονομάζεται ODGen.

Εβδομήντα από αυτά τα ελαττώματα έχουν λάβει από τότε κοινά αναγνωριστικά ευπάθειας και έκθεσης (CVE). Περιλαμβάνουν ελαττώματα έγχυσης εντολών, τρωτά σημεία διέλευσης διαδρομής, προβλήματα εκτέλεσης αυθαίρετου κώδικα και ευπάθειες δέσμης ενεργειών μεταξύ τοποθεσιών — μερικά από αυτά σε ευρέως χρησιμοποιούμενες εφαρμογές.

Σε μια εργασία που κυκλοφόρησε στο Usenix Security Symposium νωρίτερα αυτόν τον μήνα, οι ερευνητές του Johns Hopkins — Song Li, Mingqing Kang, Jianwei Hou και Yinzhi Cao — περιέγραψαν το ODGen ως καλύτερη εναλλακτική λύση στην τρέχουσα ανάλυση κώδικα και τα λεγόμενα γραφήματα που βασίζονται σε ερωτήματα προσεγγίσεις για την εύρεση τρωτών σημείων Node.js.

Οι προσεγγίσεις που βασίζονται σε ανάλυση προγράμματος έχουν αποδειχθεί χρήσιμες για τον εντοπισμό μεμονωμένων τύπων ευπάθειας, όπως ελαττώματα εισαγωγής κώδικα στο JavaScript. Αλλά δεν μπορούν εύκολα να επεκταθούν για να εντοπίσουν όλα τα είδη ευπάθειας που μπορεί να υπάρχουν στην πλατφόρμα Node.js, είπαν οι ερευνητές. Ομοίως, οι μέθοδοι ανάλυσης κώδικα που βασίζονται σε γραφήματα - όπου ο κώδικας αρχικά αναπαρίσταται ως γράφημα και στη συνέχεια ερωτάται για συγκεκριμένα σφάλματα κωδικοποίησης - λειτουργεί καλά σε περιβάλλοντα όπως η C++ και η PHP. Ωστόσο, οι προσεγγίσεις που βασίζονται σε γραφήματα δεν είναι τόσο αποτελεσματικές στην εξόρυξη τρωτών σημείων JavaScript λόγω της εκτεταμένης χρήσης δυναμικών χαρακτηριστικών από τη γλώσσα προγραμματισμού, σημείωσαν.

Μια «καινοφανής» προσέγγιση για την εύρεση τρωτών σημείων JavaScript

Έτσι, οι ερευνητές ανέπτυξαν αυτό που περιέγραψαν ως μια «καινοφανής» και καλύτερη μέθοδος που ονομάζεται Γράφημα Εξάρτησης Αντικειμένου (ODG) που μπορεί να χρησιμοποιηθεί για τον εντοπισμό τρωτών σημείων Node.js. Εφάρμοσαν το ODGen για να δημιουργήσουν "ODG" για προγράμματα Node.js για τον εντοπισμό τρωτών σημείων, είπαν.

Ο Cao, επίκουρος καθηγητής επιστήμης υπολογιστών στο Πανεπιστήμιο Johns Hopkins και συν-συγγραφέας της ερευνητικής έκθεσης, χρησιμοποιεί μερικές αναλογίες για να περιγράψει την ανάλυση κώδικα βασισμένη σε γραφήματα γενικά και το προτεινόμενο Γράφημα Εξάρτησης Αντικειμένου. "Αν θεωρήσουμε μια ευπάθεια ως ένα ειδικό μοτίβο - ας πούμε, έναν πράσινο κόμβο συνδεδεμένο με έναν κόκκινο κόμβο και μετά έναν μαύρο κόμβο - ένα εργαλείο ανάλυσης κώδικα που βασίζεται σε γραφήματα πρώτα μετατρέπει τα προγράμματα σε ένα γράφημα με πολλούς κόμβους και ακμές", λέει ο Cao. . "Στη συνέχεια, το εργαλείο αναζητά τέτοια μοτίβα στο γράφημα για να εντοπίσει μια ευπάθεια."

Το Γράφημα Εξάρτησης Αντικειμένων που πρότειναν οι ερευνητές βελτιώνει αυτήν την προσέγγιση αναπαριστά τα αντικείμενα JavaScript ως κόμβους και προσθέτοντας χαρακτηριστικά - συμπεριλαμβανομένων εξαρτήσεων μεταξύ αντικειμένων - που είναι ειδικά για τη γλώσσα προγραμματισμού και στη συνέχεια αναζητώντας σφάλματα. Ο Cao περιγράφει πώς λειτουργεί η μέθοδος χρησιμοποιώντας κόκκους σε μια χούφτα ρύζι: Εάν όλοι οι κόκκοι φαίνονται ίδιοι πριν το βράσιμο, αλλά παίρνουν δύο διαφορετικές αποχρώσεις μετά το βράσιμο - η μία αντιπροσωπεύει καλούς κόκκους και η άλλη κακούς κόκκους - τότε γίνεται πιο εύκολο να εντοπιστούν και να εξαλειφθούν τα κακά σιτηρά. «Η αφηρημένη ερμηνεία μοιάζει με τη διαδικασία βρασμού που μετατρέπει το ρύζι - δηλαδή προγράμματα - σε διαφορετικά χρωματιστά αντικείμενα», έτσι τα λάθη είναι πιο εύκολο να εντοπιστούν, λέει ο Cao.

Μια ποικιλία από σφάλματα

Για να δουν εάν η προσέγγισή τους λειτουργεί, οι ερευνητές δοκίμασαν πρώτα το ODGen σε ένα δείγμα 330 προηγουμένως αναφερόμενων τρωτών σημείων σε πακέτα Node.js στο αποθετήριο διαχείρισης πακέτων κόμβου (npm). Η δοκιμή έδειξε ότι ο σαρωτής εντόπισε σωστά 302 από τα 330 τρωτά σημεία. Ενθαρρυμένοι από το σχετικά υψηλό ποσοστό ακρίβειας, οι ερευνητές έτρεξαν το ODGen έναντι περίπου 300,000 πακέτων Java σε npm. Ο σαρωτής ανέφερε συνολικά 2,964 πιθανές ευπάθειες στα πακέτα. Οι ερευνητές έλεγξαν 264 από αυτά - όλα με περισσότερες από 1,000 λήψεις την εβδομάδα κατά μέσο όρο - και κατάφεραν να επιβεβαιώσουν ότι 180 ήταν νόμιμες ευπάθειες. Σαράντα τρία από αυτά ήταν σε επίπεδο εφαρμογής, 122 ήταν σε πακέτα που εισάγονται από άλλες εφαρμογές ή κωδικός και τα υπόλοιπα 15 υπήρχαν σε έμμεσα πακέτα.

Ένα πλήθος (80) από τα επιβεβαιωμένα τρωτά σημεία που εντόπισε το ODGen ήταν ροές έγχυσης εντολών που επιτρέπουν στους εισβολείς να εκτελούν αυθαίρετο κώδικα σε επίπεδο λειτουργικού συστήματος μέσω μιας ευάλωτης εφαρμογής. Τριάντα ήταν ελαττώματα διασχίζοντας το μονοπάτι. Το 24 επέτρεψε την παραβίαση κώδικα και το 19 περιλάμβανε έναν συγκεκριμένο τύπο επίθεσης έγχυσης εντολών που ονομάζεται ρύπανση πρωτοτύπου.

Σφραγίδα ώρας:

Περισσότερα από Σκοτεινή ανάγνωση