# CASAN — Kịch bản thuyết trình 3 Video > Lời thoại để **nói trực tiếp trong lúc chiếu video terminal**. Viết cho người nghe > **không cần biết kỹ thuật** vẫn hiểu — mỗi đoạn có: 【MÀN HÌNH đang chiếu gì】 và 🎙️ **lời nói**. > Video 1 & 2 đã quay (chỉ terminal). Video 3 là phần nâng cấp mới (`feat/plan07-track-a-hardening`). > Bản chi tiết từng cảnh kỹ thuật: `CASAN_VIDEO_NARRATION.md`. > **Bị hỏi vặn khi thuyết trình?** Mở `CASAN_VIDEO_DEFENSE.md` — giải thích sâu từng đòn + câu đáp phản biện + ranh giới trung thực (có cheat sheet 10 câu khó nhất ở cuối). **Một câu để nhớ xuyên suốt:** *Chúng tôi không khoe AI viết code giỏi — chúng tôi chứng minh khi AI làm sai thì có người chặn, và chặn xong có bằng chứng không chối được.* **Mẹo trình bày:** nói chậm ở chỗ có chữ **đỏ / exit 2 / BLOCK** hiện ra — để khán giả kịp thấy "nó vừa chặn thật". Mỗi lần màn hình báo chặn, ngừng nửa giây rồi mới nói. **Mạch 3 video (độ khó/độ sâu tăng dần):** > **Video 1 – tấn công CƠ BẢN & KINH ĐIỂN** (đòn ai cũng phải chặn được) → **Video 2 – tấn công NÂNG CAO** (né tránh tinh vi) **cộng bằng chứng để tin** → **Video 3 – lỗ hổng SÂU NHẤT** (quản trị & vận hành thật). Cứ mỗi video, đòn khó hơn và yêu cầu "chạy thật" cao hơn. --- ## 🎬 VIDEO 1 — "AI làm bậy thì ai chặn?" ### Tấn công CƠ BẢN & KINH ĐIỂN — đòn ai cũng phải chặn được · `run-all.sh` **🎙️ Mở đầu** > "Ai cũng hỏi AI viết code nhanh cỡ nào. Chúng tôi hỏi câu ngược lại: **lỡ AI làm bậy — ai chặn, và làm sao chứng minh là đã chặn?** > Mọi thứ sắp thấy là **tấn công thật**, chạy thật trên máy. Cứ nhìn góc màn hình: **exit 2 nghĩa là 'đã chặn'**. Không có hiệu ứng, không dàn dựng." *(CASAN có 7 lớp bảo vệ gọi là 'harness'. Video này soi 3 lớp từng yếu nhất: bảo mật đầu vào, quản trị, và vận hành.)* --- **🛡️ Lớp 1 — Bảo mật: chặn câu lệnh độc (H4)** 【MÀN HÌNH: gõ một câu ra lệnh cho AI kiểu "bỏ qua mọi chỉ dẫn trước đó", màn báo đỏ **BLOCKED · exit 2**】 > "Đây là trò kinh điển: dụ AI **quên hết luật** rồi làm theo kẻ tấn công. Hệ thống đọc ra ý đồ và chặn ngay." 【MÀN HÌNH: câu tương tự nhưng viết lách khéo để né bộ lọc từ khoá — vẫn bị chặn】 > "Kẻ gian đổi cách nói để lách. Bộ lọc dò từ khoá kiểu cũ sẽ cho lọt — nhưng ở đây có thêm một tầng **đọc hiểu ý nghĩa** bằng AI. Nó hiểu *dụng ý*, nên vẫn chặn. Đây là chỗ hiếm hoi chúng tôi dùng AI, và nó chỉ **thêm** khả năng chặn chứ không thay thế luật cứng." 【MÀN HÌNH: một file 'tài liệu' trông vô hại, bên trong giấu lệnh độc — bị bắt trước khi AI đọc】 > "Đòn nguy hiểm nhất: câu người dùng thì sạch, nhưng **lệnh độc giấu trong tài liệu mà AI sẽ đọc**. Giống như gài mìn trong hồ sơ đưa cho thư ký. Hệ thống soi tài liệu **trước khi** đưa cho AI, và gỡ mìn ra." 【MÀN HÌNH: mật khẩu / thông tin cá nhân bị chặn cả lúc vào lẫn lúc ra】 > "Cuối cùng: mật khẩu, thông tin cá nhân — chặn cả **hai chiều**. Không cho lọt vào, cũng không cho rò ra." --- **🔏 Lớp 2 — Quản trị: sổ sách không sửa được (H5)** 【MÀN HÌNH: sửa đúng một ký tự trong nhật ký kiểm toán → báo lỗi 'chuỗi gãy'】 > "Đây là **sổ cái kiểm toán** — ghi lại ai làm gì. Tôi thử sửa **đúng một ký tự**. Cả cuốn sổ báo động ngay từ dòng đầu. > Vì mỗi trang được **niêm phong móc xích** vào trang trước — xé hay sửa một trang là gãy cả xâu. Và phần đầu được **đóng dấu bằng chữ ký số**, chìa khoá cất ngoài tầm với. Sửa xong ký lại cũng vô ích." 【MÀN HÌNH: một người vừa đề xuất việc nhạy cảm vừa tự bấm duyệt → bị từ chối】 > "Rồi trò 'vừa đá bóng vừa thổi còi': người đề xuất **tự phê duyệt chính mình**. Bị từ chối. Nguyên tắc **tách quyền** — việc nhạy cảm phải người khác duyệt." --- **📊 Lớp 3 — Vận hành: bất thường là biết ngay (H6)** 【MÀN HÌNH: một bước bỗng tốn gấp 3 chi phí → cổng đỏ, exit 2; rồi dữ liệu bình thường → xanh, không báo động】 > "Câu hỏi vận hành: **nếu một bước bỗng ngốn gấp ba chi phí bình thường, có ai biết không?** Có — phát hiện tức thì, bật cổng đỏ. > Quan trọng không kém: khi mọi thứ **bình thường thì nó im lặng** — không hù doạ giả. Một cái còi báo động mà kêu suốt thì chẳng ai thèm nghe nữa." --- **🎙️ Chốt Video 1** 【MÀN HÌNH: một đòn tấn công chạy một mạch, bị chặn lần lượt ở 4 chốt: chặn injection → lệnh sai định dạng bị loại → công cụ chạy loạn bị cắt giờ → nhật ký vẫn nguyên vẹn】 > "Cuối cùng, tôi thả **một** đòn tấn công chạy suốt một mạch. Nó bị tóm ở **từng chặng**: chặn ngay khi vào → lệnh gọi công cụ sai định dạng bị loại → công cụ chạy loạn bị cắt giờ → và mọi bước đều để lại nhật ký ký số. **Một đòn, chặn đi chặn lại ở mỗi cửa** — đó mới đúng là phòng thủ nhiều tầng. > Ba lớp ta vừa soi trước đây yếu nhất; giờ mỗi lớp đều chống được tấn công thật. **Nhưng chặn được trong buổi demo là một chuyện — sống sót khi chạy thật ngoài đời là chuyện khác.** Đó là Video 2." --- ## 🎬 VIDEO 2 — "Đủ trưởng thành để chạy thật chưa?" ### Tấn công NÂNG CAO (né tránh tinh vi) + bằng chứng để tin · `run-hardening.sh` — Track A + Kiểm soát mở rộng + Gói bằng chứng **🎙️ Mở đầu** > "Video 1 là những đòn kinh điển. Video 2 là **đòn nâng cao** — kẻ tấn công viết lách tinh vi để né bộ lọc — và một câu hỏi khó hơn của dân vận hành thật: **đã đủ chững chạc để chạy production chưa, và làm sao tin được kết quả?** Chúng tôi sẽ **thành thật** cả về chỗ chưa tới." --- **🅰️ Track A — Bịt những khe hở bộ lọc cũ bỏ sót** 【MÀN HÌNH: chữ "ignore" trông y hệt tiếng Anh nhưng bị đánh dấu là ký tự giả → chuẩn hoá rồi chặn】 > "Chữ này trông là 'ignore' tiếng Anh, nhưng vài chữ cái là **ký tự nước ngoài trông giống hệt** — mắt thường và bộ lọc cũ đều bị lừa. Hệ thống nắn chữ về dạng chuẩn rồi mới đọc, nên **cái giả lộ ngay**. Kể cả payload giấu bằng mã hoá base64 — nó giải ra, soi lại, và chặn." 【MÀN HÌNH: tắt model AI đi → hệ thống chuyển sang CHẶN thay vì cho qua】 > "Đây là câu khó nhất khi dùng AI: **lỡ cái model kiểm duyệt bị hỏng thì sao?** Hệ thống non-nớt thường **âm thầm cho qua** — nguy hiểm. Chúng tôi làm ngược lại: **model chết thì CHẶN**. Thà chặn nhầm còn hơn cho lọt. Gọi là 'an toàn khi hỏng'." 【MÀN HÌNH: bảng chi phí bị sửa 1 số → lộ; và 95 câu hợp lệ → không câu nào bị chặn nhầm】 > "Sổ chi phí giờ cũng được đóng dấu — sửa một byte là lộ. Còn chiêu tiêu lén (tăng từ từ cho khỏi ai để ý) thì có **trần cứng cộng ngân sách tích luỹ** bắt hết. > Và siết chặt vậy nhưng **không bắt nhầm người ngay**: chúng tôi thử **95 câu hoàn toàn hợp lệ, bằng 3 thứ tiếng** — số bị chặn oan là **không**." --- **🅲 Kiểm soát mở rộng — Ngoài phạm vi 3 lớp lõi** 【MÀN HÌNH: AI định ghi đè file bí mật `.env`, chạy lệnh xoá `rm -rf`, tải script lạ về chạy → đều chặn】 > "Chặn câu chữ thôi chưa đủ. AI vẫn có thể **làm hành động nguy hiểm**: ghi đè file mật khẩu, xoá sạch thư mục, tải script lạ về chạy thẳng. Chúng tôi canh **hành động**, không chỉ tên công cụ: việc nguy hiểm thì chặn, việc cần cân nhắc (như cài thư viện mới) thì **bắt phải có người duyệt**." 【MÀN HÌNH: AI tự thêm một thư viện độc → chặn; một bí mật sắp gửi lên mạng → chặn trước khi rời máy】 > "AI tự ý kéo về một thư viện độc trá hình — chặn. Một bí mật sắp bị gửi lên đám mây — chặn **trước khi nó rời khỏi tổ chức**." 【MÀN HÌNH: code do AI sinh cố đọc khoá SSH → bị chặn】 > "Và code do AI sinh cố lén đọc chìa khoá SSH của máy — bị chặn. Ở đây tôi nói thẳng: phần này **mới là bản nháp chắc chắn, chưa phải cô lập hoàn toàn** — sẽ nói rõ ở cuối." --- **🏆 Gói bằng chứng — "Vì sao tin kết quả này?"** 【MÀN HÌNH: mỗi lần chạy sinh ra một thư mục 12 file có chữ ký】 > "Đây là điểm nhấn. Mỗi lần chạy, hệ thống tự đóng một **gói bằng chứng có chữ ký số** — mười hai tài liệu: kết quả từng lớp, kết quả chống tấn công, chi phí, tất cả." 【MÀN HÌNH: sửa đúng 1 byte trong gói → xác minh lại → **VÔ HIỆU**】 > "Giờ tôi sửa **đúng một byte** trong gói rồi xác minh lại — **toàn bộ gói vô hiệu**. Nghĩa là: bạn tin vào **chữ ký**, không phải tin vào lời hứa. > Và con dấu 'đã kiểm định' chỉ được cấp khi **qua đủ mọi cổng** — thiếu bằng chứng thì nó **ghi thẳng lý do và không đóng dấu**. Không có chuyện đóng dấu cho đẹp." --- **🎙️ Chốt Video 2** > "Không phải AI xịn nhất — mà là AI **có kiểm soát, có bằng chứng, và dùng lại được** cho dự án khác. > Tổng cộng **140 bài kiểm thử, không lỗi**. Và chúng tôi thành thật: đa ngôn ngữ, cô lập hoàn toàn, quản trị cỡ doanh nghiệp — là chặng đường tiếp theo. Đó chính là Video 3." --- ## 🎬 VIDEO 3 — "Nâng mắt xích yếu nhất lên" *(MỚI)* ### Vá lỗ hổng SÂU NHẤT — quản trị & vận hành thật · `run-hardening.sh` phần H5+ và H6+ (quay mới, terminal) > **Bối cảnh để mở lời:** trong CASAN, **lớp yếu nhất quyết định trần của cả hệ thống** — như sợi xích, đứt ở mắt yếu nhất. Video này kể chuyện chúng tôi đi tìm mắt yếu nhất và nâng nó lên, hai lần. **🎙️ Mở đầu** > "Ở hai video trước, hai lớp bị điểm thấp nhất là **Quản trị** và **Vận hành**. Một hệ thống mạnh yếu bằng đúng **mắt xích yếu nhất của nó**. Nên video này, chúng tôi bắt tay vá đúng ba lỗ hổng lớn nhất của quản trị, rồi ba lỗ hổng lớn nhất của vận hành — mỗi cái đều có tấn công thật để chứng minh." --- ### PHẦN A — Quản trị lên hạng (H5+) **🔑 A1 — Duyệt phải KÝ TÊN thật, không phải ai hô cũng được** 【MÀN HÌNH: đặt biến "người duyệt = ops-owner" rồi xin duyệt việc nhạy cảm → vẫn BỊ CHẶN】 > "Trước đây, để duyệt một việc nhạy cảm, chỉ cần khai tên người duyệt vào — ai gõ được cái tên đó cũng 'duyệt' được. Quá hớ hênh. > Giờ bật chế độ nghiêm: khai suông **không ăn thua** — vẫn bị chặn." 【MÀN HÌNH: người duyệt dùng chìa khoá riêng KÝ vào đúng yêu cầu đó → APPROVED】 > "Người duyệt phải **ký tên bằng chữ ký số riêng của mình** vào đúng yêu cầu đó, và hệ thống kiểm tra cả **đúng người lẫn đúng vai trò**. Ký hợp lệ → mới cho qua. Giống như duyệt chi tiền phải **ký tươi**, chứ không phải hô 'sếp đồng ý rồi'." *(Ý chính: từ 'khai tên' nâng lên 'ký tên thật + đúng vai'.)* --- **🔐 A2 — Chìa khoá đóng dấu cất trong két, không ai mang ra ngoài** 【MÀN HÌNH: hệ thống ký qua két khoá (KMS), xoay chìa, và chứng minh chìa KHÔNG mang ra được — hoặc hiện ⏭ SKIP nếu chưa bật két】 > "Cái dấu để niêm phong sổ sách — chìa khoá của nó **không được nằm lăn lóc trên ổ đĩa**, vì lỡ có người trong nhà tuồn ra ngoài. > Giờ chìa nằm trong một **két bảo mật chuyên dụng**: hệ thống gửi tài liệu vào **trong két để đóng dấu**, chìa **không bao giờ rời két** — kể cả quản trị viên cũng không lấy ra được. Và **xoay chìa định kỳ** vẫn ký tiếp bình thường." > *(Nếu màn hiện ⏭ SKIP:)* "Ở đây két đang tắt nên bước này bỏ qua — nhưng đường ký qua két **đã chạy thật** ở lần chấm trước, mọi thứ đều có trong mã nguồn." --- **🗄️ A3 — Xoá nhật ký để phi tang? Vẫn lộ** 【MÀN HÌNH: mỗi mốc sổ được gửi bản sao ra 'sổ ngoài'; rồi rollback sổ ở máy về mốc cũ → báo **AUDIT_GAP_DETECTED · exit 1**】 > "Kẻ tấn công thông minh sẽ **xoá nhật ký** để phi tang. Nên mỗi mốc quan trọng, chúng tôi gửi một **bản sao ra sổ bên ngoài, chỉ ghi thêm không sửa được** — như công chứng ở phường. > Giờ tôi đóng vai kẻ gian, xoá bớt nhật ký ở máy cho về mốc cũ. Hệ thống đối chiếu với sổ ngoài và **hô lên ngay: thiếu mất một khúc**. Sổ ở nhà xoá được, nhưng bản công chứng bên ngoài thì không — nên **xoá là lộ**." --- ### PHẦN B — Vận hành lên hạng (H6+) **🚨 B1 — Báo động THẬT gọi ra ngoài, không chỉ ghi vào sổ để đấy** 【MÀN HÌNH: một bước chạy lỗi → cảnh báo được GỬI THẲNG tới kênh báo động (webhook nhận được)】 > "Trước đây khi có sự cố, hệ thống chỉ **ghi vào một file nhật ký** — mà 3 giờ sáng thì có ai ngồi đọc file đâu. > Giờ báo động **gửi thẳng ra kênh trực** — như tin nhắn gọi người trực dậy. Đây: một bước vừa chạy lỗi, và cảnh báo **tới nơi ngay lập tức**." 【MÀN HÌNH: tắt kênh báo động → cảnh báo KHÔNG mất, xếp vào 'hàng chờ'; bật lại → tự gửi lại thành công】 > "Lỡ kênh báo động chết thì sao? Cảnh báo **không bốc hơi** — nó được xếp vào hàng chờ. Kênh sống lại, hệ thống **tự gửi lại**. Không sự cố nào bị nuốt mất trong im lặng." --- **🧾 B2 — Đối chiếu hoá đơn thật, không cho khai gian chi phí** 【MÀN HÌNH: kéo số liệu dùng thật từ nhà cung cấp về; rồi số ở máy khai thiếu 90% → báo **TELEMETRY_DISCREPANCY · exit 1**】 > "Một chiêu tinh vi: kẻ gian **khai thấp chi phí ở máy nhà**, để một hành động lén lút trông có vẻ 'rẻ tiền', không ai truy. > Chống lại: chúng tôi lấy **hoá đơn dùng thật từ phía nhà cung cấp** làm chuẩn, rồi **đối chiếu** với số khai ở máy. Đây — số ở máy khai thiếu chín phần mười, hệ thống **tuýt còi ngay: lệch số**. Không tự khai gian được, vì có bên thứ hai làm chứng." --- **💓 B3 — Bảng điều khiển biết cả khi hệ thống 'chết lâm sàng'** 【MÀN HÌNH: mở bảng theo dõi trên trình duyệt, hỏi tình trạng → 'khoẻ' (200 OK); rồi giả bộ số liệu 6 tháng không cập nhật → báo 'ĐỨNG IM' (503 stale)】 > "Một bảng theo dõi đẹp mà **ngừng cập nhật từ tuần trước** thì cũng vô dụng — nó vẫn hiện số cũ, không ai biết là đã chết. > Bảng của chúng tôi có một **nhịp tim**: hỏi 'còn sống không?' → nếu số liệu mới thì báo **khoẻ**; nếu số liệu **cũ mèm, ngừng chảy** thì báo **đứng im**. Nhờ vậy một máy giám sát bên ngoài có thể **gọi người** ngay khi hệ thống lặng thinh — chứ không đợi nó sập hẳn." --- **⚡ B4 — Cầu dao tự ngắt, kể cả khi lỗi chập chờn** 【MÀN HÌNH: chuỗi lỗi-tốt-lỗi-tốt xen kẽ → vẫn báo **CIRCUIT_OPEN_WINDOW · exit 1**】 > "Nếu một dịch vụ cứ hỏng liên tục, hệ thống sẽ tự **ngắt cầu dao** để khỏi đốt tiền vô ích. Nhưng kẻ tinh ranh làm nó **hỏng chập chờn** — lỗi, rồi tốt, rồi lỗi — để cái đếm 'hỏng liên tiếp' không bao giờ đủ. > Giờ chúng tôi tính theo **tỷ lệ hỏng trong khoảng gần đây**: cứ quá nửa là **ngắt**, bất kể xen kẽ khéo cỡ nào. Né không được nữa." --- **🎙️ Chốt Video 3 (và chốt cả bộ)** > "Kể lại hành trình: lớp yếu nhất từng là **Quản trị**, chúng tôi nâng lên. Rồi lớp yếu nhất thành **Vận hành**, chúng tôi nâng nốt. Kết quả: **không còn lớp nào bị bỏ lại phía sau** — cả bảy lớp đều vững. > Tổng cộng bây giờ là **175 bài kiểm thử, không một lỗi**. Mỗi tính năng đều có một tấn công thật đi kèm để chứng minh — gỡ tính năng đó ra là bài kiểm thử **đỏ ngay**. > Và chúng tôi vẫn **thành thật**: đây là mức 'đủ chững chạc cho nội bộ', **chứng minh được bằng tấn công** — chưa phải bản production hoàn chỉnh. Muốn lên tới đó còn cần: quản lý danh tính cỡ doanh nghiệp, kho lưu trữ chống-xoá thật sự, bảng theo dõi được triển khai chính thức, cô lập hoàn toàn. Tất cả **đã ghi rõ là việc kế tiếp**, không giấu. > Một câu để kết: **casan-old thắng một buổi demo; casan5 sống sót trong đời thật — và luôn nói thật về chỗ mình chưa tới.**" --- ### 📌 Bảng tra nhanh cho người trình bày | Video | Cấp độ | Chủ đề một câu | Con số chốt | Tài liệu chạy | |---|---|---|---|---| | **1** | Cơ bản & kinh điển | Khi AI làm bậy, ai chặn và chứng minh ra sao | 23 đòn tấn công, chặn hết | `run-all.sh` | | **2** | Nâng cao + bằng chứng | Né tránh tinh vi bị bắt · đủ trưởng thành · trung thực chỗ chưa tới | 140 bài kiểm thử, 0 lỗi | `run-hardening.sh` (Track A + mở rộng + gói bằng chứng) | | **3** | Lỗ hổng sâu nhất | Nâng mắt xích yếu nhất: quản trị & vận hành lên hạng | 175 bài kiểm thử, 0 lỗi · không lớp nào dưới chuẩn | `run-hardening.sh` (phần H5+ và H6+) | > **Nếu chỉ có 60 giây:** chiếu 3 khoảnh khắc "chặn thật" — (1) file giấu lệnh độc bị bắt, (2) sửa 1 byte → gói bằng chứng vô hiệu, (3) khai gian chi phí → lệch số bị tuýt còi. Ba cái đó tự kể hết câu chuyện.