Deep-dive defense ammo tied to the video scenes so a presenter can field follow-up questions live. For each of the 26 attacks across the 3 videos: plain-language what-it-is, why-dangerous, how-CASAN-blocks (flagging which layer is deterministic vs the 3-4 AI scenes), likely challenge question + answer, and the honest limit. Opens with 3 "mantra" lines that cover most hard questions and closes with a 10-toughest-questions cheat sheet. Link it from CASAN_SCRIPT_2VIDEO.md. Numbers kept consistent: V1 = 23 vectors, V2 = 140 checks, V3 = 175 checks; ~90% of controls are deterministic. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
20 KiB
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.