Aikido

Automatisches Triage und das Schweizer-Käse-Modell der Sicherheits-Rauschreduzierung

Oder: Warum Ihre traditionellen Scanner wahrscheinlich zu viel melden

Verfasst von
Madeline Lawrence

Das Schweizer-Käse-Modell ist eine klassische Methode, um über Risiken nachzudenken. In sicherheitskritischen Branchen besagt es, dass Vorfälle auftreten, wenn sich „Löcher“ in mehreren unvollkommenen Verteidigungsebenen aneinanderreihen. Um diese Risiken zu mindern, fügt man Verteidigungsebenen hinzu, um die Löcher zu verkleinern oder zu beseitigen und zu verhindern, dass unerwünschte Ergebnisse durchrutschen.

Bildnachweis: Ben Aveling

In der Anwendungssicherheit werden Vorfälle nicht nur durch Code- und Konfigurations-Exploits verursacht, sondern auch durch eine Erosion des Engineering-Fokus, bedingt durch False Positives und langsame Behebung. Schwachstellenmanagement ist gleichermaßen ein Engineering- und Prozessproblem, und Aikido verfolgt einen strategischen Ansatz, um das Rauschen zu reduzieren und die wichtigen Korrekturen zu beschleunigen.


Die Bedeutung einer mehrschichtigen Verteidigung

Wir können einen modernen AppSec-Workflow als eine Reihe gestapelter „Schichten“ visualisieren, die jeweils darauf ausgelegt sind, verschiedene Arten von Problemen zu erkennen und die gesamte Angriffsfläche zu verkleinern. Dazu gehören:

  • Code-Scanning und Erreichbarkeitsanalyse
  • Ausnutzbarkeitsanalyse das prüft, ob ein Angreifer die notwendigen Bedingungen erfüllen kann, damit der Fehler Schaden anrichten kann
  • Problem-Triage zur Bewertung von Ausnutzbarkeit, Priorität und Auswirkungen
  • Exploit-Wahrscheinlichkeit und ihr Umgebungskontext
  • Human-in-the-Loop-Kontrollen (lokale IDEs, CI-Systeme, PR-Genehmigungs-Workflows)
  • Die eigentliche Code-Korrektur durch Menschen und LLMs

Jeder der oben genannten Punkte kann sowohl eine ausnutzbare Schwachstelle als auch einen Engpass bei der Behebung darstellen. Die Workflows von Aikido sind daher darauf ausgerichtet, Reibungspunkte konsequent zu reduzieren, damit tatsächliche Schwachstellen dort behoben werden, wo sie am anfälligsten sind.

Löcher mit Erreichbarkeitsanalyse verkleinern

Ein Schwachpunkt traditioneller Code-Scans ist, dass „Erfolg“ missverstanden werden kann als das Auffinden möglichst vieler Probleme. Dazu gehören Befunde, die als Schwachstellen gemeldet werden, selbst wenn der anfällige Codepfad oder das Paket von Benutzergesteuerten Eingaben aus nicht erreichbar ist. Die Erreichbarkeits-Engine von Aikido fügt eine Programmflussanalyse hinzu, um solche Fälle von vornherein automatisch zu ignorieren. Dies allein reduziert einen erheblichen Teil des Rauschens.

Zum Beispiel könnte ein traditioneller SCA-Scanner eine veraltete Version von pyyaml die eine kritische Schwachstelle enthält. Die Erreichbarkeitsanalyse zeigt jedoch, dass kein Code das Paket tatsächlich verwendet. Daher kann das Problem trotz seiner dokumentierten Schwere sicher automatisch ignoriert werden.

Aikido Erreichbarkeitsanalyse

Die Erreichbarkeit funktioniert auf zwei Ebenen.

  • Die Erreichbarkeitsprüfung auf Abhängigkeitsebene überprüft, ob Ihr Code das anfällige Paket überhaupt importiert oder verwendet. Dadurch werden Pakete herausgefiltert, die lediglich als ungenutzte transitive Abhängigkeiten in Ihrer Lock-Datei enthalten sind.
  • Die Erreichbarkeit auf Funktionsebene geht noch einen Schritt weiter und prüft, ob Ihr Code die spezifische Funktion aufruft, die den Fehler enthält. So wird eine App, die lediglich eine XML-Bibliothek zur Erstellung von Dokumenten nutzt, hinsichtlich eines CVE im Parser dieser Bibliothek als fehlerfrei eingestuft.

So prüft „ Aikido “ die Ausnutzbarkeit von CVEs

Erreichbarer Code ist jedoch nicht zwangsläufig ausnutzbar. Erreichbarer Code kann dennoch sicher sein, wenn ein Angreifer die Bedingungen, die für das Auslösen des Fehlers erforderlich sind, nicht erfüllen kann. Bei den meisten Sicherheitslücken reicht es nicht aus, dass die Funktion ausgeführt wird. Es bedarf einer vom Angreifer kontrollierten Eingabe in einer bestimmten Form, einer bestimmten Konfiguration oder einer aktivierten Funktion, oder einer bestimmten Berechtigungsstufe, damit der Schaden tatsächlich eintreten kann.

AikidoDer CVE- Ausnutzbarkeitsanalyse liest den Code des Repositorys zusammen mit dem verknüpften container Kontext, einschließlich des Dockerfiles, des Basis-Images, der Distribution und der Art und Weise, wie das container ausgeführt wird. Er nutzt denAikido Agent, der analysiert, wie das anfällige Paket in Ihrem Code oder container Image verwendet wird, und entscheidet, ob der Befund in Ihrer Umgebung ausnutzbar ist. Der Agent führt dann die von Ihnen genehmigten triage Maßnahmen durch, darunter „Ignorieren“, „Zurückstellen“, „Downgrade“ oder „Upgrade“. Jede Entscheidung wird mit einer schriftlichen Begründung des Agenten versehen, die der Prüfer vor der Genehmigung einsehen kann.

Zusätzlich zur Erreichbarkeit reduziert die CVE- Ausnutzbarkeitsanalyse , die Anzahl der Fehlalarme bei Open-Source-Abhängigkeiten um bis zu 100 %. Wie die einzelnen Ebenen zusammenwirken, können Sie auf der Seite „Aikido “ unterSCA nachlesen.

Aikido Ausnutzbarkeitsanalyse

Die Erreichbarkeit zeigt, dass dieser Exploit im Code erreichbar ist. Die KI-Analyse ergibt jedoch, dass diese Schwachstelle durch Request-Forgery im vorliegenden Kontext keine Auswirkungen hat, da die Host-Domain fest codiert ist und vom Angreifer nicht geändert werden kann.

Sie können die CVE- Ausnutzbarkeitsanalyse en für Ihre Repositorys und verknüpften Container über die Einstellungen unter „ Triage “ auf Aikido aktivieren. Die Einrichtungsanleitung führt Sie Schritt für Schritt durch die Auswahl eines Geltungsbereichs und der Aktionen, die der Agent ausführen kann.

Exploit-Wahrscheinlichkeit und Umgebungskontext

Aikido Es greift auf das „Exploit Prediction Scoring System“ (EPSS) zurück, das die Wahrscheinlichkeit abschätzt, mit der eine CVE in den nächsten 30 Tagen in der Praxis ausgenutzt wird, und nutzt diese Informationen, um diejenigen zu ignorieren oder herabzustufen, die von Angreifern nicht ins Visier genommen werden. Da das EPSS täglich aktualisiert wird, sorgt diese Ebene dafür, dass der Stack stets an der aktuellen Bedrohungslage ausgerichtet ist und nicht an historischen CVSS-Werten.

Ausnutzbarkeitsanalyse liest Ihren Code und Ihre „ container “-Konfiguration aus, um zu entscheiden, ob ein Fehler überhaupt auftreten kann. Der Umgebungskontext bestimmt, wie stark dies ins Gewicht fällt, wenn dies der Fall ist. Dieselbe CVE wird in einem mit dem Internet verbundenen Produktionsdienst heraufgestuft und in einer internen Entwicklungsumgebung, die hinter weiteren Sicherheitskontrollen liegt, herabgestuft. Hier ist die Erfassung des Kontexts von entscheidender Bedeutung. Ist der Kontext falsch, ist auch die Entscheidung über den Schweregrad falsch. Deshalb investieren wir in die zeitnahe Feinabstimmung unserer LLMs und in die Einbindung der richtigen Code- und Umgebungsdetails in die Modelle, die die AutoTriage durchführen.

AutoTriage für „ SAST “ als Schlussfolgerungsgate

Während „ Ausnutzbarkeitsanalyse “ den Code-Lärm in Open-Source-Paketen um bis zu 100 % reduziert, stellt AutoTriage bei „ SAST “- und Code-Level-Befunden folgende Fragen:

  1. Können wir die Ausnutzbarkeit ausschließen? Das heißt, gibt es eine effektive Validierung, Bereinigung oder Typumwandlung, die den Exploit mindert.
  2. Wenn wir es nicht ausschließen können, wie sollen wir es priorisieren? Wir schätzen Wahrscheinlichkeit und Schweregrad ein und ordnen es dann entsprechend ein.

Wir haben bereits veröffentlicht, wie Reasoning-Modelle hier helfen. In vielen Fällen sind “Faustregeln” ausreichend (und kostengünstiger). Für komplexere Fälle (zum Beispiel Path Traversals) reduzieren Reasoning-Modelle False Positives weiter, indem sie das Problem zerlegen.

All dem liegt ein ausgeprägtes Bewusstsein für den Cry Wolf-Effekt zugrunde, bei dem zu viele Alerts mit geringem Wert das Vertrauen und die Reaktionsfähigkeit beeinträchtigen. Dessen Reduzierung ist ein primäres Ziel von AutoTriage.

Human-in-the-Loop, wo es darauf ankommt

Generative KI hat ein gut dokumentiertes Feedback-Loop-Problem. Menschen sind immer noch erforderlich, um Ausgaben zu überprüfen und letztendlich zu entscheiden, ob etwas ausgeliefert werden soll. Aikido zeigt seine Empfehlungen bewusst dort an, wo Ihr Team bereits arbeitet:

  • In Ihrer IDE, damit Sie schnelle Korrekturen vornehmen können, bevor Sie in ein Shared Repo pushen und CI-Pipelines ausführen
  • In Pull Requests, damit Reviewer den Triage-Kontext und KI-AutoFix Korrekturvorschläge sehen, sobald sich der Code ändert,
  • In CI, damit Sie Sicherheit im Kontext Ihrer bestehenden automatisierten Build-, Test- und Deploy-Pipelines platzieren können

Ziel ist es, menschliche Zeit, Mühe und Urteilsvermögen für die Bereiche zu reservieren, wo sie wirklich benötigt werden.

KI-AutoFix, um Korrekturen sofort auszuliefern

Wenn ein Befund wahrscheinlich ausnutzbar und mit hohen Auswirkungen verbunden ist, ist der beste Alert einer, der eine dokumentierte Korrektur mit dem bereits von Aikido zusammengestellten Kontext enthält. Aikido KI-AutoFix bietet eine Vorschau der zur Behebung erforderlichen Änderung, generiert den Pull Request für Ihr Repository und liefert detaillierte Kommentare zur Codeänderung und den behobenen Schwachstellen.

​

KI-AutoFix ist derzeit für SAST, IaC-Scan, SCA und Container-Images verfügbar. Ihr Code wird niemals persistent von einer KI-Technologie gespeichert, noch darf er zum Training von KI-Modellen verwendet werden (siehe Aikidos Trust Center, um mehr zu erfahren).

Aikido in der Praxis

Das ursprüngliche Schweizer-Käse-Modell lehrt, dass Vorfälle aus aufeinander abgestimmten Schwachstellen entstehen. In der Anwendungssicherheit sind Rauschen und Verzögerung zwei dieser Schwachstellen. Wenn Sie neu bei Aikido sind, fragen Sie sich vielleicht zunächst, warum Sie weniger Sicherheitsprobleme sehen, als Sie erwarten würden. Das ist beabsichtigt! Aikido arbeitet bewusst und proaktiv daran, den administrativen Aufwand zu minimieren, den Sie für das Triage von Hunderten von Problemen betreiben müssen, von denen nur einige eine signifikante Auswirkung haben könnten.

Durch die Schichtung von Erreichbarkeit, Reasoning-gestütztem Triage, menschlicher Validierung bei Bedarf und Ein-Klick-Korrekturen machen wir es viel schwieriger, dass sich diese Lücken aufreihen, und viel einfacher für Ihr Team, sich auf die wirklich wichtigen Aufgaben zu konzentrieren.

​

Teilen:

https://www.aikido.dev/blog/autotriage-and-the-swiss-cheese-model-of-security-noise-reduction

Nachrichten abonnieren

4.7/5
Falschpositive Ergebnisse leid?

Probieren Sie Aikido, wie 100.000 andere.
Jetzt starten
Erhalten Sie eine personalisierte Führung

Von über 100.000 Teams vertraut

Jetzt buchen
Scannen Sie Ihre App nach IDORs und realen Angriffspfaden

Von über 100.000 Teams vertraut

Scan starten
Erfahren Sie, wie KI-Penetrationstests Ihre App testen

Von über 100.000 Teams vertraut

Testen starten

Werden Sie noch heute sicher,
schnell und kostenlos.

Sichern Sie Code, Cloud und Laufzeit in einem zentralen System.
Verbinden Sie ein Repository, um herauszufinden, was die Reasoning Agents in Ihrer Codebasis finden.

Keine Kreditkarte erforderlich | Scan-Ergebnisse in 32 Sekunden.
Von über 150.000 Unternehmen vertraut