KI nutzen, um Autorisierungsfehler zu finden
Bug-Bounty-Programme verändern sich. Einige Programme haben die Belohnungen eingestellt. Andere haben die Auszahlungen um 80 % gekürzt. Der Grund ist nicht, dass die KI zu viele Fehler findet. Der Grund ist, dass die KI zu viele falsche Fehler findet. Triage-Teams ertrinken in Berichten von geringer Qualität.
In diesem Umfeld ist die wichtigste Fähigkeit nicht das Finden von Fehlern. Es ist der Beweis, dass ein Fehler nicht existiert. Man muss die korrekten Negativbefunde finden.
Ich verwende eine zweistufige Methode für Ziele mit verfügbarem Quellcode.
Stufe 1: Fan-out
Nutzen Sie kostengünstige KI-Modelle, um den Code zu lesen. Teilen Sie das Ziel in kleine Stücke auf. Lassen Sie das Modell nach verletzten Invarianten suchen. Suchen Sie nach Stellen, an denen ein Objekt ohne Besitzerprüfung geladen wird oder an denen ein Sicherheitsmechanismus (Security Gate) übersprungen wird. Streben Sie eine hohe Trefferquote (Recall) an. Rechnen Sie mit vielen Fehlern.
Stufe 2: Adversarial Verification
Nutzen Sie ein teures Modell mit hoher Argumentationsfähigkeit (High-Reasoning), um die Kandidaten zu eliminieren. Gehen Sie davon aus, dass jeder Kandidat widerlegt ist. Ein Kandidat überlebt nur, wenn Sie spezifische Codezeilen zitieren können. Sie müssen beweisen, dass der Pfad erreichbar ist und keine andere Prüfung ihn blockiert.
Das wertvollste Ergebnis ist eine Liste von Widerlegungen. Diese Liste schafft Vertrauen bei den Triage-Teams.
Ich habe Ory Kratos getestet, einen Open-Source-Identity-Server. Ich habe mir den Einstellungs-Flow angesehen. Dieser Bereich verarbeitet Passwortänderungen und E-Mail-Updates. Ein einziger Fehler hier führt zur Übernahme des Benutzerkontos (Account Takeover).
Die erste Stufe fand einen verlockenden Fehler. In der OIDC-Strategie fehlt einem bestimmten Container die Identitätsbindung (Identity Binding). Wenn man nur nach fehlenden Prüfungen sucht, würde man dies als Fehler mit hoher Kritikalität melden.
Das wäre ein Fehler.
Die fehlende Bindung ist nicht ausnutzbar. Das System bezieht die Zielidentität aus einem Live-Session-Cookie oder einem signierten Token. Die Container-Eigenschaften werden niemals auf das eigentliche Schreibziel angewendet. Das Design ist solide.
Dies zu melden, wäre Zeitverschwendung und würde Ihre Glaubwürdigkeit untergraben. Der Wert, den ich geliefert habe, war die Gewissheit, keinen Bericht einreichen zu müssen.
Als ich dieselbe Methode bei einem anderen Ziel anwandte, fand ich einen echten Fehler. Ein alternativer Einstiegspunkt übersah eine Autorisierungsprüfung, die im Hauptpfad erzwungen wurde. Ein entzogener Benutzer konnte immer noch durch eine Seitentür eindringen. Dieser Fehler hatte eine hohe Auswirkung und war für Standard-Scanner unsichtbar.
Gatekeeper bauen Mauern gegen die schiere Menge an Meldungen. Um erfolgreich zu sein, muss Ihre Arbeit mit KI präzise sein. Nutzen Sie KI, um mehr Code zu lesen, als ein Mensch kann. Nutzen Sie die KI dann, um sich selbst zu widerlegen, bevor Sie auf „Absenden“ klicken.
Konzentrieren Sie sich auf das Signal, nicht auf die Menge.
