Facebook hat Pysa eingeführt, einen statischen Analysator für die Python-Sprache

Facebook eingeführt Öffnen Sie den statischen Analysator Pysai (Python Static Analyzer), entwickelt, um potenzielle Schwachstellen im Python-Code zu identifizieren. Der neue Analysator ist als Ergänzung zum Typprüfungs-Toolkit konzipiert Scheiterhaufen und in seinem Repository veröffentlicht. Code veröffentlicht unter der MIT-Lizenz.

Pysa bietet eine Analyse der Datenflüsse als Ergebnis der Codeausführung, wodurch Sie viele potenzielle Schwachstellen und Datenschutzprobleme identifizieren können, die mit der Verwendung von Daten an Orten verbunden sind, an denen sie nicht angezeigt werden sollten.
Pysa kann beispielsweise die Verwendung roher externer Daten in Aufrufen, die externe Programme starten, in Dateioperationen und in SQL-Konstrukten verfolgen.

Die Aufgabe des Analysators besteht darin, Datenquellen und gefährliche Aufrufe zu identifizieren, bei denen die Originaldaten nicht verwendet werden sollten. Daten aus Webanfragen (z. B. das HttpRequest.GET-Wörterbuch in Django) gelten als Quelle und Aufrufe wie eval und os.open gelten als gefährliche Verwendungen. Pysa verfolgt den Datenfluss durch die Kette von Funktionsaufrufen und verknüpft die Quelldaten mit potenziell gefährlichen Stellen im Code. Eine typische mit Pysa identifizierte Schwachstelle ist ein offenes Redirect-Problem (CVE-2019-19775) in der Zulip-Messaging-Plattform, verursacht durch die Übergabe ungereinigter externer Parameter beim Rendern von Miniaturansichten.

Die Datenflussverfolgungsfunktionen von Pysa können dies anwenden um die korrekte Verwendung zusätzlicher Frameworks zu überprüfen und die Einhaltung der Benutzerdaten-Nutzungsrichtlinie festzustellen. Beispielsweise können mit Pysa ohne zusätzliche Einstellungen Projekte mit den Frameworks Django und Tornado überprüft werden. Pysa kann auch häufige Schwachstellen in Webanwendungen erkennen, wie etwa SQL-Injection und Cross-Site-Scripting (XSS).

Auf Facebook wird der Analysator verwendet, um den Code des Instagram-Dienstes zu überprüfen. Im ersten Quartal 2020 half Pysa dabei, 44 % aller Probleme zu identifizieren, die Facebook-Ingenieure in der serverseitigen Codebasis von Instagram fanden.
Insgesamt identifizierte der automatisierte Änderungsüberprüfungsprozess von Pysa 330 Probleme, von denen 49 (15 %) als schwerwiegend und 131 (40 %) als nicht schwerwiegend eingestuft wurden. In 150 Fällen (45 %) wurden die Probleme als falsch positiv eingestuft.

Source: opennet.ru

Kommentar hinzufügen