Die OpenSSF (Open Source Security Foundation), ins Leben gerufen von der Linux Foundation, hat ein Projekt zur Paket-Analyse vorgestellt, das darauf abzielt, die Sicherheit von Open Source Software zu erhöhen. Das Projekt basiert auf der Programmiersprache Go und wird unter der Apache 2.0 Lizenz veröffentlicht. Eine vorläufige Analyse der NPM- und PyPI-Repositories mit den bereitgestellten Werkzeugen hat über 200 zuvor unentdeckte schadhafte Pakete identifiziert.
Der Großteil der identifizierten problematischen Pakete manipuliert die Namensgebung durch das Überschneiden mit internen, nichtöffentlichen Abhängigkeiten der Projekte (Dependency-Confusion-Angriffe) oder verwendet Typ-Squatting-Methoden (Vergabe von Namen, die populären Bibliotheken ähneln). Zudem rufen sie während der Installation Skripte auf, die externen Hosts zugreifen. Laut den Entwicklern von Package Analysis wurden die meisten der identifizierten problematischen Pakete wahrscheinlich von Sicherheitsexperten erstellt, die an Belohnungsprogrammen für die Entdeckung von Schwachstellen (Bug Bounties) teilnehmen, da die gesendeten Daten auf Benutzername und System beschränkt sind und die Aktionen eindeutig ausgeführt werden, ohne zu versuchen, ihr Verhalten zu verbergen.
Folgende Pakete mit schädlicher Aktivität wurden festgestellt:
- Das PyPI-Paket discordcmd, bei dem untypische Anfragen an raw.githubusercontent.com, die Discord API und ipinfo.io festgestellt wurden. Dieses Paket lud einen Backdoor-Code von GitHub herunter und installierte ihn im Verzeichnis des Windows-Clients von Discord, woraufhin es einen Prozess zum Durchsuchen der Dateisysteme nach Discord-Token startete und diese an einen externen Discord-Server sendete, der von den Angreifern kontrolliert wird.
- Das NPM-Paket colorsss, das ebenfalls versuchte, Daten an externe Quellen zu übermitteln. der Server Tokens von einem Discord-Konto.
- Das NPM-Paket @roku-web-core/ajax — während der Installation wurden Systemdaten gesendet und ein Handler (Reverse Shell) gestartet, der externe Verbindungen akzeptierte und Befehle ausführte.
- Das PyPI-Paket secrevthree — startete eine Reverse Shell beim Import eines bestimmten Moduls.
- Das NPM-Paket random-vouchercode-generator — nach dem Import der Bibliothek wurde eine Anfrage an einen externen Server gesendet, der einen Befehl und die Zeit zurückgab, zu der er ausgeführt werden sollte.
Die Arbeit der Paket-Analyse besteht darin, den Quellcode von Paketen auf Netzwerkverbindungen, Dateizugriffe und das Ausführen von Befehlen zu überprüfen. Zusätzlich wird die Änderung des Zustands von Paketen überwacht, um das Hinzufügen schädlicher Einfügungen in einem ursprünglich harmlosen Software-Paket zu erkennen. Zur Überwachung neuer Pakete in Repositories und zur Durchführung von Änderungen an zuvor veröffentlichten Paketen wird das Werkzeug Package Feeds eingesetzt, das die Arbeit mit Repositories von NPM, PyPI, Go, RubyGems, Packagist, NuGet und Crate vereinheitlicht.
Die Paket-Analyse umfasst drei grundlegende Komponenten, die sowohl zusammen als auch separat verwendet werden können:
- Ein Scheduler, der Paketanalyse-Jobs basierend auf Daten aus den Package Feeds startet.
- Ein Analyzer, der das Paket direkt überprüft und sein Verhalten mittels statischer Analyse und dynamischer Tracing-Methoden evaluiert. Überprüfungen erfolgen in einer isolierten Umgebung.
- Ein Loader, der die Prüfergebnisse in den BigQuery-Speicher überträgt.
Quelle: opennet.ru
