Die Entwickler der Plattform Packj, die die Sicherheit von Bibliotheken analysiert, haben ein öffentliches Kommandozeilenwerkzeug veröffentlicht, das riskante Konstrukte in Paketen identifizieren kann, die mit bösartiger Aktivität oder Schwachstellen in Verbindung stehen, welche zur Durchführung von Angriffen auf Projekte, die die betreffenden Pakete verwenden ("supply chain"), genutzt werden können. Die Überprüfung von Paketen in den Programmiersprachen Python und JavaScript, die in den Verzeichnissen PyPi und NPM gehostet werden, wird unterstützt (diesen Monat planen sie auch die Unterstützung von Ruby und RubyGems hinzuzufügen). Der Code des Werkzeugs ist in Python geschrieben und steht unter der AGPLv3-Lizenz.
Bei der Analyse von 330.000 Paketen mit den verfügbaren Werkzeugen im PyPi-Repository wurden 42 schadhafte Pakete mit Backdoors und 2.400 riskante Pakete identifiziert. Im Rahmen der Untersuchung wird eine statische Codeanalyse durchgeführt, um API-Spezifika zu identifizieren, und die Existenz bekannter Sicherheitsanfälligkeiten aus der OSV-Datenbank wird bewertet. Für die API-Analyse kommt das Paket MalOSS zum Einsatz. Der Code der Pakete wird auf typischen Mustern untersucht, die üblicherweise in schadhafter Software verwendet werden. Die Muster wurden anhand von 651 Paketen mit bestätigter bösartiger Aktivität erstellt.
Es werden auch Attribute und Metadaten identifiziert, die das Risiko einer missbräuchlichen Nutzung erhöhen, wie die Ausführung von Blocks über „eval“ oder „exec“, die Generierung neuen Codes zur Laufzeit, der Einsatz von Techniken zur Verschleierung und Kodierung von Code, Manipulationen mit Umgebungsvariablen, unbefugter Zugriff auf Dateien, der Zugriff auf Netzwerkressourcen in Installationsskripten (setup.py), die Verwendung von Typ-Quoting (Vergabe von Namen, die beliebten Bibliotheken ähneln), die Identifizierung veralteter und aufgegebener Projekte, die Angabe nicht existierender E-Mail-Adressen und Websites sowie das Fehlen eines öffentlichen Repositories mit Code.
Zusätzlich kann festgestellt werden, dass von anderen Sicherheitsforschern fünf bösartige Pakete im PyPi-Repository entdeckt wurden, die Dateninhalt der Server von Umgebungsvariablen mit dem Ziel der Token-Diebstahl für AWS und kontinuierliche Integrationssysteme versendeten: loglib-modules (vorgestellt als Module der legitimen Bibliothek loglib), pyg-modules, pygrata und pygrata-utils (vorgestellt als Ergänzungen zur legitimen Bibliothek pyg) sowie hkg-sol-utils.

Quelle: opennet.ru
