Die beiden Ökosysteme werden auf unterschiedliche Weise angegriffen. Die Ruby-Gems sind darauf ausgelegt, den Diebstahl von Zugangsdaten bereits während der Installation zu automatisieren. Dabei lesen sie Umgebungsvariablen, SSH-Schlüssel, AWS-Geheimnisse sowie die Konfigurationsdateien .npmrc, .netrc, die Einstellungen der GitHub-CLI und RubyGems-Zugangsdaten aus. Die erbeuteten Daten werden anschließend an einen vom Angreifer kontrollierten Endpunkt bei Webhook[.]site übertragen.
Die Go-Module verfügen über umfassendere Fähigkeiten: Sie manipulieren GitHub-Actions-Workflows, platzieren gefälschte Go-Wrapper, stehlen Entwicklerdaten und tragen einen fest einprogrammierten öffentlichen SSH-Schlüssel in die Datei „~/.ssh/authorized_keys" ein, um Fernzugriff auf das kompromittierte System zu erhalten. Dabei tragen nicht alle Module dieselbe Schadlast; sie ist stattdessen über den gesamten Verbund verteilt.
Boychenko beschreibt den Ablauf im Detail: Das Modul wird über die Funktion init() ausgeführt, erkennt die Variablen GITHUB_ENV und GITHUB_PATH, setzt HTTP_PROXY und HTTPS_PROXY, schreibt eine gefälschte go-Programmdatei in ein Cache-Verzeichnis und hängt dieses Verzeichnis an den Workflow-Pfad an, sodass der Wrapper noch vor der eigentlichen Programmdatei ausgewählt wird.
Dieser Wrapper kann laut Boychenko spätere go-Aufrufe abfangen oder beeinflussen und reicht die Kontrolle dennoch an die legitime Programmdatei weiter, um den Ablauf nicht zu stören und so unauffällig zu bleiben.
Nutzern, die die Pakete installiert haben, wird geraten, sie von ihren Systemen zu entfernen, nach Anzeichen für Zugriffe auf sensible Dateien oder unbefugte Änderungen an „~/.ssh/authorized_keys" zu suchen, offengelegte Zugangsdaten zu erneuern und die Netzwerkprotokolle auf ausgehenden HTTPS-Datenverkehr zum Abflussziel zu überprüfen.
