JFrog beschreibt IronWorm als maßgeschneiderte Malware, die speziell für Angriffe auf Entwickler und deren Arbeitsumgebungen gebaut wurde. Der Schadcode missbraucht kompromittierte npm-Publishing-Workflows und bösartige Paketaktualisierungen, um Geheimnisse aus Entwicklerumgebungen abzugreifen. Dazu zählen laut JFrog API-Schlüssel, Cloud-Zugangsdaten, SSH-Schlüssel und npm-Publishing-Token.

Technisch fällt die Malware durch mehrere Tarn- und Persistenzmechanismen auf. JFrog zufolge setzt IronWorm ein Rootkit ein, das die erweiterte Berkeley Packet Filter-Technik (eBPF) des Linux-Kernels missbraucht, um schädliche Prozesse, Dateien, Netzwerkaktivitäten und weiteres Verhalten vor Sicherheitssystemen zu verbergen. Zusätzlich verschlüsselt die Malware eingebettete Textbestandteile mit jeweils eigenen Schlüsseln im gesamten Codebestand statt mit einem einzelnen fest eingebauten Schlüssel. Das erschwere Analyse und Erkennung erheblich, so JFrog.

Die Kampagne wurde laut JFrog bei der Analyse verdächtiger Vorgänge rund um ein Entwicklerkonto im Arweave-/WeaveDB-Ökosystem entdeckt. OX Security, das den Vorfall ebenfalls verfolgt, beziffert das Ausmaß auf mindestens 36 unterschiedliche npm-Pakete mit zusammen mehr als 32.000 monatlichen Downloads. Nach Angaben des Unternehmens wurde die Bedrohung eingedämmt, bevor sie sich auf weitere, populärere Pakete ausbreiten konnte.

JFrog berichtet zudem, dass der Betreiber der IronWorm-Kampagne die schädlichen Pakete wieder als veraltet markierte und sie innerhalb eines Tages nach ihrer Veröffentlichung stillschweigend von GitHub entfernte. Zu diesem Zeitpunkt hatte der Angreifer nach Angaben des Unternehmens jedoch bereits mindestens 57 bösartige Codeänderungen in Repositories von neun Organisationen vorgenommen. Laut JFrog wurden diese Änderungen rückdatiert, um den zeitlichen Ablauf der Kompromittierung zu verschleiern und forensische Analysen zu erschweren.

In seiner Analyse hebt JFrog hervor, dass sich die untersuchte Probe keiner bekannten Familie klar zuordnen ließ. Man habe sie mit bekannten Infostealern, eBPF-Rootkits und Kommando-und-Kontroll-Frameworks abgeglichen, jedoch keine Übereinstimmung gefunden. Auch auf Quell-Repository-URLs in der Binärdatei oder erkennbar übernommenen Code habe nichts hingedeutet. JFrog kommt deshalb zu dem Schluss, dass es sich um ein „individuell entwickeltes, sorgfältig gebautes Implantat“ handelt, das in einer ausgefeilten und aufwendigen Operation eingesetzt werde.

Als nächstliegende Vergleichsbasis nennt JFrog die Kampagne „Shai-Hulud“. Gemeinsam seien insbesondere das Vorgehen gegen Entwickler, der Diebstahl von Zugangsdaten und die weitere Ausbreitung über vertrauenswürdige Abläufe in der Software-Lieferkette. Selbst die Commit-Namen entsprächen denen von Shai-Hulud. Zugleich gehe IronWorm laut JFrog mit seinem Funktionsumfang einen Schritt weiter.

Der Fall reiht sich in eine Serie ähnlicher Angriffe auf Entwickler und Entwicklungsumgebungen ein. Im laufenden Jahr spielte ein Angreifer mit der Malware „Megalodon“ binnen weniger Stunden bösartige Commits in mehr als 5.500 GitHub-Repositories ein. In anderen Kampagnen kompromittierte die Cybercrime-Gruppe TeamPCP das Cloud-Sicherheitswerkzeug Trivy sowie weitere Projekte, um Infostealer gegen Cloud-Zugangsdaten, Token, SSH-Schlüssel und andere Geheimnisse aus CI/CD-Workflows zu verteilen. 2024 übernahmen Angreifer GitHub-Konten mithilfe einer Kombination aus gestohlenem Code, präparierten Commits und einer gefälschten Python-Paketquelle.