Pysa, ein statischer Analysator für Python von Facebook

Facebook hat einen Open Source Static Analyzer namens "Pysa" eingeführt»(Python Static Analyzer) Entwickelt, um potenzielle Schwachstellen im Python-Code zu identifizieren.

Pysai bietet Datenflussanalyse als Ergebnis der Codeausführung, die ermöglicht es Ihnen, viele potenzielle Schwachstellen und Probleme zu identifizieren Datenschutz in Bezug auf die Verwendung von Daten an Orten, an denen sie nicht angezeigt werden sollten.

Zum Beispiel Pysa kann die Verwendung externer Rohdaten in Anrufen verfolgen die externe Programme, in Dateivorgängen und in SQL-Konstrukten ausführen.

Heute teilen wir Details über Pysa, ein Open-Source-Tool zur statischen Analyse, das wir entwickelt haben, um Sicherheits- und Datenschutzprobleme in Python-Code zu erkennen und zu verhindern. Letztes Jahr haben wir darüber berichtet, wie wir Zoncolan erstellt haben, ein statisches Analysetool, mit dem wir über 100 Millionen Zeilen Hack-Code analysieren und Ingenieuren dabei helfen können, Tausende potenzieller Sicherheitsprobleme zu vermeiden. Dieser Erfolg hat uns dazu inspiriert, Pysa zu entwickeln, ein Akronym für Python Static Analyzer.

Pysa verwendet dieselben Algorithmen statische Analyse durchführen und sogar Code mit teilen Zoncolan. Wie Zoncolan, Pysa Verfolgt Datenflüsse durch ein Programm.

Der Benutzer definiert Quellen (Orte, an denen wichtige Daten stammen) sowie Senken (Orte, an denen die Quelldaten nicht enden sollen).

Bei Sicherheitsanwendungen sind die häufigsten Arten von Quellen Orte, an denen benutzergesteuerte Daten in die Anwendung gelangen, z. B. das Django-Wörterbuch.

Empfänger sind in der Regel viel vielfältiger, können jedoch APIs enthalten, auf denen Code ausgeführt wird, z evaloder APIs, die auf das Dateisystem zugreifen, zos.open

Pysa führt iterative Analyserunden durch, um Abstracts zu erstellen um zu bestimmen, welche Funktionen Daten von einer Quelle zurückgeben und welche Funktionen Parameter haben, die schließlich eine Senke treffen. Wenn Pysa feststellt, dass eine Quelle möglicherweise eine Verbindung zu einer Senke herstellt, wird ein Problem gemeldet. 

Analysatorarbeit Es läuft darauf hinaus, eingehende Datenquellen zu identifizieren und gefährliche Anrufe, bei denen die Originaldaten nicht verwendet werden sollten.

Pysa überwacht den Datenfluss durch die Kette von Funktionsaufrufen und ordnet die Originaldaten potenziell gefährlichen Stellen im Code zu.

Da wir für unsere eigenen Produkte Open-Source-Python-Server-Frameworks wie Django und Tornado verwenden, kann Pysa von Anfang an auf Sicherheitsprobleme in Projekten stoßen, die diese Frameworks verwenden. Die Verwendung von Pysa für Frameworks, für die wir noch keine Abdeckung haben, ist im Allgemeinen so einfach wie das Hinzufügen einiger Konfigurationszeilen, um Pysa mitzuteilen, wo Daten auf den Server gelangen.

Eine von Pysa festgestellte häufige Sicherheitsanfälligkeit ist ein offenes Weiterleitungsproblem (CVE-2019-19775) in der Zulip-Messaging-Plattform, das durch die Übergabe unreiner externer Parameter bei der Anzeige von Miniaturansichten verursacht wird.

Die Datenflussverfolgungsfunktionen von Pysa können verwendet werden, um die Verwendung zusätzlicher Frames zu validieren und die Einhaltung der Richtlinien zur Verwendung von Benutzerdaten zu bestimmen.

Zum Beispiel Pysa ohne zusätzliche Konfigurationen kann verwendet werden, um Projekte mithilfe der Frameworks zu überprüfen Django und Tornado. Pysa kann auch häufige Schwachstellen in Webanwendungen identifizieren, z. B. SQL-Ersetzung 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 festgestellt haben.

Dabei wurden insgesamt 330 Probleme festgestellt 49 (15%) der automatisierten Änderungsüberprüfung mit Pysa wurden als signifikant bewertet und 131 (40%) waren nicht gefährlich. In 150 Fällen (45%) wurden die Probleme auf falsch positive Ergebnisse zurückgeführt.

Der neue Parser wurde als Ergänzung zum Pyre-Toolkit zur Typüberprüfung entwickelt und in Ihrem Repository abgelegt. Der Code wird unter der MIT-Lizenz veröffentlicht.

Schließlich wenn Sie mehr darüber wissen wollen, Sie können die Details im Originalbeitrag überprüfen. Der Link ist dies.


Hinterlasse einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert mit *

*

*

  1. Verantwortlich für die Daten: Miguel Ángel Gatón
  2. Zweck der Daten: Kontrolle von SPAM, Kommentarverwaltung.
  3. Legitimation: Ihre Zustimmung
  4. Übermittlung der Daten: Die Daten werden nur durch gesetzliche Verpflichtung an Dritte weitergegeben.
  5. Datenspeicherung: Von Occentus Networks (EU) gehostete Datenbank
  6. Rechte: Sie können Ihre Informationen jederzeit einschränken, wiederherstellen und löschen.