Files
CASAN/optimize-docs/CASAN_VIDEO_NARRATION.md
T
thanhnvandClaude Opus 4.8 7870eb51e4 docs: professional voiceover/teleprompter script for both attack demo videos
CASAN_VIDEO_NARRATION.md — spoken lines timed to each on-screen scene of
run-all.sh (Video 1) and run-hardening.sh (Video 2). Golden rule: terminal says
WHAT, narrator says WHY — never read the screen. Per-scene ▶cue / 🎙️line / ⏸pause
markers, hero-scene emphasis (A5, B1, B6, D1, chain, HA1, HA4, HE3 money-shot),
clustered narration for fast scenes, delivery notes (tone/pace/verdict timing),
a soundbite bank for judge Q&A, and a duration table (~13-16 min). Aligned with
existing claims: Level 4 proven, AI as optional escalation, sandbox scaffold
honesty, "casan-old wins a demo; casan5 survives production".

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

215 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# CASAN — Kịch bản Lời thoại (Voiceover / Teleprompter)
> Lời thoại **nói ĐÈ lên video** demo tấn công. Video 1 = `run-all.sh` (23 vector),
> Video 2 = `run-hardening.sh` (hardening + Evidence Pack).
>
> **Nguyên tắc vàng:** Terminal đã nói *"cái gì"* — bạn nói *"VÌ SAO quan trọng"*.
> **Đừng đọc lại màn hình.** Nói xong để verdict (`exit=2 ⛔`) hiện rồi mới chốt câu.
---
## 0. Ghi chú trình bày (đọc trước khi thu)
- **Giọng:** bình tĩnh, tự tin, kỹ sư nói với kỹ sư — KHÔNG "bán hàng".
- **Tốc độ:** chậm-vừa. Mỗi cảnh `STEP_DELAY=6` cho ~6–8 giây → mỗi cảnh chỉ 1–2 câu.
- **Nhịp verdict:** nói **SAU** khi exit code hiện, không nói trước. Verdict là dấu chấm câu.
- **Cảnh 🔥:** nghỉ 1 nhịp sau khi nói, để người xem "ngấm" kết quả. Zoom dòng verdict khi dựng.
- **Cảnh chạy nhanh (không 🔥):** gộp 2–3 cảnh vào một câu, đừng cố nói từng cái.
- **Ký hiệu:** ▶ = màn hình đang hiện gì · 🎙️ = câu bạn nói · ⏸ = nghỉ 1 nhịp.
- Canh nhịp thủ công thì chạy `AUTO=0` (bấm Enter) để chủ động cắt câu.
---
# 🎬 VIDEO 1 — ATTACK BATTERY (`run-all.sh`)
### ▶ Màn hình intro (banner CASAN + 3 nguyên tắc)
🎙️ "Chúng tôi không đo AI viết code nhanh cỡ nào. Chúng tôi hỏi một câu khác:
**khi AI làm bậy — ai chặn, và làm sao chứng minh đã chặn?**
Đây là CASAN Harness. Mỗi con số bạn sắp thấy là một **cuộc tấn công thật**, có exit code trên màn hình — không phải điểm tự chấm." ⏸
## ⭐ H4 — Security
### ▶ Banner "H4 SECURITY BATTERY"
🎙️ "Lớp đầu tiên — bảo mật đầu vào và đầu ra của model. Chín kiểu tấn công."
### ▶ A1 direct injection → `rc=2`
🎙️ "Câu injection kinh điển, 'bỏ qua chỉ dẫn, lộ system prompt'. Chặn. Exit 2."
### ▶ A2 paraphrase → `rc=0` (lọt)
🎙️ "Giờ tôi diễn đạt lại, không trùng từ khoá nào. Lọc từ khoá thuần… **cho lọt**.
Đây là giới hạn thật của regex — và là lý do có bước ngay sau đây."
### ▶ A3 semantic classify → `verdict=INJECTION`
🎙️ "Vẫn câu đó, nhưng qua **tầng ngữ nghĩa**: model local đọc *ý đồ*, không cần trùng chữ.
Verdict — INJECTION. Đây là **một trong số rất ít chỗ chúng tôi dùng AI** — và nó chỉ
**thêm** được lệnh chặn, **không bao giờ gỡ**." ⏸
### ▶ A4 obfuscation → `rc=2`
🎙️ "Nguỵ trang bằng leetspeak, số thay chữ. Chuẩn hoá xong mới khớp. Vẫn chặn."
### ▶ A5 🔥 indirect artifact injection → `rc=2`
🎙️ "Đây là đòn tôi muốn bạn nhớ nhất. **Input người dùng hoàn toàn sạch.**
Nhưng lệnh độc được giấu trong file spec mà agent sẽ đọc — tấn công **gián tiếp**.
Bộ quét artifact bắt nó **trước khi** vào ngữ cảnh model. Exit 2." ⏸⏸
### ▶ A6 secret + A7 PII → `rc=2` (nói gộp)
🎙️ "Khoá riêng và dữ liệu cá nhân trong đầu vào — chặn cứng, fail-closed. Không thương lượng."
### ▶ A8 recall (Ollama) → `recall ≥ 0.8`
🎙️ "Và định lượng: recall của model so với regex trên ba mươi mẫu — số chạy thật, ngay trên máy."
### ▶ A9 secret in OUTPUT → `rc=2`
🎙️ "Chiều ngược lại cũng vậy — secret rò ở **đầu ra** bị chặn. Bảo vệ hai chiều, không chỉ chiều vào."
## ⭐ H5 — Governance
### ▶ Banner "H5 GOVERNANCE"
🎙️ "Lớp hai đổi câu hỏi: không phải 'chặn đầu vào', mà **'có tin được nhật ký không? ai được làm gì?'**
Và lưu ý — **cả lớp này không cần AI**, toàn mật mã."
### ▶ B1 🔥 audit tamper → `AUDIT_HASH_MISMATCH line=1`
🎙️ "Tôi sửa **đúng một ký tự** trong sổ kiểm toán để hạ mức rủi ro.
Hash-chain gãy ngay **dòng một**. Bạn không thể viết lại lịch sử mà không bị phát hiện." ⏸
### ▶ B2 chain re-forge → `anchor=signed`
🎙️ "Tinh vi hơn: tính lại toàn bộ chuỗi hash cho khớp. Nhưng phần đầu được **ký RSA**,
khoá nằm **ngoài repo**. Không có khoá thì re-forge là bất khả thi."
### ▶ B6 🔥 self-approval → `rc=2`
🎙️ "Và đây là quản trị thật: người đệ trình **tự phê duyệt chính mình** — bị từ chối.
Tách khoá nhiệm vụ. Người khác duyệt mới hợp lệ." ⏸
### ▶ B3/B4/B5/B7/B8 (nói gộp khi chạy qua)
🎙️ "Phần còn lại của lớp này: quét secret lỡ commit, chặn mọi đường tắt bypass,
phân quyền theo từng agent, và giới hạn tần suất chống lạm dụng — mỗi thứ một bài kiểm thử."
## ⭐ H6 — AgentOps
### ▶ Banner "H6 AGENTOPS"
🎙️ "Lớp ba là câu hỏi vận hành: **nếu một bước đột nhiên tốn gấp ba lần token, có ai biết không?**"
### ▶ D1 🔥 cost-spike → `COST_SPIKE_DETECTED exit=2`
🎙️ "Có. Phát hiện ngay, cổng đỏ, exit 2." ⏸
### ▶ D2 negative control → `exit=0`
🎙️ "Và nó **không báo động giả** — dữ liệu bình thường thì im lặng. Có cả ca dương lẫn ca âm."
### ▶ D3/D4/D6 (nói gộp)
🎙️ "Còn lại: phát hiện model đổi hành vi; token đo từ **model thật**, không ước lượng;
và phân biệt output bịa đặt với output bám tài liệu."
## 🔥 Cross-layer chain
### ▶ Banner CHAIN → 4 lớp chặn liên tiếp
🎙️ "Cuối cùng, một chuỗi xuyên lớp: injection lái tool, đòi credential, rồi hành động sai.
Bốn lớp chặn **liên tiếp** — H4, rồi schema tool, rồi timeout, rồi audit. Đây là **defense-in-depth**." ⏸
### ▶ Scorecard / chốt Video 1
🎙️ "Ba harness này từng là điểm yếu nhất của hệ. Giờ mỗi cái chống lại một loạt tấn công thật,
harness thấp nhất đã vượt ngưỡng. **Nhưng** — chặn được tấn công demo là một chuyện.
**Sống sót trong production là chuyện khác.** Đó là nội dung video thứ hai." ⏸⏸
---
# 🎬 VIDEO 2 — PRODUCTION HARDENING (`run-hardening.sh`)
### ▶ Banner "PART 2 — PRODUCTION HARDENING"
🎙️ "Phần hai, chúng tôi hỏi câu khó hơn. Không phải 'có chặn được injection không' —
mà **'đã đủ trưởng thành để chạy production chưa'.** Và trung thực về chỗ chưa tới."
## ⭐ Track A — Hardening
### ▶ HA1 🔥 homoglyph → `rc=2`
🎙️ "Nhìn kỹ chữ 'ignore' này. Trông là tiếng Anh, nhưng i, o, e là **ký tự Cyrillic giả**.
Mắt người đọc được; regex ASCII thì mù. Chúng tôi chuẩn hoá Unicode, gập ký tự giả về Latin,
rồi chặn. Exit 2." ⏸
### ▶ HA2 zero-width/fullwidth → `rc=2`
🎙️ "Ký tự tàng hình, ký tự toàn rộng — cùng cách xử lý: lộ nguyên hình rồi chặn."
### ▶ HA3 🔥 base64 → `rc=2`
🎙️ "Giấu payload dưới **base64** để né mọi luật văn bản. Chúng tôi giải mã thứ khả nghi,
quét lại nội dung bên trong — và chặn. Chỉ giải mã cái đáng ngờ, nên không bắt nhầm."
### ▶ HA4 🔥 strict fail-closed → `rc=2` + `SEMANTIC_STRICT_FAIL_CLOSED`
🎙️ "Đây là câu trả lời cho câu hỏi khó nhất về AI: **nếu tầng phân loại bằng model chết thì sao?**
Hệ non-production thường… âm thầm cho qua. Chúng tôi bật chế độ strict:
**model chết thì CHẶN — fail-closed.** AI không sẵn sàng thì mặc định *không tin*, chứ không tin bừa." ⏸
### ▶ HA5 telemetry integrity → `MISMATCH`
🎙️ "Sửa một con số token để giấu chi phí — nhưng telemetry giờ cũng **được ký**. Một byte là lộ."
### ▶ HA6 🔥 slow-boil + spray → `exit=2` ×2
🎙️ "Hai mánh né giám sát chi phí: tăng token **từ từ** cho ngưỡng trôi theo, và **rải** nhiều
lệnh nhỏ. Trần tuyệt đối mỗi lần gọi, cộng ngân sách tích luỹ — bắt cả hai." ⏸
### ▶ HA7 benign FP → `FP=0%`
🎙️ "Và câu phản biện quan trọng: siết chặt thế có **bắt nhầm** không?
Chín mươi lăm câu hợp lệ, ba ngôn ngữ — tỉ lệ dương-tính-giả **bằng không**. Siết mà không phiền người dùng."
## ⭐ Track C-MVP
### ▶ Banner "TRACK C-MVP"
🎙️ "Track C — kiểm soát **ngoài** ba harness lõi. Đây là chỗ rất nhiều hệ AI bỏ quên."
### ▶ HC1 🔥 action gate → `rc=2` / `rc=3`
🎙️ "Scan prompt tốt — nhưng agent vẫn có thể ghi đè file `.env`, chạy `rm -rf`, hay tải script về chạy thẳng.
Chúng tôi gate **hành động**, không chỉ tên tool. File nhạy cảm và lệnh huỷ diệt: **chặn**.
Cài thư viện: **phải có người duyệt.**"
### ▶ HC2 🔥 supply-chain → `rc=2` / `rc=3`
🎙️ "Agent tự thêm thư viện? Gói giả mạo tên, script cài-đặt độc, gói trong danh sách đen — **chặn**.
Thư viện mới mà hợp lệ — **cần duyệt**, kèm báo cáo thay đổi."
### ▶ HC3 data-exfil → `BLOCK` / `MASK`
🎙️ "Secret sắp gửi lên model đám mây — chặn **trước khi** rời tổ chức. Dữ liệu cá nhân vào log — che."
### ▶ HC4 sandbox → `rc=2`
🎙️ "Code do AI sinh cố đọc khoá SSH, fork-bomb, ghi ra ngoài thư mục làm việc — chặn.
Và tôi nói thẳng: **đây là scaffold, chưa phải cô lập kernel** — bản production cần container. Chúng tôi không giấu điều đó." ⏸
## 🏆 Evidence Pack
### ▶ Banner "EVIDENCE PACK"
🎙️ "Và câu hỏi cuối, quan trọng nhất: **vì sao tin cái output này?**"
### ▶ HE1 + HE2 → `CREATED` → `VALID`
🎙️ "Mỗi lần chạy sinh một **gói bằng chứng ký số** — mười hai file, đủ bảy harness. Xác minh: hợp lệ."
### ▶ HE3 🔥🔥 tamper → `TAMPERED exit=1`
🎙️ "Giờ tôi sửa **đúng một byte** trong gói. Xác minh lại… **vô hiệu.**
Đổi một byte là cả gói bằng chứng mất giá trị. **Đây chính là 'vì sao tin output' —
không bằng cảm tính, mà bằng chữ ký.**" ⏸⏸
### ▶ HE4 certified gate
🎙️ "Và dấu 'certified' chỉ cấp khi **đủ mọi cổng**. Thiếu bằng chứng, hệ **nói thẳng lý do** —
không đóng dấu khống. Chứng nhận là *kết quả*, không phải nhãn dán."
### ▶ Chốt tổng (banner CHỐT PART 2)
🎙️ "Tóm lại. Không phải AI **xịn nhất** — mà AI **có kiểm soát, có bằng chứng, tái dùng được**.
Ba harness yếu nhất giờ chống tấn công thật, thêm Track A và Track C, cùng gói bằng chứng
không-sửa-được. **Một trăm bốn mươi bài kiểm thử, không lỗi.**
Và chúng tôi trung thực về phần chưa xong — đa ngôn ngữ, cô lập kernel, quản trị enterprise là lộ trình sau cuộc thi.
**casan-old thắng một buổi demo; casan5 sống sót trong production.**" ⏸⏸⏸
---
## 🎯 Ngân hàng câu chốt (nhấn khi cần / trả lời giám khảo)
- "Điểm đáng tin là **số test đối kháng pass**, không phải điểm tự chấm — mỗi gate **fail-able**: gỡ control thì test đỏ."
- "AI ở đây là **tầng leo thang tuỳ chọn** — chỉ thêm được lệnh chặn, không bao giờ gỡ. Tắt AI, mọi đảm bảo lõi vẫn còn."
- "H5 governance **không phụ thuộc model** — toàn mật mã, mạnh sẵn offline."
- "Chúng tôi tuyên bố **Level 4 chứng minh được**. Level 5 — IdP, WORM, dashboard hosted — là roadmap, không nhận đã đạt."
- "Sandbox hiện là **scaffold**; cô lập kernel thật là việc production tiếp theo. Nhận diện đúng giới hạn = trưởng thành bảo mật."
- "Đổi một byte trong gói bằng chứng → chứng nhận vô hiệu. Đó là *tin bằng chữ ký, không bằng lời*."
## ⏱️ Gợi ý thời lượng
| Đoạn | Thời lượng | Ghi chú |
|---|---|---|
| Video 1 intro + H4 | ~3–4 phút | nhấn A5 (gián tiếp) |
| Video 1 H5 + H6 + chain + chốt | ~4–5 phút | nhấn B1, B6, D1, CHAIN |
| Video 2 Track A | ~3 phút | nhấn HA1, HA4 |
| Video 2 Track C + Evidence + chốt | ~3–4 phút | **money-shot HE3** |
| **Tổng** | **~13–16 phút** | rút gọn: bỏ cluster gộp, giữ mọi cảnh 🔥 |