
Project Aura: Security auditing and code introspection

Der aktuelle Trend in der Entwicklung besteht darin, viele Pakete in der Entwicklungsphase zu verwenden, selbst wenn sie nur triviale Funktionalität bieten und aus 11 Zeilen Code bestehen. Kombiniert man dies mit sehr liberalen Richtlinien zur Veröffentlichung neuer Pakete, beobachten wir einen Anstieg bösartiger Angriffe, die auf Entwickler abzielen. Es gibt mehrere verschiedene Ansätze von Bedrohungsakteuren:
Dies sind nur einige Beispiele für Techniken, mit denen ein Entwickler sich selbst gefährden kann. Dies wird durch die Tatsache unterstützt, dass es keinen Überwachungsprozess für das gibt, was in die Repositorys wie PyPI oder NPM hochgeladen wird, und dass die bisherigen Vorfälle nur durch reines Glück entdeckt wurden. Unser Ziel ist es, dies zu verbessern.
Wir haben ein Framework entwickelt, das entwickelt wurde, um Quellcode in großem Umfang zu scannen (z.B. das gesamte PyPI-Repository), um nach Anomalien, potenziell bösartigen Absichten sowie Schwachstellen zu suchen. Dieses Framework ist auch dafür ausgelegt, Quellcode auf Anfrage zu scannen, z.B. wenn ein Paket von einem Entwickler installiert wird oder einfach eine beliebige Sammlung von Dateien/Verzeichnissen. Die Implementierung zielt derzeit auf die Python-Sprache und PyPI ab, ist jedoch so ausgelegt, dass sie die Einbeziehung anderer Sprachen ermöglicht (z.B. Javascript und NPM).
Der Satz von Anwendungsfällen umfasst unter anderem:
Eine hochoptimierte hybride Analyse-Engine ermöglicht dies. Eine Analyse wird in einer vollständig sicheren Umgebung unter Verwendung statischer Code-Analyse ohne Code-Ausführung durchgeführt. Die Aura-Kern-Engine analysiert den aus dem Quellcode geparsten AST-Baum und führt eine Verhaltensanalyse und den Code-Ausführungsfluss durch. Die Engine unterstützt auch das Umschreiben des AST-Baums mithilfe einer Reihe von Regeln wie Konstantenpropagation, Folding oder statische Auswertung; dies sind Techniken, die Compiler zur Optimierung des Codes verwenden. Aus diesem Grund handelt es sich bei diesem Analyseansatz um einen "hybriden", da er die statische Analyse durch eine vollständig sichere partielle Auswertung verbessert, die es uns ermöglicht, einfachere Verschleierungsmechanismen zu überwinden.
Unten sehen Sie eine Demonstration verschiedener Quellcode-"Verschleierungs"-Techniken, die von der Aura-AST-Transformations-Engine erkannt werden:

Um das Framework zu erlernen und mit der Nutzung zu beginnen, lesen Sie die Dokumentation zur Installation, Konfiguration und Nutzung.
Der Kern von Aura ist die Analyse des Quellcodes auf Anomalien oder potenzielle Schwachstellen. Aura verfügt über mehrere eingebaute Analysatoren, die nach Anomalien wie der Verwendung von eval im Setup-Skript suchen; andere Analysatoren untersuchen die Dateisystemstruktur (nicht-Quellcode) und suchen z.B. nach durchgesickerten Anmeldeinformationen, hartcodierten API-Tokens usw. Diese Analysatoren generieren sogenannte Treffer, die die gefundenen Anomalien definieren und können auch eine Punktzahl enthalten, die zur Berechnung der Sicherheits-Aura der gescannten Daten verwendet wird. Es wird empfohlen, ein angemessenes Urteilsvermögen hinsichtlich der dargestellten Anomalien auf der Grundlage der Funktionalität der Eingabedaten zu verwenden. Zum Beispiel ist es völlig normal, dass eine requests-Bibliothek netzwerkbezogene Aufrufe enthält, während gleichzeitig nicht erwartet wird, dass eine Bildverarbeitungsbibliothek Daten über das Netzwerk sendet. Es gibt auch Unterstützung für die Ausgabe von Daten im JSON-Format, das für massive Repository-Scans oder die Integration in andere Produkte geeignet ist. Für Beschreibung und Verwendung anderer Komponenten konsultieren Sie die Dokumentation.


##Dokumentation
Dieses Projekt ist unter der GPLv3-Lizenz lizenziert - siehe die Datei LICENSE.txt für Details. Teile dieses Frameworks enthalten (optionale) Integrationen mit anderen Produkten wie der r2c-Plattform, libraries.io, usw.; diese unterliegen ihren eigenen Lizenzen und Nutzungsbedingungen.