Nach Angaben von Socket wurden auf Docker Hub neue Image-Tags mit den Bezeichnungen 0.69.5 und 0.69.6 veröffentlicht – ohne dass es dazu entsprechende GitHub-Releases oder -Tags gab. Beide Images enthielten laut den Forschern Kompromittierungsindikatoren, die mit dem Infostealer zusammenhängen, den TeamPCP nach dem Eindringen in Aqua Securitys GitHub-Organisation einschleuste. Die letzte bekannte reguläre Trivy-Version sei 0.69.3. Socket warnt ausdrücklich: “Docker-Hub-Tags sind nicht unveränderlich, und Organisationen sollten sich für die Integrität nicht allein auf Tag-Namen verlassen.”

Aqua Security teilte mit, dass der Bedrohungsakteur Zugriff auf die GitHub-Organisation erlangte, weil ein früherer Vorfall am selben Werkzeug nur unvollständig eingedämmt worden war. “Wir haben Geheimnisse und Token rotiert, aber der Prozess war nicht atomar, und die Angreifer könnten Kenntnis von den erneuerten Token erlangt haben”, erklärte das Unternehmen. Dadurch konnte der Angreifer Code zum Abgreifen von Zugangsdaten – den sogenannten TeamPCP Cloud stealer – in Trivy einbringen und manipulierte Versionen veröffentlichen.

Als Reaktion veröffentlichte Aqua neue, sichere Trivy-Versionen und zog die Incident-Response-Firma Sygnia zur Aufarbeitung und forensischen Untersuchung hinzu. In einer späteren Aktualisierung berichtete das Unternehmen jedoch von weiteren verdächtigen Aktivitäten: Dieselben Angreifer hätten sich erneut unbefugten Zugang verschafft und “unbefugte Änderungen und Manipulationen an Repositories” vorgenommen. Trivy sei davon nach Unternehmensangaben nicht betroffen gewesen.

Die Plattform OpenSourceMalware analysierte, dass TeamPCP Zugriff auf die Organisation aquasec-com erhielt, in der Aqua seinen proprietären Code hostet – getrennt von der Organisation aquasecurity für öffentliche Repositories. Mit einem Automatisierungsskript versahen die Angreifer binnen rund zwei Minuten alle 44 Repositories mit dem Präfix tpcp-docs- und änderten sämtliche Beschreibungen in “TeamPCP Owns Aqua Security” (“TeamPCP besitzt Aqua Security”).

Mit hoher Sicherheit gehen die Forscher davon aus, dass der Zugang über ein kompromittiertes Dienstkonto namens Argon-DevOps-Mgt erfolgte, das Rechte für beide GitHub-Organisationen besaß. Das Konto autorisierte Aktionen über ein Personal Access Token (PAT) eines Standardnutzers statt über eine GitHub-App. Ein solches PAT funktioniert wie ein Passwort, ist länger gültig und unterliegt bei Dienstkonten typischerweise keiner Mehr-Faktor-Authentifizierung. Um die Administratorrechte zu prüfen, legten die Angreifer im öffentlichen Repository aquasecurity/trivy-plugin-aqua kurzzeitig einen Branch an und löschten ihn “in genau derselben Sekunde” wieder.

Nach Einschätzung von OpenSourceMalware erlangten die Angreifer das PAT mithilfe des TeamPCP Cloud stealer, der GitHub-Token, SSH-Schlüssel, Cloud-Zugangsdaten und Umgebungsvariablen aus CI-Runnern sammelt. Die Plattform stellte Kompromittierungsindikatoren bereit, mit denen Verteidiger eine Betroffenheit prüfen können. Aqua Security erklärte, es gebe keine Hinweise darauf, dass die in den kommerziellen Produkten genutzte Trivy-Version betroffen sei, da die geforkte Version der kommerziellen Plattform der Open-Source-Variante über einen kontrollierten Integrationsprozess bewusst zeitlich nachlaufe. Weitere Erkenntnisse kündigte das Unternehmen an.