Το Facebook παρουσίασε το Pysa, έναν στατικό αναλυτή για τη γλώσσα Python

Facebook εισήχθη ανοιχτός στατικός αναλυτής Πύσα (Python Static Analyzer), σχεδιασμένο για τον εντοπισμό πιθανών τρωτών σημείων στον κώδικα Python. Ο νέος αναλυτής έχει σχεδιαστεί ως πρόσθετο στην εργαλειοθήκη ελέγχου τύπου πυρά και αναρτήθηκε στο αποθετήριο του. Κώδικας δημοσιεύθηκε υπό την άδεια του MIT.

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

Το έργο του αναλυτή καταλήγει στον εντοπισμό πηγών δεδομένων και επικίνδυνων κλήσεων στις οποίες δεν πρέπει να χρησιμοποιούνται τα αρχικά δεδομένα. Τα δεδομένα από αιτήματα ιστού (για παράδειγμα, το λεξικό HttpRequest.GET στο Django) θεωρούνται ως πηγή και κλήσεις όπως το eval και το os.open θεωρούνται επικίνδυνες χρήσεις. Το Pysa παρακολουθεί τη ροή των δεδομένων μέσω της αλυσίδας κλήσεων συναρτήσεων και συσχετίζει τα δεδομένα προέλευσης με δυνητικά επικίνδυνα σημεία στον κώδικα. Μια τυπική ευπάθεια που προσδιορίζεται χρησιμοποιώντας το Pysa είναι ένα πρόβλημα ανοιχτής ανακατεύθυνσης (CVE-2019-19775) στην πλατφόρμα ανταλλαγής μηνυμάτων Zulip, που προκαλείται από τη μετάδοση μη καθαρισμένων εξωτερικών παραμέτρων κατά την απόδοση μικρογραφιών.

Οι δυνατότητες παρακολούθησης ροής δεδομένων της Pysa μπορούν ισχύουν για την επαλήθευση της σωστής χρήσης πρόσθετων πλαισίων και για τον προσδιορισμό της συμμόρφωσης με την πολιτική χρήσης δεδομένων χρήστη. Για παράδειγμα, το Pysa χωρίς πρόσθετες ρυθμίσεις μπορεί να χρησιμοποιηθεί για τον έλεγχο έργων χρησιμοποιώντας τα πλαίσια Django και Tornado. Η Pysa μπορεί επίσης να εντοπίσει κοινά τρωτά σημεία σε εφαρμογές web, όπως η έγχυση SQL και η δέσμη ενεργειών μεταξύ τοποθεσιών (XSS).

Στο Facebook, ο αναλυτής χρησιμοποιείται για τον έλεγχο του κώδικα της υπηρεσίας Instagram. Το πρώτο τρίμηνο του 2020, η Pysa βοήθησε στον εντοπισμό του 44% όλων των προβλημάτων που εντόπισαν οι μηχανικοί του Facebook στη βάση κώδικα του Instagram από την πλευρά του διακομιστή.
Συνολικά 330 ζητήματα εντοπίστηκαν μέσω της αυτοματοποιημένης διαδικασίας αναθεώρησης αλλαγών της Pysa, από τα οποία 49 (15%) αξιολογήθηκαν ως κύρια και 131 (40%) ως μη σοβαρά. Σε 150 περιπτώσεις (45%) τα προβλήματα ταξινομήθηκαν ως ψευδώς θετικά.

Πηγή: opennet.ru

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