Dev News Daily ENDE

SANS-Skripte rekonstruieren, was OpenCode- und Hermes-Agenten taten

Incident-Responder müssen zunehmend eine neue Frage beantworten: Was hat der KI-Agent auf diesem Rechner getan? Am 8. Oktober hat Jim Clausing, Handler beim SANS Internet Storm Center, genau dafür zwei Python-Skripte veröffentlicht — für zwei quelloffene Agenten, OpenCode und Hermes —, zusammen mit einer Überarbeitung des SANS-Kurses FOR577, dessen fünfter Tag nun die Untersuchung von acht Coding-Assistenten behandelt, darunter Claude Code, Codex, Gemini CLI, Cursor und Copilot.

opencode-chat-replay.py baut Gespräche aus OpenCodes SQLite-Datenbank nach (standardmäßig ~/.local/share/opencode/opencode.db). Es versteht sowohl die älteren getrennten Message/Part-Tabellen als auch den neueren zusammengeführten Speicher session_message. --list zeigt Sitzungen mit IDs, Slugs, Zählern und UTC-Zeiten; --latest, --session oder --slug wählen eine aus. Ausgabe ist standardmäßig Markdown — Metadaten, dann nummerierte Turns, Reasoning und Tool-Aufrufe in <details>-Blöcken — oder JSON/JSONL zur Auswertung mit jq. Tool-Ein- und -Ausgaben werden bei 2.000 Zeichen abgeschnitten, und das Abschneiden wird vermerkt, nicht verschwiegen. Ein erklärtes Ziel: opencode export auf einem Analyserechner nachzubilden, auf dem OpenCode gar nicht installiert ist.

hermes_forensic_extract.py sammelt mehr: Sitzungen, Nachrichten und Modellnutzung aus ~/.hermes/state.db, vollständige LLM-Anfragen und -Antworten aus request_dump_*.json sowie Agent-, Fehler-, Gateway- und GUI-Logs. Die Ausgabe ist zeilenweises JSON; jeder Datensatz trägt einen _extraction_type (session, message, model_usage, request_dump, log_entry) und Metadaten zur Quelldatei.

SANS-Skripte rekonstruieren, was OpenCode- und Hermes-Agenten taten
SANS-Skripte rekonstruieren, was OpenCode- und Hermes-Agenten taten — Dev News Daily

Zum Nachmachen: der Umgang mit Beweismitteln. Beide Skripte brauchen nur Python 3.10+ und die Standardbibliothek, kennen Zeitgrenzen --start/--end und arbeiten mit einem eingehängten Image oder einem gesicherten Archiv. Vor jeder Abfrage kopieren sie die Datenbank samt -wal/-shm-Dateien in ein temporäres Verzeichnis und öffnen diese Kopie schreibgeschützt, weil das Öffnen einer lebenden SQLite-Datei trotzdem zwischengespeicherte Daten zurückschreiben kann. Das OpenCode-Skript öffnet auth.json nie — Clausing warnt aber, dass Transkripte in aufgezeichneten Tool-Ein- und -Ausgaben dennoch Geheimnisse enthalten können.

Zwei Einschränkungen nennt der Autor selbst: OpenCode und Hermes schrieben jeweils ihr eigenes Skript, daher die Unterschiede, und es sind Prüfwerkzeuge, keine Wiedergabe — sie zeigen, was aufgezeichnet wurde, und führen nichts erneut aus. Die Skripte liegen in Clausings GitHub-Repository, verlinkt im Beitrag.

Quelle: SANS ISC, „Reconstructing AI Agent Activity: Two New Scripts for Forensic Review“, 8. Oktober 2026 — https://isc.sans.edu/diary/Reconstructing+AI+Agent+Activity+Two+New+Scripts+for+Forensic+Review/33410/

Primärquelle
SANS Internet Storm Center
https://isc.sans.edu/diary/rss/33410