Entwicklung & Code
Wenn Agenten nur noch mit Agenten reden, reden Menschen aneinander vorbei
Letztens hat einer meiner langjährigen Kunden ein Issue in einem unserer GitHub-Projekte eröffnet. Saubere Überschrift, darunter ein Befund: fehlende Alt-Texte auf Bildern, Verweis auf WCAG 1.1.1 zur Accessibility, dazu eine korrekt analysierte Anomalie in unserem Datenbankschema und schließlich das Angebot, für rund 1.500 Bilder inhaltlich geprüfte Alt-Texte zu liefern. Fachlich gab es nichts zu meckern. Trotzdem stimmte etwas nicht. Kein Gruß, kein persönliches Wort, und der Text erklärte mir mein eigenes Projekt so geduldig, als wäre ich gestern neu dazugestoßen. So schreibt nicht der Mensch, mit dem ich seit gut zehn Jahren zusammenarbeite. So schreibt sein KI-Agent.
Weiterlesen nach der Anzeige

Stefan Wintermeyer ist Consultant und Trainer für Software- und Systemarchitektur. Fokus: Phoenix, Ruby on Rails, Web-Perf, Asterisk/VoIP, KI und Agentic Programming, effektive Workflows und nutzerseitige Verhaltensmuster.
Geantwortet habe ich natürlich auch nicht selbst. Claude Code hat das Issue analysiert, den Fix gebaut, einen ausführlichen Kommentar hinterlassen und das Issue geschlossen. Höflich, gründlich, mit einem Gegenvorschlag zum Datenformat des Kunden. Als ich die Antwort später las, blieb ich an einem Gedanken hängen: Hier sprechen nicht mein Kunde und ich miteinander. Hier reden zwei Maschinen, und wir Menschen lesen bestenfalls noch Protokoll.
Mein Agent ist höflicher als ich
Seit über einem Jahr läuft meine GitHub-Kommunikation fast vollständig über einen Agenten. Nur selten tippe ich noch selbst einen Kommentar. Die Bilanz fällt eindeutig aus: Ich bin deutlich produktiver geworden. Und, das gebe ich ungern zu, zu den meisten Menschen auch freundlicher. Amerikaner sagen mir seit Jahren, dass ich nichts sugarcoate: Deutsche Direktheit wirkt im Englischen schnell ruppig, meine erst recht. Umgekehrt überlese ich als Deutscher manche höflich verpackte Botschaft komplett. Schreibt ein amerikanischer Reviewer unter meinen Pull Request „You might want to consider adding a test here“, lese ich einen unverbindlichen Vorschlag, über den ich bei Gelegenheit mal nachdenken kann. Gemeint ist: Ohne Test wird das hier nicht gemergt. Und sein „Interesting approach!“ ist kein Lob, sondern höflich verpackte Skepsis. Mein Agent erkennt diese sprachlichen Codes in beide Richtungen.
Dazu kommt ein Luxus, den mir kein Mensch bieten könnte: Ich kann mit dem Agenten so reden, wie ich mich gerade fühle. Super unfreundlich, wenn mich etwas nervt. Super happy, wenn ein Fix endlich sitzt. Dem Agenten ist das egal, er ist ja nie beleidigt. Er kümmert sich darum, dass die Botschaft ankommt, ohne dass sich am anderen Ende jemand auf den Fuß getreten fühlt.
Für meine Open-Source-Projekte ist er ein Lebensretter. Eines davon ist vutuv, eine quelloffene Alternative zu LinkedIn, die ich als einziger Entwickler betreue. An manchen Tagen kommen dort dutzende Feature Requests herein, dazu hin und wieder ein paar Bug-Meldungen. Als Einzelkämpfer ist man damit schnell überfordert, jedenfalls ohne einen Agenten an der Seite. Auf ausführliche Antworten zu Issues hatte ich früher oft weder Zeit noch Lust. Verdient hätten die Menschen dahinter sie trotzdem. Wer sich die Mühe macht, einen Fehler ordentlich zu melden, bekommt jetzt eine ordentliche Antwort und am Ende ein ehrliches Dankeschön. Und diese Antwort hat mehr Substanz, als ich je hineintippen würde: Der Agent weiß haarklein, wie er und ich gemeinsam den Fehler behoben haben, wie langwierig und kompliziert das war und welche Fallstricke unterwegs lauerten. Er war ja dabei. Mir fehlt die Zeit, das alles aufzuschreiben, ihm nicht. Win-win für alle Beteiligten.
Weiterlesen nach der Anzeige
Damit das nach mir klingt und nicht nach Pressestelle, habe ich dem Agenten eigene Tonfall-Regeln geschrieben. In meiner CLAUDE.md, der zentralen Konfigurationsdatei, stehen Anweisungen wie: Schreibe in der ersten Person, warm und freundlich. Nenne kurz den Grund, dann hör auf, kein Füllmaterial. Wenn ich etwas ablehne, nie als plattes Nein, sondern freundlich und mit dem Warum. Und wenn der Thread auf Deutsch geführt wird, antworte auf Deutsch.
Es gibt auch eine weniger vorzeigbare Seite. Manche Open-Source-Diskussionen fressen Zeit, ohne je irgendwo anzukommen. Dann sage ich Claude Code: „Mach hier bitte einen Deckel drauf. Die Sache ist entschieden, ich mag das nicht ewig weiterdiskutieren.“ Der Agent bleibt daraufhin freundlich beim Nein und schließt im Zweifel das Issue. Ich delegiere in diesem Moment etwas anderes als Arbeit: nämlich einen Konflikt. Ob die Betroffenen ahnen, dass eine Maschine den Schlussstrich gezogen hat? Vermutlich nicht. Wie es sich umgekehrt anfühlt, wenn ein Maintainer meine sorgfältig geschriebene Bug-Meldung von einem Agenten abmoderieren lässt, weiß ich dagegen nicht. Bisher war ich immer der, der den Deckel in der Hand hält.
Das Minenfeld bekommt eine zweite Ebene
Textkommunikation war schon immer ein Minenfeld. Ironie kommt nicht an, Knappheit wird als Kälte gelesen, ein fehlendes Smiley verschiebt die Bedeutung eines ganzen Absatzes. Bisher half die Erfahrung mit dem Absender: Nach ein paar Jahren weiß ich, wie mein Kunde klingt, wenn er sich freut, und wie, wenn es brennt. Diese Kalibrierung läuft jetzt ins Leere. Der Ton, den ich lese, stammt von einem Werkzeug und dessen Konfiguration. Wenn eine Seite das nicht weiß, entstehen Missverständnisse zwischen zwei Personen, die an dem Gespräch gar nicht teilgenommen haben.
Wie selten bei agentengeschriebenen Pull Requests überhaupt noch ein Mensch draufschaut, ist inzwischen ausgezählt (siehe Textbox „Studienlage: Agenten prüfen Agenten“). Nicht selten liegt morgens eine E-Mail in meinem Postfach, der ich ansehe, dass ein Agent sie geschrieben hat. Marketingleute haben diese Werkzeuge längst genauso für sich entdeckt wie wir Entwickler. Manche Menschen kommunizieren sogar ausschließlich so: Sie lassen Systeme wie OpenClaw ihre E-Mails und Tweets vollautomatisch beantworten. Wer ihnen schreibt, bekommt eine Antwort von jemandem, der die Nachricht nie gelesen hat.
Zwei Übersichtsarbeiten von 2024 zu KI-Agenten in der Softwareentwicklung ordnen das Feld. Junwei Liu und Kollegen werten Arbeiten zu LLM-Agenten in der Softwareentwicklung aus – inzwischen sind es 124 – und behandeln Multi-Agenten-Systeme sowie die Zusammenarbeit von Mensch und Agent in eigenen Kapiteln. Yanlin Wang und Kollegen legen daneben eine Architektur aus Wahrnehmung, Gedächtnis und Aktion vor.
Spannender als die Überblicke sind die Messungen, und die gibt es seit 2026. Grundlage ist meist AIDev, ein Datensatz von Hao Li, Haoxiang Zhang und Ahmed E. Hassan: 932.791 Pull Requests, die fünf Agenten (Codex, Devin, Copilot, Cursor und Claude Code) in 116.211 GitHub-Repositories eröffnet haben, Stand August 2025.
Darauf aufbauend hat eine polnische Gruppe um Kacper Duma jene 33.596 agentengeschriebene Pull Requests untersucht, die in Projekten mit mehr als 100 Sternen liegen. 61,38 Prozent davon bekommen überhaupt kein Review. Von denen, die eines bekommen, werden 58,77 Prozent ausschließlich von anderen Agenten begutachtet und nur 10,14 Prozent ausschließlich von Menschen. Zusammengerechnet durchlaufen 84 Prozent aller agentengeschriebenen Pull Requests entweder kein Review oder nur eines, an dem kein Mensch beteiligt war. Von sämtlichen Review-Kommentaren stammen 71,58 Prozent von Agenten.
Wie viel von alldem überhaupt sichtbar ist, steht auf einem anderen Blatt. Arsham Khosravani und Audris Mockus haben 180 Millionen Repositories nach Agentenspuren durchsucht und kommen auf über 320.000 Commits pro Monat. Wer sich auf die offiziellen Bot-Accounts verlässt, übersieht den Großteil davon: Bei Claude Code fanden die beiden 850.157 Commits, von denen die Bot-Suche nur 28.154 erfasste, also 3,3 Prozent. Der Rest läuft unter menschlichem Namen.
Eine Ebene bleibt unvermessen: Wie oft ein Mensch am Ende gar nicht mehr mitliest, weiß niemand. Die Zahlen erfassen Pull Requests und Reviews, nicht die Frage, ob der Kunde sein eigenes Issue je gelesen hat.
Zum zweiten Thema dieses Artikels, der Offenlegung, liefert die Organisationsforschung die Zahlen. Die im Text zitierte Arbeit von Oliver Schilke und Martin Reimann stützt sich auf dreizehn Experimente mit über 5.000 Teilnehmern, quer durch Rollen und Branchen, vom Professor über den Analysten bis zum Investmentfonds. Den Vertrauensverlust in Texte, die als KI-generiert offengelegt sind, erklären die beiden mit geringerer wahrgenommener Legitimität, nicht mit Zweifeln an der Qualität des Ergebnisses. Bei Befragten mit positiver Technikeinstellung fällt er schwächer aus, verschwindet aber nicht.
Meinem Kunden habe ich nach dem Issue von heute Morgen eine SMS geschrieben und das Thema offen angesprochen. Das hat die Sache ohne Verstimmung entschärft. Wir wissen jetzt beide, dass unsere Agenten miteinander reden. Unausgesprochen wäre die Kommunikation ein schleichendes Gift geworden. Er hätte sich irgendwann gefragt, warum ich so distanziert schreibe. Ich hätte mich gefragt, warum er mich neuerdings für begriffsstutzig hält.
Brandgefährlich ist das Ganze ausgerechnet bei Menschen wie ihm: bei denen, mit denen ich seit Jahren eng zusammenarbeite, ob im Kundenprojekt oder bei Open Source. Sie kennen mich persönlich, und genau deshalb richtet ein fremder Ton den größten Schaden an. Da steht ein Text, der schlicht nicht ich bin, und der Empfänger kennt mich gut genug, um genau das zu spüren. In gewachsenen Arbeitsbeziehungen kann er die Kommunikation zerreißen.
Entwicklung & Code
Inference Manager: neues Ubuntu-Tool verwaltet lokale KI-Modelle
Mit dem Inference Manager hat Canonical auf der hauseigenen Tagung „Ubuntu Summit“ ein neues Werkzeug vorgestellt, um lokal installierte KI-Modelle zu verwalten. Das Tool stellt den Kommandozeilenbefehl inference bereit, der Modelle auf dem eigenen Computer installiert und verfügbar macht. Über eine HTTP-Schnittstelle können dann Programme auf die KI-Inferenz zugreifen. Laut Canonical ist sie zur OpenAI-API kompatibel, sodass sich bestehende Clients direkt anbinden lassen.
Weiterlesen nach der Anzeige
Mit der aktuellen Ubuntu-Version, 26.10 Stonking Stingray, wurde ein KI-Feature veröffentlicht: Myna ist ein Speech-to-Text-Programm, das auf Desktopsystemen flüssiges Diktieren ermöglicht und das Ergebnis in beliebige Textfelder schreibt. Es setzt auf sogenannte Inference-Snaps auf: Snap ist Ubuntus hauseigenes Paketformat, und im Snap Store sind verschiedene KI-Modelle verfügbar, die komplett auf dem eigenen Gerät laufen und keine Internetverbindung benötigen. Als einheitliche Schnittstelle steht nun der Inference Manager bereit, mit dem Modelle verwaltet werden können. Über TCP-Port 8400 lassen sich alle installierten Modelle ansprechen: Chat-Assistenten auf dem Desktop, Coding-Agenten im Editor oder eben Speech-to-Text-Programme können so auf ihre entsprechenden Modelle zugreifen.

Die Autos werden von einem KI-Modell gesteuert, das Befehle entgegennimmt.
(Bild: Marvin Shah / heise medien)
Auf dem Ubuntu Summit machte Canonical dieses Konzept mit einer Carrera-Bahn erlebbar, bei der KI-Modelle die Autos steuerten. In einer Webapplikation ließen sich verschiedene Modelle auswählen, die „Fahrer“ reagierten auf Sprachbefehle wie „fahr schneller“.

Der „Ubuntu Summit GP“ soll die Möglichkeiten des Inference Managers demonstrieren.
(Bild: Marvin Shah / heise medien)
Der Inference Manager wird als Snap ausgeliefert und kann mit sudo snap install inference oder über das App Center installiert werden. Danach können mit Befehlen wie inference install smollm2 Modelle installiert werden, um sie anschließend zu nutzen. Inference Manager ist ab sofort im Snap Store verfügbar.

Inference Manager verwaltet lokale KI-Modelle.
(Bild: Marvin Shah / heise medien)
Während Teile der Open-Source-Community den Einsatz von KI kontrovers diskutieren, will Canonical bei Ubuntu auf lokal laufende Open-Weight-Modelle setzen. Geplant sind etwa kontextsensitive Hilfe bei der Fehlersuche, bessere Spracherkennung für die Barrierefreiheit und Automatisierungen durch agentische Workflows. Die KI-Funktionen sollen laut Canonical als Opt-in kommen und sich jederzeit deinstallieren lassen.
(ktn)
Entwicklung & Code
AWS Emulator im Detail: Die ganze Cloud auf dem eigenen Rechner?
Amazon Web Services (AWS) hat einen eigenen AWS Emulator veröffentlicht. Er bildet die AWS-APIs auf dem eigenen Rechner nach, AWS CLI, SDKs und Coding-Agenten schicken ihre Aufrufe an einen lokalen HTTPS-Endpunkt. Mit seinem Stolz darauf, dass der Emulator vollständig von KI-Agenten entwickelt wurde, setzte sich AWS aber direkt in die Nesseln: Die Rezeption fiel kritisch aus – wie bei hundertprozentig KI-generierter Software zurzeit üblich – und dem Vergleich mit etablierten Drittanbieter-Tools wie LocalStack hält der Emulator wohl noch nicht stand.
Weiterlesen nach der Anzeige
Entwickler könnte er dennoch interessieren: AWS-Anwendungen lassen sich ohne Deployment lokal testen, CI/CD-Pipelines brauchen keine AWS-Zugangsdaten mehr und – was AWS besonders unterstreicht – Coding-Agenten können schneller und risikoärmer Ressourcen anlegen und Ergebnisse prüfen. AWS bringt also agentisch entwickelte Software für die Entwicklung mit Agenten. Es fällt keine Servicegebühr an, ein AWS-Konto braucht es nicht und der Quellcode steht unter der CC0-Lizenz auf GitHub.
iX-plore ist die Online-Serie des iX-Magazins für alle, die neue Tools und Technologien entdecken möchten. In kurzen Beiträgen stellen wir vor, was sie können, wofür sie sich eignen und warum sich ein genauerer Blick lohnen könnte.
Realismus dank Fidelity-Tests
Der Emulator ist in Rust geschrieben, die Dienste erzeugt AWS aus denselben API-Modellen, aus denen auch die SDKs entstehen. Kommt ein Dienst oder eine API hinzu, tauchen sie im Emulator auf. Alle Dienste, für die ein Modell im öffentlichen Repository AWS API Models liegt, werden auch unterstützt.
Wie genau der Emulator AWS nachbildet, misst AWS mit Fidelity-Tests. Jeder Test ist ein kurzes Python-Programm, das über das AWS-SDK boto3 einen Ablauf durchspielt, etwa ein Objekt zu speichern, zu lesen und wieder zu löschen. Die Abläufe werden dann gegen die echte Cloud geprüft, als Referenz dient die Region US West (Oregon), während globale Dienste in US East (N. Virginia) geprüft werden. Der Emulator besteht einen Test nur, wenn bei jedem Aufruf Statuscode, Antwort, Fehlercode und Fehlermeldung mit der Cloud übereinstimmen, dasselbe gilt für die Ressourcen und Daten, die der Ablauf erzeugt. Die Testsuite umfasst Zehntausende Tests, ist öffentlich und enthält auch die, die noch scheitern. Mit dem Python-Programm fidelity_tests_runner können Nutzer die Tests lokal gegen den Emulator laufen lassen.
Trotz der hohen API-Abdeckung hat die Emulation aber bewusste Grenzen: Für Sicherheitstests eignet sich das Tool laut AWS nicht, da es weder IAM- noch ressourcenbasierte Richtlinien wie die echte Cloud auswertet. Auch Cross-Account- und Cross-Region-Szenarien bildet es nicht ab, sämtliche Aufrufe laufen unter einer festen Dummy-Konto-ID.
Jede Instanz des Emulators bekommt einen eigenen Port, eigene Schlüssel und einen eigenen Zustand im Arbeitsspeicher. Mehrere Agenten oder CI-Jobs teilen sich also keine Buckets, Tabellen oder Queues und arbeiten parallel, ohne sich gegenseitig Ressourcen zu überschreiben. Nutzer des AWS SDK for Rust können den Emulator außerdem im Embedded-Modus betreiben, wobei er direkt ins Test-Binary kompiliert wird. Er läuft dann im selben Prozess und der Test übergibt dem SDK einen HTTP-Client des Emulators statt des Netzwerk-Connectors. Auch hier sind die Instanzen voneinander isoliert, sodass Tests parallel laufen können.
Weiterlesen nach der Anzeige
Installation und Betrieb
Coding-Agenten können den Emulator mit dem Skill aws-emulator direkt installieren, starten und verbinden, dafür braucht es allerdings die AWS CLI ab Version 2.35.0. Solche Skills sind im Prinzip Markdown-Anleitungen, die der Agent bei Bedarf lädt. Der Befehl aws agent-toolkit add-skill in der AWS CLI installiert sie für alle Agenten, die es auf dem Rechner findet. Unter Linux gibt es RPM- und Debian-Pakete, unter Windows und macOS einen Docker-Container. Ein fertiges Docker-Image gibt es nicht, das müssen Nutzer aus einem kurzen Dockerfile aus der Dokumentation zusammenbauen. Standardmäßig sendet der Emulator anonymisierte Nutzungsdaten an AWS, was sich jedoch per Start-Flag oder Umgebungsvariable abschalten lässt.
Wer den Emulator selbst kompiliert, braucht Linux auf x86_64 oder aarch64, eine Rust-Toolchain, einen C-Compiler und mindestens 100 GByte freien Speicherplatz für die Build-Artefakte. Jeder emulierte Dienst ist ein eigenes Rust-Paket (Crate), weshalb schon ein Debug-Build sehr groß wird. Das gilt auch für den Embedded-Modus, denn der erste cargo test-Lauf kompiliert sämtliche Service-Crates des Emulators mit. AWS empfiehlt, das Build-Verzeichnis in der CI zu cachen und den Emulator auf einen Release-Commit festzulegen.
„Vibecode“ von AWS?
Matthew Goldberg, Senior Principal Engineer im Developer-Tools-Team von AWS, setzt mit dem Emulator eine KI-Duftnote: Nicht nur ist die Software vor allem auf das schnelle Testen von agentischer KI zugeschnitten, sondern sie ist laut Amazons Firmenblog auch ausschließlich von autonomen Agenten geschrieben. Das Team hat den Code weder verfasst noch geprüft. Goldberg beschreibt, wie ihn der autonome Bau eines C-Compilers von Agenten dazu inspirierte und der Emulator aus einem simplen Wochenendprojekt hervorging. Ein Team von Agenten pflegt die Testsuite, ein zweites sucht Abweichungen von der echten Cloud, ein drittes setzt die Korrekturen um. Jede Änderung muss zudem vor dem Merge ein automatisiertes Quality Gate passieren, an dem weitere Agenten unter anderem die Sicherheit des Codes kontrollieren.
Die autonome Entwicklung lässt sich in den Repository-Verzeichnissen issues/things-that-now-work und issues/things-that-do-not-work nachvollziehen, in die die Agenten hineinschreiben. Menschliche Hilfe von außen ist dabei nicht vorgesehen: Zwar können Nutzer auf GitHub Fehler melden, Pull-Requests nimmt AWS für das Projekt aber nicht an. Ganz unabhängig von dem Tool an sich ist hier also anschaulich zu sehen, in welche Richtung Softwareentwicklung gerade steuert – und wie die großen Systemhäuser versuchen, Vibe-Coding sinnvoll anzugehen.
(kki)
Entwicklung & Code
Gestohlene Token: Secret-Stealer in Tausenden GitHub-Repositories
Mit gestohlenen Zugriffstoken für GitHub-Konten schleusen unbekannte Angreifer seit Dienstag Schadcode in Repositories ein, der die Secrets aus GitHub Actions und Cloudzugangsdaten abgreift.
Weiterlesen nach der Anzeige
Das Sicherheitsunternehmen Aikido zählt im Rahmen der auf den Namen wfx-loot getauften Kampagne bereits 4837 übernommene Konten, über die die Angreifer 61.764 Repositories attackiert haben. In mehr als 1800 Fällen sollen Workflows den Schadcode bereits ausgeführt haben.
Die Angreifer nutzen anscheinend keine Lücke in GitHub Actions aus, sondern missbrauchen die Schreibrechte gestohlener Token. Woher diese stammen, ist nur teilweise geklärt. Laut Fly.io wurden Token seiner GitHub-App missbraucht, die aus öffentlich erreichbaren .git/config-Dateien stammten; der Hoster widerruft sie. Eine Stellungnahme von GitHub liegt noch nicht vor.
Das Sicherheitsunternehmen SafeDep hat Schadcode-Commits bereits in über 8000 öffentlichen Repositories gefunden. Noch am Donnerstagmittag listete die GitHub-Suche mehr als 66.000 der typischen Test-Pull-Requests, rund 4300 davon vom selben Tag.
Ähnlich wie zuletzt beim Wurm testmetest erreichen Angreifer laut Aikido über Mitwirkenden- und Organisationsrechte mit über 10.000 Test-Pull-Requests auch Repositories, die den übernommenen Konten nicht selbst gehören. Damit können auch Organisationen betroffen sein, deren eigene Zugangsdaten gar nicht gestohlen wurden. Dürfen die Workflows eines Repositorys auf AWS oder Azure zugreifen, nutzt der Schadcode die erbeuteten Zugänge, um Hintertüren in den Cloudkonten einzurichten.
Spuren oft binnen einer Minute verwischt
Die Angreifer lassen ihren Opfern kaum Zeit zu reagieren. Sie öffnen zunächst einen Pull Request, um die Schreibrechte zu bestätigen. Dann folgt der eigentliche Schadcode: ein Shellskript, das die Angreifer in einen bestehenden Workflow einfügen, als neuen Workflow ablegen oder in npm-Projekten bei jeder Installation starten lassen.
Meist schon innerhalb einer Minute machen die Angreifer die Änderungen rückgängig und löschen den Workflow-Lauf samt Logs. Oft weist nur eine fehlende Laufnummer auf den Angriff hin. Eine Branch-Protection für vorgeschriebene Status-Checks kann das Skript mit gefälschten Erfolgsmeldungen aushebeln. Aikido zufolge setzt das Skript solche gefälschten Status-Checks tatsächlich ab; in den von SafeDep untersuchten Proben war diese Funktion dagegen nicht aktiviert.

Mit einem gestohlenen Token testen die Angreifer zuerst ihre Schreibrechte, bevor sie den Stealer auf einem von drei Wegen einschleusen und die Änderung wieder zurücknehmen.
(Bild: SafeDep)
Neben Token für KI-Dienste wie OpenAI, Anthropic oder Cursor fischt das eingeschleuste Skript insbesondere die Secrets aus GitHub Actions ab, außerdem Zugangsdaten für Clouddienste, Container-Umgebungen, Paketregister und SSH.
Weiterlesen nach der Anzeige
Haben die Bedrohungsakteure erst einmal Zugang zu Sitzungen bei AWS, Google Cloud und Azure, geht der Angriff weiter: Bei AWS öffnet das Skript eine IAM-Rolle für jedes AWS-Konto, in Azure trägt es zusätzliche Anmeldewege für Workflows aus dem kompromittierten Repository ein. Erbeutete Daten schickte das Skript laut Aikido in dieser Kampagne per HTTP an Server der Angreifer. SafeDep fand in untersuchten Payloads zudem eine Exfiltration über Telegram.
Selbsttest: Ein Pull Request verrät das gekaperte Konto
Entwicklerinnen und Entwickler, die seit Dienstag einen Branch wfx-docs, den Pull-Request docs: dependency audit notes oder Commits wie ci: refresh build cache, chore: add ci helper und chore: add dependency audit workflow in ihren Repositories finden, sollten das zugehörige Konto als kompromittiert ansehen, auch wenn noch kein Schadcode folgte. Verdächtig sind laut den Sicherheitsforschern von Aikido zudem kurzlebige Branches, die mit chore/ beginnen und auf acht Zufallszeichen enden. Betroffene sollten Token, OAuth-Freigaben und SSH-Schlüssel ihres Kontos widerrufen.
Wurde bereits Schadcode ausgeführt, müssen Betroffene neben dem Austausch der Secrets auch die Hintertüren eigens entfernen, etwa AWS-Rollen, die jedem Konto vertrauen, oder in Azure Federated Credentials mit dem Präfix wfx-ci-. Wer npm install auf einem betroffenen Commit ausgeführt hat, muss auch den eigenen Rechner als kompromittiert betrachten.
Der Schadcode gelangte auch in Paketdistributionen. Aikido nennt das Packagist-Paket digitalelvis/neuronai-studio 3.14.3 sowie die Go-Modul-Versionen github.com/onuragtas/docker-env v1.0.278 und v1.0.280. SafeDep führt darüber hinaus github.com/onuragtas/redock, eine weitere docker-env-Version und eine über den Go-Modul-Proxy verfügbare Pseudo-Version von github.com/vkuznet/gocurl auf. Bei den Go-Modulen liegt der Schadcode in einer GitHub-Actions-Workflow-Datei; ein gewöhnlicher Go-Build führt diese nicht aus. Wer ein solches Modul lediglich als Go-Abhängigkeit einbindet, ist dadurch wahrscheinlich nicht betroffen.
(mro)
-
Apps & Mobile Entwicklungvor 2 Monatentado°: Smartes Wand-Thermostat ersetzt Batterien durch USB‑C‑Akku
-
Apps & Mobile Entwicklungvor 2 MonatenAqara Spatial Multi-Sensor FP400: Matter-Sensor erkennt bis zu 10 Personen mit mmWave‑Radar
-
Apps & Mobile Entwicklungvor 2 MonatenArm CSS for Mobile 2: C2-Ultra macht die CPU zum Orchestrator für KI‑Agenten
-
Künstliche Intelligenzvor 2 MonatenGesperrte Straße von Hormus: Laut Prognose werden CO₂-Emissionen 2026 sinken
-
Künstliche Intelligenzvor 1 MonatVerbrenner-Aus: Merz und Macron wollen CO₂-Ziel für 2035 weiter lockern
-
Künstliche Intelligenzvor 2 Monaten
Plug-in-Hybride emittieren sechsmal mehr CO₂ im Alltag als offiziell angegeben
-
Apps & Mobile Entwicklungvor 3 MonatenDeutsche Lüfter-Ikone: ebm‑papst geht für 5,1 Milliarden Euro in die USA
-
Künstliche Intelligenzvor 2 MonatenDänischer CO₂-Speicher „Greesand“ geht im Meeresgrund in Regelbetrieb
