Ein Analyse-Tool wurde veröffentlicht, das 200 schädliche Pakete in NPM und PyPI identifiziert hat.

Die OpenSSF (Open Source Security Foundation), die von der Linux Foundation ins Leben gerufen wurde und darauf abzielt, die Sicherheit von Open Source-Software zu erhöhen, hat das Open-Source-Projekt Package Analysis vorgestellt, das ein System zur Analyse auf das Vorhandensein von schädlichem Code in Paketen entwickelt. Der Code des Projekts ist in Go geschrieben und steht unter der Lizenz Apache 2.0. Eine erste Analyse der NPM- und PyPI-Repositorys mit den bereitgestellten Werkzeugen hat mehr als 200 zuvor nicht bemerkte schädliche Pakete identifiziert.

Die Hauptprobleme der identifizierten Pakete manipulieren die Namensüberschneidungen mit internen, nicht öffentlichen Abhängigkeiten von Projekten (Dependency Confusion-Angriffe) oder verwenden Typ-Squatting-Techniken (Vergabe von Namen, die bekanntesten Bibliotheken ähneln) und führen im Installationsprozess Skripte aus, die auf externe Hosts zugreifen. Laut den Entwicklern von Package Analysis wurden die meisten der identifizierten schädlichen Pakete wahrscheinlich von Sicherheitsforschern erstellt, die an Belohnungsprogrammen für die Entdeckung von Schwachstellen (Bug Bounties) teilnehmen, da die übermittelten Daten auf den Benutzernamen und das System beschränkt sind und die Aktionen offensichtlich ausgeführt werden, ohne zu versuchen, ihr Verhalten zu verbergen.

Die Pakete mit schädlicher Aktivität umfassen:

  • Das PyPI-Paket discordcmd, das für das Senden ungewöhnlicher Anfragen an raw.githubusercontent.com, die Discord API und ipinfo.io verantwortlich ist. Dieses Paket lud Backdoor-Code von GitHub herunter und installierte ihn im Windows-Client-Verzeichnis von Discord, wonach es den Prozess zur Suche nach Discord-Tokens im Dateisystem startete und diese an einen externen Discord-Server sendete, der von den Angreifern kontrolliert wird.
  • Das NPM-Paket colorsss, das ebenfalls versuchte, an externen Server Tokens von Discord-Konten zu übertragen.
  • Das NPM-Paket @roku-web-core/ajax – während der Installation sendete es Systemdaten und startete einen Handler (Reverse Shell), 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 – sendete nach dem Importieren der Bibliothek eine Anfrage an einen externen Server, der einen Befehl und die Zeit zurückgab, wann dieser ausgeführt werden sollte.

Die Arbeit der Paketanalyse besteht darin, die Quelltexte von Installationspaketen zu analysieren, um Netzwerkverbindungen herzustellen, auf Dateien zuzugreifen und Befehle auszuführen. Zusätzlich wird die Änderung des Zustands der Pakete verfolgt, um bösartige Einfügungen in einer der ursprünglich harmlosen Softwareversionen zu bestimmen. Zur Überwachung des Erscheinens neuer Pakete in den Repositories und zur Verwaltung von Änderungen an zuvor veröffentlichten Paketen wird das Package Feeds-Toolset verwendet, das die Arbeit mit den Repositories NPM, PyPI, Go, RubyGems, Packagist, NuGet und Crate vereinheitlicht.

Die Paketanalyse umfasst drei grundlegende Komponenten, die sowohl zusammen als auch einzeln verwendet werden können:

  • Ein Scheduler, der die Analyse der Pakete basierend auf den Daten aus Package Feeds plant.
  • Ein Analyzer, der das Paket direkt überprüft und sein Verhalten mithilfe von statischer Analyse und dynamischem Tracking bewertet. Die Prüfung erfolgt in einer isolierten Umgebung.
  • Ein Uploader, der die Prüfungsergebnisse in das BigQuery-Speicher verweist.

Quelle: opennet.ru

60GB SSD 8Gb DDR4