Aikido

Jeder liefert Code aus, den er nicht lesen kann.

Verfasst von
Samuel Vandamme

Früher konnte man Entwickelnde leicht erkennen. Sie hatten das schwarz-grüne Terminal, den Editor mit siebzehn geöffneten Dateien und die unheimliche Fähigkeit, Vim zu beenden (`esc :q!`, falls Sie es nicht wussten). Softwareentwicklung hatte eine hohe Hürde, und diese Hürde hielt die meisten Menschen fern.

Öffnen Sie etwas wie Claude Cowork, tippen Sie „Erstelle mir ein Tool, das diese Tabelle bereinigt und mir jeden Montag eine Zusammenfassung per E-Mail schickt“ und gehen Sie weg. Minuten später gibt es ein funktionierendes Ergebnis. Hinter dem Chatfenster startete ein Agent eine virtuelle Maschine, schrieb echten Code, zog alle benötigten Bibliotheken heran, führte es aus, stieß auf einen Fehler, behob ihn und lieferte Ihnen das Ergebnis. Sie beschrieben ein Ergebnis, während eine Maschine die Ingenieursarbeit erledigte. 

Herzlichen Glückwunsch! Sie sind jetzt ein Entwickelnder, einer, der nie eine einzige Zeile dessen gesehen hat, was erstellt wurde.

Die Abhängigkeit, die Sie nicht gewählt haben

Um Ihr Problem zu beheben, greift Ihr freundlicher Nachbarschaftsagent auf eine öffentliche Bibliothek magischer Pakete zu und lädt den Code von Fremden auf eine Maschine herunter. So funktioniert moderne Software, und Entwickelnde tun dies ständig. Der Unterschied ist, dass diese Entwickelnden zumindest wissen, dass `npm install` läuft und welche Risiken damit verbunden sind. Sie vielleicht nicht. Sie haben nach einem Tabellenbereiniger gefragt.

Und diese Bibliothek steht unter aktivem Angriff. Diesen Monat hat ein Angreifer 141 Pakete im beliebten @mastra AI-Agent-Ökosystem in einem 45-minütigen nächtlichen Ansturm neu veröffentlicht und dabei eine bösartige Abhängigkeit in jedes einzelne eingeschleust. Das vergiftete Paket, ein Double einer gängigen Datumsbibliothek, führte zur Installationszeit ein Skript aus, das eine zweite Payload herunterlud, diese als unsichtbaren Hintergrundprozess startete und sich dann selbst löschte, um die Spuren zu verwischen. Die Payload durchsuchte über 160 Browser-Krypto-Wallets und nistete sich für Persistenz auf Mac, Windows und Linux ein. Ein betroffenes Kernpaket wird wöchentlich fast eine Million Mal heruntergeladen.

Wenn ein Entwickelnder eine Abhängigkeit hinzufügt, ist in der Regel eine gewisse Beurteilung im Spiel. Wenn sie mit den beliebten oder vertrauenswürdigen Tools in diesem Bereich noch nicht vertraut sind, werfen sie vielleicht einen Blick auf die Downloadzahlen, den letzten Commit und wer es pflegt. Dann geht die Entscheidung in einen Pull Request, wo jemand anderes das Paket hinterfragen und überprüfen kann, bevor es zusammengeführt wird. Wie eine KI nach einem Paket greift, ist unklar. Manchmal ist es einfach das Gängigste, oder manchmal ist es wirklich obskur. Aber KIs halluzinieren auch Pakete, die echt klingen, es aber nicht sind. Wenn Letzteres passiert, existiert im besten Fall das von der KI erfundene Paket nicht. Im schlimmsten Fall hat ein Angreifer erraten, was eine KI erfinden könnte, und bösartige Malware unter diesem Paketnamen platziert. Dies wird Slopsquatting genannt, und es ist etwas, worauf jeder achten sollte, der KI zum Codieren verwendet.

Dies ist kein Argument gegen die Verwendung der Tools

Die Tools sind transformativ und werden nicht wieder in die Kiste zurückkehren. Sandboxing hilft, eine isolierte VM begrenzt einen gewissen Explosionsradius, und das ist real. Aber der Code in den Sandboxes wird in echte Repositories und mit echten Anmeldeinformationen versendet, sobald er nützlich ist, und Isolation behebt nicht den Teil, wo Sie die Abhängigkeiten nie überprüft haben.

LLMs haben jedem die Tastatur in die Hand gegeben, was wunderbar ist. Doch dabei haben wir die gefährlichste Entscheidung in der Softwareentwicklung (welchem Code vertraue ich genug, um ihn auszuführen?) an einen Ort verlagert, an dem kein Mensch hinschaut. Die Antwort ist nicht, jeden Diff erneut zu lesen. Dieser Zug ist abgefahren. Stattdessen müssen wir die Vertrauensprüfung dorthin verlagern, wo die Installation stattfindet. Bekannte bösartige Pakete blockieren, bevor sie auf die Maschine gelangen, Installationsskripte optional statt automatisch machen und den Satz „der Agent hat es erledigt“ als etwas betrachten, das Sie leicht nervös machen sollte.

Jeder ist jetzt ein Entwickelnder. Das Fahrrad hat keine Stützräder, und die meisten neuen Fahrer haben beide Hände vom Lenker genommen.

Keine Leitplanken! Die gute Nachricht ist, dass Sie diese wieder hinzufügen können, ohne jemanden auszubremsen. Aikido Device Protection fängt das schädliche Paket im entscheidenden Moment ab, bevor es installiert wird, sodass der Satz „der Agent hat es erledigt“ Sie nicht mehr beunruhigen muss.

Wenn Sie herausfinden möchten, wie Sie Ihre „vibe-coded“ Apps sichern können, sehen Sie sich unsere Vibe Coding Checklist for Security an.

Teilen:

https://www.aikido.dev/blog/shipping-code-they-cant-read

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Sicherheit jetzt implementieren

Sichern Sie Ihren Code, Ihre Cloud und Ihre Laufzeit in einem zentralen System.
Finden und beheben Sie Schwachstellen schnell und automatisch.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sek.