Aikido

Aikido Drydock | Eine Möglichkeit für Maintainer, Malware zu erkennen, bevor sie veröffentlicht wird

Verfasst von
Dania Durnas

An alle Maintainer: Das hier ist für euch. Wir arbeiten mit Drydock zusammen, damit Maintainer vor der Freigabe genau sehen können, was in einem Paket enthalten ist, und so Malware bereits vor der Veröffentlichung erkennen können, anstatt sie erst im Nachhinein offenzulegen. Mit Drydock könnt ihr die tatsächlichen Bytes einer zur Veröffentlichung vorgesehenen Version einsehen, bevor sie online geht, sodass fehlerhafte Versionen bereits bei der Freigabe erkannt werden und nicht erst im Rahmen einer nachträglichen Analyse. Für npm- und PyPI-Maintainer ist Drydock kostenlos verfügbar.

Malware stoppen, bevor sie veröffentlicht wird

Das vergangene Jahr war geprägt von zahlreichen Malware-Angriffen auf Open-Source-Pakete. Wir haben uns schon daran gewöhnt, Warnmeldungen und Tweets mit der Aufschrift „ALARM! Großer Malware-Angriff!“ zu sehen. Verbesserungen bei der Erkennung und Meldung sind zwar wichtig, doch wenn wir die Vorfälle schließlich offenlegen müssen, ist es bereits zu spät. Paketbetreuer verdienen schon in einer früheren Phase dieses Prozesses mehr Unterstützung, damit sie Probleme erkennen und verhindern können, bevor sie sich in der Wildnis verbreiten und alle in Panik geraten und Schadensbegrenzung betreiben müssen.

Die kürzlich von npm angekündigte Einführung der stufenweisen Veröffentlichung ist ein Schritt in diese Richtung. Mit dem Update wird eine Staging-Warteschlange eingeführt, in der alle Paketversionen darauf warten, dass ein Betreuer mit 2FA die Veröffentlichung manuell genehmigt. Dies bietet zwar die Möglichkeit einer Überprüfung, doch der Betreuer hat keinen Einblick in das vorbereitete Paket. Er kann zwar die Versionsnummer einsehen, aber nicht, welche Daten sich im Paket befinden oder ob und welche Änderungen gegenüber dem aktuellen Zustand des Repositorys vorgenommen wurden.

Aikido zum Ziel Aikido , Paketbetreuern dabei zu helfen, Malware-Angriffe zu verhindern, bevor sie stattfinden. Aus diesem Grund arbeiten wir mit Drydock zusammen, um die Veröffentlichung von Paketen sicherer und die stufenweise Veröffentlichung nützlicher zu gestalten. Wenn Sie ein npm- oder PyPI-Paket betreuen, bietet Ihnen Drydock eine kostenlose Möglichkeit, vor der Veröffentlichung zu überprüfen, was ein Release tatsächlich enthält. Drydock analysiert vorveröffentlichte npm-Pakete und zeigt Ihnen genau, welche Änderungen auf Byte-Ebene vorgenommen wurden, bevor Sie die Freigabe erteilen. So kann der für die Freigabe zuständige Betreuer endlich einen Einblick in das vorbereitete Paket gewinnen.

Da PyPI keine stufenweise Veröffentlichung unterstützt, führt Drydock stattdessen dieselbe Überprüfung innerhalb Ihrer Release-Pipeline durch. Dieser Ansatz gilt auch für npm-Pakete, die ohne Staging veröffentlicht werden. Die Unterstützung für weitere Registries wird ebenfalls in Kürze verfügbar sein. 

So funktioniert Drydock

Sobald eine neue Staged-Version erscheint, erfasst Drydock diese, lädt den entsprechenden Tarball in eine kurzlebige Sandbox herunter, vergleicht ihn mit der zuletzt veröffentlichten Version und zeigt Ihnen den Bericht auf dem Dashboard an. Sie sehen jede Änderung, wobei die sicherheitsrelevanten Änderungen markiert und nach Schweregrad geordnet sind. Diese Markierungen erfassen genau das, worauf Malware abzielt – beispielsweise ein neues Skript im Lebenszyklus vor oder nach der Installation, Dateien, die zuvor nicht vorhanden waren, Code, der einen Prozess startet oder eine Verbindung zum Netzwerk herstellt, oder eine hinzugefügte Binärdatei. Jeder Befund wird an der Zeile markiert, in der er auftritt, sodass sich die Überprüfung wie eine kurze Liste liest, die Sie in Sekundenschnelle überfliegen können, anstatt sich durch eine Flut von Quellcode kämpfen zu müssen. Sie lesen die Befunde durch und genehmigen anschließend den Veröffentlichungsschritt in npm mit Ihrer eigenen 2FA.

Der oben beschriebene Ablauf geht von einer stufenweisen Veröffentlichung über npm aus. Bei PyPI oder bei einem npm-Paket, das ohne Zwischenstufe veröffentlicht wird, läuft Drydock als GitHub-Actions-Umgebungsgate. Die Veröffentlichung wird in Ihrer Pipeline angehalten, bevor sie die Registry erreicht. Drydock überprüft das erstellte Artefakt und veröffentlicht dieselben Diff-Daten sowie die nach Schweregrad geordneten Befunde, und ein Betreuer genehmigt oder lehnt die Veröffentlichung in Drydock ab, bevor etwas veröffentlicht wird.

Drydock veröffentlicht niemals selbst, sodass Sie keine zusätzlichen Fehlerquellen in den Veröffentlichungsprozess einbringen. Drydock verwendet ein schreibgeschütztes npm-Token, das gerade ausreicht, um vorläufige Veröffentlichungen einzusehen. Es ist darauf beschränkt, Dateilisten und Text zu lesen, sodass der Inhalt des Pakets niemals ausgeführt wird. Und ganz im Sinne der Einbindung des Menschen trifft jedes Mal ein Mensch die Entscheidung.

Den Malware-Kreislauf durchbrechen 

Als npm und andere Paketmanager auf den Markt kamen, war die sofortige Veröffentlichung eine Funktion für Ökosysteme, die schnell wachsen konnten, weil sie ihren Mitgliedern vertrauten. Heute jedoch nutzen Angreifer die Schnelligkeit und Einfachheit der Veröffentlichung aus, um Malware-Angriffe durchzuführen.

Die schrittweise Veröffentlichung durchbricht dieses Muster, indem die Version vor ihrer Veröffentlichung zurückgehalten wird. Drydock verleiht dieser Zurückhaltung Bedeutung, indem es dem Betreuer genau anzeigt, was sich geändert hat, solange noch Zeit ist, dies abzulehnen. Die Fehlererkennung erfolgt bereits vor dem ersten Download und nicht erst im Nachhinein, wenn der Schaden bereits entstanden ist.

Das ist die Welt, die wir uns für die Betreuer wünschen. Weniger Nachrichten über Malware beim Aufwachen, dafür mehr Möglichkeiten, Probleme selbst zu entdecken und zu beheben.

Die Einrichtung ist einfach und kostenlos. Aktivieren Sie die „Staged Publishing“-Funktion von npm für Ihr Paket, verbinden Sie Drydock über ein schreibgeschütztes Token mit Ihrer Organisation, und schon beginnt die automatische Überprüfung der Staged-Versionen. Für die Einrichtung von GitHub Actions müssen Sie lediglich die GitHub-App und die Umgebung verknüpfen. Auf der Website von Drydock finden Sie weitere Informationen dazu, wie Sie loslegen können.

Teilen:

https://www.aikido.dev/blog/drydock-pre-publish-package-review

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.