Testbericht und Aussagegrenzen

Timotheos Samartzidis · Governed Intelligence · dokumentierter Teststand 29. Oktober 2026

Alle im Bericht genannten relativen Dateipfade beziehen sich auf das Artefaktpaket. Es enthält keine eingerichtete Laufzeit. Praxisanleitung und Testbericht erklären erwartete Ausgaben und tatsächlich beobachtete Resultate getrennt.

Security-Skills · Ausführung und Artefakte

Stand: 29. Oktober 2026. Der Auftrag umfasst die im Whitepaper konkret genannten Sicherheitsabläufe und ihre Werkzeuge, nicht sämtliche Skills in allen referenzierten Sammlungen. Granularität: zehn Analyse-/Review-Abläufe, drei konkrete Handbook-Abläufe, Strix, Shannon, SkillSpector einschließlich Skill Inspector, MCP-Review und Codex Security; 18 Einträge. Der Ablauf wurde vom Autor dieser Codex-Sitzung durchgeführt, beim Kontextaufbau mit sechs getrennten Funktionsagenten.

Der Erstlauf ist unverändert unter history/ erhalten. Der aktuelle Stand berücksichtigt zusätzlich die protokollierten Nachtests unter runs/followup/. preflight.json beschreibt weiterhin die ursprüngliche Vorprüfung, nicht die später lokal ergänzten Werkzeuge.

Versuchsaufbau

Der eigene Testcode liegt unter fixture/, sichere Ausgangsrevision 435c047c81f7bbb6e8fc938ced6ec65000ed4bf1, untersuchte Regression 72477128c5877e700805be5917d851bc876ff512. Zwei künstliche Kunden, zwei künstliche Dokumente, zwei absichtlich entfernte Eigentümerprüfungen und ein sicherer Gegenfall. Ergänzt ist eine einzelne MCP-Werkzeugbeschreibung mit Handler; ein vollständiger Server oder Netzportal ist nicht implementiert. Bekannte Fehler und Erwartungen waren offengelegt. Es gibt daher keinen Blindbenchmark, keine Erkennungsquote für unbekannte Fehler und keine bestätigte produktive Schwachstelle.

Der Benutzer bestätigte zusätzlich das hypothetische Szenario eines Internetportals mit vertraulichen Kundendokumenten. Es dient der bedingten Risikobewertung, nicht als real getestetes Ziel. Externe URLs wurden nur zum Beschaffen von Dokumentation, Paketen und Regeln verwendet. Es wurden keine externen Anwendungen angegriffen. Das schädliche Test-Skill wurde ausschließlich statisch gelesen; seine Anweisungen wurden nie ausgeführt.

Die Skillquellen sind mit Repository-Commit, Datei-Hash und Primärquellen-URL in source-manifest.json fixiert. Semgrep 1.182.1 lief unter Ubuntu/WSL in einer eigenen Umgebung; SkillSpector 2.12.0 unter Python 3.12.2 aus dem gepinnten NVIDIA-Quellstand. Codex Security CLI 0.8.1 enthält Plugin 0.1.95 und Codex 0.165.0; der Desktop-Host meldete separat Codex 0.163.0-alpha.10.2. Versionen sind keine austauschbaren Identitäten.

Statusmaßstab

„Ausgeführt“ bedeutet eine tatsächlich durchgeführte, abgegrenzte Methoden- oder Werkzeugprüfung mit Artefakt. Es garantiert weder Fehlerfreiheit noch native Gleichheit aller Agentenhosts. „Teilweise“ benennt fehlende Teilstufen. „Blockiert“ bedeutet eine nicht erfüllte technische Voraussetzung, „gescheitert“ einen tatsächlich begonnenen, technisch fehlgeschlagenen Lauf. Ein Test kann einen Fehler im Ablauf aufdecken und gerade deshalb nützlich sein; er wird dadurch kein bestandener Sicherheitsnachweis.

Nr. Eintrag Status Tatsächliche Artefakte und Grenze
01 security-threat-model Ausgeführt runs/threat-model/fixture-threat-model.md: Komponenten, Mermaid-Datenfluss, Schutzwerte, Annahmen, drei Bedrohungen, bedingte Priorität und Maßnahmen. Szenario bestätigt; kein echter Betrieb geprüft.
02 audit-context-building Ausgeführt, Host angepasst runs/context/audit-context/DOSSIER.md, sechs functions/*.md, execution.json. Sechs einzelne Codex-Funktionsagenten; keine native Claude Workflow API.
03 codeql Teilweise Native CodeQL-2.27.3-Demonstration auf getrennten öffentlichen MIT-Beispielen: runs/followup/codeql/codeql.db/, Qualitätslog, explizite Suite und SARIF. Eine Datei, 44 Baseline-Codezeilen, null Extraktionsfehler; 13 Meldungen, davon eine im Upstream als SPURIOUS markiert. Vollständiger Skill mit breiten Suiten und projektspezifischen Modellen nicht durchlaufen; Portal nicht mit CodeQL geprüft.
04 semgrep Teilweise runs/semgrep/rulesets.json, scans.json, sechs native JSON-/SARIF-Paare und results/results.sarif. Alle sechs Läufe liefern Ergebnisse; zwei sind wegen Regelproblemen als partial markiert. Pro nicht verfügbar.
05 sarif-parsing Ausgeführt, Fehler beobachtet runs/sarif/combined.sarif, summary.json, findings.json, findings.csv: Originalhelper reduziert zwei Stellen auf eine; eng begrenzte eigene Nachbearbeitung bewahrt zwei.
06 fp-check Ausgeführt runs/fp-check/verdicts.md, verknüpfte Funktionsbeobachtungen: zwei zutreffende und eine widerlegte vorgegebene Behauptung innerhalb des Funktionsvertrags.
07 variant-analysis Ausgeführt runs/variants/search.json, variant-report.md, reproduzierbares variant_search.py: eine zusätzliche Abrufvariante; ein sicherer Gegenfall verworfen.
08 differential-review Ausgeführt runs/diff/review.md, echte Git-Diff-/History-/Blame-Ausgaben: vier entfernte Schutzzeilen in zwei Funktionen, unveränderte bestehende Tests. Exportierte Baseline statt Ziel-Checkout.
09 insecure-defaults Teilweise runs/insecure-defaults/: 102 Offline-Assertions, 36 Mutationstests, Seed-Abgleich und manuelle Gegenprüfung. Ein Seed-Check scheitert auf diesem Host; kein nativer Agenten-Workflowlauf.
10 semgrep-rule-creator Ausgeführt runs/rules/portal-owner-check/ enthält genau Regel und Testdatei; daneben AST, Validierung, Testlog und nativer Fixture-Bericht mit zwei Stellen. Drei positive und drei sichere Gegenbeispiele bestanden.
11 harness-writing Ausgeführt, begrenzt runs/fuzzing/harness.cc tatsächlich mit Clang 14 und für AFL++ kompiliert. Native Buildlogs, Eingaben und separate Absturzkontrolle unter runs/followup/fuzzing/. Es bleibt ein künstlicher Nummernparser.
12 libfuzzer Ausgeführt, begrenzt runs/followup/fuzzing/libfuzzer/: Buildlog, instrumentierte Binärdatei, Korpus und Laufprotokoll mit 20.000 Durchläufen, 13 gemeldeten Coverage-Zählern und 44 Features; keine beobachteten Parserabstürze. Getrennte absichtlich abstürzende Kontrolle endet erwartungsgemäß mit 77.
13 aflpp Ausgeführt, begrenzt runs/followup/fuzzing/afl/: GCC-instrumentierte Binärdatei, Driver, Seeds, out/default/queue/, fuzzer_stats, Log. 15 Sekunden, 6.444 Ausführungen, zehn Korpuseinträge, keine gespeicherten Abstürze oder Hänger. Erster Clang-Wrapper inkompatibel; Crash-Reporting-Einschränkung dokumentiert.
14 penetration-testing-with-strix Blockiert Docker-Vorprüfung erneut nach Startversuch ausgeführt; runs/followup/docker-recheck.json dokumentiert ein 12-Sekunden-Timeout. Kein Strix-Test gestartet, keine Strix-Laufdateien oder PoC-Nachweise. Cloud nicht verwendet.
15 Shannon Blockiert Docker nach Startversuch nicht arbeitsfähig; erneute Vorprüfung protokolliert. Kein Shannon-Lauf, kein Abschlussbericht und kein Exploit-Nachweis.
16 SkillSpector / skill-inspector Ausgeführt Sechs native Berichte für harmlosen und schädlichen Test-Skill, je JSON/Markdown/SARIF; inspector-verdict.md mit semantischer Prüfung. Statisch ohne produktseitige LLM-Analyse.
17 mcp-server-security-review Ausgeführt im Handlerumfang runs/mcp-review/report.md: Werkzeug-Inventar, Datenfluss, ein bedingter Identitätsbefund und Fixvorschlag. SDK, Servertransport und OAuth unbewertet.
18 Codex Security Gescheitert Version/Info, erfolgreicher Dry-run, echte Ausführungslogs und Fehler-JSON. Im Preflight nach nativer Prozessstörung und MCP-Header-Zeitüberschreitungen beendet. Kein finaler report.md-/findings.json-/coverage.json-Satz im Zielordner. Diff und Deep nicht gestartet.

Beobachtungen, die in die Einführung einfließen

Semgrep erzeugte trotz null Meldungen verwertbare Laufartefakte: Damit ist sichtbar, welche Regeln und Dateien tatsächlich bearbeitet wurden. scans.json markiert zwei der sechs Regelläufe als teilweise. Die eigens abgeleitete, bestandene Regel markiert die beiden bekannten Rückgaben; diese Stellen sind keine neu entdeckten unbekannten Fehler. Das Portal hat im Test keine echten Daten und keine Netzexposition.

Der SARIF-Helper zeigt einen konkreten Verlust: Beide Meldungen tragen denselben Platzhalter-Fingerprint requires login, den er unkritisch als Identität nutzt. Die Originaldateien bleiben erhalten. Die eigene, dokumentierte Ableitung ignoriert nur diesen Platzhalter und behält danach beide verschiedenen Zeilen. Die Tests zur Schwerevererbung bestehen weiterhin.

SkillSpector meldet am schädlichen Text einen HIGH-Einzelbefund, aber zugleich Score 20 und Empfehlung SAFE. Die separate semantische Gegenprüfung durch den bearbeitenden Agenten entscheidet REJECT, weil die Datei einen verschwiegenen Zugangsdaten-Upload verlangt; die produktseitige LLM-Analyse blieb ausgeschaltet. Das sind Beobachtungen dieses kleinen statischen Falls, keine allgemeine Produktbewertung. Der verlangte Upload wurde nicht ausgeführt.

Die drei ursprünglichen Unit-Tests bestehen trotz der zwei entfernten Eigentümerprüfungen. 18 direkte Funktionsaufrufe über fehlerhafte und korrigierte Kopie zeigen die zwei Fremdzugriffsverletzungen und ihre Behebung; die Daten stehen unter runs/unit/. Das ersetzt keinen Integrationstest einer echten Anmeldung.

Ausführungsgrenzen und Konventionen

Eigene Berichtsnamen sind Konventionen dieses Versuchs. Native Strix-, Shannon- oder Codex-Security-Artefakte werden nur dort als solche bezeichnet, wo das jeweilige Programm sie tatsächlich geschrieben hat. Dokumentierte erwartete Dateien bei blockierten Werkzeugen werden im Whitepaper ausdrücklich als Erwartungen markiert. Die vorgeschlagene allgemeine Ablage security-audit/<lauf-id>/ bleibt davon getrennt.

Die Installation erfolgte nur in runtime/, ohne globale Security-Plugin-Installation. Windows-/WSL-Anpassungen sind in den einzelnen Berichten dokumentiert. Die Semgrep-Regelquellen wurden mit Commit festgehalten. Quellen, Originalausgaben und Ableitungen besitzen getrennte Pfade; der unveränderte Portalstand wird am Ende mit dem Fixture-Manifest abgeglichen.

Nachtests und klare Testgrenzen

Der aktuelle Stand lautet: zwölf Einträge wurden im ausdrücklich begrenzten Umfang ausgeführt, drei teilweise, zwei bleiben blockiert und einer ist technisch gescheitert. „Ausgeführt“ ist weiterhin kein Synonym für „vollständig evaluiert“ oder „bestanden“. Ein Teil der Einträge sind durch den Agenten angewandte textbasierte Methoden, andere echte Programmläufe. Eine native Installation und vollständige Ausführung aller Codex-/Claude-Plugins wurde nicht getestet.

Clang 14 und AFL++ 4.00c wurden aus offiziellen Ubuntu-Paketen ausschließlich projektlokal entpackt; Versionen und Paket-Hashes stehen unter runs/followup/fuzz-runtime/. Der Parser wurde mit AddressSanitizer und UndefinedBehaviorSanitizer in 20.000 libFuzzer-Ausführungen geprüft. Die 13 Coverage-Zähler und 44 Features sind Instrumentierungswerte, keine Prozentangabe zur vollständigen Anwendungsabdeckung. Die separate Kontrollfunktion wurde absichtlich zum Absturz gebracht; sie ist kein Fehlerfund im Parser.

Der erste AFL++-Clang-Wrapper scheiterte an einer nicht unterstützten Compileroption; der Fehler blieb im Buildlog erhalten. Die anschließende GCC-Instrumentierung lief mit afl-g++. Die Kampagne endete nach 15 Sekunden mit 6.444 Ausführungen. Es wurden keine Kernel-Einstellungen geändert. AFL_I_DONT_CARE_ABOUT_MISSING_CRASHES=1 erlaubte den Lauf trotz der Crash-Reporting-Vorprüfung; deshalb ist die Aussage über zuverlässig erfasste AFL-Abstürze eingeschränkt. Die positive Absturzkontrolle gehört ausschließlich zu libFuzzer.

CodeQL 2.27.3 wurde mit verifizierter offizieller Bundle-SHA-256 auf einem separaten öffentlichen MIT-Regressionsbeispiel aus github/codeql demonstriert. Dieser Quellcode wurde nur extrahiert und analysiert, nie ausgeführt. Die einzelne explizit referenzierte Abfrage meldete 13 Stellen, die mit den Upstream-Annotationen übereinstimmen; eine ist dort ausdrücklich als SPURIOUS markiert. Das sind keine 13 bestätigten neuen Schwachstellen. Datenbankqualität: eine Projektdatei, 44 Baseline-Codezeilen, null Extraktionsfehler. Die breite Suite-/Modellierungsfolge des vollständigen CodeQL-Skills und der Portalcode wurden damit nicht geprüft. Diese Ergebnisse werden nicht in die ursprünglichen SARIF-Deduplizierungsbeispiele gemischt.

Docker Desktop wurde für die erneute Vorprüfung gestartet, die Docker-Auskunft antwortete aber innerhalb von zwölf Sekunden nicht. Strix und Shannon bleiben daher ohne eigentlichen Testlauf. Beim Codex-Security-Standardlauf gilt unverändert der aufgezeichnete technische Abbruch; es wurde kein erneuter kostenpflichtiger Scan gestartet. Die übrigen Grenzen des Erstlaufs gelten weiter.

Schrittfolgen, Eingaben, konkrete Agentenaufträge, Befehle und Erfolgskriterien für alle 18 Einträge: PRAXISANLEITUNG.md. Sie kennzeichnet dokumentierte Aufrufe bei blockierten Werkzeugen ausdrücklich als nicht ausgeführt. Die Maschinenansicht runs/followup/results.json hält die zusätzlichen Messwerte und ihre Grenzen fest.