Files
CASAN/casan-next-plans/CASAN_PLAN_07_PRODUCTION_HARDENING.md
T
thanhnvandClaude Opus 4.8 d8583fdb2e docs(plan-07): re-score §2 readiness table after Track A + C-MVP + Evidence Pack
Update the 0–5 production-readiness table with Baseline → Nay per dimension and
point to the fair 0–100 report. Trio H4/H5/H6 ~3.0 → ~3.7/5 (per-harness fair
score 76–80/100); Track C dims lifted (tool-authz 2→4, supply-chain 1→3.5,
data-exfil 2→4, sandbox 1→2.5 scaffold, +Evidence Pack 4). Governance/Ops
(C4/C5/C7) still 1–2.5 [planned]. Honest headline: ~80/100 avg, lowest H5=76,
CASAN Level 4 at threshold. Source: evidence/scoring-run-report.md.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 22:56:03 +09:00

22 KiB
Raw Blame History

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-04 — Track A + C-MVP + Evidence Pack ĐÃ LÀM + TEST (140 checks, 0 fail). 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 · H6 = 79 · trung bình 7 harness ~80/100 · harness thấp nhất H5=76 → CASAN Level 4 (chạm 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) HSM/KMS · WORM ngoài
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 3.5 telemetry toàn vẹn (ký) alerting realtime · dashboard hosted
Đ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 2.5 khoá ký off-repo + ký telemetry HSM/rotation/tách quyền ký (Track B)
Phủ kiểm thử 4 4.5 140 test (35+44+25+29+7) đối kháng thêm ca đa ngôn ngữ khi làm Track B

Điểm trung bình (H4/H5/H6 mở rộng) ~3.0 → ~3.7/5; chấm công tâm per-harness ~3.8–4.0/5 (76–80/100).

⚠️ 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 2.5 có outcome REQUIRE_APPROVAL + approver định danh versioning + reviewer workflow (C4) [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 1.5 ký chain local WORM ngoài runtime (C5) [planned]
Incident response 1 1 — severity/owner/kill-switch (C7) [planned]

→ C-MVP (C1+C2+C3 + Evidence Pack) ~3.8/5 [đã làm]; sandbox mới scaffold; C-Governance/Ops (C4/C5/C7) vẫn ~1.5–2.5 [planned]. Track A + C-MVP đưa trio H4/H5/H6 lên ~3.8–4.0/5 (76–80/100); Track B + C-Governance/Ops + sandbox isolation thật mới đủ production toàn diệ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

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".