CounterProof

Ein Befund ist kein Urteil

KI kann heute an einem Nachmittag Tausende Schwachstellenbefunde erzeugen. Ein Befund ist ein Zeuge, kein Urteil — und das eine Feld, das niemand prüfen kann, ist das, das alle aufblähen. So liest man die Flut, ohne in ihr zu ertrinken.

In rund 108 Stunden Maschinenzeit im August 2026 trieb eine einzige Freiwilligenkampagne ein Open-Weight-Modell durch 501 Bitcoin-Open-Source-Projekte und protokollierte 7.958 potenzielle Sicherheitsbefunde, davon 1.280 als hoch oder kritisch eingestuft. Über diese Kampagne — und die Verordnung, mit der sie kollidiert — haben wir in Die Maschinen lesen den Code geschrieben. Diese Notiz handelt von der Zahl selbst.

Denn ein Sicherheitsanbieter hat einen Benchmark veröffentlicht, der drei KI-Code-Review-Systeme gegen eine private Testanwendung antreten lässt: Eines fand 68 von 89 platzierten Schwachstellen, ein anderes 60, ein drittes 58. Die Anbieter konkurrieren jetzt über dieses Verhältnis — mehr Befunde, zu geringeren Kosten. Das Finden ist zur Massenware in einem Preiskrieg geworden.

Es lohnt sich also, klar auszusprechen, was ein Befund eigentlich ist — denn die Zählung misst das Falsche.

Ein Befund ist ein Zeuge, kein Urteil

Die Textwissenschaft hat das vor fünf Jahrhunderten geklärt, und ihr Wort dafür ist exakt.

Wenn ein antiker Text in vielen handkopierten Manuskripten überliefert ist, ist keine einzelne Abschrift der Text. Jede ist ein Zeuge: ein abgeleitetes Dokument, das das Original trägt — plus die Ausrutscher, Gewohnheiten und ererbten Verschiebungen seines Schreibers. Dass drei Manuskripte übereinstimmen, kann heißen, die Lesart ist echt — oder dass alle drei von derselben fehlerhaften Vorlage abstammen. Die Disziplin, die das sortiert, erzeugt eine kritische Edition: den Text, so gut er sich herstellen lässt, mit einem Apparat darunter, der jeden gewogenen Zeugen verzeichnet, jede Variante, jedes editorische Urteil und seine Gründe.

Ein KI-generierter Schwachstellenbefund ist ein Zeuge in genau diesem Sinn. Er ist nicht der Defekt. Er ist der Bericht eines Modells über einen Defekt — die wirklichen Eigenschaften des Codes, vermischt mit den Gewohnheiten des Modells, seiner Trainingsherkunft und dem Prompt, der ihn erzeugte. Dass zwei Scanner übereinstimmen, kann heißen, der Bug ist real — oder dass beide dieselben blinden Flecken und dieselben Vorlagen teilen. Da sie auf weitgehend demselben öffentlichen Korpus trainiert sind, tun sie das oft. Übereinstimmung korrelierter Zeugen ist Evidenz über die Zeugen, nicht über den Code.

Und die am härtesten erkämpfte Regel der Philologen überträgt sich unversehrt: Die flüssige Lesart ist die verdächtige. Schreiber glätten eine schwierige Passage zum bequemen Klischee, und die glatte Fassung ist öfter die Verbesserung des Kopisten als die Worte des Autors. Ein Schwachstellenbericht hat ein festes Genre: Titel, Schwachstellenklasse, Schweregrad, eine Zitation, ein Absatz „ein Angreifer könnte …". Ein Sprachmodell erzeugt diese Form überzeugend — ob der Defekt existiert oder nicht. Die Politur trägt keine Information über die Wahrheit. In diesem Genre ist Flüssigkeit kein Ausweis. Sie ist das, was zu prüfen ist.

Darum ist die Zählung die falsche Einheit. Sie zählt Zeugen und meldet sie als Urteile.

Der Schweregrad ist die Stelle, an der die Berichte übertreiben

Die Inflation ist nicht gleichverteilt. Sie konzentriert sich an einem Punkt, aus einem strukturellen Grund, der benannt gehört.

„Diese Funktion vergleicht einen Millisekunden-Zeitstempel mit einer Spalte in Sekundenauflösung" ist eine Behauptung, die etwas zitiert — eine Datei, eine Zeile, einen Commit. Man kann sie öffnen und in einer Minute klären. „Kritisch" zitiert nichts. Es gibt keine Codezeile, in der Kritisch steht. Der Schweregrad ist ein Urteil über Erreichbarkeit, Ausnutzbarkeit und Wirkradius — und weil er keinen Anker in der Quelle hat, ist er genau die Stelle, an der ein flüssiger Generator ungebremst nach oben driftet. Die dramatische Lesart ist die leichtere; jeder Anreiz in der Meldekette belohnt die größere Zahl; und nichts im Artefakt leistet Widerstand.

Wenn eine Kampagne also 1.280 Befunde „hoch oder kritisch" meldet, lautet die ehrliche Lesart: 1.280 Befunde, die ein Generator so etikettiert hat. Das Etikett ist das am wenigsten prüfbare Feld im Dokument — und es trägt die Hauptlast der Schlagzeile.

Sind sie ausnutzbar? Das hat noch niemand gesagt

Zwischen einem Befund und einem Defekt liegt ein Schritt, den die Zählung überspringt: die Würdigung — die Entscheidung, welche Befunde real sind, welche erreichbar, welche von Bedeutung. Dieser Schritt ist nach wie vor menschlich, und er skaliert nicht mit der Erzeugung.

Die klarste öffentliche Messung dessen, was passiert, wenn er übersprungen wird, kommt von curl. Dessen siebenköpfiges, ehrenamtliches Sicherheitsteam sah den Anteil bestätigter Schwachstellenmeldungen von über 15 % auf unter 5 % fallen, als KI-gestützte Einreichungen eintrafen — jede unbegründete Meldung kostete weiterhin Stunden, um sie zu widerlegen. Eine kam komplett mit GDB-Sitzungen und Registerauszügen für einen HTTP/3-Exploit in einer Funktion, die in curl nicht existiert. Der Maintainer beschrieb die Triage-Last als einem DDoS gleichkommend („tantamount to a DDoS"), und am Ende schloss das Projekt sein Bug-Bounty-Programm — mit der Feststellung, keine einzige valide, KI-gestützt erzeugte Sicherheitsmeldung gesehen zu haben.

Man lese diese Zahl richtig herum. Sie beweist nicht, dass KI-Befunde wertlos sind — sie beweist, dass Flüssigkeit und Validität eines Befunds unabhängig voneinander sind, und dass das Signal-Rausch-Verhältnis kollabiert, wenn man den Schritt der Würdigung entfernt. Die Meldungen wurden zahlreicher und selbstbewusster; der Anteil, der die Prüfung überlebte, ging zurück.

Die Flut ist ein Sicherheitsproblem, kein Ärgernis

Es ist verlockend, „zu viele Befunde" unter Belästigung abzulegen. Das wäre falsch. Wenn die Erzeugung der Würdigung davonläuft, verschwindet der echte Befund nicht — er liegt begraben in der Warteschlange hinter zweihundert plausiblen, und eine Warteschlange, die niemand abarbeiten kann, ist eine Warteschlange, die Dinge versteckt. curls Wort dafür — DDoS — ist das richtige Register. Ein Team, das in selbstbewussten Meldungen ertrinkt, ist nicht sicherer als eines ohne Meldungen; es ist ein Team, dessen Aufmerksamkeit an Zeugen verbraucht wurde, die nie ins Kreuzverhör kamen.

Die zwei Alarme auseinanderhalten

Zwei Behauptungen werden hier vermengt, und sie zu trennen ist die ganze Disziplin.

Im Aggregat ist die Gefahr real. Es gibt tatsächlich enorme Mengen unbehobener Defekte in altem Code, und ein billiger, unermüdlicher Finder wird einige davon zutage fördern. Die ganze Kategorie als Hype abzutun, ist falsch.

Pro Befund ist die behauptete Kritikalität systematisch überzeichnet — nach oben, weil das eine Feld, das niemand prüfen kann, das ist, das alle aufblähen. Jeden Alarm als Urteil zu behandeln, ist ebenfalls falsch — in die Gegenrichtung.

Der Fehler ist, mit dem einen Alarm die Frage des anderen zu beantworten. „Irgendwo in diesem Ökosystem existieren viele echte Bugs" macht diesen Befund auf Ihrer Zeile nicht ausnutzbar. Und „die meisten dieser konkreten Alarme sind Rauschen" heißt nicht, dass Ihre Codebasis sauber ist.

Was hindurchsieht

Der mittelalterliche Editor konnte nicht die ganze Überlieferung dekontaminieren. Was er konnte: an jede Lesart Bedingungen heften und die Bedingungen explizit machen. Derselbe Zug funktioniert hier. Wenn Ihnen ein Befund gereicht wird, fragen Sie:

  1. Welche Evidenzstufe erreicht er tatsächlich? In der Quelle nachverfolgt, kompiliert, getestet oder laufend reproduziert — das sind nicht dieselbe Behauptung. Ein Befund sollte nie eine höhere Gewissheit tragen als die Arbeit hinter ihm.
  2. Ist er in Ihrem Build erreichbar oder nur im Prinzip? Schweregrad ohne Erreichbarkeitsargument ist eine Stimmung, keine Messung.
  3. Wurde er gewürdigt oder gemittelt? Dass drei Werkzeuge übereinstimmen, sind nicht drei Bestätigungen, wenn die Werkzeuge einen blinden Fleck teilen. Ein Minderheitsbefund ist eine billige Orakelprüfung wert — den Test laufen lassen, die Spezifikation lesen, den Pfad ausführen —, keine Abstimmung.
  4. Ist er bereits behoben oder bereits bekannt? Ein Befund, den die Maintainer letzten Monat geschlossen haben, ist ein Zeuge der Geschichte, nicht Ihres Risikos.

Nichts davon ist exotisch. Es ist, was eine kritische Edition mit einem Stapel Manuskripte tut: die Zeugen kollationieren, gegen Evidenz würdigen, die stärker ist als eine weitere Meinung, und den Apparat behalten — die Urteile, die Unsicherheit, die erwogenen und verworfenen Lesarten.

Nicht jeder tote Befund starb denselben Tod

Die meisten Befunde überleben nicht. Das ist normal, und es ist der Punkt — aber wie ein Befund starb, ist Information, und ein Review, das alle in einen Eimer mit der Aufschrift „verworfen" kippt, hat diese Information weggeworfen.

Die Textwissenschaft trennt die Fälle, und die Unterscheidung ist alt genug, um einen Namen zu tragen. Ein Manuskript, das nachweislich von einem anderen erhaltenen Manuskript abgeschrieben wurde, wird ganz aus der Rechnung gestrichen — eliminatio codicum descriptorum — nicht weil es falsch wäre, sondern weil es kein unabhängiges Zeugnis beisteuert. Seine Übereinstimmung war nie Evidenz.

Drei Tode, und sie bedeuten nicht dasselbe:

  • Redundant. Mehrere Werkzeuge erzeugten denselben Befund. Wo diese Werkzeuge nicht unabhängig sind — und da sie Trainingsdaten und Vorlagen teilen, sind sie es oft nicht —, ist ihre Übereinstimmung eine Lesart in drei Abschriften, nicht drei Bestätigungen; sie dreifach zu zählen, ist die Art, wie falsches Vertrauen fabriziert wird. Streichen Sie die Duplikate, aber verzeichnen Sie die Unabhängigkeitsannahme, statt sie wegzunehmen: Übereinstimmung genuin unabhängiger Prüfer ist nicht nichts.
  • Falsch. Der Befund behauptet, der Code tue etwas, das der Code nicht tut. Geklärt durch Öffnen der Datei. Das ist die einzige Kategorie, die die meisten meinen, wenn sie „False Positive" sagen.
  • Wahr, aber über einen Text, den es nicht mehr gibt. Der Befund ist zutreffend — über eine Revision, die inzwischen behoben ist. Der Zeuge ist ehrlich; der Code hat sich unter ihm wegbewegt. Ein Defekt, der an einer gepinnten Upstream-Revision geschlossen wurde, ist für diese Revision kein False Positive und sollte nicht als einer verzeichnet werden. Das gilt nur, wenn der Befund sagt, welche Revision er gelesen hat: Ein Bericht, der seine Revision nicht nennen kann, ist kein ehrlicher Zeuge eines überholten Texts — er ist eine abgestandene Behauptung über den aktuellen.

Nur der zweite ist ein Fehler in der Lesart selbst; der ungepinnte Fall des dritten ist ein Fehler in der Pipeline, die ihn gemeldet hat. Eine Akte, die sagt, welchen Tod jeder Befund starb, kann von jemandem geprüft werden, der nicht dabei war. Ein Verhältnis — „wir haben zweihundert Befunde auf sechs triagiert" — kann das nicht, und ein Qualitätssignal ist es auch nicht: Eine faule Pipeline erreicht dieses Verhältnis, indem sie Müll erzeugt und ihn verwirft. Die Eliminierung ist nicht das Produkt. Die Evidenz hinter den Überlebenden ist es.

Wofür eine Edition da ist

Der Grund, eine Edition zu bauen statt einer Liste, ist: Jemand muss zu einem Urteil kommen, und es wird nicht der Prüfer sein.

Ein Maintainer entscheidet, ob gepatcht wird. Ein Hersteller entscheidet, was in die technische Dokumentation kommt. Das Sicherheitsteam eines Unternehmenskunden entscheidet, ob unterschrieben wird. Jeder von ihnen fällt ein Urteil, und jeder wird später — von jemandem weniger Freundlichem, mit mehr Zeit — gefragt werden, wie er es gefällt hat. Was sie von einem Prüfer brauchen, ist nicht eine weitere Meinung zum Abwägen. Es ist die Evidenz, so geordnet, dass ihre eigene Entscheidung das Nachfragen übersteht.

In Europa wird das gerade von guter Praxis zu gesetzlicher Pflicht. Der Cyber Resilience Act verlangt von einem Hersteller, „die Sicherheit des Produkts mit digitalen Elementen regelmäßig und wirksam [zu] testen und [zu] überprüfen" (Anhang I Teil II Nummer 3), und die technische Dokumentation muss „Berichte über die Tests und Prüfungen, die durchgeführt wurden, um die Konformität … zu überprüfen" enthalten (Anhang VII Nummer 6) — aufbewahrt für mindestens zehn Jahre nach dem Inverkehrbringen oder für die Dauer des Unterstützungszeitraums, je nachdem, welcher Zeitraum länger ist (Artikel 13 Absatz 13). Die Meldung aktiv ausgenutzter Schwachstellen und schwerwiegender Vorfälle nach Artikel 14 beginnt am 11. September 2026; die Verordnung gilt vollständig ab dem 11. Dezember 2027.

Man lese, was da tatsächlich verlangt wird. Kein sauberer Scan, und keine niedrige Zahl. Ein Bericht über durchgeführte Tests, ein Jahrzehnt aufbewahrt, lesbar für jemanden, der nicht im Raum war. Eine Liste von Befunden mit selbstbewussten Schweregraden, ohne Apparat darunter und ohne Aufzeichnung dessen, was verworfen wurde und warum, übersteht diese Lektüre nicht. Eine Edition tut es — weil jede Behauptung die Evidenz hinter sich benennt, jede eliminierte Lesart mit ihrem Grund verzeichnet ist und jede Korrektur schriftlich erfolgt.

Die Pflichten liegen beim Hersteller, nicht bei einem externen Prüfer. Ein externes Review der hier beschriebenen Art stützt die technische Dokumentation, die Sie zusammenstellen; es ist nicht die vollständige Akte, und es ist kein Ersatz für die Konformitätsbewertung durch eine notifizierte Stelle, wo die Verordnung eine verlangt. Aber es ist der Teil dieser Akte, der über die eigene Arbeit am schwersten zu erzeugen ist — denn die eine Eigenschaft, die er tragen muss, ist, dass ihn jemand anderes als Sie geschrieben hat.

Warum uns das angeht

Bei CounterProof machen wir adversarielles Review maschinengeschriebenen Codes, und diese Fragen sind für uns nicht theoretisch — sie sind unsere Betriebsregeln. Befunde werden gewürdigt statt gemittelt; jede Behauptung nennt die Evidenzstufe, die sie erreicht hat, und keine höhere; ein Befund, der upstream bereits behoben ist, wird zurückgezogen statt gezählt; und wenn eine unserer eigenen Behauptungen nicht überlebt, ziehen wir sie schriftlich und öffentlich zurück (auf Englisch). Wir verkaufen keine Befundzahl, und wir würden Ihnen raten, auf keine hin zu kaufen. Die Scanner sind Schreiber, und das Skriptorium läuft jetzt Tag und Nacht für Pfennige. Knapp war nie die Abschrift. Knapp ist die Edition.

Das längere Argument — einschließlich der konditionalen Form jeder Behauptung oben und der Grenzen unserer eigenen Methode — steht in unserem Arbeitspapier über Kollation und Provenienz für maschinengenerierten Text, hier vollständig lesbar (auf Englisch). Es ist ein Preprint-Entwurf, nicht peer-reviewed, und sagt das auch.


Die Zahlen oben sind belegt: Die Kampagne über 501 Projekte ist in unserer früheren Notiz dokumentiert; die Benchmark-Verhältnisse der drei Systeme stammen aus dem veröffentlichten Beitrag des Anbieters; curls Bestätigungsquote, die Meldung zur Phantomfunktion und die Schließung des Bounty-Programms sind von The New Stack, BleepingComputer und The Register berichtet. Zitate aus dem Cyber Resilience Act beziehen sich auf Verordnung (EU) 2024/2847 in der amtlichen deutschen Sprachfassung — dieselben Fundstellen, die wir auf unserer Startseite führen. Wo eine Behauptung unsere Schlussfolgerung ist statt ein zitierter Befund — dass der Schweregrad nach oben inflationiert, dass Flüssigkeit und Validität unabhängig sind —, haben wir es gesagt. Diese Seite ist eine Übersetzung des englischen Originals; bei Abweichungen gilt das Original. Wenn hier etwas falsch ist, korrigieren wir es schriftlich auf dieser Seite.

← Alle Notizen