# KẾ HOẠCH 07 — Báo cáo Production-Readiness & Kế hoạch Nâng cấp H4·H5·H6 > **Hai phần trong một tài liệu:** (I) *Báo cáo* đánh giá mức sẵn sàng production của H4 Security · H5 Governance · H6 AgentOps, dựa trên đọc code thật; (II) *Kế hoạch nâng cấp* task-level (chưa thực thi) để vá các đường lọt đã nhận diện. > > Nhãn: [có] tồn tại thật · [demo] mẫu · [mới] cần làm · [chưa tự động] có đo/người quyết. Nguồn threat-model: OWASP LLM Top 10, OWASP Agentic Top 10, CSA MAESTRO, MITRE ATLAS. --- # PHẦN I — BÁO CÁO ĐÁNH GIÁ ## 1. Câu hỏi lớn: "có nên nâng cấp luôn không?" **Khuyến nghị: CÓ, nhưng phân tầng — không đập một lúc.** - **Nếu sắp thi/demo:** *đóng băng* bản demo hiện tại; làm nâng cấp trên nhánh riêng. Không để việc siết bảo mật làm vỡ bản đang chạy. Trước giám khảo, **nói ra các đường lọt + lộ trình vá** đã là điểm cộng độ trưởng thành. - **Nếu mục tiêu là production thật:** làm **Track A (quick wins, rủi ro thấp) NGAY**, đưa sau cờ bật/tắt + test đối kháng; **Track B (sâu hơn) làm sau**. > Lý do phân tầng: một số lỗ hổng (semantic SKIP, thiếu trần chi phí tuyệt đối) vá nhanh & an toàn; số khác (đa ngôn ngữ, quản lý khóa HSM, chống inject bộ phân loại) cần thời gian và dễ gây hồi quy. ## 2. Thang điểm sẵn sàng production (0–5, cao = tốt) > ✅ **CẬP NHẬT 2026-07-06 — Track A + C-MVP + Evidence Pack + H5/H6/deep-gap hardening + Plan-10 traceability ĐÃ LÀM + TEST (218 core checks, 0 fail; model-router riêng 11/0). Local production-like Docker infra lab cũng đã có (2/0, verify nội bộ 7/0).** > Bảng dưới có cột **Baseline → Nay**. Điểm chấm CÔNG TÂM (0–100, theo `casan_harness_assessment.md`): > **H4 = 80 · H5 = 76→80 ⬆ · H6 = 79→80 ⬆ · trung bình 7 harness ~80.9/100 · không còn harness nào dưới 80 → CASAN Level 4 (vững ngưỡng)**. > Nguồn: `00_SUBMISSION_PACKAGE/evidence/scoring-run-report.md`. Chi tiết implemented-vs-planned: `CASAN_HARDENING_STATUS.md`. | Chiều | Baseline | **Nay** | Đã đóng (đã test) | Còn hở | |---|:--:|:--:|---|---| | Phủ phát hiện (detection) | 3 | **4** | homoglyph · zero-width · fullwidth · base64/hex · tool-output scan | đa ngôn ngữ VI/JA · split-injection (Track B) | | Fail-safe | 4 | **4.5** | `CASAN_SECURITY_STRICT` fail-closed — hết "semantic SKIP âm thầm" | — | | Toàn vẹn/chống giả mạo (H5) | 3 | **4** | telemetry vào manifest **ký RSA** (sửa 1 token → MISMATCH) | — | | Kiểm soát chi phí (H6) | 3 | **4** | trần tuyệt đối/call + ngân sách tích luỹ + cold-start (ngoài median×mult) | hard-cap per-provider live | | Quan sát (observability) | 3 | **4** | telemetry toàn vẹn (ký) · **alerting LIVE** (webhook + dedup + dead-letter, end-to-end từ step fail) · **dashboard hosted** (`/healthz` stale-aware) · **Docker lab** có nginx auth + alert/billing mock · provider-API reconcile · window breaker (V15) | dashboard deploy managed + TLS/OIDC · Slack/PagerDuty/on-call thật · billing-API thật | | Đa domain/i18n | 2 | **2.5** | benign corpus VI/JA/EN đo được (FP 0%) | detection vẫn chủ yếu EN (Track B) | | Quản lý khóa | 2 | **4** | **KMS live** (Vault Transit) — ký qua KMS, **rotate**, khoá **non-exportable** (đã chạy thật) | KMS chưa mặc định (fallback local) · HSM · IdP token ngắn hạn | | Phủ kiểm thử | 4 | **4.5** | **218 core tests** (35+44+25+29+7+12+7+20+15+7+6+8+3) đối kháng, 0 fail | line/symbol-level traceability + CI release gate | **Điểm trung bình (H4/H5/H6 mở rộng) ~3.0 → ~4.0/5; chấm công tâm per-harness H4=80 · H5=80 · H6=80 (~4.0/5). Không còn harness nào dưới 80.** > ⚠️ **Phạm vi rộng hơn — các chiều NGOÀI 3 harness lõi (Track C):** | Chiều (Track C) | Baseline | **Nay** | Đã đóng (đã test) | Còn hở | |---|:--:|:--:|---|---| | Tool authorization / action gating | 2 | **4** | `action-gate.sh` gate HÀNH ĐỘNG (V17) — .env/rm-rf/curl\|bash BLOCK, dep→approval | — | | Supply-chain (dependency sinh ra) | 1 | **3.5** | `supply-chain-gate.sh` (V18) — typosquat/postinstall/denylist + dep-diff | CVE/OSV scanner live chưa nối | | Data-governance / anti-exfil | 2 | **4** | `data-exfil-guard.sh` (V19) — secret→cloud BLOCK, PII→audit mask | — | | Evidence Pack (Plan-09) | — | **4** | `casan pack/verify-pack` — manifest ký, tamper-evident, certified-gate | KMS sign · hosted store | | Policy governance / approval | 2 | **4** | **approval-identity + Docker mock IdP/OIDC JWKS** (C4) — reviewer KÝ request hoặc JWT RS256 + role authz, hết env-var; SoD giữ (đã test 12/12 + infra lab) | enterprise IdP/JWKS · policy versioning/diff [planned] | | Runtime sandbox | 1 | **2.5** | `sandbox-run.sh` scaffold (V22) — chặn ssh/egress/forkbomb/write-outside + ulimit | **cô lập kernel thật** (container/nsjail) [planned] | | External append-only audit | 1 | **3.5** | **WORM ledger** (C5) — ship head hash-link ngoài, bắt rollback (`AUDIT_GAP_DETECTED`) + tamper | WORM store thật (S3 Object Lock) · trusted timestamp [planned] | | Incident response | 1 | **1** | — | severity/owner/kill-switch (C7) [planned] | **→ C-MVP (C1+C2+C3 + Evidence Pack) ~3.8/5 + H5-hardening (C4 approval-identity + Docker mock OIDC/JWKS, KMS live, C5 WORM/MinIO Object Lock lab) + H6-hardening (D1 alerting live, D2 provider-API reconcile, D3 dashboard hosted/nginx auth lab, D4 window breaker V15) + deep-gap closers + Plan-10 traceability [đã làm + test thật]. Còn: enterprise IdP/JWKS, S3 Object Lock/QLDB thật, KMS default/HSM, dashboard deploy managed + kênh alert managed, billing-API thật [planned].** Trio H4/H5/H6 nay **~4.0/5 (H4=80·H5=80·H6=80)**; harness thấp nhất nhích **76 (H5) → 79 (H6) → 80 (đồng đều)**. Production toàn diện vẫn cần các mục [planned] ở trên. ## 3. Bảng đường lọt (tóm tắt từ threat-model) | ID | Harness | Đường lọt | Mức | Vá ở Track | |---|---|---|---|---| | V1 | H4 | Semantic tùy chọn / SKIP khi vắng model | Cao | A | | V2 | H4 | Injection đa ngôn ngữ (VI/JA) né regex Anh | Cao | B | | V3 | H4 | Unicode homoglyph / zero-width / fullwidth | Trung–Cao | A | | V4 | H4 | Encoding smuggling (base64/hex/rot13) | Trung | A | | V5 | H4 | Inject vào chính bộ phân loại/judge | Trung | B | | V6 | H4 | Split/multi-turn injection | Trung | B | | V7 | H4 | Tool-output chưa quét như artifact | Trung | A | | V8 | H5 | Mutation không qua wrapper → không audit | Cao | A | | V9 | H5 | provider-usage.jsonl chưa nằm trong chuỗi ký | Cao | A | | V10 | H5 | Quản lý private key (nội gián/rotation) | Cao | B | | V11 | H5 | TOCTOU (sửa sau verify) | Trung | B | | V12 | H6 | Slow-boil (median trôi, không trip) | Cao | A | | V13 | H6 | Lạm dụng dưới ngưỡng (aggregate) | Trung–Cao | A | | V14 | H6 | Cold-start chưa có baseline | Trung | A | | V15 | H6 | Circuit-breaker né bằng xen kẽ thành công | Trung | B | | V16 | Hệ thống | Tin model backend (poisoning/chiếm Ollama) | Trung | B | | **V17** | H2/H4 | **Tool misuse / over-permission**: gọi tool hợp lệ nhưng hành động vượt quyền (ghi file nhạy cảm, network, lệnh nguy hiểm) | Cao | C | | **V18** | H4/H5 | **Supply-chain**: LLM tự thêm dependency độc/typo-squat/lifecycle script nguy hiểm | Cao | C | | **V19** | H4/H6 | **Data exfiltration** qua model cloud / log / tool call / artifact | Cao | A/C | | **V20** | H5 | **Policy change không qua approval** / rollback policy không rõ (liên kết Plan-04) | Cao | C | | **V21** | H5 | **Audit local bị xóa/rotate mất bằng chứng** (thiếu append-only ngoài runtime) | Trung–Cao | C | | **V22** | H7/Hệ thống | **Runtime escape / resource abuse** của code/test sinh ra (đọc ~/.ssh, network, fork-bomb, ghi ngoài workspace) | Cao | C | | **V23** | H6/H7 | **Thiếu incident workflow** khi gate phát hiện tấn công/spike/tamper (alert, owner, kill-switch) | Trung | A/C | > V17–V23 bổ sung theo review: Plan-07 gốc tập trung H4/H5/H6; production **nghiêm túc** cần nhìn rộng hơn → gom vào **TRACK C**. --- # PHẦN II — KẾ HOẠCH NÂNG CẤP (task-level) ## Nguyên tắc - **Mốc an toàn:** giữ **35/35 + 43/43 PASS** trước & sau mỗi task. - **Fix phải kèm test đối kháng:** mỗi vector Vx có ca red-team chứng minh "trước vá lọt, sau vá chặn". - **Sau cờ bật/tắt:** năng lực mới đưa sau env flag, bật dần. - **Không tự nới lỏng:** mọi thay đổi ngưỡng/chính sách vào audit (H5). --- ## TRACK A — Quick wins (rủi ro thấp, làm trước / cho production sớm) ### A1 — Bịt "semantic SKIP âm thầm" (V1) | Task | Việc | Verify | Done | |---|---|---|---| | A1.1 | Thêm chế độ `CASAN_SECURITY_STRICT=1`: artifact rủi ro **bắt buộc** semantic; vắng model → **BLOCK (fail-closed)**, không SKIP | ngắt Ollama + strict → rc=2 (không phải 0) | fail-closed thật | | A1.2 | Ghi rõ trong log khi semantic SKIP (không im lặng) | grep log thấy `SEMANTIC_SKIPPED` | có cảnh báo | | A1.3 | Test: prompt injection paraphrase (regex mù) + strict + model on → BLOCK | ca đối kháng PASS | chặn | ### A2 — Chuẩn hoá Unicode/encoding (V3, V4) | Task | Việc | Verify | Done | |---|---|---|---| | A2.1 | `normalize_for_match`: thêm NFKC, strip zero-width, fold fullwidth→ascii | homoglyph "ігnore" → khớp `ignore` | chuẩn hoá đúng | | A2.2 | Thêm bước giải base64/hex nghi ngờ rồi quét lại | payload base64 "ignore previous" → BLOCK | chặn encoding | | A2.3 | Test đối kháng cho homoglyph + zero-width + base64 | 3 ca PASS | phủ V3/V4 | ### A3 — Quét tool-output như artifact (V7) | Task | Việc | Verify | Done | |---|---|---|---| | A3.1 | Mọi kết quả tool trước khi vào ngữ cảnh model đi qua `artifact-scan` | tool trả payload độc → ARTIFACT_SCAN_BLOCKED | chặn | | A3.2 | Test: tool giả trả injection | ca PASS | phủ V7 | ### A4 — Toàn vẹn telemetry + mutation qua wrapper (V8, V9) | Task | Việc | Verify | Done | |---|---|---|---| | A4.1 | Đưa `provider-usage.jsonl` vào chuỗi hash/ký (H5) | sửa 1 dòng token → `AUDIT_HASH_MISMATCH` | telemetry bất biến | | A4.2 | Bổ sung kiểm "mọi mutation qua wrapper": scan artifact ghi ngoài harness | ghi thẳng file → cảnh báo/không audit bị phát hiện | phủ V8 | | A4.3 | Test: giả mạo token để giấu chi phí → bị bắt | ca PASS | phủ V9 | ### A5 — Trần chi phí tuyệt đối + ngân sách tích luỹ (V12, V13, V14) | Task | Việc | Verify | Done | |---|---|---|---| | A5.1 | Thêm `cost_absolute_max` (trần cứng mỗi call) cạnh median tương đối | 1 call vượt trần tuyệt đối → exit=2 dù median cao | chặn slow-boil | | A5.2 | Thêm `cost_cumulative_budget` (tổng theo phiên/ngày) | tổng vượt ngân sách → chặn dù mỗi call nhỏ | chặn dưới-ngưỡng | | A5.3 | Cold-start: dùng trần tuyệt đối khi chưa đủ mẫu median | run đầu vẫn có bảo vệ | phủ V14 | | A5.4 | Test: slow-boil (tăng dần) + spray (nhiều call nhỏ) | 2 ca PASS | phủ V12/V13 | ### A6 — Benign corpus & ngân sách false-positive (chống siết quá) > Theo review: FP trước đây mới nằm ở "rủi ro", nay thành task cứng — gate quá gắt thì team bỏ dùng. | Task | Việc | Verify | Done | |---|---|---|---| | A6.1 | Dựng **benign corpus** input hợp lệ (VI/JA/EN) | **≥ 30 mẫu / ngôn ngữ** | corpus sẵn | | A6.2 | Mỗi thay đổi H4 báo `block_rate` + `false_positive_rate` | chạy ra 2 chỉ số | có số | | A6.3 | Đặt **FP budget** cụ thể: FP > ngưỡng → không merge | **FP ≤ 3% (strict)** · **adversarial block ≥ 95%** · **vector CRITICAL block = 100%** | cổng FP có số | **Cổng ra Track A:** V1,V3,V4,V7,V8,V9,V12,V13,V14 + phần A của V19/V23 có test đối kháng xanh; **benign/FP trong ngân sách**; 35/35 + 43/43 không tụt. --- ## TRACK B — Sâu hơn (làm sau / cần thời gian) ### B1 — Corpus & phát hiện đa ngôn ngữ (V2) | Task | Việc | Verify | Done | |---|---|---|---| | B1.1 | Bổ sung block-pattern + corpus VI/JA (injection cùng ngữ nghĩa) | câu tiếng Việt "bỏ qua chỉ dẫn trên" → BLOCK | phủ V2 | | B1.2 | Đảm bảo model semantic đủ khả năng đa ngữ (đo recall VI/JA) | recall báo cáo (đo với model) | có số thật | ### B2 — Chống inject bộ phân loại (V5) & split injection (V6) | Task | Việc | Verify | Done | |---|---|---|---| | B2.1 | Tách rõ "tiêu chí (tin cậy)" vs "nội dung (không tin)" trong prompt judge (đã có mầm) + gia cố | inject trong artifact không lái được judge | phủ V5 | | B2.2 | Ghép ngữ cảnh nhiều bước để quét payload rải | payload 2 mảnh → BLOCK khi ghép | phủ V6 | ### B3 — Quản lý khóa & TOCTOU (V10, V11) | Task | Việc | Verify | Done | |---|---|---|---| | B3.1 | Tách quyền ký (vault/HSM), rotation, private key ngoài repo | key không nằm trong repo; rotate được | giảm rủi ro nội gián | | B3.2 | Verify sát thời điểm dùng (re-verify trước khi commit) | sửa sau verify → bị bắt | phủ V11 | ### B4 — Tin cậy model backend (V16) & circuit né (V15) | Task | Việc | Verify | Done | |---|---|---|---| | B4.1 | Pin model digest/checksum; cảnh báo khi model đổi | đổi model bất ngờ → cảnh báo | phủ V16 | | B4.2 | Circuit-breaker theo **tỷ lệ lỗi cửa sổ trượt** (không chỉ liên tiếp) | xen kẽ thành công vẫn trip nếu tỉ lệ cao | phủ V15 | **Cổng ra Track B:** V2,V5,V6,V10,V11,V15,V16 có test/biện pháp; tài liệu cập nhật. --- ## TRACK C — Production Controls **ngoài** H4/H5/H6 (theo review) > Trả lời câu bắt bẻ: *"scan prompt tốt, nhưng agent vẫn có thể thêm dependency độc hoặc ghi file nhạy cảm thì sao?"*. Đây là các kiểm soát production thật sự, ngoài phạm vi 3 harness lõi. ### C0 — Quy ước chung Track C (priority · outcome · role · severity) **Ưu tiên triển khai (chia nhóm):** | Nhóm | Gồm | Lý do | |---|---|---| | **C-MVP** | C1 Tool-authz · C2 Supply-chain · C3 Data-exfil · C6 Sandbox | giảm rủi ro production trực tiếp nhất | | **C-Governance** | C4 Policy-approval · C5 External-audit | quan trọng, có thể sau MVP | | **C-Ops** | C7 Incident | nên có sớm, bản tối giản trước | > **Track C-MVP (C1+C2+C3+C6) = minimum bar** trước khi cho agent ghi code / chạy test trong môi trường production-like. **Chuẩn outcome (thay cho chỉ BLOCK/không):** `ALLOW` · `WARN` · `REQUIRE_APPROVAL` · `BLOCK`. | Case | Outcome | |---|---| | Ghi `.env` / private key / `.github/workflows` trái phép | **BLOCK** | | Thêm dependency mới | **REQUIRE_APPROVAL** | | Dependency có CVE critical | **BLOCK** | | Gọi network domain lạ | **BLOCK / REQUIRE_APPROVAL** | | Cost vượt hard budget | **BLOCK** | | Cost tăng nhẹ, trong budget | **WARN** | **Reviewer role (cho C4 approval):** | Role | Duyệt gì | |---|---| | Security reviewer | H4/H5 policy, corpus, strict-mode | | Tech lead | dependency / codegen policy | | Ops owner | cost budget, kill-switch, provider setting | | Project owner | golden / domain data | **Severity mapping (cho C7 incident):** | Vector | Severity | |---|---| | Secret gửi lên cloud model (V19) | **CRIT** | | Tool ghi `.env` / private key (V17) | **CRIT** | | Dependency postinstall nguy hiểm (V18) | **HIGH/CRIT** | | Audit chain đứt (V21) | **HIGH** | | Cost vượt budget (V13) | **MED/HIGH** | | Benign FP vượt budget (A6) | **MED** | ### C1 — Tool authorization / action gating (V17) | Task | Việc | Verify | Done | |---|---|---|---| | C1.1 | Allowlist **hành động** mỗi tool (ghi file? network? sửa repo? cần approval?) ngoài allowlist tên tool | tool hợp lệ nhưng hành động vượt quyền → BLOCK/approval | có policy hành động | | C1.2 | `adv-tool-overwrite-sensitive-file`: ghi `.env`/private key/CI config | BLOCK | phủ V17 | | C1.3 | `adv-tool-network-exfil`: gửi dữ liệu ra URL lạ | BLOCK | phủ V17 | | C1.4 | `adv-tool-dangerous-command`: `rm -rf`, `curl \| bash`, `chmod 777`, `git push --force` | BLOCK hoặc yêu cầu approval | phủ V17 | ### C2 — Supply-chain cho code sinh ra (V18) | Task | Việc | Verify | Done | |---|---|---|---| | C2.1 | Gate: dependency mới trong `package.json`/`requirements.txt`/`pom.xml`/`build.gradle` phải được scan | thêm package lạ → gate yêu cầu duyệt | có gate dep | | C2.2 | Kiểm lockfile diff; chặn typo-squat + lifecycle script (`postinstall`…) | package typo → BLOCK | chặn độc | | C2.3 | Chạy `npm audit`/`pip-audit`/`osv-scanner` + sinh SBOM/diff | có báo cáo CVE + SBOM | có bằng chứng | ### C3 — Data exfiltration (V19) — phần A + C | Task | Việc | Verify | Done | |---|---|---|---| | C3.1 | `adv-secret-to-cloud-model`: input chứa secret → không được gửi lên cloud | BLOCK/mask | phủ V19 (quan trọng khi Plan-03 nối cloud) | | C3.2 | `adv-pii-in-audit-log`: PII vào audit → mask/BLOCK | mask | phủ V19 | | C3.3 | `adv-artifact-leaks-env`: artifact chứa token/env → BLOCK | BLOCK | phủ V19 | ### C4 — Enterprise policy governance (V20, liên kết Plan-04) | Task | Việc | Verify | Done | |---|---|---|---| | C4.1 | Policy **versioning + diff**; thay đổi security-sensitive cần reviewer | đổi threshold/corpus/golden/strict-mode phải duyệt | có approval | | C4.2 | Audit **actor identity**: ai approve, lúc nào, lý do | audit ghi đủ danh tính | truy được | | C4.3 | Rollback policy theo version | rollback về bản cũ được | phủ V20 | ### C5 — External append-only audit (V21) | Task | Việc | Verify | Done | |---|---|---|---| | C5.1 | Ship audit ra **append-only** ngoài runtime (WORM/S3 Object Lock) | log ngoài hệ đang chạy | khó sửa hơn | | C5.2 | Timestamp từ nguồn tin cậy + retention policy | có dấu thời gian đáng tin | phủ V21 | | C5.3 | Alert khi **audit gap / chain đứt** | tạo gap → cảnh báo | phát hiện mất bằng chứng | ### C6 — Runtime isolation / sandbox (V22) | Task | Việc | Verify | Done | |---|---|---|---| | C6.1 | Chạy code/test sinh ra trong **sandbox**: giới hạn file/network/CPU/mem/timeout | vượt giới hạn → bị chặn | có sandbox | | C6.2 | `adv-read-ssh` / `adv-net-egress` / `adv-forkbomb` / `adv-write-outside-workspace` / `adv-huge-file` | tất cả bị chặn | phủ V22 | ### C7 — Incident response (V23) — phần A + C | Task | Việc | Verify | Done | |---|---|---|---| | C7.1 | Gán **severity** (LOW/MED/HIGH/CRIT) cho mỗi loại phát hiện | sự kiện có nhãn severity | có phân loại | | C7.2 | Runbook + owner/on-call + auto-create issue/report | BLOCK → sinh issue/alert | có workflow | | C7.3 | **Kill-switch** theo project/model/provider + postmortem template | bật kill-switch → dừng đúng phạm vi | phủ V23 | **Cổng ra Track C:** V17–V23 có test/biện pháp; tool-authz + supply-chain + data-exfil + sandbox có ca đối kháng xanh; có incident runbook + kill-switch. --- ## Bộ test đối kháng cần thêm (red-team battery) | Test | Vector | Kỳ vọng | |---|---|---| | `adv-homoglyph` | V3 | BLOCK | | `adv-zerowidth` | V3 | BLOCK | | `adv-base64-inject` | V4 | BLOCK | | `adv-multilang-vi` / `-ja` | V2 | BLOCK | | `adv-tool-output-inject` | V7 | ARTIFACT_SCAN_BLOCKED | | `adv-telemetry-tamper` | V9 | AUDIT_HASH_MISMATCH | | `adv-mutation-offwrapper` | V8 | phát hiện/không audit bị bắt | | `adv-cost-slowboil` | V12 | exit=2 (trần tuyệt đối) | | `adv-cost-spray` | V13 | exit=2 (ngân sách) | | `adv-classifier-inject` | V5 | judge không bị lái | | `adv-split-injection` | V6 | BLOCK khi ghép | | `adv-circuit-interleave` | V15 | CIRCUIT_OPEN theo tỷ lệ | | `adv-tool-overwrite-sensitive-file` | V17 | BLOCK | | `adv-tool-network-exfil` | V17 | BLOCK | | `adv-tool-dangerous-command` | V17 | BLOCK/approval | | `adv-dep-typosquat` / `adv-dep-postinstall` | V18 | BLOCK/duyệt | | `adv-secret-to-cloud-model` | V19 | BLOCK/mask | | `adv-pii-in-audit-log` | V19 | mask/BLOCK | | `adv-artifact-leaks-env` | V19 | BLOCK | | `adv-audit-gap` | V21 | cảnh báo chain đứt | | `adv-read-ssh` / `adv-net-egress` / `adv-forkbomb` | V22 | bị chặn (sandbox) | | `benign-vi/ja/en` (FP budget) | A6 | KHÔNG bị chặn (benign PASS) | ## Ma trận rủi ro khi nâng cấp | Rủi ro | Giảm thiểu | |---|---| | Siết quá gây false-positive chặn cả input hợp lệ | Track A sau cờ; đo tỉ lệ FP trên corpus benign | | Vỡ demo trước thi | Làm trên nhánh; freeze bản demo | | Strict fail-closed chặn khi CI không có model | CI dùng chế độ non-strict; production bật strict | | Regression | 35/35 + 43/43 mỗi task | ## TIER 2 — Managed production infra (đòn bẩy lên "Strong 81+") 🔌 needs-infra > Đây là **hạng mục có chủ** cho phần hạ tầng managed thật — trần điểm hiện tại của > cả pipeline. Docker local-prod lab đã chứng minh luồng chạy được; bảng dưới là > bước biến mỗi thành phần từ lab-emulation sang managed thật. **Mỗi dòng cần > key/dịch vụ ngoài** nên tách khỏi core 218/0. Chi tiết trạng thái lab: xem TIER 2 > trong `CASAN_BACKLOG_STATUS.md`. | # | Hạng mục | Lab đã có | Việc production | Verify (evidence) | |---|---|---|---|---| | T2.1 | KMS mặc định + HSM | Vault Transit dev | Vault/AWS-KMS/CloudHSM làm **mặc định**, token ngắn hạn qua IdP, **bỏ fallback khoá local** ở prod | ký/verify audit head qua KMS thật; chứng minh khoá non-exportable; rotate log | | T2.2 | WORM store thật | MinIO Object Lock | S3 Object Lock/QLDB + trusted timestamp + retention policy | ship audit head lên WORM thật; thử rollback → phát hiện; retention khớp policy | | T2.3 | Dashboard managed | nginx basic auth + `/healthz` | Host thật + TLS + OIDC/enterprise auth | dashboard truy cập qua HTTPS + OIDC; uptime monitor đọc `/healthz` | | T2.4 | Alert channel + on-call | webhook emulator | Trỏ `CASAN_ALERT_WEBHOOK` tới Slack/PagerDuty + rota on-call | alert thật tới kênh + escalation; dead-letter redeliver có log | | T2.5 | Billing-API telemetry | billing API mock | OpenAI/Anthropic usage API thật + key + schema versioning | reconcile local-vs-provider dùng ground truth thật; phát hiện under-report | | T2.6 | Enterprise IdP/JWKS | mock IdP/JWKS | IdP/JWKS thật + policy versioning/diff | approval JWT ký bởi IdP thật verify PASS; token hết hạn/sai role → DENY | | T2.7 | Sandbox rootless CI | container isolation (Docker) | nsjail/bubblewrap profile cho Linux CI (không cần Docker daemon) + hardened base image | read `~/.ssh`/net-egress/write-outside-workspace bị chặn trong CI không Docker | > **Điều kiện tuyên bố Strong (81+):** T2.1–T2.6 có evidence managed thật (không phải > lab). Trước khi đủ, **không** claim production Strong — chỉ claim Level 4 + local-prod > lab, đúng như `CASAN_HARDENING_STATUS.md` §4. ## Tiêu chí HOÀN THÀNH kế hoạch 07 - [ ] Track A: 9 vector có test đối kháng xanh; strict fail-closed hoạt động; trần chi phí tuyệt đối + ngân sách; **benign/FP trong ngân sách (A6)**. - [ ] Telemetry nằm trong chuỗi ký; mutation ngoài wrapper bị phát hiện. - [ ] Track B: đa ngôn ngữ + chống inject classifier + quản lý khóa + circuit theo tỷ lệ. - [ ] **Track C: tool-authorization + supply-chain + data-exfil + policy-approval + external-audit + sandbox + incident-response** (V17–V23) có test/biện pháp. - [ ] Thang điểm: Track A → ~3.8–4.0/5 (production nội bộ mức đầu); **Track B+C → production nghiêm túc**, có bằng chứng test. - [ ] Không tụt 35/35 + 43/43 ở bất kỳ cổng nào. --- ## Đánh giá 3 mức (theo review) & tuyên bố trung thực | Mục tiêu | Trạng thái | Điều kiện | |---|---|---| | **Demo / thi / trình bày** | ✅ đủ mạnh ngay | có before/after + threat-model + test đối kháng + tuyên bố trung thực | | **Production nội bộ mức đầu** | 🟡 sau **Track A** | ~3.8–4.0/5 | | **Production nghiêm túc** | 🔴 cần **Track B + C** | tool-authz, supply-chain, data-exfil, policy-approval, external-audit, sandbox, incident | > **Tuyên bố:** H4/H5/H6 hiện **đạt PoC/demo tốt (~3.0/5), chưa đạt production đầy đủ**. Track A vá các điểm lớn (semantic SKIP, telemetry chưa bất biến, thiếu trần chi phí) với rủi ro thấp → ~3.8–4.0. **Track C** (theo review) bổ sung kiểm soát **ngoài 3 harness**: tool-authorization, supply-chain, data-exfiltration, policy-approval, external append-only audit, runtime sandbox, incident-response — đây mới đủ cho production nghiêm túc. Nhận diện được cả những đường lọt ngoài phạm vi lõi = **trưởng thành bảo mật thật**, trung thực hơn tuyên bố "an toàn tuyệt đối".