diff --git a/.claude/launch.json b/.claude/launch.json new file mode 100644 index 0000000..4842242 --- /dev/null +++ b/.claude/launch.json @@ -0,0 +1,11 @@ +{ + "version": "0.0.1", + "configurations": [ + { + "name": "casan-docs", + "runtimeExecutable": "python3", + "runtimeArgs": ["-m", "http.server", "8791", "--directory", "optimize-docs"], + "port": 8791 + } + ] +} diff --git a/optimize-docs/CASAN_ARCHITECTURE_AFTER.md b/optimize-docs/CASAN_ARCHITECTURE_AFTER.md index 135e859..c8eeaea 100644 --- a/optimize-docs/CASAN_ARCHITECTURE_AFTER.md +++ b/optimize-docs/CASAN_ARCHITECTURE_AFTER.md @@ -3,6 +3,8 @@ > **File này = phần nâng cấp SAU khi thi** — nhánh `feat/plan07-track-a-hardening`. > Điểm xuất phát là trạng thái ở `CASAN_ARCHITECTURE_BEFORE.md` (**37 script, mức demo/PoC**). > Mục tiêu nâng cấp: từ "chặn được trên sân khấu" → **"đủ chững chạc để chạy thật, chứng minh bằng tấn công"**. +> +> 🖥️ **Bản trình chiếu trực quan:** `casan-architecture.html` — mở full-screen bằng trình duyệt khi thuyết trình. --- diff --git a/optimize-docs/CASAN_ARCHITECTURE_BEFORE.md b/optimize-docs/CASAN_ARCHITECTURE_BEFORE.md index 622a14f..56d2bba 100644 --- a/optimize-docs/CASAN_ARCHITECTURE_BEFORE.md +++ b/optimize-docs/CASAN_ARCHITECTURE_BEFORE.md @@ -2,6 +2,8 @@ > **File này = trạng thái "mang đi thi"** — commit freeze `fbcef96`, **trước** nhánh `feat/plan07-track-a-hardening`. > So sánh với **base gốc** (bộ khung spec-kit vanilla trong ảnh). File tiếp theo (`CASAN_ARCHITECTURE_AFTER.md`) kể tiếp phần nâng cấp sau khi thi. +> +> 🖥️ **Bản trình chiếu trực quan (mở full-screen khi thuyết trình):** `casan-architecture.html` — mở trực tiếp bằng trình duyệt, có cả 3 mốc + 7 harness + 5 nhóm nâng cấp trên một trang. --- diff --git a/optimize-docs/casan-architecture.html b/optimize-docs/casan-architecture.html new file mode 100644 index 0000000..62a98b0 --- /dev/null +++ b/optimize-docs/casan-architecture.html @@ -0,0 +1,438 @@ + + +
+ + +Hành trình before → after của thư mục .specify/scripts: khởi đầu chỉ có 5 file spec-kit vô hại, đến hệ 60 script chặn tấn công thật — mỗi tuyên bố có một cuộc tấn công chứng minh.
Chỉ biết sinh khung dự án. Không chặn, không ghi vết, không đo chi phí.
+ Điểm xuất phát +Hiện thực đủ 7 lớp bảo vệ. Chặn được tấn công trên sân khấu — mức demo/PoC.
+ H4/H5/H6 ~3.0 / 5 ++23 script vá đường lọt "sát production". Chứng minh bằng tấn công, trung thực chỗ chưa tới.
+ CASAN Level 4 · không lớp nào < 80 +Đây là toàn bộ .specify/scripts/bash của spec-kit vanilla — chưa một dòng nào về an toàn.
check-prerequisitesKiểm tra công cụ/điều kiện trước khi chạy
commonHàm dùng chung (đường dẫn, tiện ích)
create-new-featureDựng khung một feature theo đặc tả
setup-planDựng khung kế hoạch triển khai
update-agent-contextCập nhật ngữ cảnh cho agent
Mỗi harness là một lớp bảo vệ. Mỗi file là một mảnh của lớp đó.
+context-validatekiểm tra pipeline-context hợp lệcasan-logghi log theo cấp độtool-registry-gateleast-privilege + rate-limit + idempotencyvalidate-tool-inputkiểm input theo JSON schematool-execchạy tool có timeout cứngtool-audit-libghi nhật ký mọi lần gọi toolverify-tool-auditxác minh chuỗi nhật ký toolmodel-routerđịnh tuyến model theo vai tròmodel-callgọi model local + cloudmodel-fallbackmodel A hỏng → chuyển Bsecurity-checkquét injection / secret / PII hai chiềuartifact-scanchặn injection gián tiếp giấu trong tài liệusecurity-gatecổng bảo mật tổng hợppii-maskche thông tin cá nhângovernance-checktách quyền (SoD), duyệt, least-privilegeverify-audit-chainxác minh hash-chain (sửa 1 ký tự là gãy)sign-audit-headký số HEAD chuỗi auditsign-policy-bundleký gói chính sách trung tâmsecrets-scanquét secret lỡ commitcircuit-breaker-checkno-bypass + cầu dao modelvault-kmský qua Vault Transit (KMS)agent-metricsđo chi phí / độ trễ / token + cảnh báocost-spike-detectphát hiện vọt chi phídrift-detectmodel đổi hành vi theo thời gianhallucination-scanquét tín hiệu bịa đặtimport-provider-telemetrynhập số dùng thậtprovider-cost-lookuptra chi phí thật theo bướcbusiness-kpi-reportbáo cáo KPI nghiệp vụcasan-harnesswrapper chạy 1 bước qua đủ harnessrollback-managerrollback thật khi bước lỗiverify-harness-reusechứng minh harness tái dùng đa dự ánNăm nhóm nâng cấp. Không xoá gì của bản thi — chỉ bồi thêm lớp và vá từng đường lọt.
+Bịt các kỹ thuật né tránh nâng cao mà bộ lọc thi bỏ sót; làm telemetry không sửa được.
+unicode-normalize.pyChuẩn hoá NFKC + gấp homoglyph + bóc zero-width + fullwidthChữ "ignore" viết bằng ký tự Cyrillic giảdecode-suspicious.pyGiải base64/hex đoạn khả nghi rồi quét lạiPayload giấu trong mã hoátool-output-scan.shQuét injection trong OUTPUT của tool trước khi tái nhập contextKết quả tool nhiễm độc quay lại modeltelemetry-integrity.shRàng chi phí vào manifest ký — sửa 1 token là MISMATCHSửa lén sổ chi phíbenign-fp-report.shCorpus 95 câu hợp lệ (Anh/Việt/Nhật) + ngân sách FPSiết chặt mà bắt nhầm người thậtFile cũ được nâng: security-check thêm strict fail-closed (model chết → CHẶN) · cost-spike-detect thêm trần tuyệt đối + ngân sách tích luỹ + cold-start.
Bảo mật thật không chỉ lọc prompt — còn ở hành động, chuỗi cung ứng, rò rỉ dữ liệu, cô lập chạy.
+action-gate.shCanh theo hành động: ghi .env, rm -rf, curl|bash, cài depTool "hợp lệ" nhưng làm việc phá hoạisupply-chain-gate.shTyposquat / postinstall / denylist + gói mới phải duyệtAI tự kéo thư viện độcsupply-chain-scan.pyQuét khác biệt manifest dependencybổ trợ cho gate trêndata-exfil-guard.shChặn secret → cloud; che PII → nhật kýTuồn dữ liệu ra ngoàisandbox-run.shChính sách tĩnh (ssh/egress/forkbomb) + ulimitCode sinh ra làm bậy (⚠ scaffold)evidence-pack.shLệnh pack / verify-pack gói bằng chứnggói 12 file ký sốevidence-pack-build.pyDựng gói + manifest hash + ký HEADanchor = signedevidence-pack-verify.pyXác minh tamper-evidentSửa 1 byte → VÔ HIỆU; certified chỉ khi đủ cổngVá 3 đường lọt lớn nhất: duyệt tin bằng biến môi trường · khoá ký nằm local · nhật ký xoá được.
+approval-sign.shReviewer ký số vào đúng request để duyệtKhai "người duyệt = X" là quaapproval-verify.shXác minh chữ ký + vai trò; chống giả / sai vai / replay / tự duyệtnhư trênaudit-ship.shShip HEAD audit ra sổ ngoài append-only (WORM)Xoá nhật ký để phi tangworm-ledger.pySổ ngoài chỉ-ghi-thêm, móc xích hashnhư trênverify-audit-gap.shPhát hiện rollback + giả mạo sổAUDIT_GAP / LEDGER_TAMPEREDFile cũ được nâng: vault-kms thêm rotate (xoay khoá) + non-exportable (chìa không rời két).
Vá 3 gap của chính báo cáo chấm điểm: alerting chỉ ghi file · telemetry nhập tay · dashboard tĩnh — cộng kỹ thuật né cầu dao.
+alert-dispatch.shGửi cảnh báo live ra webhook + dedup + dead-letter + gửi lạiSự cố chỉ ghi file, 3h sáng không ai biếtprovider-usage-fetch.shKéo usage từ API nhà cung cấp + kiểm định dạng + fail-loudthiếu nguồn chi phí "ground truth"telemetry-reconcile.shĐối soát số ở máy vs nhà cung cấpKhai gian chi phí để giấu hành động léndashboard-serve.shServe dashboard qua HTTP + /healthz stale-awareBảng tĩnh không biết khi telemetry chết lặngdashboard-server.pyHTTP server: fresh → 200, số liệu cũ → 503 stalenhư trênFile cũ được nâng: circuit-breaker-check thêm cầu dao theo tỷ lệ hỏng trong khoảng (chống né bằng xen kẽ thành công).
Đây là mức production nội bộ, mỗi tuyên bố có tấn công thật đứng sau — chưa phải production hoàn chỉnh. Sức mạnh nằm ở phòng thủ nhiều tầng + trung thực, không phải "viên đạn bạc". Các hạng mục production còn để ngỏ:
+