Einheit 12 / 12

Grenzen: Sicherheit, Datenschutz, Lizenz und Ethik

Gewinne:

  • Fähigkeit zu erkennen und zu überprüfen, dass KI gefälschte APIs, unsicheren Code und urheberrechtlich geschützte Inhalte produzieren kann
  • Fähigkeit, die KI-Nutzung im Rahmen der Vertraulichkeit des Quellcodes, personenbezogener Daten und Unternehmensrichtlinien zu verwalten
  • Wir sind uns darüber im Klaren, dass die letztendliche Verantwortung für die Einhaltung von Lizenzen, Sicherheit und Ethik beim Ingenieur liegt.

Modulprüfung

1. Wenn Sie als Computeringenieur mit einem Tool zur Generierung von KI-Code arbeiten, liegt die letztendliche Verantwortung für welche der folgenden Punkte immer beim Menschen?

  • A) Endgültige Genehmigung der Korrektheit, Sicherheit sowie Überprüfung und Tests des in Produktion genommenen Codes ✔
  • B) Erstellen des ersten Codeskeletts für eine Funktion
  • C) Erstellen einer Liste mit Vorschlägen für Variablennamen
  • D) Vorbereiten eines Textentwurfs für Codekommentare

Beschreibung: KI; Es kann Aufgaben wie Code-Skelett, Testentwurf und Dokumentation beschleunigen. Es liegt jedoch in der Verantwortung des Ingenieurs, den generierten Code zu überprüfen, zu testen und zu genehmigen, um sicherzustellen, dass er korrekt, sicher und den Anforderungen entspricht, und ihn in die Produktion zu überführen; Dies kann nicht ohne unabhängige Überprüfung an die KI delegiert werden.

2. Die KI hat eine Funktion für Sie erstellt und sie scheint auf dem richtigen Weg zu funktionieren. Was ist der beste Schritt, bevor es in Produktion geht?

  • A) Da die Funktion zu funktionieren scheint, setzen Sie sie direkt in Produktion
  • B) Überprüfen Sie das Verhalten, indem Sie kleine Komponententests schreiben und ausführen, die Randfälle umfassen ✔
  • C) Schauen Sie sich einfach die Anzahl der Zeilen der Funktion an
  • D) Den Namen der Funktion aussagekräftiger gestalten

Erläuterung: Den Anschein zu erwecken, dass es funktioniert, bedeutet nicht, dass man recht hat. Durch das Schreiben und Ausführen kleiner Komponententests, die Randfälle wie leere Eingaben, Null, negative Werte, sehr große Werte und Nichtübereinstimmungen abdecken, wird das tatsächliche Verhalten der Funktion überprüft, ohne sie in die Live-Umgebung zu verschieben.

3. AI hat eine Methode namens „array.sortStable()“ vorgeschlagen, die in Ihrer Sprache nicht existiert, und sie klar erklärt. Was ist die erste richtige Maßnahme?

  • A) Die Methode direkt anwenden, weil die KI zuversichtlich erscheint
  • B) Definieren Sie die Methode selbst und verwenden Sie ihren Namen genau
  • C) Überprüfung der Existenz der Methode anhand der offiziellen Dokumentation der Sprache/Bibliothek ✔
  • D) Schließen Sie die Compiler-Warnung und fahren Sie fort

Erläuterung: Sprachmodelle können plausibel Bibliotheks-, Paket- oder Methodennamen erfinden, die tatsächlich nicht existieren (halluzinieren). Jede vorgeschlagene API sollte wörtlich anhand der offiziellen und aktuellen Dokumentation der Sprache oder Bibliothek überprüft werden. Wenn es nicht im Dokument enthalten ist, sollte es nicht verwendet werden.

4. Sie möchten den vertraulichen Quellcode Ihres Unternehmens und einen eingebetteten API-Schlüssel in ein öffentliches KI-Tool einfügen und um Hilfe bitten. Welcher Ansatz ist der richtige?

  • A) Aus Geschwindigkeitsgründen wird der Code so wie er ist mit dem API-Schlüssel eingefügt
  • B) Es reicht aus, einfach den Firmennamen zu löschen und alles andere zu teilen
  • C) Den Code teilen und dann die KI bitten, ihn zu löschen
  • D) Geheimnisse und verborgene Logik entfernen und das Problem auf ein repräsentatives Beispiel reduzieren oder ein institutionelles Tool verwenden ✔

Beschreibung: Geheimer Quellcode und Anmeldeinformationen (API-Schlüssel, Passwort, Verbindungszeichenfolge); Es ist riskant im Hinblick auf Firmengeheimnisse und Sicherheit. Es ist notwendig, die Geheimnisse und die verborgene Geschäftslogik zu beseitigen und das Problem auf ein anonymes/repräsentatives Beispiel zu reduzieren oder ein unternehmensweites/nicht datenbezogenes Tool zu verwenden.

5. AI sagte, dass die Komplexität einer von ihm geschriebenen Suchfunktion O(n) sei; aber es gibt zwei verschachtelte Schleifen im Code. Was ist das richtige technische Verhalten?

  • A) Analysieren Sie den Code manuell und extrahieren Sie die Komplexität selbst und messen Sie sie gegebenenfalls ✔
  • B) Akzeptiere O(n) und fahre fort, weil AI gesagt hat
  • C) Angenommen, die Anzahl der Zyklen hat nichts mit der Leistung zu tun
  • D) Ändern Sie einfach den Namen der Funktion

Erläuterung: Zeitkomplexität (Big-O) zeigt, wie die Anzahl der Operationen mit zunehmender Eingabe zunimmt. Zwei verschachtelte Schleifen bedeuten normalerweise O(n^2). Der Komplexitätsanspruch von AI sollte überprüft werden, indem der Code manuell analysiert und bei Bedarf mit zunehmenden Eingaben gemessen wird. Die Berufung auf den Anspruch führt zu einer falschen Leistungsannahme.

6. KI-generierter Code, der Benutzereingaben durch Verketten von Text direkt in eine SQL-Abfrage einfügt. Was ist hier das Hauptproblem und die richtige Lösung?

  • A) Kein Problem; Die Textzusammenführung ist die schnellste Methode
  • B) Es besteht die Gefahr einer SQL-Injection; Es sollte eine parametrisierte Abfrage (vorbereitete Anweisung) verwendet werden, die die Eingabe trennt ✔
  • C) Es reicht aus, die Abfrage einfach in Großbuchstaben umzuwandeln
  • D) Wenn Sie die Abfrage kürzer schreiben, wird das Problem gelöst

Beschreibung: Das direkte Hinzufügen von Benutzereingaben zum Abfragetext führt zu einer SQL-Injection-Sicherheitslücke. Der Angreifer kann die Abfrage mit der Eingabe modifizieren. Die richtige Lösung besteht darin, eine parametrisierte Abfrage (vorbereitete Anweisung) zu verwenden, die die Eingabe vom Abfragetext trennt. Dies ist einer der am häufigsten übersehenen Sicherheitsfehler im KI-Code.

7. Sie haben nur begrenzte Zeit, um einen von KI erstellten Code zu überprüfen. Welche Themen sollten am besten priorisiert werden?

  • A) Formatieren Sie nur Details wie Einrückungen und Abstände
  • B) Nur die Länge von Variablennamen
  • C) Logische Korrektheit, Schwachstellen und Randfallverhalten ✔
  • D) Nur die Gesamtzahl der Zeilen der Datei

Beschreibung: Höchstes Risiko bei der Codeüberprüfung; Hierbei handelt es sich um Probleme, die ernsthaften Schaden verursachen, wie z. B. logische Fehler, Sicherheitslücken und den Verlust vertraulicher Informationen. Format- und Stilprobleme werden mit automatischen Tools behoben; Das Hauptaugenmerk des Menschen sollte auf Genauigkeit, Sicherheit und Randfallverhalten gelegt werden.

8. Sie möchten, dass KI einen Fehler löst. Welcher Input würde der KI am besten dabei helfen, die Grundursache zu finden?

  • A) Ich sage nur: „Code funktioniert nicht, beheben Sie ihn“
  • B) Geben Sie einfach den Namen der Datei an
  • C) Sagen Sie einfach das erwartete Ergebnis, ohne den Fehlertext
  • D) Geben Sie eine vollständige Fehlermeldung, einen Stack-Trace, den relevanten Code und ein Beispiel für die minimale Reproduktion an ✔

Erläuterung: Für ein effektives Debugging ist es notwendig, der KI die vollständige Fehlermeldung, den Stack-Trace, das relevante Code-Snippet und das kleinste reproduzierbare Beispiel zu geben, das den Fehler erzeugt. Die vage Aussage „funktioniert nicht“ zwingt die KI dazu, Vermutungen anzustellen und pauschale Empfehlungen abzugeben.

9. Alle von AI erstellten Unit-Tests bestehen beim ersten Durchlauf. Welches Risiko sollte in dieser Situation nicht ignoriert werden?

  • A) Tests bestätigen möglicherweise den aktuellen Status des Codes, jedoch nicht das tatsächliche/erwartete Verhalten ✔
  • B) Der Code ist absolut fehlerfrei, da alle Tests bestanden wurden
  • C) Die Qualität ist gewährleistet, wenn die Anzahl der Tests groß ist
  • D) Das Bestehen der Prüfung beweist, dass der Versicherungsschutz vollständig ist

Erläuterung: Tests validieren möglicherweise das aktuelle (möglicherweise fehlerhafte) Verhalten des Codes, nicht das beabsichtigte Verhalten. oder es enthält möglicherweise keine sinnvolle Aussage und wird immer übergeben. Um zu sehen, dass die Tests die tatsächliche Erwartung überprüfen, ist es notwendig, den Code bewusst zu brechen und zu bestätigen, dass der Test rot wird.

10. KI hat Ihnen einen vorgefertigten Codeblock für ein Problem erstellt. Sie vermuten, dass der Code wörtlich aus einem Open-Source-Projekt kopiert wurde. Welches ist der richtige Ansatz?

  • A) Die Lizenz ohne nachzudenken nutzen, weil der Code funktioniert
  • B) Überprüfung der Quelle/Lizenz des Codes, ggf. Umschreiben und Einhaltung der Unternehmensrichtlinien ✔
  • C) Ändern Sie einfach die Variablennamen und betrachten Sie das Problem als gelöst
  • D) Unter der Annahme, dass die Lizenzierung nur große Unternehmen betrifft

Beschreibung: KI kann den urheberrechtlich geschützten/lizenzierten Code in den Trainingsdaten wörtlich reproduzieren. Eine Lizenzverletzung bei einem kommerziellen Produkt birgt erhebliche rechtliche Risiken. Es ist notwendig, die Quelle und Lizenz des Codes zu überprüfen, ihn gegebenenfalls in eigenen Worten umzuschreiben und die Lizenzrichtlinien der Institution einzuhalten.

11. AI schlug vor, dass Sie für Ihr Projekt sofort auf eine Microservices-Architektur umsteigen. Welcher technische Ansatz ist bei der Bewertung dieses Vorschlags am besten geeignet?

  • A) Teilen Sie das gesamte System sofort in Microservices auf, wie es die KI vorschlägt
  • B) Angenommen, Microservice ist immer die beste Wahl
  • C) Bewerten Sie den Vorschlag entsprechend dem tatsächlichen Bedarf, der Auslastung, der Teamstruktur und dem Plus-Minus-Verhältnis ✔
  • D) Treffen Sie die Entscheidung ausschließlich auf der Grundlage der Beliebtheit der Architektur

Erläuterung: Architekturentscheidungen hängen vom Kontext ab; Microservices bieten einen Mehrwert bei Anforderungen wie Skalierung und Teamtrennung, sind jedoch mit Kosten wie betrieblicher Komplexität, verteiltem Debugging und Kosten verbunden. Bewerten Sie den Vorschlag entsprechend dem tatsächlichen Bedarf, der Auslastung, der Teamstruktur und dem Verhältnis von Vor- und Nachteilen. Allgemeine Ratschläge sollten nicht blind befolgt werden.

12. AI hat eine optimierte README- und API-Dokumentation für Ihren Code erstellt. aber einige Endpunkte und Parameter stimmen im Code nicht überein. Was ist das richtige Verhalten?

  • A) Veröffentlichen Sie das Dokument so wie es ist, da der Text flüssig ist
  • B) Korrigieren Sie einfach den Titel und lassen Sie den Rest unverändert
  • C) Hinzufügen des Dokuments zum Lager, ohne es zu lesen
  • D) Vergleichen Sie jeden Endpunkt und Parameter mit dem tatsächlichen Code und korrigieren Sie alle, die nicht mit ✔ übereinstimmen

Beschreibung: Die Dokumentation sollte eine genaue Wiedergabe des tatsächlichen Codes sein. Das falsche Dokument drängt die Entwickler, die es lesen, dazu, es falsch zu verwenden. Jeder Endpunkt, Parameter und Rückgabewert sollte anhand des tatsächlichen Codes überprüft und etwaige Nichtübereinstimmungen korrigiert werden.

13. Welcher Eingabeansatz ist der richtige für die Ausgabe höchster Qualität, wenn Code von der KI angefordert wird?

  • A) Klare Angabe von Sprache/Version, Input-Output-Vertrag, Einschränkungen und Fehlersituationen ✔
  • B) Sagen Sie einfach: „Schreiben Sie mir einen funktionierenden Code.“
  • C) Schreiben Sie die kürzeste Anfrage, ohne einen Kontext anzugeben
  • D) Geben Sie einfach an, wie viele Codezeilen es geben wird

Beschreibung: Leistungsstarke Eingabeaufforderung; Dazu gehören die verwendete Sprache und Version, der Eingabe-Ausgabe-Vertrag, Leistungs- und Stilbeschränkungen, Fehlerbedingungen und die Anweisung „Nur innerhalb des angeforderten Bereichs bleiben“. Eine kontextlose „Schreib mir eine Funktion“-Anfrage ist generisch und erzeugt oft unangemessenen Code.

14. AI hat eine Konfiguration für Ihre CI/CD-Pipeline (Continuous Integration/Deployment) generiert und das Datenbankkennwort im Klartext darin eingebettet. Welches ist die richtige Lösung?

  • A) Belassen Sie das Passwort im Klartext, weil es funktioniert
  • B) Verschieben von Geheimnissen über Umgebungsvariablen oder ein Geheimnisverwaltungstool, nicht Einfügen von Klartext in das Repository ✔
  • C) Verschieben Sie das Passwort nur in die Kommentarzeile
  • D) Das Ändern des Dateinamens löst das Problem

Erläuterung: Das Schreiben von Geheimnissen wie Passwörtern und Schlüsseln im Klartext in die Konfigurationsdatei birgt das Risiko, dass die Versionskontrolle verloren geht und unbefugter Zugriff erfolgt. Geheimnisse; Es sollte durch Umgebungsvariablen oder einen speziellen Secrets-Manager ferngehalten werden und niemals im Klartext in das Repository gelangen.