News Detailansicht

Verbesserte KI-Methoden zur Erkennung von Programmierfehlern

Im Auftrag des Bundesamts für Sicherheit in der Informationstechnik (BSI) haben Forschende der Uni Bremen und Mitarbeitende der Bremer Firma Team Neusta die M?glichkeiten des Einsatzes von Künstlicher Intelligenz bei der Codeanalyse untersucht. Die Studie kann beim BSI kostenlos abgerufen werden.

Softwarehersteller untersuchen ihre Programme oft bereits in der Entwicklungsphase, um Fehler frühzeitig zu entdecken. Durch den Einsatz sogenannter SAST-Werkzeuge (Static Application Security Testing) l?sst sich dieser Prozess teilweise automatisieren. Auch wenn sich der Nutzen solcher Tools in der Praxis gezeigt hat, übersehen sie oft Fehler oder melden viele Fehlalarme, sodass der Nutzen eingeschr?nkt wird. Maschinelles Lernen (ML), also automatisches Lernen aus Daten, kann dazu beitragen, die Fehlerraten solcher SAST-Werkzeuge zu reduzieren.

In einer gro?angelegten Studie wurde jetzt die Wirksamkeit des Einsatzes maschineller Lernverfahren in diesem Kontext untersucht, wobei auch die bestm?gliche Umsetzung anhand der neuesten Forschungsans?tze im Blickpunkt stand. Die AG Softwaretechnik am Technologie-Zentrum Informatik und Informationstechnik (TZI) der Universit?t Bremen sowie die Firmen neusta software development und neusta mobile solutions haben im Auftrag des Bundesamts für Sicherheit in der Informationstechnik (BSI) den Stand der Technik ermittelt. Im Rahmen des Projekts ?Machine Learning im Kontext von Static Application Security Testing (ML-SAST)“ führten sie Umfragen, Experteninterviews und eine systematische Literaturrecherche durch. Darüber hinaus untersuchten sie am Markt erh?ltliche SAST-Tools bezüglich ihrer ML-Funktionalit?ten und Fehlererkennungsraten.

Gr??tes Potenzial beim ?unüberwachten Lernen“

Die Ergebnisse fassten sie in einer umfangreichen Studie zusammen, wobei sie insbesondere die erfolgversprechendsten Ans?tze sowie den Forschungsbedarf in diesem Umfeld herausarbeiteten. Eine zentrale Erkenntnis besteht darin, dass in den meisten F?llen überwachte Ans?tze des maschinellen Lernens (?supervised learning“) genutzt werden, obwohl diese mit erheblichen Nachteilen einhergehen. ?Wenn man überwachte Lernans?tze verwenden m?chte, braucht man gute Datens?tze für das Training der Werkzeuge, und die gibt es zurzeit nicht“, erkl?rt TZI-Mitarbeiter Lorenz Hüther. Die Entwicklung der ben?tigten Datens?tze sei zumindest kurzfristig ?eher unrealistisch“ und auch l?ngerfristig nur mit erheblichem Aufwand realisierbar.

Darüber hinaus erfordere das überwachte Lernen ein hohes Ma? an Erkl?rbarkeit der Ergebnisse – sowohl die Entwickelnden als auch die Anwendenden der Werkzeuge müssen erkennen k?nnen, ob die Entscheidungskriterien des Systems sinnvoll sind.

Das gr??te Potenzial sieht das Projektteam daher aktuell bei unüberwachten Lernverfahren (?unsupervised learning“) mit Hilfe des sogenannten Clusterings. Dabei erkennt das System zun?chst alle ?hnlichen Funktionen des Programms und bündelt sie, um sie zu vergleichen. Wird an einer Stelle eine Abweichung entdeckt, erkennt das Werkzeug dies als potenziellen Fehler.

Prototyp wird bis Ende des Jahres ver?ffentlicht

Allerdings ist weiterer Forschungs- und Entwicklungsbedarf notwendig, um das Potenzial dieser Methoden für den Einsatz in der Praxis zu steigern. Die Projektbeteiligten wollen bis Ende des Jahres einen Prototyp entwickeln, der die besten aktuell verfügbaren Verfahren im Bereich ML-SAST nutzt. Der Prototyp wird als Open-Source-Projekt umgesetzt, sodass alle interessierten Hersteller ihn für ihre Produktentwicklung verwenden k?nnen. Das BSI finanziert die Entwicklung des Prototyps.


澳门皇冠_皇冠足球比分-劲爆体育:

Die Studie ?Machine Learning in the Context of Static Application Security Testing – ML-SAST“ kann beim BSI unter diesem Link abgerufen werden: https://www.bsi.bund.de/DE/Service-Navi/Publikationen/Studien/ML-SAST/ml-sast_node.html

 

Fragen beantwortet:

Lorenz Hüther
Technologie-Zentrum Informatik und Informationstechnik (TZI)
Universit?t Bremen
Telefon: +49 421 218-64476
E-Mail: lorenz1uni-bremen.de

 

Die besten Verfahren der automatisierten Codeanalyse k?nnen verschiedene Abh?ngigkeiten innerhalb eines Programms erkennen und diese zwecks weiterer Untersuchungen in Graphen übersetzen.