Security und Compliance gewährleisten Code-Qualitätssicherung im Zeitalter von KI

Von Dr. Marc Thomas, Field Application Engineer, IAR Systems 5 min Lesedauer

Anbieter zum Thema

In der heutigen dynamischen Softwareentwicklungslandschaft haben KI-Assistenztools wie GitHub Copilot die Codegenerierung verändert und versprechen beispiellose Effizienz. Doch wirken diese Tools nicht nur als Beschleuniger in der Entwicklung, sondern bringen auch Herausforderungen mit sich. Zum Beispiel wenn es darum geht, die Einhaltung etablierter Codierungsstandards und Sicherheitsrichtlinien wie MISRA-C, CERT C und CWE sicherzustellen.

KI-generierter Code kann sich für die schnelle Software-Entwicklung als praktisch erweisen. Anders als hier ist es allerdings nicht immer auf dem ersten Blick ersichtlich, ob der Code sinnvoll ist - oder ob funktionaler, KI-generierter Code womöglich gravierende Sicherheitsmängel aufweist.(Bild:  KI-Generiert / Dall-E)
KI-generierter Code kann sich für die schnelle Software-Entwicklung als praktisch erweisen. Anders als hier ist es allerdings nicht immer auf dem ersten Blick ersichtlich, ob der Code sinnvoll ist - oder ob funktionaler, KI-generierter Code womöglich gravierende Sicherheitsmängel aufweist.
(Bild: KI-Generiert / Dall-E)

KI-Tools zur Code-Generierung sorgen zwar für erhebliche Produktivitätssteigerungen. Aber sie entbinden das Entwicklungsteam nicht von der Pflicht, sicherzustellen, dass der Code auch die strengen Branchenstandards einhält. Diese Standards stellen nicht einfach nur Richtlinien dar. Vor allem, wenn es um Sicherheitszertifizierungen geht, sind sie unverzichtbare Rahmenbedingungen, die insbesondere in kritischen und sensiblen Bereichen Sicherheit und Zuverlässigkeit gewährleisten.

Herausforderungen durch KI-generierten Code

KI-generierter Code ist zwar innovativ, muss jedoch strengen Tests und Validierungen unterzogen werden, um zu gewährleisten, dass er auch die Standards erfüllt. Eine einfache, KI-generierte Funktion wie „toggle_LED“, die den Status von Hardware-LEDs steuert, könnte beispielsweise ohne Überprüfung direkt auf die Hardware zugreifen:

void toggle_LED(bool state) {    LED_PIN = state ? LED_ON _ LED_OFF; //Direct hardware manipulation}

Bei der Analyse mit Werkzeugen für die statische Code-Analyse wird aufgezeigt, dass diese Funktion gegen Sicherheitsstandards wie MISRA C verstößt.

Um Konformität zu erreichen, muss die Funktion geändert werden, damit sie geeignete Prüfungen enthält, die unbeabsichtigte Hardware-Interaktionen verhindern:

void toggle_LED(bool state) {    if (state) {        LED_PIN = LED_ON; //controlled hardware access    } else {        LED_PIN = LED_OFF;    }}

Erst diese Änderung gewährleistet, dass der Betrieb sicher ist und dass der Code den Industriestandards entspricht, die einen kontrollierten Zugriff auf Hardwarekomponenten vorschreiben.

KI-gestützte Entwicklung und Compliance-Frameworks

Die Integration KI-gestützter Softwareentwicklung in Compliance-Frameworks ist von entscheidender Bedeutung. Der Einsatz von Werkzeugen für die statische Analyse, wie etwa IAR C-STAT, kann dazu beitragen, dass KI-generierter Code MISRA C-konform ist. Diese Testtools können Nichtkonformitäten automatisch identifizieren und sichtbar machen, sodass der Entwickler diese Schwachstellen proaktiv beheben kann.

Kontrollinstanz Mensch

Trotz der Vorteile, die KI bietet, bleibt der Mensch als Kontrollinstanz unverzichtbar. Entwickler müssen den von einer KI generierten Code überprüfen, um sicherzustellen, dass er den Securityprotokollen und -maßnahmen entspricht. Dies ist entscheidend, um Schwachstellen zu vermeiden, die zu Sicherheitsverletzungen oder sogar Systemausfällen führen könnten.

Wie zum Beispiel eine KI-generierte Funktion zur Berechnung von Fakultäten:

int factorial(int n) {    if (n == 0) {        return 1;    } else {        return n * factorial(n - 1); // Recursive calculation    }}

Obwohl diese rekursiven Funktionen korrekt sind, muss der Entwickler sicherstellen, dass diese nicht zu einem Stack-Überlauf in Embedded-Systemen mit begrenztem Speicher führen – ein häufiger Fehler, der von KI-Tools übersehen werden kann. Tatsächlich fügt jeder rekursive Aufruf einen neuen Frame zum Stack hinzu, was bei größeren Eingabewerten zu einem Stack-Überlauf führen kann.

Diese Implementierung verstößt wiederum direkt gegen die MISRA C-Regel 17.2 (required): „Funktionen dürfen sich weder direkt noch indirekt selbst aufrufen.“ Diese Regel verbietet explizit Rekursionen in sicherheitskritischen Embedded-Systemen, da eine unvorhersehbare Stack-Nutzung die Systemstabilität gefährden kann. Die Experten müssen mithilfe von Tools für die statische Code-Analyse solche Compliance-Probleme erkennen und beheben. Die KI-Codegenerierungstools können diese übersehen, weil sie ihre Optimierungen in der Regel ausschließlich auf funktionale Korrektheit und nicht auf Sicherheitsstandards ausrichten.

Best Practices zur Qualitätssicherung bei der KI-gestützten Entwicklung

Um die höchsten Standards für Codequalität und -sicherheit in der KI-gestützten Entwicklung zu erfüllen, sind folgende Schritte unerlässlich:

  • Nutzen Sie bewährte Tools für statische und Laufzeit-Analysen: Für eine effektive Fehlererkennung und Qualitätssicherung sollten Sie die Nutzung von Werkzeugen in Betracht ziehen, zum Beispiel C-STAT und C-RUN, die Teil der IAR-Plattform sind und eine Vielzahl von Architekturen mit enger IDE- und CI-Integration abdecken. Diese Tools ergänzen umfassendere Lösungen wie CodeSonar, Parasoft C/C++test und VectorCAST, um die QA-Pipelines in jeder Phase zu stärken.
  • Führen Sie gründliche Codereviews durch: Führen Sie Peer-Review-Prozesse ein, in denen erfahrene Entwickler den von einer KI generierten Code anhand etablierter Standards und praktischem Know-how bewerten.
  • Fördern Sie kontinuierliches Lernen und Anpassungen: Unterstützen Sie die Entwickler dabei, bei den neuesten Codierungsstandards und Sicherheitspraktiken auf dem Laufenden zu bleiben. So stellen Sie sicher, dass KI-generierter Code nicht nur effizient, sondern auch robust und sicher ist.

Zusammenspiel von KI und menschlichem Sachverstand ist entscheidend für Code-Sicherheit

Künstliche Intelligenz wird die Softwareentwicklung nachhaltig verändern. Deshalb wird andererseits die Einhaltung von Codierungsstandards und Sicherheitsrichtlinien immer wichtiger: Denn KI-Tools bieten zwar erhebliche Produktivitätssteigerungen, müssen jedoch mit strengen Qualitätssicherungsmaßnahmen unterstützt werden. Nur so kann sichergestellt werden, dass die Effizienzvorteile nicht zu Lasten der Sicherheit und Zuverlässigkeit der produzierten Software gehen.

Unternehmen sollten Tools für statische und dynamische Analyse auf dem neuesten Stand der Technik einsetzen, um Schwachstellen in KI-generiertem Code zu erkennen, und gleichzeitig gründliche manuelle Codeüberprüfungen hinsichtlich Sicherheitsauswirkungen und domänenspezifischer Anforderungen durchführen. Da sich die Branchenstandards weiterentwickeln, müssen Entwicklungsteams kontinuierliches Lernen fördern und sich über Best Practices und neue KI-Funktionen auf dem Laufenden halten. Nur so lassen sich Qualitätsstandards effektiv aufrechterhalten.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Das Zusammenspiel von Künstlicher Intelligenz und menschlichem Fachwissen wird entscheidend sein, um sich in dieser wandelnden Landschaft zurechtzufinden. Dabei entsteht eine symbiotische Beziehung, in der KI die Entwicklung beschleunigt, während die Kontrolle durch den Menschen die Einhaltung von Vorschriften, die Sicherheit und letztlich das Vertrauen in die entwickelten Systeme gewährleistet.  (sg)

(ID:50422378)