Zero-Trust Sandboxing für KI-Code: Härtung gegen Path-Traversal und CPU-Watchdogs 🔒
Das Ausführen von KI-generiertem Bytecode auf einem Host-System erfordert striktes Zero-Trust Sandboxing. Ein unvertrauenswürdiges oder fehlerhaftes AST-Programm könnte versuchen, Directory-Traversals durchzuführen, Endlosschleifen zu starten oder den Host-Speicher zu erschöpfen. Im Audit-Release v2.11.2-audit (Commit 1572173) und v2.12.0 haben wir umfassenden Path-Traversal-Schutz und Quota-Absicherungen eingeführt.
1. Das Bedrohungsmodell: Unvertrauenswürdige AST-Ausführung
Wenn ein KI-Agent Code über knc_execute ausführt, muss die Laufzeit davon ausgehen, dass der AST bösartige Pfad-Sequenzen (wie ../ Traversals oder Null-Byte-Injektionen \0) oder Ausführungsschleifen enthalten könnte, die 100% CPU verbrauchen.
2. validate_fs_path(): Der Path-Traversal Schild
In io.rs und bridge.rs laufen Dateioperationen wie IO.WriteFile, IO.ReadFile und native Schreibzugriffe nun strikt durch validate_fs_path() und validate_fs_path_write().
Pfade, die aus dem zugewiesenen Arbeitsverzeichnis ausbrechen wollen oder verdächtige Zeichen enthalten, werden sofort mit einem Sandbox-Zugriffsfehler abgelehnt. Zudem validiert storage.rs Key-Parameter in store_value() und load_value() gegen /, \, .. und Null-Bytes.
3. CPU-Watchdog Härtung (500ms Schwellenwert)
Um zu verhindern, dass Endlosschleifen den Ausführungsthread blockieren, enthält KnotenCore einen aktiven CPU-Watchdog. In v2.12.0 wurde das Standard-Timeout in machine.rs von 50ms auf 500ms angehoben.
Dies bietet ausreichend Spielraum für komplexe JIT-Berechnungen und garantiert gleichzeitig, dass nicht-terminierende Schleifen abgebrochen werden, bevor sie Systemressourcen erschöpfen.
4. Multi-Tenant Isolate Quotas
Über CPU-Timeouts hinaus ist jedes Isolate an IsolateQuota-Limits gebunden (maximaler Speicher und Befehlszähler). Sitzungen, die ihr Quota überschreiten, erhalten einen -32000 Quota Exceeded Fehler, was Host-Stabilität bei Multi-Tenant-Workloads sichert.