CounterProof

Adversarielles Code-Review: was der Begriff auslässt

Der Begriff deckt inzwischen vier Praktiken ab, vom Kritiker-Prompt bis zum Haus aus Menschen mit Angreiferblick. Jede liefert die Angreiferperspektive; keine liefert für sich allein eine unterzeichnete Akte von Prüfern, die vom Autor Ihres Codes unabhängig sind und deren Befunde nach der erreichten Evidenz eingestuft werden. Was wir liefern, was ein zweites Modell nicht kann, und was wir Ihnen vor dem Kauf sagen.

Adversarielles Code-Review heißt, Quelltext mit der Frage eines Angreifers im Kopf zu lesen (wie ließe sich das dazu bringen, etwas zu tun, was es nicht soll), statt mit der Frage eines Betreuers, ob der Code korrekt und aufgeräumt ist. Was wir unter diesem Namen liefern, ist eine unterzeichnete Befundakte: jeder bestätigte Befund nach der tatsächlich erreichten Evidenz eingestuft, jede untersuchte und für solide befundene Fläche mitsamt der Methode festgehalten, die sie untersucht hat, erstellt von Prüfern, die vom Autor Ihres Codes unabhängig sind, beurteilt von einer namentlich benannten Person, die Ihr Erwerber, Versicherer oder Kunde zitieren kann, und schriftlich zurückgezogen, wenn sie nicht standhält. Diese Seite sagt, was das zu den anderen Bedeutungen des Begriffs hinzufügt, und was es kostet.

Was der Begriff heute bedeutet

Nach unserer Lesart des Marktes (eine Recherche im September 2026, keine Erhebung) tragen vier Praktiken den Namen. Jede leistet etwas Echtes. Die ersten beiden sind Instrumente auf unserer eigenen Bank.

Der Kritiker-Prompt. Ein Agent schreibt eine Änderung; ein zweiter liest den Diff in frischem Kontext und oft aus einer anderen Modellfamilie durch feindliche Brillen. Das beseitigt die Selbstbewertung, was dort zählt, wo es greift: über acht Bewertermodelle gemessen war die Selbstbevorzugung bei einem groß, bei zweien mittel, bei zweien nahe null und bei dreien leicht umgekehrt (Selbstbevorzugung, arXiv:2410.21819). Als Praxis liefert er die Angreiferperspektive; er liefert für sich allein keine aufbewahrte Akte, kein Maß dafür, wie korreliert die beiden Lesarten waren, und keine Unterschrift.

Der Zwei-Prüfer-Orchestrator. Zwei Modellfamilien prüfen dieselbe Änderung unabhängig (manchmal blind voreinander), kritisieren sich dann gegenseitig, und eine von beiden fasst das Ergebnis zusammen und setzt oft auch die Behebung um. Die blinde Phase ist richtig. Als Form belässt sie das prüfende Modell in der Rolle des Richters über die eigenen Befunde und zugleich ihres Handwerkers, und sie erzeugt für sich allein weder eine Grundwahrheit noch ein Korrelationsmaß.

Das Plattform-Ensemble. Ein Prüfprodukt lässt mehrere Modelle in seiner eigenen Pipeline laufen und gibt Kommentare am Pull Request mit Schweregraden zurück; den Namen trägt es überwiegend durch Nachbarschaft, denn wer sich selbst so bezeichnet, betreibt weit überwiegend die ersten beiden Praktiken. Die Modellvielfalt ist hier eine Entwurfsentscheidung des Anbieters; so wie verkauft, legt die Form nicht offen, welches Modell was gesagt hat, auf welcher Evidenz, oder wie oft sie übereinstimmen, wenn sie falsch liegen. Sie liefert Volumen und Integration. Ein Kommentarstrang ist kein Audit.

Das Haus aus Menschen mit Angreiferblick. Leute mit offensivem Hintergrund lesen den Quelltext so, wie ein Angreifer es täte, ob als Firma oder als Crowd. Hier wird ein Angriff erfunden, den niemand vorformuliert hatte, und das ist die Praxis, die unsere speisen und nicht ersetzen soll. Als Form trennt sie für sich allein ihre Evidenz nicht von ihrem Urteil, und die Unabhängigkeit ihrer Prüfer voneinander ist ungemessen, wie bei allen.

Drei Eigenschaften, ein Wort

Drei Eigenschaften werden in adversariell zusammengepackt: die Aufgabenstellung (die Frage des Angreifers), die Fehlerunabhängigkeit zwischen den Prüfern und die organisatorische Unabhängigkeit dessen, der unterschreibt.

AufgabenstellungFehlerunabhängigkeitOrganisatorische Unabhängigkeit
Kritiker-Promptjanicht für sich allein, ein Auftrag, ein Richternein
Zwei-Prüfer-Orchestratorjaeine blinde Phase, ungemessen; der Prüfer entscheidetnein
Plattform-Ensemblejaanbieterintern, nicht offengelegtnein, ein Werkzeug kann nicht unterschreiben
Menschliches Hausjaein Teamja
CounterProofjabegrenzt und festgehalten, nicht gemessen: getrennte Modelllinien, der Auftrag in der Akte, korrelierte oder ausgefallene Instanzen zählen nichtja: namentlich benannter Unterzeichner, unabhängig vom Autor des Codes; Brancheninteressen schriftlich offengelegt

Ein zweites Modell, von Ihnen gewählt, auf das gerichtet, was Sie ihm zeigen, von Ihnen beurteilt, ist kein Gegner. Es ist ein zweiter Zug aus einer Verteilung, in der Sie bereits stehen. Daraus folgen drei Lücken, und keine davon ist ein Problem der Modellqualität.

Lücke eins: ein anderer Anbieter ist kein unabhängiger Zeuge

Zwei Modelle verschiedener Unternehmen haben verschiedene Trainingsdaten, also ist Übereinstimmung eine Bestätigung und Schweigen eine Beruhigung; so lautet die Überlegung. Eine Studie über mehr als 350 Modelle fand, dass zwei Modelle, wenn sie beide etwas falsch machen, weit häufiger als der Zufall auf dieselbe falsche Antwort kommen (im Mittel 60 % auf der einen und 42 % auf der anderen Bestenliste), wobei Paare von verschiedenen Anbietern durchgehend enthalten waren; die Aussage über Anbietergrenzen hinweg ist eine Schlussfolgerung aus dem Regressionsmodell der Studie und keine Analyse allein anbieterübergreifender Paare (Kim et al., ICML 2025, arXiv:2506.07962). Gemessen wurden Benchmarks und das Sichten von Lebensläufen, nicht die Schwachstellenprüfung, also liefert sie niemandem die Überlappungszahl für Code; belegt ist, dass verschiedene Anbieter nicht automatisch unabhängig sind. Dass dies ändern sollte, wie Sie die Zustimmung eines zweiten Prüfers zu Ihrem Code lesen, ist unsere Schlussfolgerung. Die Textwissenschaft hat denselben Punkt vor fünf Jahrhunderten zur Regel gemacht: eine Abschrift, die erwiesenermaßen von einer anderen erhaltenen Abschrift abstammt, wird aus der Rechnung gestrichen, nicht weil sie falsch wäre, sondern weil sie kein eigenes Zeugnis hinzufügt.

Der Korrelationskanal, den man übersieht, ist nicht der Anbieter. Es ist der Auftrag: Prompt, Werkzeuge, Evidenzpaket und Rollenrahmen korrelieren Prüfer über Anbieter hinweg, und zwei Modelle, denen dasselbe kuratierte Paket gereicht wird, teilen alles, was das Paket auslässt. Wir behandeln den Auftrag als Teil des Apparats und legen ihn zur Prüfung in die Akte. Der Angreifer kann jedes Modell einsetzen arbeitet durch, was das erlaubt und was nicht.

Lücke zwei: niemand entscheidet, wann gar keine Meinung eingeholt werden sollte

Manche Behauptungen haben ein Orakel, etwas, das sie ohne jede Meinung beantwortet. Wird dieser Pfad ausgeführt? Führen Sie ihn aus. Lässt die Spezifikation diesen Wert zu? Lesen Sie sie. Wo ein Orakel existiert, schlägt ein Test, der gelaufen ist, ein Modell, das überlegt hat, und einen Menschen, der überlegt hat, ebenfalls.

Fragt man einen Prüf-Agenten, ob ein regulärer Ausdruck auf einen Pfad passt, erzeugt er eine flüssige Meinung darüber, ob der reguläre Ausdruck auf den Pfad passt. Diese Frage stattdessen an eine Ausführung zu leiten, ist eine technische Entscheidung, und nach unserer Lesart hat der überwiegende Teil der Prüfwerkzeuge sie nicht getroffen, weil die Kategorie nach Befunden pro Pull Request gekauft wird und ein Befund, der sich als Zwei-Minuten-Skript entpuppt, kein Befund ist. Wir kennen die Schwierigkeit von innen: Wir haben eine Prüfung gebaut, die genau diese Weiterleitung erzwingen sollte, und sie mit einem definierten, aber nie aufgerufenen Selbsttest ausgeliefert. Was einen Befund entscheidet ist die Obduktion.

Die Behauptungen ohne Orakel (wie schwer, ist diese Vertrauensannahme vertretbar, würde ein Angreifer sich die Mühe machen) sind Urteilsfragen, und keine Menge an Modellausgabe verwandelt ein Urteil in eine Tatsache.

Lücke drei: niemand hat unterschrieben

Ein hausinterner Agentenlauf (mit wie vielen Modellen und wie isolierten Kontexten auch immer) erzeugt Ihr eigenes Wort über Ihren eigenen Code, ohne dass jemand außerhalb Ihrer Organisation für einen einzigen Satz davon einsteht. Nach unserer Erfahrung ist genau das die Eigenschaft, nach der die Anwälte eines Erwerbers, der Underwriter eines Cyberversicherers und das Sicherheitsteam eines Unternehmenskunden zuerst fragen, weil es diejenige ist, die Ihr Team über die eigene Arbeit nicht liefern kann.

Unter dem Cyber Resilience Act dürfen die meisten Hersteller selbst bewerten und werden dann an jeder Aufzeichnung dahinter festgehalten: Berichte über die durchgeführten Tests in der technischen Dokumentation (Anhang VII Nummer 6), die die Testpflicht belegen (Anhang I Teil II Nummer 3), aufbewahrt zehn Jahre oder für den Unterstützungszeitraum, falls dieser länger ist (Artikel 13 Absatz 13). Die Meldepflicht für aktiv ausgenutzte Schwachstellen begann am 11. September 2026; die Verordnung gilt vollständig ab dem 11. Dezember 2027. Eine externe Bewertung stützt die Akte, die Sie zusammenstellen; sie ist nicht die Akte, und wir sind keine notifizierte Stelle. Die Normen verschieben sich, der Meldetermin nicht behandelt den Zeitplan.

Was Sie von uns bekommen

Nichts davon ist ein Geheimnis. Ein gut geführtes Team könnte jeden einzelnen Punkt übernehmen. Was Sie kaufen, ist, dass alle zusammen getan, aufgeschrieben und unterschrieben werden, als eine Akte, die Sie jemandem in die Hand geben können, der nicht im Raum war.

  1. Zuerst das Orakel. Eine entscheidbare Behauptung wird an Ausführung, Kompilierung oder Spezifikation geleitet, bevor irgendeine Meinung dazu eingeholt wird. Unser Werkzeug für Prüfpakete weigert sich, einen Auftrag ohne das zugehörige Evidenzpaket zu bauen, und der Auftrag nennt, was dieses Paket nicht zeigen kann, damit das Schweigen einer Instanz zu etwas, das sie nie erhalten hat, als Schweigen gelesen wird und nicht als Abwesenheit.
  2. Instanzen sind Modelllinien, und der Auftrag liegt in der Akte. Prüfer sind getrennte Modellfamilien; Instanzen mit Dateizugriff bauen ihre Evidenz selbst aus der Quelle, Instanzen ohne ihn lesen nur, was der Auftrag mitbringt. Auftrag, Werkzeuge und Paket, die jede erhalten hat, sind Teil der Akte. Eine ausgefallene Instanz wird als abwesend vermerkt, nie als Zustimmung; eine Instanz, die sich als kontextgleich mit einer anderen erweist, wird gekennzeichnet und nicht gezählt, einschließlich des Falls, in dem eine unserer eigenen unser eigenes Befunddokument im Kontext hatte.
  3. Blinde Rückgaben werden festgehalten, bevor es eine Beurteilung gibt. Was jede Instanz gesagt hat, wörtlich, mit ihrem Umschlag (Modell, Harness, Datum, geöffnete Dateien), wird aufgeschrieben, bevor irgendjemand sie vergleicht.
  4. Eine Auszählung begründet nie etwas. Befunde schließen nicht durch Abstimmung. Wo Prüfer uneins sind, was der Code tut, entscheidet die Quelle; wo eine Zurückweisung auf „ungewiss" beruht, geht die Behauptung in eine aufbewahrte Warteschlange mit Verantwortlichem, Verfallsdatum und Wiederaufnahmekriterium und wird einer frischen Modelllinie erneut vorgelegt. Die Bestätigung steigt die Evidenzstufe hinauf: Quellenbeleg, Compiler-Nachweis, Test, Reproduktion im Betrieb, und für jede probabilistische Behauptung eine Rate mit Intervall und aufbewahrten Protokollen der Einzelversuche; alles darunter ist nur plausibel, die andere Einordnung und nicht etwa eine schwächere Stufe. Eine untersuchte und für solide befundene Fläche wird mit der Methode festgehalten, die sie untersucht hat, und mit der Kontrolle, die zeigte, dass diese Methode finden kann, wonach sie gesucht hat.
  5. Eine namentlich benannte Person unterschreibt und zieht schriftlich zurück. Unter einer Kennung, die Ihre Betreuer und Ihr Erwerber zitieren können, auch dann, wenn der Befund unserer war. Wir veröffentlichen die Fälle, in denen unsere eigenen Instrumente versagt haben, denn eine Praxis, die Ihnen nicht zeigen kann, wo sie falsch lag, hat keine Stellung dort, wo sie sagt, sie liege richtig.

Mehrere Modelle zu befragen und die Mehrheit zu nehmen, ist ein Ensemble; so wie verkauft, legt es nichts davon gegenüber dem Käufer offen. Als wir im September 2026 gesucht haben, fanden wir keine Praxis, die dieses Bündel als ein vom Käufer prüfbares Protokoll anbietet. Das ist eine Aussage über die Form, nicht über die Trefferquote: worum es dabei geht, steht unten unter dem, was wir Ihnen vor dem Kauf sagen.

Wo das in Ihrem Schwachstellenmanagement sitzt

Das Finden ist nicht, wo wir unser Honorar verdienen. Scanner, Fuzzer, Prüfplattformen und Ihre eigenen Entwickler erzeugen bereits Kandidaten schneller, als irgendwer sie beurteilen kann, und auch unsere Aufträge finden Dinge; das ist das Nebenprodukt. Wofür wir bezahlt werden, sitzt dort, wo der Lebenszyklus bricht: Beurteilung: ein Kandidat wird zuerst an sein Orakel geleitet und dann nach der erreichten Evidenzstufe eingestuft, sodass die Schwere dem Nachweis folgt und nicht der Zuversicht eines Modells; Abschluss: Uneinigkeit wird von der Quelle entschieden, nicht durch Abstimmung, und „ungewiss" wird in einer aufbewahrten Warteschlange mit Verantwortlichem gehalten, statt still zu „akzeptiert" zu werden; und Zusicherung: das Ergebnis ist eine Akte, die eine namentlich benannte Person außerhalb Ihrer Organisation unterschrieben hat und zurückziehen kann, jener Teil einer technischen Akte, eines Due-Diligence-Pakets oder einer Versicherungsanfrage, den Sie über die eigene Arbeit nicht herstellen können. Stellen Sie uns in die Erkennung, und wir konkurrieren mit Ihrem Scanner um Stückzahlen, ein Rennen, das wir nicht laufen. Stellen Sie uns dorthin, wo aus einem Befund eine Entscheidung wird, die jemand später rechtfertigen soll, und die Akte ist das Produkt. Ein Befund ist kein Urteil behandelt die erste Stufe und Was einen Befund entscheidet die entscheidende Hälfte der zweiten; die aufbewahrte Warteschlange ist oben beschrieben. Schwachstellenmanagement unter dem Cyber Resilience Act geht jede Stufe mit der jeweiligen Pflicht des CRA durch.

Was wir Ihnen vor dem Kauf sagen

Das schützt Sie, deshalb steht es auf der Seite und nicht im Vertrag.

  • Wir verkaufen eine Akte, keine Trefferquote. Wir haben nicht gezeigt, dass ein Panel mehr echte Defekte findet als ein einzelner guter Prüfer, und wir behaupten es nicht; wir haben unseren vollen Apparat gegen einen einzelnen billigen Durchgang gemessen, vorab registriert und blind bewertet, und er hat kein Ziel klar gewonnen: eines hat er verloren, und beim anderen hat er seine eigene Präzisionsschwelle nur dadurch ausgelöst, dass er die Befunde löschte, die der Auditor als real eingestuft hatte. Wir haben unsere eigene Methode gemessen, und sie hat ihre Kosten nicht eingespielt. Die Fallstudie, aus der wir arbeiten, sagt, dass eine einfachere Doktrin (eine unabhängige externe Prüfung für alles, worauf Sie hin handeln werden, Streitfälle durch Lesen der Quelle entschieden, keine ungemessene Zahl ausgeliefert) zu derselben Evidenz passt; wenn Sie von dieser Seite nur das mitnehmen, nehmen Sie es mit. Was wir verkaufen, ist die Akte darüber, es getan zu haben, unter einer Unterschrift. Die Unabhängigkeit zwischen unseren Instanzen ist durch das Verfahren begrenzt und festgehalten, für Code-Review aber nicht gemessen; niemand hat sie gemessen. Jeder Befund in der Akte hat eine benannte Stufe erreicht oder ist als nicht dorthin gelangt gekennzeichnet.
  • Wo der Autor im Spiel ist. Unsere Regel lautet, dass wer eine strittige Behauptung erhoben hat, sie nicht allein beurteilt. Unsere prüfende Bank besteht aus zwei Personen, was weniger Aufträge bedeutet, die Ablehnung von Arbeit außerhalb unseres Gebiets, und dass diese Regel noch keinen Mechanismus hat, der sie erzwingt; unsere eigene Fallstudie nennt dieses Fehlen ihre größte unbehobene Schwäche. In der Praxis geht eine strittige Behauptung an die Quelle und an eine frische Modelllinie, bevor sie geschlossen wird, die Beurteilung wird festgehalten, und der Unterzeichner ist benannt, sodass Sie sehen können, welche Befunde so geschlossen wurden, und sie selbst gewichten können.
  • Keine Methode erreicht einen Defekt, den kein Zeuge vorgebracht hat. Die Kollation wählt nur unter dem aus, was geäußert wurde. Tests, Fuzzing, Beweise und die Lektüre eines Spezialisten sind eigene Wege zum selben Ort, und ein ernsthaftes Programm nutzt sie ebenfalls.
  • Wir sind unabhängig vom Autor Ihres Codes, nicht interessenlos in jeder Branche. CounterProof gehört zu einer Gruppe, die Infrastruktur für Zahlungen und die Verwahrung digitaler Vermögenswerte baut. Wenn Sie in diesen Märkten bauen, kann unser verbundenes Unternehmen Ihnen benachbart sein oder mit Ihnen konkurrieren. Wir sagen Ihnen vor jedem Auftrag und bevor Geld fließt schriftlich, was die Gruppe baut und wo sie tätig ist, und wir erteilen keine Bewertung zu Code, der von CounterProof oder einem Unternehmen unserer Gruppe verfasst wurde.

Die ausführliche Argumentation, mit ihren eigenen Grenzen, ist unser Arbeitspapier, ein Preprint, nicht peer-reviewed: research.counterproof.io (doi:10.5281/zenodo.22030516).

Fragen, die uns gestellt werden

Ist adversarielles Code-Review dasselbe wie ein Penetrationstest? Nein. Ein Penetrationstest übt ein laufendes System aus; dies liest Quelltext bei einem festgelegten Commit und begründet Befunde gegen den Code. Beide denken vom Angreifer her, sie beantworten verschiedene Fragen, und ein ernsthaftes Programm nutzt beide.

Kann ich nicht einfach zwei KI-Modelle über meinen eigenen Code laufen lassen? Sie können das, und ein zweiter Prüfer bringt vielleicht Kandidaten hervor, die der erste nicht hatte. Was dabei nicht entsteht, ist organisatorische Unabhängigkeit: Ihr Team wählt aus, was die Prüfer sehen, formuliert die Fragen und beurteilt die Antworten, und niemand außerhalb davon hat unterzeichnet.

Eine Prüfplattform lässt doch schon mehrere Modelle laufen. Ist das kein Panel? Nein. Ein Ensemble, dessen Modelle der Anbieter auswählt, dessen einzelne Rückgaben Sie nicht sehen können und dessen Widersprüche sich innerhalb der Pipeline auflösen, ist ein Instrument mit mehreren Teilen. Ein Panel besteht aus mehreren Instrumenten, deren Rückgaben getrennt festgehalten und deren Widersprüche von der Quelle entschieden werden.

Gilt adversarielles Code-Review nur für KI-erzeugten Code? Nein. Der Methode ist gleichgültig, wer (oder was) den Code geschrieben hat. Maschinengeschriebener Code macht die Lücke nur schwerer zu übersehen, weil das Volumen steigt und die Flüssigkeit das Raten verdeckt.

Worin unterscheidet sich das von einem KI-Werkzeug für Code-Review? Solche Werkzeuge erzeugen Befunde, und wir setzen Werkzeuge dieser Klasse als Instrumente ein. Was ein Werkzeug nicht kann, ist verantwortlich sein oder unterschreiben.


Als solche gekennzeichnete Schlussfolgerungen, oben und hier: dass die Zustimmung eines zweiten Prüfers zu Code abzuwerten ist (Kim et al. haben andere Gebiete gemessen); dass der Auftrag Prüfer korreliert; dass die vier Praktiken die Form des Marktes sind und dass Prüfwerkzeuge über Befunde pro Pull Request konkurrieren (unsere Lesart, eine Recherche, September 2026); dass organisatorische Unabhängigkeit das ist, wonach Erwerber, Versicherer und Unternehmenskunden zuerst fragen (unsere Erfahrung, keine Umfrage). Ist hier etwas falsch, berichtigen wir es schriftlich auf dieser Seite.