AI-DevAssist — Vernetzung und Sicherheit digitaler Systeme

Künstliche Intelligenz als Disziplin der Software Entwicklung

Klassische Business Logik eignet sich oft dafür, durch einen datengetriebenen Ansatz oder andere Techniken aus dem Bereich der KI ersetzt zu werden. Man erhofft sich dadurch eine bessere Wartbarkei, Robustheit und letztlich auch eine bessere Genauigkeit.

In diesem Workshop werden wir ein Stück klassischen Code durch ein Maschine Learning Modell ersetzen. Dabei betrachten wir die Frage, wo die Grenze eines solchen Modells sind, wie man es in eine ja meistens gegebene klassische Umgebung einbindet und wie man entscheidet, ob ein großes Modell besser geeignet ist als mehrere kleine. Hier kommt die Frage Monolith vs kleinere Services also von neuem wieder auf.

Technisch werden in einem Java Umfeld arbeiten und daher ist es vorteilhaft, eine Java Entwicklungsumgebung auf einem Laptop mitzubringen. Letztlich ist aber jeder willkommen, da es eher um Prinzipien als Details im Code gehen wird.

Was ist KI?

Robotik

Roboter sind frei programmierbare Maschinen, die dem Menschen körperliche Arbeit abnehmen. Zum Einsatz kommen sie seit vielen Jahren in der Industrie, etwa in Form von Greifarmen oder Leichtbaurobotern. An ihrer Entwicklung sind viele Disziplinen beteiligt, u.a. Mechanik, Sensorik, Elektrotechnik – und immer häufiger auch Künstliche Intelligenz. Vorteil: Selbstlernende Industrieroboter erfüllen nicht nur eine vorgegebene Aufgabe, sondern können oftmals vom Menschen für verschiedene Tätigkeiten innerhalb eines Aufgabenbereichs „angelernt“ werden.

Ein Beispiel ist der am Karlsruher Institut für Technologie (KIT) entwickelte humanoide Roboter ARMAR-6: Er beobachtet den Menschen beim Ausführen einer Aufgabe und interpretiert mit Hilfe von Algorithmen des maschinellen Lernens die aktuelle Situation. Auf diese Weise kann er involvierte Objekte, Aktionen und deren Konsequenzen identifizieren. Der Roboter erstellt einen Plan zur Ausführung der Aufgabe, setzt diesen um und evaluiert anschließend den Erfolg der Aktion – und verbessert dadurch seine Fähigkeiten kontinuierlich. Der Mensch hilft ihm dabei, indem er dem Roboter mittels Sprache und Gesten die fehlenden Informationen liefert.

Der Einsatz von KI-basierten Robotern beschränkt sich längst nicht auf die Fertigung. Sie können den Menschen auch bei der Inspektion von Industrieanlagen oder in gefährlichen Umgebungen unterstützen – sei es bei Erkundungen in der Tiefsee, bei Aufräumarbeiten in kontaminierten Umgebungen oder bei der Bergung verschütteter Personen. Auf unbemannten Weltraummissionen führen (teil-)autonome Roboter wie der Mars-Rover Perseverence bereits heute komplexe Aufgaben durch. Auch in der Pflege können KI-basierte Roboter künftig sowohl den Pflegebedürftigen als auch dem Personal helfen.

AI-DevAssist — Vernetzung und Sicherheit digitaler Systeme

Künstliche Intelligenz hilft bei der Suche nach Schwachstellen in komplexen Softwarecodes. © Sergey Nivens –

Motivation

In vielen digitalen Produkten kommt heutzutage Software zum Einsatz. Mit der zunehmenden Vernetzung dieser Produkte entstehen immer mehr mögliche Ziele für Cyberangriffe. Unzureichend abgesicherte Softwaresysteme stellen für Staat, Gesellschaft und Wirtschaft ein immer größeres Sicherheitsrisiko dar, und die umfassende Absicherung von Millionen von Zeilen von Softwarecode ist für Entwicklerinnen und Entwickler eine immer größere Herausforderung. Die Anzahl der kritischen Schwachstellen steigt trotz aller Versuche diese einzudämmen. Untersuchungen haben ergeben, dass Programmiererinnen und Programmierer heute häufig noch dieselben Schwachstellen beim Schreiben von Softwarecode produzieren wie schon vor gut 20 Jahren. Es zeigt sich also, dass aktuelle Entwicklungswerkzeuge noch nicht intelligent genug sind, um die Softwareentwicklung an den entscheidenden sicherheitsrelevanten Stellen hinreichend zu unterstützen.

Ziele und Vorgehen

Ziel des Vorhabens „KI-gestützte, sichere Softwareentwicklung“ (AI-DevAssist) ist es daher, Methoden zu erforschen, bei denen Künstliche Intelligenz (KI) Schwachstellen in Softwarecode erkennt und so zur Verhinderung von Angriffen beiträgt. Anders als bei existierenden Ansätzen soll auf innovative Methoden sicherer Softwareentwicklung, speziell der automatisierten Codeanalyse, gesetzt werden. Auf dieser Grundlage wird ein KI-Assistent entwickelt, der Schwachstellen auf Basis semantischer Programmeigenschaften effektiv erkennt. Die zu entwickelnden KI-Komponenten suchen potentielle Schwachstellen sowohl direkt im Software-Code (statisch) als auch bei den Programmausführungen (dynamisch). Eine Mensch-KI-Schnittstelle ermöglicht die benutzerfreundlichen Steuerung der Komponenten und überlässt der Entwicklerin bzw. dem Entwickler die endgültige Entscheidung in der Beurteilung einer Sicherheitslücke.

Innovationen und Perspektiven

Die Innovation des Projektes liegt darin, Konzepte zu schaffen, die eine produktive Zusammenarbeit von KI-Systemen und Softwareentwicklerinnen und -entwicklern erlauben, so dass alle ihre Stärken ausspielen können. Insbesondere sollen auf diese Weise Programmiererinnen und Programmierer unterstützt werden, die nur geringe Expertise in der IT-Sicherheit haben. So wird sichergestellt, dass auch kleine und mittlere Unternehmen, die häufig nicht über ausgewiesene Sicherheitsexpertinnen und -experten verfügen, von den Ergebnissen profitieren. Mit der Aufdeckung von Schwachstellen in Softwarecode konzentriert sich das Vorhaben auf die Wurzel der meisten Sicherheitslücken und ermöglicht es, einfacher sichere Software zu programmieren. Hiervon profitieren sämtliche Bereiche, in denen IT-Lösungen entwickelt werden, wodurch ein wichtiger Beitrag zur Softwarequalität in Deutschland geleistet wird. Da Sicherheit ein wesentlicher Faktor am Softwaremarkt ist, hat das Vorhaben auch aus wirtschaftlicher Perspektive ein hohes Potenzial.

Leave A Comment