Die Entwickler der Plattform Packj, die die Sicherheit von Bibliotheken analysiert, haben ein Open-Source-Tool für die Kommandozeile veröffentlicht, das riskante Konstrukte in Paketen aufdecken kann, die mit der Durchführung von böswilligen Aktivitäten oder der Existenz von Schwachstellen in Verbindung stehen, die für Angriffe auf Projekte verwendet werden, die diese Pakete nutzen («supply chain»). Es wird eine Überprüfung von Paketen in den Programmiersprachen Python und JavaScript unterstützt, die in den Repositories PyPi und NPM abgelegt sind (diesen Monat wird auch die Unterstützung für Ruby und RubyGems hinzugefügt). Der Code des Tools ist in Python geschrieben und wird unter der Lizenz AGPLv3 verbreitet.
Bei der Analyse von 330.000 Paketen mit dem bereitgestellten Tool im Repository PyPi wurden 42 bösartige Pakete mit Backdoors und 2.400 riskante Pakete identifiziert. Während der Untersuchung wird eine statische Codeanalyse durchgeführt, um Merkmale der API zu identifizieren und das Vorhandensein bekannter Schwachstellen, die in der OSV-Datenbank erfasst sind, zu bewerten. Für die API-Analyse wird das Paket MalOSS verwendet. Der Code der Pakete wird auf das Vorhandensein typischer Muster untersucht, die üblicherweise in bösartiger Software vorkommen. Diese Muster basieren auf der Untersuchung von 651 Paketen mit nachgewiesener bösartiger Aktivität.
Es werden auch Attribute und Metadaten identifiziert, die das Risiko einer nicht zielgerichteten Nutzung erhöhen, wie zum Beispiel die Ausführung von Codeblöcken über «eval» oder «exec», die Erstellung neuen Codes zur Laufzeit, die Verwendung von Techniken zur Verschleierung und Verstecken von Code (obfuscated), Manipulationen mit Umgebungsvariablen, unzulässiger Zugriff auf Dateien, Anfragen an Netzwerkressourcen in Installationsszenarien (setup.py), die Verwendung von Typ-Squatting (Vergabe von Namen, die populären Bibliotheken ähneln), die Identifizierung veralteter und aufgegebener Projekte, die Angabe nicht existierender E-Mail-Adressen und Websites, und das Fehlen eines öffentlichen Repositories mit Code.
Zusätzlich kann erwähnt werden, dass andere Sicherheitsforscher fünf bösartige Pakete im Repository PyPi identifiziert haben, die Daten nach außen sendeten. Server Inhalte von Umgebungsvariablen zur Entwendung von Tokens für AWS und kontinuierliche Integrationssysteme: 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
