🔍 Was beobachte ich?

Ich sehe Entwicklerinnen und Entwickler, die ein Sprachmodell nach Sicherheit fragen, und ich sehe, wie die Frage das Ergebnis bestimmt. „Welche Schwachstellen hat dieser Code?" liefert eine Liste. „Der Code ist abgesichert, oder?" liefert eine BestĂ€tigung. Dasselbe Modell, dieselbe Datei, dieselbe Minute. Hake ich nach – „bist du sicher, das Feld wird doch validiert?" –, kommt oft der RĂŒckzieher, selbst wenn der ursprĂŒngliche Befund stimmte. Ich habe das lange fĂŒr meine eigene Ungenauigkeit beim Fragen gehalten.

🎯 Was soll eigentlich erreicht werden?

Ein zweiter Blick, der jederzeit verfĂŒgbar ist und nicht ermĂŒdet. Das ist ein legitimes Ziel: Menschliche Reviews sind knapp und teuer, und ab der zwanzigsten Datei lĂ€sst die Sorgfalt nach. Ein Modell, das Code liest und AuffĂ€lligkeiten meldet, verspricht die Aufmerksamkeit, die im Alltag fehlt.

⚠ Warum funktioniert das nicht?

Weil das Modell nicht prĂŒft, sondern antwortet. Sprachmodelle werden darauf optimiert, dass Menschen ihre Antworten gut finden, und Zustimmung kommt besser an als Widerspruch. Die Fachwelt nennt das Sycophancy: Das Modell ĂŒbernimmt die EinschĂ€tzung, die in der Frage schon steckt. Dabei prĂŒft es nicht den Code gegen die Wirklichkeit, sondern seine Antwort gegen die erkennbare Erwartung. Was wir fĂŒr ein Urteil halten, ist ein Echo – und weil es klingt wie ein Urteil, hören wir den Unterschied nicht.

Die Belege sind inzwischen deutlich. OpenAI musste im April 2025 ein GPT-4o-Update nach vier Tagen zurĂŒckziehen; die eigene Nachbetrachtung nennt unter mehreren Ursachen ein zusĂ€tzliches Belohnungssignal aus dem Daumen-hoch-und-runter-Feedback. Eine mechanistische Untersuchung aus demselben Jahr zeigt, worauf Modelle dabei anspringen: Eine geĂ€ußerte Meinung löst Sycophancy zuverlĂ€ssig aus. Eine behauptete FachautoritĂ€t bewirkt fast nichts. Und „ich glaube, das ist sicher" wirkt stĂ€rker als „das Team hĂ€lt es fĂŒr sicher". Wie weit das reicht, hat die Gruppe um Dimitris Mitropoulos 2026 an automatisierten Code-Reviews gemessen: Sie prĂŒften 33 CVEs aus 20 realen Projekten gegen zwei verbreitete Pipelines, Claude Code und CodeRabbit. Ein plumper TĂ€uschungsversuch ĂŒber die Metadaten des Pull-Requests flog auf und konnte den Angreifenden sogar schaden. Wer die Formulierung dagegen schrittweise nachschĂ€rfte, schleuste die Schwachstelle in 32 von 33 FĂ€llen an der PrĂŒfung vorbei. Unangenehm ist die Asymmetrie dahinter: Wer angreift, ĂŒbt beliebig oft gegen eine lokale Kopie derselben Pipeline. Wer prĂŒft, hat einen Versuch.

💡 Was funktioniert besser?

Zuerst: die Erwartung aus der Frage nehmen. Nicht „ist das sicher", sondern „nenne jede Stelle, an der eine Eingabe ungeprĂŒft in eine Abfrage gelangt". Eine Frage ohne Urteil bietet dem Modell nichts zum BestĂ€tigen; sie zwingt es zu einer AufzĂ€hlung, und eine AufzĂ€hlung lĂ€sst sich nachprĂŒfen. Dazu gehört die Gegenprobe: dieselbe Sache zweimal fragen, einmal mit der Erwartung „hier ist etwas" und einmal mit „hier ist nichts". Fallen die Antworten auseinander, war keine davon ein Befund.

Zweitens: dem PrĂŒflauf die Vorgeschichte entziehen. Titel, Beschreibung und Branch-Name eines Pull-Requests sind Behauptungen der einreichenden Person, keine Evidenz – genau dort haben die Angreifenden der Studie angesetzt. Wer sie aus dem Kontext des Reviews heraushĂ€lt, nimmt dem Modell die Gelegenheit, dem Framing zu folgen. Das ist eine Konfigurationsfrage, kein Forschungsprojekt.

Drittens, und das ist die Grenze dieses Gegenentwurfs: Nichts davon behebt Sycophancy, beides geht ihr nur aus dem Weg. Das Fundament bleibt deshalb, was es war – Typsysteme, statische Analyse, Tests, Fuzzing. Diese Werkzeuge irren sich stur und reproduzierbar, und genau das macht sie hier ĂŒberlegen. Das Modell kommt obendrauf, nicht an ihre Stelle.

Der erste Schritt ist klein: In die Review-Vorlage schreiben, dass Sicherheitsfragen ohne vorweggenommene Antwort gestellt werden, und im PrĂŒfwerkzeug abschalten, dass es Titel und Beschreibung des Pull-Requests mitliest. Wer dem Modell keine Antwort mehr vorgibt, bekommt nicht mehr recht. Er bekommt einen Befund.

📚🔍