LLMs: Ein (un)perfekter menschlicher Ansatz zur sicheren Kodierung?

Veröffentlicht Feb 01, 2024
von Pieter Danhieux
FALLSTUDIE

LLMs: Ein (un)perfekter menschlicher Ansatz zur sicheren Kodierung?

Veröffentlicht Feb 01, 2024
von Pieter Danhieux
Ressource anzeigen
Ressource anzeigen
Laptop im Dunkeln mit Lichtschlieren auf dem Bildschirm.
Laptop im Dunkeln mit Lichtschlieren auf dem Bildschirm.

Eine Version dieses Artikels erschien in Dunkles Lesen. Er wurde aktualisiert und hier syndiziert.

Seit dem ersten Hype um die neuesten, kulturverändernden KI-Tools haben Entwickler und Neugierige sie genutzt, um Code auf Knopfdruck zu erzeugen. Sicherheitsexperten wiesen schnell darauf hin, dass der erzeugte Code in vielen Fällen von schlechter Qualität und angreifbar war und in den Händen von Personen mit geringem Sicherheitsbewusstsein eine Lawine unsicherer Apps und Webentwicklungen auslösen konnte, die auf ahnungslose Verbraucher losgelassen wurde.

Und dann gibt es noch diejenigen, die über genügend Sicherheitswissen verfügen, um es für, nun ja, Böses zu nutzen. Für jede atemberaubende KI-Leistung scheint es einen Gegenschlag zu geben, bei dem die gleiche Technologie für ruchlose Zwecke eingesetzt wird. Phishing, gefälschte Betrugsvideos, die Erstellung von Malware, allgemeine Skript-Kinderspielereien ... diese störenden Aktivitäten sind viel schneller und mit niedrigeren Einstiegshürden zu erreichen.

Es gibt sicherlich eine Menge Clickbaits, die diese Werkzeuge als revolutionär anpreisen oder zumindest als überlegen, wenn sie mit "durchschnittlichen" menschlichen Fähigkeiten kombiniert werden. Auch wenn es unvermeidlich scheint, dass die KI-Technologie im Stil des LLM die Art und Weise, wie wir an viele Aspekte der Arbeit herangehen - nicht nur an die Softwareentwicklung - verändern wird, müssen wir einen Schritt zurücktreten und die Risiken jenseits der Schlagzeilen betrachten. 

Und als Programmierbegleiter sind seine Schwächen vielleicht sein "menschlichstes" Attribut.

Schlechte Kodierungsmuster dominieren die Lösungen

Da ChatGPT auf jahrzehntelang bestehendem Code und Wissensdatenbanken basiert, ist es nicht verwunderlich, dass es trotz all seiner Wunder und Geheimnisse auch unter denselben häufigen Fallstricken leidet, mit denen Menschen beim Navigieren durch Code konfrontiert werden. Schlechte Codierungsmuster sind an der Tagesordnung, und es bedarf immer noch eines sicherheitsbewussten Treibers, um sichere Codierungsbeispiele zu generieren, indem er die richtigen Fragen stellt und das richtige Prompt Engineering liefert. 

Selbst dann gibt es keine Garantie dafür, dass die angegebenen Codeschnipsel aus der Sicherheitsperspektive korrekt und funktionsfähig sind. Die Technologie neigt zu Halluzinationen und erfindet sogar nicht existierende Bibliotheken, wenn sie aufgefordert wird, bestimmte JSON-Operationen durchzuführen, wie Mike Shema herausgefunden hat. Dies könnte dazu führen, dass Bedrohungsakteure "Halluzinationen besetzen", die nur allzu gerne eine Malware entwickeln, die als die von ChatGPT vertrauensvoll empfohlene Bibliothek getarnt ist.

Letztendlich müssen wir der Realität ins Auge sehen, dass wir im Allgemeinen nicht erwartet haben, dass Entwickler ausreichend sicherheitsbewusst sind, noch haben wir sie als Industrie angemessen darauf vorbereitet, standardmäßig sicheren Code zu schreiben. Dies wird sich in der enormen Menge an Trainingsdaten zeigen, die in ChatGPT eingespeist werden, und wir können zumindest anfangs mit ähnlich glanzlosen Sicherheitsergebnissen rechnen. Die Entwickler müssten in der Lage sein, die Sicherheitslücken zu erkennen und sie entweder selbst zu beheben oder bessere Eingabeaufforderungen zu entwerfen, um ein stabileres Ergebnis zu erzielen.

Die erste groß angelegte Nutzerstudie, in der untersucht wurde, wie Nutzer mit einem KI-Codierassistenten interagieren, um verschiedene sicherheitsrelevante Aufgaben zu lösen, und die von Forschern der Stanford University durchgeführt wurde, stützt diesen Gedanken, wobei eine Beobachtung zum Schluss kommt:

"Wir konnten beobachten, dass Teilnehmer, die Zugang zum KI-Assistenten hatten, bei den meisten Programmieraufgaben eher Sicherheitslücken einbrachten, aber auch eher ihre unsicheren Antworten als sicher einstuften als die Teilnehmer unserer Kontrollgruppe."

Dies spricht für ein gewisses Standardvertrauen in die Ergebnisse von KI-Codierungstools, die einen Code produzieren, der immer von Natur aus sicher ist, obwohl dies nicht der Fall ist.


In Anbetracht dieser Tatsache und der unvermeidlichen, von KI ausgehenden Bedrohungen, die unsere Zukunft durchdringen werden, müssen Entwickler mehr denn je ihre Sicherheitsfähigkeiten verbessern und die Messlatte für die Qualität des Codes unabhängig von seiner Herkunft höher legen.

Der Weg zu einer Datenverletzungskatastrophe ist mit guten Absichten gepflastert

Es sollte nicht überraschen, dass KI-Coding-Begleiter beliebt sind, zumal Entwickler mit zunehmender Verantwortung, engeren Fristen und den Ambitionen der Innovation eines Unternehmens konfrontiert sind, die auf ihren Schultern ruhen. Doch selbst bei den besten Absichten führt ein mangelndes Sicherheitsbewusstsein beim Einsatz von KI für die Programmierung unweigerlich zu eklatanten Sicherheitsproblemen. Alle Entwickler, die KI/ML-Tools einsetzen, werden mehr Code generieren, und das Sicherheitsrisiko hängt von ihrem Kenntnisstand ab. Unternehmen müssen sich darüber im Klaren sein, dass ungeschulte Mitarbeiter sicherlich schneller Code generieren werden, aber auch die Geschwindigkeit der technischen Sicherheitsverschuldung erhöhen werden.

Schon unser erster Test (April 2023) mit ChatGPT hat gezeigt, dass es sehr einfache Fehler erzeugt, die verheerende Folgen haben können. Als wir es baten, eine Login-Routine in PHP mit einer MySQL-Datenbank zu erstellen, wurde schnell funktionierender Code erzeugt. Es speicherte jedoch standardmäßig Passwörter im Klartext in einer Datenbank, speicherte Datenbankverbindungsdaten im Code und verwendete ein Codierungsmuster, das zu SQL-Injection führen könnte (obwohl es die Eingabeparameter in gewissem Umfang filterte und Datenbankfehler ausspuckte). Alles Anfängerfehler nach allen Regeln der Kunst:

Die Empfehlungen von ChatGPT sind nicht unbedingt sicher und können in einigen Fällen gefährlich sein.


Weitere Aufforderungen sorgten dafür, dass die Fehler korrigiert wurden, aber es erfordert erhebliches Sicherheitswissen, um den Kurs zu korrigieren. Die unkontrollierte und weit verbreitete Nutzung dieser Tools ist nicht besser, als wenn man Nachwuchsentwickler auf seine Projekte loslässt, und wenn dieser Code sensible Infrastrukturen aufbaut oder personenbezogene Daten verarbeitet, dann haben wir es mit einer tickenden Zeitbombe zu tun.

Natürlich erwarten wir, dass sich die KI/ML-Fähigkeiten mit der Zeit verbessern, so wie Nachwuchsentwickler ihre Fähigkeiten zweifellos verbessern. In einem Jahr wird sie vielleicht keine so offensichtlichen und einfachen Sicherheitsfehler mehr machen. Dies wird jedoch zur Folge haben, dass die Sicherheitsfähigkeiten, die erforderlich sind, um die schwerwiegenderen, versteckten, nicht trivialen Sicherheitsfehler aufzuspüren, die noch immer auftreten können, drastisch zunehmen werden.

Wir sind nach wie vor schlecht darauf vorbereitet, Sicherheitsschwachstellen zu finden und zu beheben, und KI vergrößert die Lücke

Auch wenn seit vielen Jahren von einem "Linksruck" die Rede ist, bleibt die Tatsache bestehen, dass in den meisten Unternehmen ein erheblicher Mangel an praktischen Sicherheitskenntnissen unter den Entwicklern herrscht. Wir müssen härter daran arbeiten, die richtigen Tools und Schulungen bereitzustellen, um sie auf ihrem Weg zu unterstützen.

So wie es aussieht, sind wir nicht auf die Sicherheitsprobleme vorbereitet, an die wir gewöhnt sind, ganz zu schweigen von den neuen, durch KI verursachten Problemen wie Prompt Injection und Halluzination Squatting, die völlig neue Angriffsvektoren darstellen, die sich wie ein Lauffeuer verbreiten werden. KI-Codierungstools stellen die Zukunft des Codierungsarsenals eines Entwicklers dar, aber die Ausbildung zum sicheren Umgang mit diesen Produktivitätswaffen muss jetzt erfolgen.

Sie möchten mehr erfahren? Laden Sie unser neuestes Whitepaper herunter.
Ressource anzeigen
Ressource anzeigen

Autor

Pieter Danhieux

Pieter Danhieux ist ein weltweit anerkannter Sicherheitsexperte mit mehr als 12 Jahren Erfahrung als Sicherheitsberater und 8 Jahren als Principal Instructor für SANS, wo er offensive Techniken lehrt, wie man Organisationen, Systeme und Einzelpersonen auf Sicherheitsschwächen hin untersucht und bewertet. Im Jahr 2016 wurde er als einer der "Coolest Tech People in Australia" (Business Insider) ausgezeichnet, erhielt die Auszeichnung "Cyber Security Professional of the Year" (AISA - Australian Information Security Association) und besitzt die Zertifizierungen GSE, CISSP, GCIH, GCFA, GSEC, GPEN, GWAPT, GCIA.

Sie wollen mehr?

Tauchen Sie ein in unsere neuesten Erkenntnisse über sichere Kodierung im Blog.

Unsere umfangreiche Ressourcenbibliothek zielt darauf ab, die menschliche Herangehensweise an eine sichere Weiterbildung im Bereich der Programmierung zu stärken.

Blog ansehen
Sie wollen mehr?

Holen Sie sich die neuesten Forschungsergebnisse zur entwicklergesteuerten Sicherheit

Unsere umfangreiche Ressourcenbibliothek ist voll von hilfreichen Ressourcen, von Whitepapers bis hin zu Webinaren, die Ihnen den Einstieg in die entwicklungsorientierte sichere Programmierung erleichtern. Erforschen Sie sie jetzt.

Ressourcendrehscheibe

LLMs: Ein (un)perfekter menschlicher Ansatz zur sicheren Kodierung?

Veröffentlicht Feb 01, 2024
Von Pieter Danhieux

Eine Version dieses Artikels erschien in Dunkles Lesen. Er wurde aktualisiert und hier syndiziert.

Seit dem ersten Hype um die neuesten, kulturverändernden KI-Tools haben Entwickler und Neugierige sie genutzt, um Code auf Knopfdruck zu erzeugen. Sicherheitsexperten wiesen schnell darauf hin, dass der erzeugte Code in vielen Fällen von schlechter Qualität und angreifbar war und in den Händen von Personen mit geringem Sicherheitsbewusstsein eine Lawine unsicherer Apps und Webentwicklungen auslösen konnte, die auf ahnungslose Verbraucher losgelassen wurde.

Und dann gibt es noch diejenigen, die über genügend Sicherheitswissen verfügen, um es für, nun ja, Böses zu nutzen. Für jede atemberaubende KI-Leistung scheint es einen Gegenschlag zu geben, bei dem die gleiche Technologie für ruchlose Zwecke eingesetzt wird. Phishing, gefälschte Betrugsvideos, die Erstellung von Malware, allgemeine Skript-Kinderspielereien ... diese störenden Aktivitäten sind viel schneller und mit niedrigeren Einstiegshürden zu erreichen.

Es gibt sicherlich eine Menge Clickbaits, die diese Werkzeuge als revolutionär anpreisen oder zumindest als überlegen, wenn sie mit "durchschnittlichen" menschlichen Fähigkeiten kombiniert werden. Auch wenn es unvermeidlich scheint, dass die KI-Technologie im Stil des LLM die Art und Weise, wie wir an viele Aspekte der Arbeit herangehen - nicht nur an die Softwareentwicklung - verändern wird, müssen wir einen Schritt zurücktreten und die Risiken jenseits der Schlagzeilen betrachten. 

Und als Programmierbegleiter sind seine Schwächen vielleicht sein "menschlichstes" Attribut.

Schlechte Kodierungsmuster dominieren die Lösungen

Da ChatGPT auf jahrzehntelang bestehendem Code und Wissensdatenbanken basiert, ist es nicht verwunderlich, dass es trotz all seiner Wunder und Geheimnisse auch unter denselben häufigen Fallstricken leidet, mit denen Menschen beim Navigieren durch Code konfrontiert werden. Schlechte Codierungsmuster sind an der Tagesordnung, und es bedarf immer noch eines sicherheitsbewussten Treibers, um sichere Codierungsbeispiele zu generieren, indem er die richtigen Fragen stellt und das richtige Prompt Engineering liefert. 

Selbst dann gibt es keine Garantie dafür, dass die angegebenen Codeschnipsel aus der Sicherheitsperspektive korrekt und funktionsfähig sind. Die Technologie neigt zu Halluzinationen und erfindet sogar nicht existierende Bibliotheken, wenn sie aufgefordert wird, bestimmte JSON-Operationen durchzuführen, wie Mike Shema herausgefunden hat. Dies könnte dazu führen, dass Bedrohungsakteure "Halluzinationen besetzen", die nur allzu gerne eine Malware entwickeln, die als die von ChatGPT vertrauensvoll empfohlene Bibliothek getarnt ist.

Letztendlich müssen wir der Realität ins Auge sehen, dass wir im Allgemeinen nicht erwartet haben, dass Entwickler ausreichend sicherheitsbewusst sind, noch haben wir sie als Industrie angemessen darauf vorbereitet, standardmäßig sicheren Code zu schreiben. Dies wird sich in der enormen Menge an Trainingsdaten zeigen, die in ChatGPT eingespeist werden, und wir können zumindest anfangs mit ähnlich glanzlosen Sicherheitsergebnissen rechnen. Die Entwickler müssten in der Lage sein, die Sicherheitslücken zu erkennen und sie entweder selbst zu beheben oder bessere Eingabeaufforderungen zu entwerfen, um ein stabileres Ergebnis zu erzielen.

Die erste groß angelegte Nutzerstudie, in der untersucht wurde, wie Nutzer mit einem KI-Codierassistenten interagieren, um verschiedene sicherheitsrelevante Aufgaben zu lösen, und die von Forschern der Stanford University durchgeführt wurde, stützt diesen Gedanken, wobei eine Beobachtung zum Schluss kommt:

"Wir konnten beobachten, dass Teilnehmer, die Zugang zum KI-Assistenten hatten, bei den meisten Programmieraufgaben eher Sicherheitslücken einbrachten, aber auch eher ihre unsicheren Antworten als sicher einstuften als die Teilnehmer unserer Kontrollgruppe."

Dies spricht für ein gewisses Standardvertrauen in die Ergebnisse von KI-Codierungstools, die einen Code produzieren, der immer von Natur aus sicher ist, obwohl dies nicht der Fall ist.


In Anbetracht dieser Tatsache und der unvermeidlichen, von KI ausgehenden Bedrohungen, die unsere Zukunft durchdringen werden, müssen Entwickler mehr denn je ihre Sicherheitsfähigkeiten verbessern und die Messlatte für die Qualität des Codes unabhängig von seiner Herkunft höher legen.

Der Weg zu einer Datenverletzungskatastrophe ist mit guten Absichten gepflastert

Es sollte nicht überraschen, dass KI-Coding-Begleiter beliebt sind, zumal Entwickler mit zunehmender Verantwortung, engeren Fristen und den Ambitionen der Innovation eines Unternehmens konfrontiert sind, die auf ihren Schultern ruhen. Doch selbst bei den besten Absichten führt ein mangelndes Sicherheitsbewusstsein beim Einsatz von KI für die Programmierung unweigerlich zu eklatanten Sicherheitsproblemen. Alle Entwickler, die KI/ML-Tools einsetzen, werden mehr Code generieren, und das Sicherheitsrisiko hängt von ihrem Kenntnisstand ab. Unternehmen müssen sich darüber im Klaren sein, dass ungeschulte Mitarbeiter sicherlich schneller Code generieren werden, aber auch die Geschwindigkeit der technischen Sicherheitsverschuldung erhöhen werden.

Schon unser erster Test (April 2023) mit ChatGPT hat gezeigt, dass es sehr einfache Fehler erzeugt, die verheerende Folgen haben können. Als wir es baten, eine Login-Routine in PHP mit einer MySQL-Datenbank zu erstellen, wurde schnell funktionierender Code erzeugt. Es speicherte jedoch standardmäßig Passwörter im Klartext in einer Datenbank, speicherte Datenbankverbindungsdaten im Code und verwendete ein Codierungsmuster, das zu SQL-Injection führen könnte (obwohl es die Eingabeparameter in gewissem Umfang filterte und Datenbankfehler ausspuckte). Alles Anfängerfehler nach allen Regeln der Kunst:

Die Empfehlungen von ChatGPT sind nicht unbedingt sicher und können in einigen Fällen gefährlich sein.


Weitere Aufforderungen sorgten dafür, dass die Fehler korrigiert wurden, aber es erfordert erhebliches Sicherheitswissen, um den Kurs zu korrigieren. Die unkontrollierte und weit verbreitete Nutzung dieser Tools ist nicht besser, als wenn man Nachwuchsentwickler auf seine Projekte loslässt, und wenn dieser Code sensible Infrastrukturen aufbaut oder personenbezogene Daten verarbeitet, dann haben wir es mit einer tickenden Zeitbombe zu tun.

Natürlich erwarten wir, dass sich die KI/ML-Fähigkeiten mit der Zeit verbessern, so wie Nachwuchsentwickler ihre Fähigkeiten zweifellos verbessern. In einem Jahr wird sie vielleicht keine so offensichtlichen und einfachen Sicherheitsfehler mehr machen. Dies wird jedoch zur Folge haben, dass die Sicherheitsfähigkeiten, die erforderlich sind, um die schwerwiegenderen, versteckten, nicht trivialen Sicherheitsfehler aufzuspüren, die noch immer auftreten können, drastisch zunehmen werden.

Wir sind nach wie vor schlecht darauf vorbereitet, Sicherheitsschwachstellen zu finden und zu beheben, und KI vergrößert die Lücke

Auch wenn seit vielen Jahren von einem "Linksruck" die Rede ist, bleibt die Tatsache bestehen, dass in den meisten Unternehmen ein erheblicher Mangel an praktischen Sicherheitskenntnissen unter den Entwicklern herrscht. Wir müssen härter daran arbeiten, die richtigen Tools und Schulungen bereitzustellen, um sie auf ihrem Weg zu unterstützen.

So wie es aussieht, sind wir nicht auf die Sicherheitsprobleme vorbereitet, an die wir gewöhnt sind, ganz zu schweigen von den neuen, durch KI verursachten Problemen wie Prompt Injection und Halluzination Squatting, die völlig neue Angriffsvektoren darstellen, die sich wie ein Lauffeuer verbreiten werden. KI-Codierungstools stellen die Zukunft des Codierungsarsenals eines Entwicklers dar, aber die Ausbildung zum sicheren Umgang mit diesen Produktivitätswaffen muss jetzt erfolgen.

Sie möchten mehr erfahren? Laden Sie unser neuestes Whitepaper herunter.

Wir bitten Sie um Ihre Erlaubnis, Ihnen Informationen über unsere Produkte und/oder verwandte Themen der sicheren Codierung zuzusenden. Wir werden Ihre persönlichen Daten immer mit äußerster Sorgfalt behandeln und sie niemals zu Marketingzwecken an andere Unternehmen verkaufen.

Senden
Um das Formular abzuschicken, aktivieren Sie bitte "Analytics"-Cookies. Sie können die Cookies wieder deaktivieren, sobald Sie fertig sind.