Wiz verfolgt die Kampagne unter dem Namen „prt-scan". Sie folgt auf die Ende Februar beobachtete Kampagne „hackerbot-claw", bei der bösartige Pull Requests dieselbe GitHub-Funktion ausnutzten, um Tokens, Geheimnisse, Umgebungsvariablen und Cloud-Zugangsdaten zu stehlen. Während „hackerbot-claw" kürzer, gezielter und gegen prominente Repositories gerichtet war, fiel „prt-scan" laut Wiz deutlich breiter aus: Der Akteur öffnete weit mehr als 500 Pull Requests gegen kleine wie große Projekte – allerdings mit geringerem Erfolg.
Im Zentrum steht der Auslöser pull_request_target in GitHub Actions. Entwickler nutzen Pull Requests, um Änderungen an einem Projekt vorzuschlagen, die die Maintainer prüfen und einpflegen. Der Auslöser führt zugehörige Workflows im Haupt-Repository automatisch aus, sobald ein Pull Request eingereicht wird – auch aus einem nicht vertrauenswürdigen Fork. Da die Aktion mit vollen Repository-Rechten läuft und auf dessen Geheimnisse zugreifen kann, lassen sich über einen manipulierten Pull Request API-Schlüssel oder Zugangsdaten abgreifen. Wiz weist darauf hin, dass diese Fehlkonfiguration bei nicht vertrauenswürdigen Pull Requests ohne Einschränkungen gut bekannt und dokumentiert ist.
Das Vorgehen folgte einem festen Muster: Der Angreifer suchte zunächst nach Repositories mit dem pull_request_target-Auslöser, forkte sie, legte einen Branch an und versteckte Schadcode in einer scheinbar routinemäßigen Aktualisierung, die das Projekt dann automatisch ausführte.
Laut Wiz begann die Aktivität mit zehn bösartigen Pull Requests in einer offenbar mehrtägigen Testphase. Nach einer fast zweiwöchigen Pause nahm der Angreifer die Aktivität wieder auf, und zwar in einem Tempo, das auf KI-gestützte Automatisierung hindeutet: Innerhalb von 26 Stunden öffnete er rund 475 Pull Requests mit einer Schadroutine zum Diebstahl von Zugangsdaten.
Trotz des ambitionierten Aufbaus der Schadroutine sei die tatsächliche Umsetzung schludrig gewesen und deute darauf hin, dass der Angreifer das Berechtigungsmodell von GitHub nicht vollständig verstanden habe, so Wiz. „Der Angreifer versuchte sich an einer ausgefeilten mehrstufigen Schadroutine, füllte sie aber mit Techniken, die einem Experten unlogisch erscheinen und in der Praxis nur selten funktionieren würden", erklärte der Anbieter.
Erfolgreiche Angriffe trafen den Forschern zufolge meist kleine Hobbyprojekte und legten dabei nur kurzlebige GitHub-Zugangsdaten des Workflows offen. Zugang zu Produktionsinfrastruktur, Cloud-Zugangsdaten oder dauerhaften API-Schlüsseln verschaffte sich der Akteur abgesehen von wenigen Ausnahmen nicht. Dennoch führte die Erfolgsquote von zehn Prozent zu Dutzenden Kompromittierungen. Wiz veröffentlichte Kompromittierungsindikatoren (IoCs) zur Kampagne und rief Organisationen dazu auf, ihre GitHub-Umgebungen abzusichern.
