MCP – Audit-Inhalte begrenzen¶
Status: produktiv seit 08.09.2026. Diese Stufe begrenzt, welche Daten der MCP überhaupt an das Audit übergibt. Die später installierte Audit-Integrität ergänzt darauf aufbauend den root-eigenen Writer und verhindert direkte Änderungen der Audit-Dateien durch den Benutzer mcp.
Ziel¶
Das Audit soll nachvollziehbar machen, welches Werkzeug wann aufgerufen wurde und ob es erfolgreich war, ohne dafür vollständige Befehle, Datei-/Wiki-Inhalte, freie Fehlertexte oder Home-Assistant-Antworten dauerhaft zu speichern.
Die Reduktion erfolgt vor dem Schreiben. Die Admin-Oberfläche blendet also nicht nur Inhalte aus; unerwünschte Rohdaten werden im Audit-v2-Ereignis gar nicht erst vorgesehen.
Audit-v2¶
Jeder neue Eintrag enthält eine Ereignis-ID und ein streng begrenztes Schema. Typische Felder sind:
- Zeitstempel;
- Toolname;
- Status und Laufzeit;
- kategorisierte Caller-/Client-Metadaten;
- ausgewählte, formal begrenzte Argument-Metadaten;
- feste Ergebnis- und Fehlerkategorien;
- bei Prozesswerkzeugen nur intern nachgewiesene Prozessmetadaten.
Nicht gespeichert werden insbesondere:
- vollständige Shell- oder RouterOS-Befehle;
- stdout/stderr als Freitext;
- gelesene Datei- oder Wiki-Inhalte;
- übergebene Wiki-Inhalte;
- freie Stacktraces und beliebige Fehlertexte;
- HA-MCP-Argumente oder HA-Antworten aus der Bridge.
Beispiele¶
| Vorgang | Audit-Inhalt |
|---|---|
| Datei/Wiki lesen | Werkzeug, sicherer Zielpfad, Status, Laufzeit; kein gelesener Inhalt |
| Datei/Wiki schreiben | Zielpfad, Bytezahl, Status; gegebenenfalls Commit-ID |
| Shell/RouterOS | Status und strukturierte Prozessmetadaten; kein Befehl, keine Roh-Ausgabe |
| Fehler | feste Fehlerkategorie statt freiem Fehlertext |
| Audit abrufen | Zeilenzahl; keine Kopie der gelesenen Audit-Einträge |
| HA-Bridge | Bridge-Tool, Status, Laufzeit, Caller/Client; keine HA-Argumente/Antworten |
| neues Tool ohne eigenes Profil | minimale Ereignisdaten |
Technische Komponenten¶
/opt/mcp-shell/lib/audit-safe.js
/opt/mcp-shell/lib/core.js
/opt/mcp-admin/server.js
/opt/mcp-admin/policy-client.js
audit-safe.js projiziert Rohereignisse auf das erlaubte Audit-v2-Schema. core.js bindet diese Projektion an die normalen MCP-Tools an. Die Admin-Oberfläche kann alte und neue Einträge unterscheiden.
Die Home-Assistant-Bridge verwendet ebenfalls das begrenzte Audit-v2-Format; die fünf Bridge-Toolnamen sind zusätzlich in der Allowlist des Root-Writers hinterlegt.
Nachgelagerte Härtungen¶
Seit der ursprünglichen Audit-v2-Installation wurden zwei damals noch offene Punkte separat abgeschlossen:
- Befehlsfehler und Exitcodes:
run()wurde durch die strukturierte Fehlerweitergabe ersetzt. Siehe Befehlsfehler und Exitcodes. - Manipulationsschutz der Audit-Dateien: Das Schreiben erfolgt heute über
mcp-audit-writerals root;mcpkann die Tagesdateien nicht direkt verändern oder löschen. Siehe Audit-Integrität.
Damit sind frühere Formulierungen, wonach run() oder der direkte Schreibzugriff von mcp noch offen seien, nur noch historische Zwischenstände.
Produktiver Nachweis¶
Nach den Deployments wurden reale Tool-Aufrufe geprüft:
- Wiki-Lesen und -Schreiben ohne Inhaltskopie im Audit;
- Dienststatus mit begrenzten Prozessmetadaten;
- absichtliche Fehler mit fester Fehlerkategorie;
shell_execute-Fehler mit beobachtetem Exitcode, aber ohne Befehl im Audit;- HA-Bridge-Aufrufe mit Caller/Client/IP/
cf_ray, aber ohne HA-Inhalte.
Grenzen¶
Das Audit ist kein kryptografisch unveränderbares externes Archiv. Root auf CT 108 bleibt außerhalb der Schutzgrenze. Ein kompromittierter MCP-Prozess kann gültig aussehende neue Ereignisse an den lokalen Writer senden, aber vorhandene root-eigene Tagesdateien nicht direkt bearbeiten.
Die 7-Tage-Aufbewahrung bleibt aktiv. Alte Logeinträge aus der Zeit vor Audit-v2 werden nicht rückwirkend umgeschrieben.
Historische Installationsunterlagen¶
Die ursprüngliche Audit-v2-Installation vom 08.09.2026 ist weiterhin über folgende Unterlagen nachvollziehbar:
/root/mcp-audit-hardening-20260908.tar.gz
/root/mcp-audit-backup-20260908T061743Z.XhsPep/rollback.sh
/root/mcp-audit-hardening-20260908.NEoFkA
/tmp/mcp-audit-install-test.2Hm4ol
Diese Pfade dokumentieren den damaligen Deployment-Stand; für einen vollständigen Neuaufbau ist die aktuelle Installationsseite maßgeblich.