Zum Inhalt springen

Malware im Git-Hook post-checkout nimmt Entwickler ins Visier

Entwickler Frank Wiles berichtet, dass ihm ein falscher Kunde ein Repo schickte, dessen Git-Hook post-checkout beim Branch-Wechsel Malware nachlud. Jobsuchenden droht derselbe Trick.

Von Tech AI Wire Team

4 Min. Lesezeit

XLinkedIn
Screenshot of Frank Wiles' blog post headed 'I got targeted' on FrankWiles.com.

Entwickler Frank Wiles schrieb am 2. Oktober 2026, dass Angreifer versucht hätten, mit einem präparierten Git-Repository seine Konten zu übernehmen. Die Falle war ein post-checkout-Hook, ein Skript, das Git jedes Mal ausführt, wenn du den Branch wechselst. Es ist der jüngste Fall einer Kampagne, die mindestens seit Mai Jobsuchende trifft. Die Lehre für Entwickler: Schon das bloße Auschecken eines Branches im Repository eines anderen kann dessen Code ausführen.

Was Frank Wiles passiert ist

Der Angreifer gab sich als Inhaber einer Entwicklungsagentur aus, schrieb Wiles in seinem Blog. Er bat ihn, ein NDA zu prüfen, eine Geheimhaltungsvereinbarung, und teilte ein Repository über Dropbox. Dann bat er ihn, zu einem "NDA-Branch" zu wechseln.

Dieser Branch-Wechsel war der Auslöser. Im Ordner .git/hooks/ des Repositorys lag ein post-checkout-Hook. Als Wiles den Branch wechselte, lud der Hook von einem auf Vercel gehosteten Server ein Programm herunter, das für sein Betriebssystem gebaut war. Er machte die Datei ausführbar, startete sie und löschte sich dann selbst.

Wiles glaubt, das Ziel sei gewesen, "Zugriff auf meinen Github-Account und/oder andere Zugänge im Zusammenhang mit REVSYS-Kunden zu erlangen". Er merkt an, dass der post-checkout-Hook selten genutzt wird, was ihn leicht übersehbar macht. Sein Rat an andere Entwickler lautet, "besonders wachsam zu sein und die eigenen Zugangsdaten mit Argusaugen zu bewachen".

Wie Git-Hooks zur Waffe werden

Git-Hooks sind kleine Skripte, die Git zu festgelegten Zeitpunkten automatisch ausführt, etwa vor einem Commit oder nach einem Checkout. Sie sind eine normale Funktion und werden für Aufgaben wie das Ausführen eines Linters genutzt. Ein normales git clone von einem Server kopiert keine Hooks, deshalb nutzen diese Angreifer andere Wege.

Die Berichte zeigen zwei Wege:

  • Den ganzen Ordner verschicken. Wiles bekam sein Repository über Dropbox. In einem Fall, den Andrii in einem Blogbeitrag im Mai analysierte, erhielt das Opfer eine "Demo-Codebasis" auf Google Drive. Ein geteilter Ordner oder ein Archiv kann das versteckte Verzeichnis .git enthalten, samt Hooks.
  • Das Opfer bitten, Hooks einzuschalten. OpenSourceMalware beschreibt Repositorys, die Hooks in einem Ordner .githooks aufbewahren. Opfer haben sie offenbar mit git config core.hooksPath .githooks aktiviert, ohne sie zu lesen.

So oder so läuft der Hook während ganz normaler Arbeit. In dem Fall, den Andrii analysierte, wurde er bei git checkout dev ausgelöst, dem Befehl, um den Hauptcode anzusehen.

Was die Malware stiehlt

Die Schadprogramme unterscheiden sich, zielen aber auf dieselben Dinge. Andriis Analyse fand ein Programm, das nach SSH-Schlüsseln wie id_ed25519, nach .env-Dateien, Kryptowallets und Zertifikaten suchte. Es durchsuchte die Ordner Desktop, Dokumente und Downloads und lud Dateien unter 10 MB hoch. Außerdem schickte es jede Sekunde den Inhalt der Zwischenablage, und es ließ den Angreifer Befehle auf dem Rechner ausführen.

Ein Bericht vom Juli im Blog Citizen Dot beschreibt eine ähnliche Falle hinter einem falschen Jobangebot. Ein "Recruiter" auf LinkedIn bot einen Remote-Vertrag an, der "10.000 bis 15.000 Dollar im Monat" zahlen sollte. Das Probeprojekt für zu Hause kam als Zip-Datei auf Google Drive, mit einem Git-Hook, der einen Stealer für Kryptowallets nachlud.

Wer dahintersteckt

OpenSourceMalware ordnet die Kampagne der Lazarus Group zu, der nordkoreanischen Hackergruppe. Die Seite bringt den Git-Hook-Trick mit der Kampagne "Contagious Interview" aus gefälschten Vorstellungsgesprächen in Verbindung, die sich vor allem gegen Menschen aus Krypto und Web3 richtet. In den untersuchten Fällen lief die Malware, "wenn der Kandidat zum ersten Mal versucht, den Fehler zu beheben und zu committen". Post-checkout-Hooks nannte die Seite eine "noch fiesere" Variante, weil sie schon bei einem einfachen Branch-Wechsel auslösen.

Der Fall, den Wiles beschreibt, nutzte einen falschen Kunden und ein NDA, kein Jobangebot. Die Methode, ein versteckter Hook, der seine Schadsoftware von einem Server lädt, ist dieselbe.

Was das für Entwickler bedeutet

Öffne ein Repository, das du als Ordner oder Archiv bekommen hast, niemals auf deinem eigenen Rechner. Klone es stattdessen frisch von einem Git-Host, oder öffne es in einer Wegwerf-VM oder einem Container. Ein frischer Klon lässt die Hooks des Absenders zurück.

Bevor du in geteiltem Code einen Git-Befehl ausführst, sieh in .git/hooks/ nach Dateien ohne die Endung .sample. Prüfe .git/config auf eine Einstellung hooksPath, und suche nach einem Ordner .githooks. Der Autor von Citizen Dot rät, versteckte Ordner wie .git und .vscode zu untersuchen, bevor man nicht vertrauenswürdigen Code anfasst.

Du kannst Hooks auch für einen einzelnen Befehl abschalten. Der Befehl git -c core.hooksPath=/dev/null checkout <branch> verweist Git auf einen leeren Ort, sodass kein Hook läuft.

Betrachte jede Bitte, deine Git-Einstellungen zu ändern, als Warnsignal. Ein echter Kunde oder Arbeitgeber hat keinen Grund, dich zu bitten, seine Hooks zu aktivieren. Wenn du glaubst, dass ein Hook schon gelaufen ist, geh davon aus, dass deine SSH-Schlüssel, Tokens und .env-Geheimnisse offenliegen. Tausche sie von einem sauberen Rechner aus und prüfe dein GitHub-Konto auf neue Schlüssel oder Sitzungen.

Quellen

  1. I got targeted: Trying to get your credentials via a git post-checkout hook - Frank Wiles
  2. Be careful with your Git: Investigating malware spreading through Git repositories - andrii.ro
  3. Lazarus Group Uses Git Hooks To Hide Malware - OpenSourceMalware
  4. I Inspected My Take-Home Interview Project. It Was a Trap - Citizen Dot

Ähnliche Artikel