Eine Coding-Aufgabe aus einem angeblichen Bewerbungsverfahren umfasste 180 Dateien TypeScript und sieben Zeilen, die beim ersten Start fremden Programmcode nachluden. Der Entwickler Benjamin Le Roux hat das Projekt zerlegt und darin einen Fernzugriff, einen Passwort-Dieb, einen Datei-Sammler und einen Mitschnitt der Zwischenablage gefunden. Die Firma, in deren Namen der vermeintliche Personalvermittler auf LinkedIn schrieb, wusste von dem Angebot nichts.

drweb.de als bevorzugte Quelle auf Google hinzufügenQualitätsgeprüfte Inhalte direkt in Google News & DiscoverJetzt hinzufügen

Eine Nachricht auf LinkedIn stellte eine technische Position in Aussicht, kurz darauf kam die Programmieraufgabe. Die Absenderadresse endete auf gmail.com statt auf einer Firmendomain, das Projekt lag in einem Bitbucket-Repository.[1]

Das Wichtigste in Kürze

  • Sieben Zeilen im Testprojekt luden über den Speicherdienst jsonbin.io rund 24.700 Zeichen verschleiertes JavaScript nach.
  • Der nachgeladene Code brachte vier Module mit: Fernzugriff, Browser- und Wallet-Dieb, Datei-Sammler und Zwischenablage-Mitschnitt.
  • Administratorrechte verlangte die Schadsoftware nie, weil SSH-Schlüssel und Cloud-Zugänge dem angemeldeten Nutzer gehören.
  • Das Schweizer Bundesamt für Cybersicherheit rät, Befehle unbekannter Herkunft nie auf dem Arbeitsgerät auszuführen.

Wie kommt der Schadcode in das Testprojekt?

Klemmbrett mit ausgefülltem Bewerbungsbogen und einem darauf liegenden Schlüsselbund
Malware lädt sich beim Start von jsonbin.io und nutzt Node.js-Module für Shell-Befehle und Dateisystemzugriff

Der Schadcode steckt nicht im ausgelieferten Projekt, sondern kommt beim ersten Start aus dem Netz. Eine Funktion namens initPriceConfig holt einen Datensatz von jsonbin.io und übergibt ihn gemeinsam mit require an den Konstruktor von Function. Damit erhält fremder Code den Modulzugriff von Node.js, also Shell-Aufrufe über child_process, das Dateisystem über fs und die Zugangsdaten in process.env.[1]

Kein Paket in der Abhängigkeitsliste trägt die Nutzlast, deshalb schlägt weder npm audit noch ein Lieferketten-Scanner an. Der Nachladeweg führt über einen legitimen Speicherdienst, dessen Domain auf keiner Sperrliste steht. Diese Trennung von harmloser Hülle und ferngesteuerter Nutzlast unterscheidet den Vorfall von Paket-Angriffen wie dem Rust-Paket arrayref, dessen Schadcode schon beim Kompilieren startet.

Le Roux nennt die Prüfung durch einen KI-Assistenten einen schwachen Schutz: Der Aufruf zu jsonbin.io lässt sich melden, der Inhalt der Antwort bleibt einer statischen Prüfung verborgen.[1]

Warum genügt dem Angreifer das normale Nutzerkonto?

Alles, was die Schadsoftware sucht, gehört dem angemeldeten Nutzer. SSH-Schlüssel in .ssh, Cloud-Zugänge in .aws, Browser-Profile und .env-Dateien liegen im Heimatverzeichnis. Ein Prozess unter Ihrem Konto erbt diesen Zugriff ohne sudo und ohne Windows-Rückfrage.[1]

Der Fernzugriff prüft vor der ersten Meldung, ob echte Hardware oder eine virtuelle Maschine läuft. Das Modul liest /proc/cpuinfo und sucht nach Zeichenketten wie vmware oder qemu, danach trägt die Meldung an den Steuerserver die passende Markierung.[1]

Elastic Security Labs beschrieb am 18. Juli 2026 unter dem Namen Contagious Interview sieben trojanisierte Repositories mit derselben Vierer-Architektur.[3] Einen vergleichbaren Fall aus einem LinkedIn-Jobangebot mit versteckter Backdoor dokumentierte Dr. Web im Juni. Auf dieselbe Beute zielen Kampagnen in der Paketwelt, etwa 34 npm-Pakete gegen Wallets und Zugangstoken.

Ein Bewerbungstest ist der einzige Anlass, bei dem ein Fremder Ihnen Code schickt und Sie ihn aus Höflichkeit ausführen. Genau diese Höflichkeit kostet Firmen ihre Produktivzugänge.

— Markus Seyfferth, Chefredakteur Dr. Web
Die Bewerbungsaufgabe in Zahlen

Vier Kennzahlen aus der Analyse des manipulierten Testprojekts.

180
Dateien umfasst das TypeScript-Projekt, sieben Zeilen davon laden nach
24.686
Zeichen verschleiertes JavaScript liefert die zweite Stufe aus
28
Krypto-Wallet-Erweiterungen liest der Browser-Dieb aus
4
Module: Fernzugriff, Browser-Dieb, Datei-Sammler und Zwischenablage

Kein Einzelfall

Elastic Security Labs beschrieb am 18. Juli 2026 sieben trojanisierte Repositories aus gefälschten Bewerbungsverfahren mit genau dieser Vierer-Architektur. Zum Zeitpunkt der Entdeckung schlug kein Virenscanner an. Das Schweizer Bundesamt für Cybersicherheit meldete am 9. Juni 2026 einen Vorfall nach demselben Muster über ein privates GitHub-Repository.

Was folgt daraus für Firmen im DACH-Raum?

Der Schaden trifft den Arbeitgeber, sobald auf dem Rechner Kundendaten oder Produktivzugänge liegen. Artikel 32 DSGVO verpflichtet den Verantwortlichen zu angemessenen technischen Maßnahmen. Die 72-Stunden-Frist aus Artikel 33 läuft ab der Kenntnis im Unternehmen, nicht ab dem Abschluss der forensischen Analyse.

Das Schweizer Bundesamt für Cybersicherheit meldete am 9. Juni 2026 einen praktisch identischen Vorfall. Eine IT-Fachperson lud für ein technisches Interview ein privates GitHub-Repository herunter und fing sich beim Ausführen der Befehle einen Infostealer ein. Die Behörde rät, die Ausschreibung telefonisch über die Nummer der offiziellen Firmenseite zu prüfen.[2]

Fremden Bewerbungscode starten Sie deshalb ausschließlich in einer virtuellen Maschine mit vorherigem Schnappschuss. Ein Container schützt nur so lange, wie kein Verzeichnis des Wirtssystems eingehängt ist, weshalb isolierte Einweg-Umgebungen den Mindeststandard bilden. Rotieren Sie nach einem Verdacht SSH-Schlüssel und API-Token, statt nur Passwörter zu ändern. Den Unterbau dafür beschreiben die Cybersecurity-Grundlagen für KMU, die Fachbegriffe das Cybersecurity-Glossar.

Quellen

[1] Benjamin Le Roux, codedge: „How to compromise your system with a job interview“

[2] Bundesamt für Cybersicherheit BACS: „Woche 23: Stellensuchende im Visier, Phishing, Betrug und Schadsoftware im Bewerbungsprozess“, 9. Juni 2026

[3] Daniel Stepanic, Elastic Security Labs: „Contagious Interview malware in SVG images“, 18. Juli 2026

Mehr Newshunger?

4,5 23 Bewertungen

Wie hat Ihnen dieser Artikel gefallen?