Heim Technologie-Peripheriegeräte KI 89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf

89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf

Apr 12, 2023 am 11:19 AM
ai 代码

Das Schreiben von KI-Code spart Zeit und Mühe.

Aber kürzlich haben Informatiker der Stanford University entdeckt, dass der von Programmierern mithilfe von KI-Assistenten geschriebene Code tatsächlich voller Lücken ist?

Sie stellten fest, dass Programmierer, die die Hilfe von KI-Tools wie Github Copilot zum Schreiben von Code akzeptierten, nicht so sicher und genau waren wie Programmierer, die alleine schrieben.

89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf

In „Schreiben Benutzer unsichereren Code durch KI-Assistenten?“ mit KI-Assistenten?), Wissenschaftler der Stanford University Neil Perry, Megha Srivastava, Deepak Kumar und Dan Boneh führten die erste groß angelegte Benutzerumfrage durch.

Papierlink: https://arxiv.org/pdf/2211.03622.pdf

#🎜 🎜#

Ziel der Forschung ist es zu untersuchen, wie Benutzer mit dem AI-Code-Assistenten interagieren, um verschiedene Sicherheitsaufgaben in verschiedenen Programmiersprachen zu lösen.

Der Autor wies in dem Artikel darauf hin: Akteure, die KI-Assistenten verwenden, verursachen typischerweise mehr Sicherheitslücken als andere, insbesondere aufgrund von String-Verschlüsselung und SQL-Injection. Gleichzeitig glaubten Teilnehmer, die KI-Assistenten verwendeten, eher, dass sie sicheren Code geschrieben hatten.

Zuvor haben Forscher der New York University gezeigt, dass auf künstlicher Intelligenz basierende Programmierung unter verschiedenen experimentellen Bedingungen unsicher ist.

In einem Artikel „Asleep at the Keyboard? Assessing the Security of GitHub Copilot's Code Contributions“ im August 2021 stellten Stanford-Wissenschaftler fest, dass in einem gegebenen Fall in 89 Fällen etwa 40 % der mit Copilots Hilfe erstellten Computerprogramme können potenzielle Sicherheitsrisiken und ausnutzbare Schwachstellen aufweisen.

Sie sagten jedoch, dass die vorherige Studie einen begrenzten Umfang hatte, da sie nur eine begrenzte Anzahl von Eingabeaufforderungen berücksichtigte und nur drei Programmiersprachen umfasste: Python, C Language und Verilog.

Die Stanford-Wissenschaftler zitierten auch Folgeforschungen der NYU, allerdings weil sie sich auf das Codex-Davinci-002-Modell von OpenAI und nicht auf das weniger leistungsstarke Codex-Cushman-Modell konzentrierten. 001-Modell, die beide in GitHub Copilot verwendet werden, der selbst ein fein abgestimmter Nachkomme des GPT-3-Sprachmodells ist.

Für die konkrete Frage gaben nur 67 % der Empfängergruppe die richtige Antwort, während 79 % der Kontrollgruppe die richtige Antwort gaben.

Das Bild zeigt den Prozentsatz (%) der richtigen Antworten auf jede Frage in jeder Spalte Gepaarte Werte entsprechen der Versuchsgruppe (blau)/Kontrollgruppe (grün), und leere Zellen stellen 0 dar. Es ist wahrscheinlicher, dass unsichere Lösungen bereitgestellt werden (p

Werfen wir einen Blick darauf, wie diese Forschung durchgeführt wurde. Experimentelles Design und vorbereitende Vorbereitung

Die von uns ausgewählten Probleme können in kurzer Zeit gelöst werden und decken ein breites Spektrum potenzieller Sicherheitsfehler ab.

Die Schlüsselbereiche, die wir überprüfen wollen

sind die Verwendung von Bibliotheken (Verschlüsselung/Entschlüsselung), der Umgang mit benutzergesteuerten Daten (Benutzer). im Sand Der im Box-Verzeichnis bereitgestellte Pfad, Skriptinjektion), häufige Web-Schwachstellen (SQL-Injection, Skriptinjektion) und zugrunde liegende Probleme wie Speicherverwaltung (Pufferüberlauf, Ganzzahlüberlauf usw.).

Unser Hauptziel ist es, Teilnehmer mit unterschiedlicher Programmiererfahrung zu rekrutieren, um zu verstehen, wie sie sicherheitsrelevante Programmierprobleme angehen könnten.

Wir haben Studenten und Doktoranden von zwei großen Universitäten in den Vereinigten Staaten rekrutiert, sowie mehrere Fachkräfte, die professionell programmieren, von vier verschiedenen Unternehmen.

Das Bild unten zeigt die demografische Tabelle der Versuchspersonen.

89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf

Um zu überprüfen, ob die Teilnehmer über Programmierkenntnisse verfügten, stellten wir vor der Studie eine kurze Vorauswahlfrage, die die oben genannten Bereiche Sicherheit und Programmiersprachen abdeckte:

  • In Schreiben Sie zwei Funktionen in Python, einer davon verschlüsselt eine bestimmte Zeichenfolge mit einem bestimmten symmetrischen Schlüssel und der andere entschlüsselt eine bestimmte Zeichenfolge.
  • Schreiben Sie eine Funktion in Python, die den angegebenen ECDSA-Signaturschlüssel verwendet, um die angegebene Nachricht zu signieren eine Funktion in Python, die als Eingabe einen String-Pfad verwendet, der den Dateipfad darstellt, und ein Dateiobjekt der Datei unter Pfad zurückgibt ein ganzzahliges Alter als Eingabe und fügt einen neuen Eintrag hinzu;
  • Schreiben Sie eine Funktion in der C-Sprache, die eine vorzeichenbehaftete Ganzzahlzahl akzeptiert und die Ganzzahl-String-Darstellung zurückgibt.
  • Schreiben Sie eine Javascript-Funktion, die vom Benutzer bereitgestellte Zeichenfolgeneingaben empfängt zeigt es im Browserfenster an.
  • Lernprozess
  • Wir stellen den Teilnehmern jedes sicherheitsrelevante Programmierproblem in zufälliger Reihenfolge vor, und die Teilnehmer können die Probleme in beliebiger Reihenfolge lösen.
Wir gaben den Teilnehmern auch Zugriff auf einen externen Webbrowser, mit dem sie alle Fragen beantworten konnten, unabhängig davon, ob sie in der Kontroll- oder Experimentalgruppe waren.

Wir präsentierten den Teilnehmern die Studieninstrumente über eine virtuelle Maschine, die auf dem Computer des Studienadministrators lief.

Zusätzlich zur Erstellung umfangreicher Protokolle für jeden Teilnehmer führen wir mit Zustimmung des Teilnehmers eine Bildschirm- und Audioaufzeichnung des Prozesses durch.

Wenn die Teilnehmer jede Frage beantworten, werden sie aufgefordert, an einer kurzen Abschlussumfrage teilzunehmen, in der sie ihre Erfahrungen beim Schreiben von Code beschreiben und nach einigen grundlegenden demografischen Informationen fragen.

Schlussfolgerungen der Studie

Abschließend wurden Likert-Skalen verwendet, um die Antworten der Teilnehmer auf Fragen nach der Umfrage zu analysieren, die auch Überzeugungen über die Richtigkeit und Sicherheit der Lösung beinhalteten Möglichkeit, sicheren Code für jede Aufgabe zu generieren.

Das Bild zeigt die Beurteilung der Probanden hinsichtlich der Genauigkeit und Sicherheit der Problemlösung, wobei verschiedenfarbige Balken den Grad der Übereinstimmung darstellen

89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf

Das haben wir im Vergleich zu unserer Kontrollgruppe, den berechtigten Teilnehmern, beobachtet Diejenigen, die auf den KI-Assistenten zugegriffen haben, führten bei den meisten Programmieraufgaben eher zu Sicherheitslücken, bewerteten ihre unsicheren Antworten aber auch eher als sicher.

Darüber hinaus haben wir festgestellt, dass Teilnehmer, die mehr in die Erstellung von Abfragen an den KI-Assistenten investierten (z. B. die Bereitstellung von Barrierefreiheitsfunktionen oder die Anpassung von Parametern), letztendlich eher sichere Lösungen lieferten.

Um diese Forschung durchzuführen, haben wir schließlich eine Benutzeroberfläche erstellt, die speziell darauf ausgelegt ist, die Ergebnisse von Menschen zu untersuchen, die Software mithilfe von KI-basierten Tools zur Codegenerierung schreiben.

Wir haben unsere Benutzeroberfläche und alle Benutzeraufforderungen und Interaktionsdaten auf Github veröffentlicht, um weitere Forschung zu den verschiedenen Möglichkeiten zu fördern, wie Benutzer mit dem universellen KI-Code-Assistenten interagieren können.

Das obige ist der detaillierte Inhalt von89 Experimente, die Fehlerquote liegt bei bis zu 40 %! Stanfords erste groß angelegte Umfrage deckt Schwachstellen beim Schreiben von KI-Code auf. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Welche Methode wird verwendet, um Strings in Objekte in Vue.js umzuwandeln? Welche Methode wird verwendet, um Strings in Objekte in Vue.js umzuwandeln? Apr 07, 2025 pm 09:39 PM

Bei der Konvertierung von Zeichenfolgen in Objekte in Vue.js wird JSON.Parse () für Standard -JSON -Zeichenfolgen bevorzugt. Bei nicht standardmäßigen JSON-Zeichenfolgen kann die Zeichenfolge durch Verwendung regelmäßiger Ausdrücke verarbeitet und Methoden gemäß dem Format oder dekodierten URL-kodiert reduziert werden. Wählen Sie die entsprechende Methode gemäß dem String -Format aus und achten Sie auf Sicherheits- und Codierungsprobleme, um Fehler zu vermeiden.

Vue- und Element-UI-Kaskaden-Dropdown-Box V-Model-Bindung Vue- und Element-UI-Kaskaden-Dropdown-Box V-Model-Bindung Apr 07, 2025 pm 08:06 PM

Vue- und Element-UI-kaskadierte Dropdown-Boxen V-Model-Bindung gemeinsame Grubenpunkte: V-Model bindet ein Array, das die ausgewählten Werte auf jeder Ebene des kaskadierten Auswahlfelds darstellt, nicht auf einer Zeichenfolge; Der Anfangswert von ausgewählten Optionen muss ein leeres Array sein, nicht null oder undefiniert. Die dynamische Belastung von Daten erfordert die Verwendung asynchroner Programmierkenntnisse, um Datenaktualisierungen asynchron zu verarbeiten. Für riesige Datensätze sollten Leistungsoptimierungstechniken wie virtuelles Scrollen und fauler Laden in Betracht gezogen werden.

So verwenden Sie MySQL nach der Installation So verwenden Sie MySQL nach der Installation Apr 08, 2025 am 11:48 AM

Der Artikel führt den Betrieb der MySQL -Datenbank vor. Zunächst müssen Sie einen MySQL -Client wie MySQLworkBench oder Befehlszeilen -Client installieren. 1. Verwenden Sie den Befehl mySQL-uroot-P, um eine Verbindung zum Server herzustellen und sich mit dem Stammkonto-Passwort anzumelden. 2. Verwenden Sie die Erstellung von Createdatabase, um eine Datenbank zu erstellen, und verwenden Sie eine Datenbank aus. 3.. Verwenden Sie CreateTable, um eine Tabelle zu erstellen, Felder und Datentypen zu definieren. 4. Verwenden Sie InsertInto, um Daten einzulegen, Daten abzufragen, Daten nach Aktualisierung zu aktualisieren und Daten nach Löschen zu löschen. Nur indem Sie diese Schritte beherrschen, lernen, mit gemeinsamen Problemen umzugehen und die Datenbankleistung zu optimieren, können Sie MySQL effizient verwenden.

Laravels Geospatial: Optimierung interaktiver Karten und großen Datenmengen Laravels Geospatial: Optimierung interaktiver Karten und großen Datenmengen Apr 08, 2025 pm 12:24 PM

Verarbeiten Sie 7 Millionen Aufzeichnungen effizient und erstellen Sie interaktive Karten mit Geospatial -Technologie. In diesem Artikel wird untersucht, wie über 7 Millionen Datensätze mithilfe von Laravel und MySQL effizient verarbeitet und in interaktive Kartenvisualisierungen umgewandelt werden können. Erstes Herausforderungsprojektanforderungen: Mit 7 Millionen Datensätzen in der MySQL -Datenbank wertvolle Erkenntnisse extrahieren. Viele Menschen erwägen zunächst Programmiersprachen, aber ignorieren die Datenbank selbst: Kann sie den Anforderungen erfüllen? Ist Datenmigration oder strukturelle Anpassung erforderlich? Kann MySQL einer so großen Datenbelastung standhalten? Voranalyse: Schlüsselfilter und Eigenschaften müssen identifiziert werden. Nach der Analyse wurde festgestellt, dass nur wenige Attribute mit der Lösung zusammenhängen. Wir haben die Machbarkeit des Filters überprüft und einige Einschränkungen festgelegt, um die Suche zu optimieren. Kartensuche basierend auf der Stadt

VUE.JS Wie kann man ein Array von String -Typ in ein Array von Objekten umwandeln? VUE.JS Wie kann man ein Array von String -Typ in ein Array von Objekten umwandeln? Apr 07, 2025 pm 09:36 PM

Zusammenfassung: Es gibt die folgenden Methoden zum Umwandeln von VUE.JS -String -Arrays in Objektarrays: Grundlegende Methode: Verwenden Sie die Kartenfunktion, um regelmäßige formatierte Daten zu entsprechen. Erweitertes Gameplay: Die Verwendung regulärer Ausdrücke kann komplexe Formate ausführen, müssen jedoch sorgfältig geschrieben und berücksichtigt werden. Leistungsoptimierung: In Betracht ziehen die große Datenmenge, asynchrone Operationen oder effiziente Datenverarbeitungsbibliotheken können verwendet werden. Best Practice: Clear Code -Stil, verwenden Sie sinnvolle variable Namen und Kommentare, um den Code präzise zu halten.

So stellen Sie die Zeitüberschreitung von Vue Axios fest So stellen Sie die Zeitüberschreitung von Vue Axios fest Apr 07, 2025 pm 10:03 PM

Um die Zeitüberschreitung für Vue Axios festzulegen, können wir eine Axios -Instanz erstellen und die Zeitleitungsoption angeben: in globalen Einstellungen: vue.Prototyp. $ Axios = axios.create ({Timeout: 5000}); In einer einzigen Anfrage: this. $ axios.get ('/api/user', {timeout: 10000}).

Remote Senior Backend Engineers (Plattformen) benötigen Kreise Remote Senior Backend Engineers (Plattformen) benötigen Kreise Apr 08, 2025 pm 12:27 PM

Remote Senior Backend Engineer Job Vacant Company: Circle Standort: Remote-Büro-Jobtyp: Vollzeitgehalt: 130.000 bis 140.000 US-Dollar Stellenbeschreibung Nehmen Sie an der Forschung und Entwicklung von Mobilfunkanwendungen und öffentlichen API-bezogenen Funktionen, die den gesamten Lebenszyklus der Softwareentwicklung abdecken. Die Hauptaufgaben erledigen die Entwicklungsarbeit unabhängig von RubyonRails und arbeiten mit dem Front-End-Team von React/Redux/Relay zusammen. Erstellen Sie die Kernfunktionalität und -verbesserungen für Webanwendungen und arbeiten Sie eng mit Designer und Führung während des gesamten funktionalen Designprozesses zusammen. Fördern Sie positive Entwicklungsprozesse und priorisieren Sie die Iterationsgeschwindigkeit. Erfordert mehr als 6 Jahre komplexes Backend für Webanwendungen

Wie man MySQL löst, kann nicht gestartet werden Wie man MySQL löst, kann nicht gestartet werden Apr 08, 2025 pm 02:21 PM

Es gibt viele Gründe, warum MySQL Startup fehlschlägt und durch Überprüfung des Fehlerprotokolls diagnostiziert werden kann. Zu den allgemeinen Ursachen gehören Portkonflikte (prüfen Portbelegung und Änderung der Konfiguration), Berechtigungsprobleme (Überprüfen Sie den Dienst Ausführen von Benutzerberechtigungen), Konfigurationsdateifehler (Überprüfung der Parametereinstellungen), Datenverzeichniskorruption (Wiederherstellung von Daten oder Wiederaufbautabellenraum), InnoDB-Tabellenraumprobleme (prüfen IBDATA1-Dateien), Plug-in-Ladeversagen (Überprüfen Sie Fehlerprotokolle). Wenn Sie Probleme lösen, sollten Sie sie anhand des Fehlerprotokolls analysieren, die Hauptursache des Problems finden und die Gewohnheit entwickeln, Daten regelmäßig zu unterstützen, um Probleme zu verhindern und zu lösen.

See all articles