docs: re-score from a real full run (155/0) after H5 hardening

Ran all 7 suites sequentially on 2026-07-04 @ 00aabfa with Vault dev live so KMS
runs (not skips): run-casan4 35 · adversarial 44 · phase1-track-a 25 ·
phase2-track-c 29 · phase3-evidence 7 · phase-h5-approval 8 · phase-h5-infra 7
= 155 PASS / 0 FAIL; security-gate PASS=11 FAIL=0.

- scoring-run-report.md: fair re-score — H5 76→80 (approval-identity + KMS live
  rotate/non-exportable + WORM), lowest harness now H6=79, avg ~80.7/100, Level 4.
  Evidence lists the live KMS + WORM results.
- CASAN_HARDENING_STATUS.md: new Phase 4 (C4 approval-identity, B3 KMS, C5 WORM =
  implemented+tested); test inventory 140→155 (7 suites); planned→partial for
  KMS/approval/WORM with honest remaining gaps (live IdP, S3 WORM store, KMS default).
- Plan-07 §2: key-mgmt 2.5→4, policy-approval 2.5→4, external-audit 1.5→3.5;
  header now H5 76→80, lowest harness H6.
- INDEX row, README claim boundary, video-guide Q&A: 155 checks, H5=80, lowest H6=79.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
thanhnv
2026-07-04 23:51:50 +09:00
co-authored by Claude Opus 4.8
parent 00aabfac4d
commit 2af67ef6a5
6 changed files with 117 additions and 28 deletions
+11 -4
View File
@@ -69,11 +69,18 @@ removed). Full status: `casan-next-plans/CASAN_HARDENING_STATUS.md`.
--read-only --pids-limit` / nsjail.
- **Implemented + tested (Plan-09 MVP):** Evidence Pack — `casan pack` / `casan
verify-pack` (tamper-evident manifest + signed head + certified-run gate).
- **Implemented + tested (H5 governance hardening):** approval-identity (reviewer
cryptographically signs the request + role authorization — env-var approver no
longer enough); KMS key management (Vault Transit sign + rotation + non-exportable,
**validated live**); external WORM audit ledger (rollback + tamper detection).
- **Planned (NOT done — do not claim as production-ready):** multilingual H4,
classifier/split-injection resistance, HSM key management, policy-approval workflow,
external WORM audit, incident kill-switch, true sandbox isolation.
classifier/split-injection resistance, HSM + KMS-by-default, live IdP (OIDC/JWT),
true WORM store (S3 Object Lock), incident kill-switch, true sandbox isolation.
Test totals: baseline 79 (run-casan4 35 + adversarial 44) preserved, **+61 new**
hardening checks (Track A 25, Track C-MVP 29, Evidence Pack 7) = **140** — see
Test totals: baseline 79 (run-casan4 35 + adversarial 44) preserved, **+76 new**
hardening checks (Track A 25, Track C-MVP 29, Evidence Pack 7, H5-approval 8,
H5-infra KMS+WORM 7) = **155**, 0 fail — last full run 2026-07-04 with KMS live via
Vault (`evidence/scoring-run-report.md`). Fair maturity ~80/100 per harness; H5 rose
76→80 so the **lowest harness is now H6=79** (CASAN Level 4, proven by attack). See
`CASAN_HARDENING_STATUS.md`. Because these live in **separate** suites, the demo
attack battery counts in `video/01_video_recording_guide.md` are unchanged.
@@ -0,0 +1,68 @@
# CASAN — Đánh giá điểm CÔNG TÂM (chạy thật + chấm theo rubric)
> Chạy thật tại thời điểm nộp; chấm theo `casan_harness_assessment.md` một cách **công tâm**, không lấy (5/5 gate)×100.
> Tư tưởng CASAN: *điểm = thứ chứng minh được bằng tấn công* **và** *"81–100 = đủ tiêu chuẩn vận hành thật"* — mà `CASAN_HARDENING_STATUS.md` §4 tự nhận trio H4/H5/H6 mới ở **~3.8–4.0/5**, nhiều hạng mục production còn **[planned]**. Vì vậy điểm công tâm nằm ở dải **"Good" (61–80)**, chưa phải 100.
## 1. Môi trường chạy
| | |
|---|---|
| Thời điểm | **2026-07-04T14:30Z (UTC)** / 21:30 JST |
| Git | `feat/plan07-track-a-hardening` @ `00aabfa` |
| Model | Ollama `ornith:9b` @127.0.0.1:11434 — live |
| KMS | HashiCorp Vault (dev) @127.0.0.1:8200 — live (đường ký production) |
| Runtime | node v24.12.0 · python 3.9.0 · openssl 3.6.3 · macOS |
## 2. Bằng chứng thô (100% thật, exit code on-screen — chạy tuần tự lại lần này)
- **155 test PASS / 0 FAIL** trên **7 suite**:
run-casan4 **35** · adversarial **44** · phase1-track-a **25** · phase2-track-c **29** ·
phase3-evidence-pack **7** · phase-h5-approval **8** · phase-h5-infra **7**.
- `security-gate` aggregate: **verdict PASS=11 FAIL=0 SKIP=0**.
- H4 recall: model 0.85 > regex 0.00 (GATE PASS). Benign-FP: **fp_rate 0.00% · block_rate 100.00%** (95 mẫu benign EN/VI/JA + 12 vector).
- **H5 mới (chạy thật lần này):**
- Approval-identity: env-var approver → BLOCK; reviewer **ký** request + đúng role → APPROVED; chữ ký giả / sai role / replay / tự-duyệt → BLOCK (8/8).
- KMS **live** (Vault Transit): sign→verify (v1) → **rotate** → sign→verify (v2) → **khoá NON-exportable** (export bị từ chối).
- WORM: ship anchor → in-sync; rollback log local → **AUDIT_GAP_DETECTED**; sửa ledger → **AUDIT_LEDGER_TAMPERED**.
- `scorecard.sh` (công cụ **coverage**): mọi control H4/H5/H6 đều ✓ (5/5). *Đây là "mọi control đều chạy & chặn được", KHÔNG phải điểm trưởng thành.*
## 3. ĐIỂM CÔNG TÂM theo rubric (thang: 0–30 GAP · 31–60 Partial · 61–80 Good · 81–100 Strong=production)
| ID | Harness | Demo baseline (2026-06-26) | Trước H5-hardening | **Công tâm (nay)** | Band | Chứng minh (đã test) | Gap production còn mở |
|----|---------|:--:|:--:|:--:|---|---|---|
| H1 | Context | 90 | 84 | **84** | Good+ | pipeline-context pointer store, log-levels, context-validate | chưa nén/RAG context lớn (Plan-08 planned) |
| H2 | Tool | 75 | 80 | **80** | Good+ | registry, idempotency, rate-limit, action-gate, supply-chain, tool-audit | sandbox mới scaffold (chưa cô lập thật) |
| H3 | Evaluation | 85 | 82 | **82** | Strong- | LLM-judge multi-gate live, golden dataset, auto-retry, judge-gate 5/0 | judge chỉ 1 model local, chưa eval-set độc lập quy mô |
| H4 | Security | 20 | 80 | **80** | Good(đỉnh) | injection (direct/paraphrase→model/obfus/unicode/base64), indirect-artifact, secret in+out, PII, tool-output scan, strict fail-closed, recall 0.85, FP 0% | multilingual VI/JA & split-injection [planned]; sandbox scaffold; 1 model |
| H5 | Governance | 25 | 76 | **80** ⬆ | Good(đỉnh) | hash-chain + RSA head, SoD, least-privilege, rate-limit, secrets-scan, no-bypass, tool-audit, telemetry-integrity **+ approval-identity ký-danh-tính + KMS live (rotate/non-exportable) + WORM audit ngoài (gap/tamper)** | **IdP live** (registry pubkey tĩnh, chưa OIDC/JWT); **WORM store thật** (ledger local, chưa S3-Object-Lock); KMS chưa mặc định (fallback khoá local) |
| H6 | AgentOps | 30 | 79 | **79** | Good(đỉnh) | cost-spike 4 chế độ (rel+abs+cumulative+cold-start), drift, hallucination-rate, telemetry token thật + ký toàn vẹn, dashboard | dashboard tĩnh (chưa hosted), chưa alerting live, chưa provider-telemetry API |
| H7 | Orchestration | 80 | 80 | **80** | Good(đỉnh) | Boss DAG, BACK-TO-PLAN/retry, rollback thật, model-fallback thật, drift | chưa transaction-rollback xuyên nhiều step |
**Average: 57.9 → 80.1 → ~80.7 / 100 · Harness thấp nhất giờ = H6 = 79 (trước là H5 = 76) · CASAN Level 4 (vững ngưỡng).**
> H5 tăng 76 → **80**: ba đường lọt lớn nhất (duyệt tin env-var · khoá ký local · audit xoá được) đã có **MVP hiện thực + test thật** (approval ký-danh-tính, KMS live rotate/non-exportable, WORM ledger). Vẫn **giữ ở đỉnh "Good" (80)** — chưa lên "Strong/production" — vì bản production của cả ba (IdP live, WORM store thật, KMS mặc định) còn [planned]. Nhờ đó **harness thấp nhất nhích từ 76 (H5) lên 79 (H6)** → trần pipeline cao hơn, nhưng vẫn là Level 4 chứng minh được (chưa phải Level 5 production).
## 4. Vì sao KHÔNG chấm 100 / chưa lên Strong (công tâm)
- Rubric: **81–100 = "đủ tiêu chuẩn vận hành thật"**. `CASAN_HARDENING_STATUS.md` §3 còn nhiều hạng mục production **[planned]** (multilingual, sandbox isolation, IdP/WORM-store thật, hosted telemetry) → trần công tâm của trio là **80 (đỉnh "Good")**.
- (5/5 gate)×100 chỉ đo **độ phủ control**, không đo **độ trưởng thành/vận-hành-thật** — report này tách bạch: mục 2 = coverage/pass thật, mục 3 = trưởng thành công tâm.
## 5. Ranh giới trung thực
- CASAN **Level 4 chứng minh bằng tấn công (155 test)**. Level 5 các control hiện thực + test cục bộ; production Level 5 cần **IdP thật**, **WORM store (S3 Object Lock)**, KMS mặc định + HSM, provider-telemetry API live, dashboard hosted, sandbox isolation thật.
- KMS đã chạy **live qua Vault dev** trong lần chấm này (đường Transit thật, khoá non-exportable) — production thay bằng Vault/AWS-KMS/CloudHSM.
- Model = Ollama ornith:9b **local**; đường cloud (OpenAI/Anthropic) đã hiện thực trong `model-call.py` nhưng **chưa test bằng key thật**.
- Chi tiết implemented-vs-planned: `casan-next-plans/CASAN_HARDENING_STATUS.md`.
## 6. Tự tái lập
```bash
cd AINative_OKR_CASAN5
bash .specify/tests/run-casan4-harness-tests.sh # 35/0
bash .specify/tests/adversarial-harness-tests.sh # 44/0
bash .specify/tests/phase1-track-a-tests.sh # 25/0
bash .specify/tests/phase2-track-c-tests.sh # 29/0
bash .specify/tests/phase3-evidence-pack-tests.sh # 7/0
bash .specify/tests/phase-h5-approval-tests.sh # 8/0
# KMS live: bật Vault dev trước để phần KMS chạy thật (không SKIP)
docker run -d -p 8200:8200 -e VAULT_DEV_ROOT_TOKEN_ID=root hashicorp/vault
VAULT_ADDR=http://127.0.0.1:8200 VAULT_TOKEN=root \
bash .specify/tests/phase-h5-infra-tests.sh # 7/0 (KMS live + WORM)
bash .specify/scripts/bash/security-gate.sh # verdict PASS=11 FAIL=0
```
> Mục 3 là **đánh giá trưởng thành theo rubric** (người chấm, neo vào bằng chứng + gap thật), không phải output tự động của scorecard.sh (vốn chỉ đo coverage). Suite model cần Ollama live; suite KMS cần Vault live để chạy (không có thì SKIP, không tính là fail).
@@ -102,7 +102,7 @@ CASAN_ROOT="$PWD" bash ../../optimize-docs/video-steps/scorecard.sh
| Giám khảo hỏi | Trả lời |
|---|---|
| "H4/H5/H6 = 100 có thổi phồng không?" | "Điểm là (5/5 control × 20). Mỗi control chống một tấn công THẬT và **fail-able** — nếu tôi gỡ control, gate thành ✗. Con số đáng tin là số test đối kháng pass, không phải 100." |
| "H4/H5/H6 = 100 có thổi phồng không?" | "100 chỉ là **độ phủ control** của scorecard (mọi control đều chạy & chặn được, fail-able). Điểm **trưởng thành công tâm** theo rubric tôi chấm thấp hơn: H4=80 · H5=80 · H6=79 (dải 'Good', ~80.7/100), vì production còn thiếu live-IdP/WORM-store/HSM/sandbox-isolation. Xem `evidence/scoring-run-report.md`. Con số đáng tin là **155 test đối kháng pass** (chạy thật 2026-07-04, KMS live) + điểm công tâm ~80, không phải 100. Harness thấp nhất giờ là H6=79 (H5 đã nâng 76→80)." |
| "cost-spike D1 dùng số gõ tay?" | "D1 là seed để minh hoạ logic. Money-shot (REAL=1) chạy 4 step thật, token do agent-metrics ĐO từ artifact — spike đến từ dữ liệu thật." |
| "Recall 0.85 của 9B ở đâu ra?" | "Chạy `phase3-redteam-metrics.sh` LIVE trên camera → số thật của 9B. 0.85 là số dự án tự báo; regex = 0.00 trên paraphrase mới (tự chạy)." |
| "Đây có phải Level 5?" | "Không — tôi tuyên bố Level 4 chứng minh được. Level 5 cần IdP/WORM/telemetry API/dashboard hosted — đó là roadmap." |