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

Το Facebook αποκάλυψε πριν λίγες μέρες κυκλοφόρησε ο στατικός αναλυτής ανοιχτού κώδικα, Mariana Trench, που προορίζεται για τον εντοπισμό τρωτών σημείων σε εφαρμογές Android και προγράμματα Java.

Στο παρέχεται η δυνατότητα ανάλυσης έργων χωρίς πηγαίους κώδικες, για το οποίο είναι διαθέσιμος μόνο ο bytecode για την εικονική μηχανή Dalvik. Ένα άλλο πλεονέκτημα είναι η πολύ υψηλή ταχύτητα εκτέλεσης (η ανάλυση αρκετών εκατομμυρίων γραμμών κώδικα διαρκεί περίπου 10 δευτερόλεπτα), η οποία σας επιτρέπει να χρησιμοποιήσετε το Mariana Trench για να ελέγξετε όλες τις προτεινόμενες αλλαγές καθώς εισάγονται.

Ο αναλυτής αναπτύχθηκε ως μέρος ενός έργου για την αυτοματοποίηση της διαδικασίας αναθεώρησης κώδικα πηγή εφαρμογών για κινητά του Facebook, του Instagram και του Whatsapp.

Μοιραζόμαστε λεπτομέρειες σχετικά με το Mariana Trench (MT), ένα εργαλείο που χρησιμοποιούμε για τον εντοπισμό και την πρόληψη σφαλμάτων ασφαλείας και απορρήτου σε εφαρμογές Android και Java. Στο πλαίσιο της προσπάθειάς μας να βοηθήσουμε στην κλιμάκωση της ασφάλειας μέσω της αυτοματοποίησης κτιρίων, ανοίξαμε πρόσφατα το MT για να υποστηρίξουμε τους μηχανικούς ασφαλείας στο Facebook και σε ολόκληρη τη βιομηχανία.

Αυτή η ανάρτηση είναι η τρίτη στη σειρά βαθιών καταδύσεων σε στατικά και δυναμικά εργαλεία ανάλυσης που εμπιστευόμαστε. Το MT είναι το πιο πρόσφατο σύστημα, μετά το Zoncolan και το Pysa, που δημιουργήθηκε για κώδικα Hack και Python αντίστοιχα.

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

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

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

Η εργασία του αναλυτή περιορίζεται στον προσδιορισμό πηγών δεδομένων και επικίνδυνων κλήσεων, όπου τα αρχικά δεδομένα δεν πρέπει να χρησιμοποιούνται: Ο αναλυτής παρακολουθεί τη διέλευση δεδομένων μέσω της αλυσίδας κλήσεων συνάρτησης και συνδέει τα αρχικά δεδομένα με δυνητικά επικίνδυνα σημεία του κώδικα.

Δεδομένου ότι στο MT, μια ροή δεδομένων μπορεί να περιγραφεί με:

  • Πηγή: σημείο προέλευσης. Αυτό μπορεί να είναι μια συμβολοσειρά ελεγχόμενη από χρήστη που εισέρχεται στην εφαρμογή μέσω του `Intent.getData`.
  • Νιπτήρας: προορισμός. Στο Android, αυτό μπορεί να είναι μια κλήση στο `Log.w` ή στο 'Runtime.exec`. Για παράδειγμα, τα δεδομένα από μια κλήση στο Intent.getData θεωρούνται πηγή για παρακολούθηση και οι κλήσεις προς το Log.w και το Runtime.exec θεωρούνται επικίνδυνες χρήσεις.

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

Ένας κανόνας θα μπορούσε να καθορίσει, για παράδειγμα, ότι θέλουμε να βρούμε ανακατευθύνσεις προθέσεων (προβλήματα που επιτρέπουν στους επιτιθέμενους να υποκλέψουν ευαίσθητα δεδομένα) ορίζοντας έναν κανόνα που μας δείχνει όλα τα ίχνη από πηγές "ελεγχόμενες από τον χρήστη" έως έναν καταβύθιση "ανακατευθύνσεων προθέσεων".

Τελικά αν ενδιαφέρεστε να μάθετε περισσότερα γι 'αυτό, μπορείτε να ελέγξετε το λεπτομέρειες στον παρακάτω σύνδεσμο.


Αφήστε το σχόλιό σας

Η διεύθυνση email σας δεν θα δημοσιευθεί. Τα υποχρεωτικά πεδία σημειώνονται με *

*

*

  1. Υπεύθυνος για τα δεδομένα: Miguel Ángel Gatón
  2. Σκοπός των δεδομένων: Έλεγχος SPAM, διαχείριση σχολίων.
  3. Νομιμοποίηση: Η συγκατάθεσή σας
  4. Κοινοποίηση των δεδομένων: Τα δεδομένα δεν θα κοινοποιούνται σε τρίτους, εκτός από νομική υποχρέωση.
  5. Αποθήκευση δεδομένων: Βάση δεδομένων που φιλοξενείται από τα δίκτυα Occentus (ΕΕ)
  6. Δικαιώματα: Ανά πάσα στιγμή μπορείτε να περιορίσετε, να ανακτήσετε και να διαγράψετε τις πληροφορίες σας.