 thanhnvandClaude Opus 4.8
|
ac40c0b281
|
feat(h4-hardening): Plan-07 Track A — A1 strict semantic, A2 unicode/encoding, A3 tool-output scan
A1 (V1): CASAN_SECURITY_STRICT=1 makes semantic classification REQUIRED and
fail-closed — model unavailable/no-verdict → BLOCK, never a silent SKIP.
Non-strict CASAN_SEMANTIC_CLASSIFY=1 keeps regex verdict but logs
SEMANTIC_SKIPPED loudly (sourced casan-log.sh). Default (no flags) unchanged.
A2 (V3/V4): unicode-normalize.py (NFKC + zero-width strip + Cyrillic/Greek
homoglyph fold) and decode-suspicious.py (base64/hex decode + rescan, printable
filter to avoid false positives) feed new match_either/secret_match haystacks.
Blocks homoglyph, zero-width, fullwidth, base64/hex-smuggled injection & secrets.
A3 (V7): tool-output-scan.sh scans tool output for injection/secret before it
re-enters model context; wrapper runs it after H6-exec (mode off|warn|block,
strict→block). warn is default to preserve benign-draft behaviour.
Baseline preserved: run-casan4 35/35, adversarial 44/44.
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-03 22:20:50 +09:00 |
|