Transcript
00:00:00Ich nehme dies ein paar Stunden nach einem extrem verheerenden Supply-Chain-Angriff auf,
00:00:06der gerade begonnen hat. Ein Angriff auf die Lieferkette, der sich auf viele weitere NPM- und Python-Pakete ausweitete.
00:00:13Zum Zeitpunkt dieser Aufnahme ist noch nicht klar, wann und wo er enden wird. Und ich habe
00:00:19ein separates Video auf meinem YouTube-Kanal erstellt, in dem ich tief in diesen speziellen Angriff eintauche,
00:00:25da er ziemlich komplex war. Dort erkläre ich alle Details in einem Deep Dive,
00:00:30da das sehr interessant ist. Aber hier möchte ich über Supply-Chain-Angriffe, Sicherheit und KI
00:00:38in diesem Zeitalter sprechen, in dem wir gerade leben. Denn ich bin sicher, dass die Dinge
00:00:45schlimmer werden. Und ich fürchte, dass viele Menschen all die Gefahren noch nicht wirklich sehen. Und es gibt mehr,
00:00:54was wir als Entwickler und Nutzer von Technologie und KI, um ehrlich zu sein, tun müssen. Und das betrifft uns auch,
00:01:01wenn wir keine Entwickler sind. Ich weiß, dass die meisten Zuschauer oder Zuhörer hier Entwickler sind.
00:01:07Aber wie ich verdeutlichen werde, geht es hier nicht nur um das Schreiben von Code oder um
00:01:13Supply-Chain-Angriffe, wie Sie sie kennen. Aber fangen wir mit den Grundlagen an. Was ist das überhaupt?
00:01:20Ein Supply-Chain-Angriff im Kontext der Softwareentwicklung bedeutet einfach, dass eine
00:01:26Abhängigkeit, die Sie verwenden, kompromittiert wurde. Das ist kurz gesagt der Kern der Sache. Und kompromittiert
00:01:35kann natürlich alles Mögliche bedeuten. Normalerweise sehen wir bösartigen Code in einem
00:01:41kompromittierten Paket, der Zugangsdaten und Token sammelt. Er scannt also Ihre Festplatte nach
00:01:49Geheimnissen, die Sie etwa in .env-Dateien oder Ihren AWS-Credentials haben könnten. Er nutzt dann diese
00:01:56Zugangsdaten, um auf Ihre Konten zuzugreifen, aber auch um sich selbst zu verbreiten und andere Pakete zu befallen.
00:02:04Wenn Sie Maintainer eines Open-Source-Pakets sind – oder auch bei Closed Source – und an einem
00:02:11Paket oder Tool arbeiten, auf das andere angewiesen sind, ist es natürlich interessant, Ihren Rechner
00:02:19zu kapern, um dieses Paket oder Tool zu kompromittieren, denn – Sie ahnen es –
00:02:26das wird dann noch mehr Menschen betreffen. Alle diese Angriffe, die wir sehen, einschließlich des
00:02:32Angriffs auf die Tanstack-Pakete, sind Würmer, die auf andere Pakete überspringen, um immer mehr
00:02:38Pakete und letztlich auch die Rechner zu befallen, auf denen diese installiert und genutzt werden.
00:02:44Nun gibt es Dinge, die Sie tun können, um sich zu schützen, und ich habe dazu ein separates Video
00:02:51auf meinem anderen Kanal, dem Akatamine-Kanal, gemacht. Etwa sicherzustellen, dass Sie nur
00:02:56Paketversionen installieren, die mindestens drei Tage alt sind, oder Ihren Code in einem
00:03:02Dev-Container oder einer virtuellen Maschine auszuführen.
00:03:08Das sind alles Dinge, die Sie tun sollten. Sie sollten auch keine Geheimnisse im Klartext auf Ihrem System speichern.
00:03:15Nutzen Sie stattdessen Dienste wie Infisical oder Doppler, bei denen Sie Geheimnisse verschlüsselt
00:03:22in der Cloud oder in anderer Form speichern, sodass ein Angreifer beim Scannen Ihres Systems
00:03:28keine Klartextdaten findet. Das ist jetzt extrem wichtig, denn diese Angriffe auf die Lieferkette
00:03:37nehmen zu. Wir sehen immer mehr davon, und warum ist das so? Es liegt sicher nicht daran,
00:03:42dass man solche Angriffe vor vielen Jahren nicht hätte durchführen können. Es war damals schon möglich
00:03:49und es passierte auch, aber die Häufigkeit ist natürlich dramatisch gestiegen, und KI
00:03:56ist hier ein wesentlicher Grund. Werfen wir also einen Blick auf die Rolle der KI. KI ist ein wichtiger Faktor,
00:04:06weil sie solche Angriffe natürlich vereinfacht. Als Angreifer können Sie KI nutzen,
00:04:14um alle möglichen Repositories von Paketen zu analysieren, die Sie kompromittieren wollen,
00:04:22um zu sehen: Wie bauen sie ihre Pakete? Wie verteilen sie diese? Zum Beispiel beim
00:04:30Tanstack-Angriff, der diesen jüngsten Vorfall auslöste: Dort nutzten die Maintainer einen theoretisch
00:04:38sicheren Ansatz mit dem Trusted-Publishing-Prozess von NPM – auch darauf gehe ich in dem anderen Video
00:04:45genauer ein – aber sie verwendeten auch einen bestimmten GitHub Actions Event Trigger
00:04:51auf eine Weise, die nicht perfekt abgesichert war. Das erlaubte dem Angreifer mittels Cache Poisoning,
00:05:00bösartigen Code aus einer nicht vertrauenswürdigen in eine vertrauenswürdige Umgebung zu schleusen.
00:05:07So fing alles an. Details dazu wie gesagt im anderen Video.
00:05:15Aber natürlich erleichtert KI die Analyse von Repositories und GitHub Action Workflows
00:05:22oder anderen CI/CD-Workflows erheblich. KI kann diese Skripte und den gesamten Code massenhaft analysieren
00:05:30und gezielt nach Sicherheitslücken suchen. Natürlich können auch Maintainer KI nutzen, um ihre
00:05:38Repositories nach potenziellen Angriffsvektoren zu scannen, aber als Angreifer ist man natürlich immer im
00:05:45Vorteil, weil man nach allem suchen und alles ausprobieren kann, während man als
00:05:52Maintainer alles vorhersehen muss. KI kann dabei helfen, ist aber noch nicht perfekt.
00:05:58Der Angreifer hat hier den Vorteil, und KI hat diesen Prozess vereinfacht. KI vereinfacht natürlich
00:06:04auch das Schreiben von bösartigem Code, genau wie sie das Schreiben von jedem Code vereinfacht.
00:06:12Wenn Sie andere Videos von mir kennen, wissen Sie, dass ich ein großer Befürworter davon bin,
00:06:20den Code selbst anzusehen, Code-Reviews zu machen und nicht alles an die KI auszulagern.
00:06:27Aber es ist klar, dass man KI zur Produktivitätssteigerung nutzen sollte. Wir alle finden noch heraus,
00:06:33wie viel KI-Nutzung richtig ist. Manche sagen, 100 % – sie schauen sich den Code gar nicht mehr an.
00:06:40Für mich ist das nichts, aber es gibt hier ein breites Spektrum. So oder weise macht KI es
00:06:46definitiv einfach, Unmengen an Code zu produzieren. Wenn wir über bösartigen Code sprechen,
00:06:53gibt es für einen Angreifer bestimmte Prioritäten: Der Code muss funktionieren und darf
00:06:59nicht zu leicht zu entdecken sein. Es ist egal, ob der Code schön ist oder Best Practices folgt.
00:07:06Ihre “Best Practice” ist, dass der Angriff durchgeht. Und dabei kann KI natürlich massiv helfen,
00:07:13indem sie bösartigen Code schreibt oder Ideen für Angriffe auf Pakete liefert. Das ist aber
00:07:19nur ein Teil der Geschichte. Die andere, sehr wichtige Seite ist, dass es mehr Code gibt als je zuvor.
00:07:26Das bedeutet, es gibt mehr Angriffsziele als je zuvor. Vielleicht haben Sie den Blogpost oder die
00:07:35Ziele als je zuvor – vielleicht haben Sie diesen Blogpost oder die Geschichte rund um die
00:07:43Der Grund dafür ist, dass durch KI mehr Code als je zuvor auf GitHub gepusht wird, weil die
00:07:49Erstellung so einfach ist. Mehr Menschen als je zuvor generieren Code und schreiben Software,
00:07:55darunter viele, die keine Ahnung haben, was dieser Code eigentlich macht. “Wipe Coding” ist ein
00:08:02großes Thema und hat seine Daseinsberechtigung. Ich meine, wenn ich fünf PDF-Dokumente
00:08:11zusammenfügen will, sage ich gerne einem KI-Agenten, dass er das für mich tun soll.
00:08:18Er schreibt dann wahrscheinlich Code dafür, und dieser Code ist mir egal – es ist eine einmalige Aufgabe.
00:08:24Aber wenn ich das auf meinem System ausführe, installiert der Agent vielleicht ein Paket für PDFs,
00:08:32das von einem Supply-Chain-Angriff betroffen ist. Ich weiß also gar nicht, dass ein bestimmtes
00:08:37Paket benutzt wurde, weil mich nur das Ergebnis – die zusammengefügte PDF – interessiert hat.
00:08:43Es gibt also mehr Situationen als je zuvor, in denen Pakete installiert werden, da Unmengen an Code
00:08:49für Software, aber auch für Einmalaufgaben geschrieben werden. Das macht solche Angriffe
00:08:56natürlich attraktiver denn je, da es mehr Ziele gibt, einschließlich vieler Nutzer,
00:09:01die absolut keine Ahnung von Software-Sicherheit oder Cyber-Security haben.
00:09:06Und seien wir ehrlich: Auch viele von uns Entwicklern kennen zwar theoretisch die Risiken,
00:09:14kümmern uns aber oft nicht darum, weil es so bequem ist, die Arbeit einfach erledigt zu bekommen.
00:09:22Wir müssen hier umdenken. Wir müssen unsere Rechner absichern und sicherstellen,
00:09:31dass wir in sicheren Umgebungen entwickeln – also in VMs oder Dev-Containern –, in denen
00:09:37keine Zugangsdaten herumliegen. Auch bei KI-Agenten, die wir wahrscheinlich alle nutzen,
00:09:44müssen wir vorsichtig sein, da es auch dort zwei Arten von Gefahren gibt. Schauen wir uns genauer an,
00:09:53warum KI-Agenten hier problematisch sind. Ein Problem ist das, was ich bereits erwähnt habe:
00:10:00Wenn wir KI-Agenten nutzen, besonders für Dinge, die nicht direkt mit dem Programmieren zu tun haben,
00:10:08aber auch wenn sie uns bei der Arbeit an einem Programm helfen, sehen wir nicht unbedingt
00:10:17alles, was sie tun. Wenn Sie Tools wie Claude Code oder ähnliches nutzen – und ich habe nichts gegen
00:10:23diese Tools, ich habe sogar Kurse dazu, weil sie sehr nützlich sind –, aber wenn Sie diese
00:10:30einfach machen lassen und sagen: “Ich brauche dieses Feature”, ohne sich weiter darum zu kümmern,
00:10:35merken Sie vielleicht gar nicht, was sie im Hintergrund installieren. Also wieder: Pakete werden
00:10:41installiert, und Sie könnten kompromittiert oder betroffen sein. Eine Verteidigung dagegen ist,
00:10:49die Anzahl der verwendeten Pakete zu begrenzen, aber wenn Sie einen Agenten nutzen, haben Sie
00:10:54vielleicht keine Kontrolle darüber. Er könnte Pakete installieren, die Sie selbst nie gewählt hätten.
00:11:00Das ist die offensichtliche Gefahr. Hier ist die weniger offensichtliche: KI-Agenten sind
00:11:07super attraktive Angriffsziele. Was meine ich damit? Nun, diese Supply-Chain-Angriffe,” die
00:11:15ich erwähnt habe, verbreiten sich wie Würmer und befallen alle möglichen Pakete.
00:11:23Für einen Angreifer wäre es extrem interessant, Tools wie Claude Code oder andere KI-Coding-Agenten
00:11:32zu infizieren. Warum? Wenn man bösartigen Code hätte, der gezielt darauf optimiert ist,
00:11:42KI-Agenten-Pakete, Repositories und Code-Basen zu infiltrieren, dann könnte dieser
00:11:52bösartige Code Teile für Prompt-Injektionen enthalten. Er könnte zum Beispiel explizit darauf abzielen,
00:12:00den Code dieser Agenten so zu ändern, dass es nicht primär um den Diebstahl von Daten geht.
00:12:08Der eingeschleuste Code dient also vielleicht nicht direkt der Datenexfiltration, sondern er verändert
00:12:15den Code des KI-Agenten so, dass dieser spezielle Anweisungen erhält, die ihn Dinge auf Ihrem
00:12:22Rechner tun lassen, die Sie nicht wollen. Stellen Sie sich vor, Claude Code hätte einen geheimen System-Prompt,
00:12:28der normalerweise von Anthropic-Mitarbeitern festgelegt wird, aber nun durch bösartigen Code
00:12:34überschrieben wurde. Er könnte angewiesen werden, Ihre eigentliche Anfrage nur vorzutäuschen,
00:12:39während er im Hintergrund zusätzlich das System nach Geheimnissen scannt, vielleicht ein kleines
00:12:46Programm schreibt, das diesen Scan durchführt, und die Daten dann an einen entfernten Server schickt.
00:12:52Hier sind kaum Grenzen gesetzt, denn plötzlich haben Sie eine Art Trojanisches Pferd auf Ihrem System.
00:13:00Ein KI-Agent, der auf Ihrem Rechner außer Kontrolle gerät – und zwar nicht, weil die KI an sich
00:13:06böse geworden ist oder das Modell falsch liegt, sondern weil der Agenten-Code selbst und sein
00:13:12System-Prompt kompromittiert wurden. Das ist kein unrealistisches Szenario, und ich garantiere Ihnen,
00:13:20dass das irgendwann passieren wird. KI-Agenten sind ein viel zu interessantes Ziel. Das wird kommen.
00:13:28Wir werden eine neue Stufe dieser Supply-Chain-Angriffe erleben, die über das übliche Befallen von Paketen
00:13:34und das Sammeln von Zugangsdaten hinausgeht. Wir werden KI-Agenten sehen, die durch bösartigen Code
00:13:41manipuliert wurden. Es ist nur eine Frage der Zeit. Es gibt hier also viele Ebenen, wie Sie sehen,
00:13:49und das ist einfach die neue Realität, in der wir jetzt leben. Es ist wohl wie in den frühen Tagen
00:13:54des Internets: Es ist alles etwas holprig, während wir noch herausfinden, wie wir die Sicherheit
00:14:01erhöhen können. Ein offensichtlicher Schritt für die Entwicklung und für die Nutzung von KI-Agenten
00:14:08ist, dass man dies nicht in einer Umgebung tun sollte, in der viel schiefgehen kann. Man will es nicht
00:14:14dort ausführen, wo wichtige Zugangsdaten, Geheimnisse oder andere wichtige Daten gespeichert sind.
00:14:21Man sollte Agenten in isolierten virtuellen Maschinen oder Remote-Systemen ausführen, wo der
00:14:26Schaden begrenzt bleibt. Denn wie gesagt: Es ist nur eine Frage der Zeit, bis etwas schiefgeht,
00:14:32und das zu erkennen ist der erste wichtige Schritt. Die Dinge ändern sich schnell, und Sicherheit
00:14:37ist ein riesiges Thema und wird durch die Beschleunigung durch KI noch wichtiger werden.
00:14:42Die KI-Modelle werden immer smarter, besonders in Kombination mit den Tools, in denen sie laufen.
00:14:49Das bringt viele neue Möglichkeiten, aber gleichzeitig auch enorme Bequemlichkeit mit sich.
00:14:56Bequemlichkeit ist immer gefährlich, weil sie einen nachlässig werden lässt. KI ist überall,
00:15:03und viele Menschen ohne Kenntnisse in Cyber-Security nutzen sie, aber selbst Experten
00:15:11sind in großer Gefahr. Uns steht eine wilde Fahrt bevor, und wir müssen extrem vorsichtig sein,
00:15:17wo und wie wir Agenten einsetzen und an unserem Code arbeiten.
00:15:23Bequemlichkeit ist immer gefährlich, denn sie macht einen nachlässig und lässt Dinge übersehen, und ja,
00:15:30KI ist überall; so viele Leute, die nichts über Cybersicherheit wissen, nutzen sie, und sogar
00:15:34diejenigen, die viel oder etwas darüber wissen, sind in großer Gefahr. Uns steht also eine
00:15:40heiße Fahrt bevor, denke ich, und wir müssen umdenken und extrem vorsichtig sein, wo und wie wir Agenten ausführen
00:15:49und an unserem Code arbeiten.