Snyk auf der RSAC 2021 – ML in SAST: Ablenkung oder Umbruch?
Tony Sleva
30. Juni 2021
0 Min. LesezeitMachine Learning ist ein Begriff, der starke Reaktionen hervorruft. Es bietet enormes Potenzial, Technologien voranzubringen, wird jedoch oft als Marketing-Schlagwort für glorifizierte Mustererkennung verwendet. So wird es zunehmend schwieriger zu beurteilen, ob Machine Learning in bestehender Technologie neue Maßstäbe setzen oder lediglich mehr Lizenzen verkaufen soll. Genau diesem Problem geht Frank Fischer, Product Marketing für Snyk Code, in seinem Vortrag auf der RSAC 2021 nach: ML in SAST: Disruption or Distraction.
Static Application Security Testing (SAST) ist eine Technologie, die Sicherheitslücken in nicht ausgeführtem Quellcode aufspürt. Ziel von SAST ist es, Schwachstellen so schnell und so früh wie möglich im Softwareentwicklungszyklus (SDLC) zu finden. Da SAST Quellcode als Eingabe für die Analyse verwendet, eignet es sich ideal für den Einsatz symbolischer KI: SAST-Tools können Regeln auf Codebasen anwenden und so problematische Stellen erkennen.
In letzter Zeit gab es viel Wirbel um GitHub Copilot. Diese Lösung basiert auf einem Machine-Learning-Modell, scheint den zugrunde liegenden Code aber besser zu verstehen. Wie Beispiele in sozialen Medien zeigen, macht das Tool manchmal erstaunliche Vorschläge und verhält sich manchmal wie ein Papagei, der gehörte Sätze wiederholt. Es zeigt, was heute möglich ist und wo die aktuellen Grenzen liegen – und unterstreicht damit den Kern des RSAC-Vortrags!
SAST gibt es schon lange, doch bislang gab es kaum Umbrüche, sondern nur schrittweise Verbesserungen. Die Genauigkeit wurde stetig erhöht, allerdings auf Kosten der Rechenintensität. Deshalb können Scans, die sowohl sound (keine False Positives) als auch vollständig (keine übersehenen Schwachstellen) sind, Stunden oder Tage dauern. Außerdem erkennen SAST-Tools Probleme oft sehr gut, bieten aber nur selten umsetzbare Lösungen. Die Frage lautet also: Kann Machine Learning den nötigen Umbruch schaffen, damit SAST schnell, präzise und handlungsorientiert wird?
Bevor wir diese Frage beantworten können, sollten wir uns ansehen, wie SAST-Tools funktionieren. Um Schwachstellen zu finden, benötigen sie eine Wissensdatenbank mit Regeln und Methoden zur Erkennung bösartiger Muster. Diese Datenbank muss von Expertinnen und Experten gepflegt werden, die Schwachstellen erforschen und neue Regeln als symbolische KI hinzufügen. Die Verwaltung der Wissensdatenbank lässt sich noch nicht automatisieren, aber sie lässt sich durch Machine Learning verbessern.
Indem Expertinnen und Experten, die SAST-Wissensdatenbanken pflegen, riesige Mengen an Quellcode-Repositories nutzen (die alle über Open Source verfügbar sind) und Machine Learning anwenden, können sie die Zahl der erkennbaren Schwachstellen exponentiell steigern. Durch das Lernen anhand von Milliarden Codezeilen lassen sich Soundness und Vollständigkeit massiv verbessern. Das ist ein Umbruch.
Mehr Schwachstellen zu erkennen, klingt jedoch nach einer Verbesserung und nicht nach einem Umbruch. Der eigentliche Umbruch wäre der Einsatz von Machine Learning, um Code-Fixes zu automatisieren. Machine Learning darf nicht bei der Erkennung aufhören, sondern muss auch auf die Behebung der Schwachstellen angewendet werden. Richtig auf SAST angewendet, kann Machine Learning nicht nur falsche Muster erkennen, sondern auch die richtigen Muster für die Behebung identifizieren. Das ist der Umbruch.
Der letzte Umbruch, den Machine Learning ermöglichen kann, besteht darin, Genauigkeit und Handlungsorientierung in großem Maßstab zu verbessern. Tag für Tag stehen uns mehr Rechenleistung (z. B. GPUs), bessere Algorithmen und mehr vortrainierte Modelle (z. B. GPT-3 oder GitHub Copilot) zur Verfügung, damit Machine Learning die nötige Größenordnung erreicht und Scan-Zeiten auf wenige Minuten reduziert.
Auf dieser Grundlage kommt Frank zu dem Schluss, dass Machine Learning tatsächlich einen Umbruch im Bereich SAST bewirken und Geschwindigkeit, Genauigkeit und Handlungsorientierung verbessern wird. Doch selbst wenn Machine Learning Umbrüche ermöglicht, kann es bei unvollständiger Implementierung auch vom Wesentlichen ablenken. Wenn Sie sich nach einem neuen SAST-Tool umsehen, sollten Sie einige Punkte berücksichtigen:
Wird Machine Learning bereits in irgendeiner Form in Ihrem SAST eingesetzt? Falls nicht: Wo steht es auf der Roadmap? Machine Learning sollte sowohl zum Finden als auch zum Beheben von Schwachstellen eingesetzt werden. Steht es nicht für beides auf der Roadmap, bleibt Ihr SAST hinter den Erwartungen zurück.
Bietet Ihr SAST bereits umsetzbare Lösungen? Und stellt es diese direkt in den Tools bereit, die Entwicklerinnen und Entwickler nutzen? Falls nicht, wird Machine Learning lediglich mehr Schwachstellen aufdecken, ohne Lösungen anzubieten – das bedeutet mehr Arbeit für Entwicklerinnen und Entwickler und eine geringere Akzeptanz.
Lässt sich Ihr SAST direkt in eine automatisierte Pipeline integrieren? Falls nicht, bleibt ein Engpass bestehen – ganz gleich, wie leistungsfähig die Machine-Learning-Implementierung ist. Ergänzend dazu: In unserem aktuellen Bericht State of Cloud Native Application Security haben wir festgestellt, dass 72 % der vollständig automatisierten Teams kritische Schwachstellen innerhalb einer Woche behoben. Mit Machine Learning lässt sich dieser Anteil möglicherweise noch weiter steigern.
Sehen Sie sich den vollständigen Vortrag von der RSAC 2021 an, um mehr über Machine Learning in SAST zu erfahren. Sie suchen ein SAST-Tool, das bereits Geschwindigkeit, Genauigkeit und Handlungsorientierung bietet? Registrieren Sie sich und nutzen Sie Snyk Code kostenlos.
Starten Sie mit Capture the Flag
Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Herausforderungen lösen.
