Στατικός αναλυτής ανοιχτού κώδικα Mariana Trench του Facebook

Το Facebook παρουσίασε έναν νέο ανοιχτό στατικό αναλυτή, το Mariana Trench, με στόχο τον εντοπισμό τρωτών σημείων σε εφαρμογές για την πλατφόρμα Android και τα προγράμματα Java. Είναι δυνατή η ανάλυση έργων χωρίς πηγαίους κώδικες, για τα οποία είναι διαθέσιμος μόνο bytecode για την εικονική μηχανή Dalvik. Ένα άλλο πλεονέκτημα είναι η πολύ υψηλή ταχύτητα εκτέλεσής του (η ανάλυση πολλών εκατομμυρίων γραμμών κώδικα διαρκεί περίπου 10 δευτερόλεπτα), η οποία σας επιτρέπει να χρησιμοποιήσετε το Mariana Trench για να ελέγξετε όλες τις προτεινόμενες αλλαγές καθώς φτάνουν. Ο κώδικας του έργου είναι γραμμένος σε C++ και διανέμεται με την άδεια MIT.

Ο αναλυτής αναπτύχθηκε ως μέρος ενός έργου για την αυτοματοποίηση της διαδικασίας αναθεώρησης των κειμένων πηγής των εφαρμογών για κινητά για Facebook, Instagram και Whatsapp. Το πρώτο εξάμηνο του 2021, οι μισές από όλες τις ευπάθειες στις εφαρμογές για κινητές συσκευές του Facebook εντοπίστηκαν χρησιμοποιώντας αυτοματοποιημένα εργαλεία ανάλυσης. Ο κώδικας Mariana Trench είναι στενά συνυφασμένος με άλλα έργα του Facebook· για παράδειγμα, ο βελτιστοποιητής bytecode Redex χρησιμοποιήθηκε για την ανάλυση του bytecode και η βιβλιοθήκη SPARTA χρησιμοποιήθηκε για την οπτική ερμηνεία και τη μελέτη των αποτελεσμάτων της στατικής ανάλυσης.

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

Το έργο του αναλυτή καταλήγει στον εντοπισμό πηγών δεδομένων και επικίνδυνων κλήσεων στις οποίες δεν πρέπει να χρησιμοποιούνται τα δεδομένα προέλευσης - ο αναλυτής παρακολουθεί τη διέλευση δεδομένων μέσω της αλυσίδας κλήσεων συναρτήσεων και συνδέει τα δεδομένα πηγής με δυνητικά επικίνδυνες θέσεις στον κώδικα . Για παράδειγμα, τα δεδομένα που λαμβάνονται μέσω μιας κλήσης στο Intent.getData θεωρείται ότι απαιτούν παρακολούθηση πηγής και οι κλήσεις προς το Log.w και το Runtime.exec θεωρούνται επικίνδυνες χρήσεις.

Στατικός αναλυτής ανοιχτού κώδικα Mariana Trench του Facebook


Πηγή: opennet.ru

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