Commit Graph
7 Commits
Author SHA1 Message Date
thanhnvandClaude Opus 4.8 42115e3361 docs+demo: deep-gap closers — 211/0 re-score, HD1-HD4 scenes, status/README/scoring
Full authoritative run 2026-07-06: all 12 suites 211 PASS / 0 FAIL (KMS + container
isolation live via Vault dev + Docker; security-gate 11/0).
- run-hardening.sh: new "Vá đường lọt sâu" section (HD1 incident/kill-switch,
  HD2 multilingual VI/JA, HD3 true container isolation, HD4 split+classifier),
  closer updated to 211 checks.
- CASAN_HARDENING_STATUS.md: Phase 6 deep-gap closers table; test inventory
  175→211 (12 suites); C7/multilingual moved out of planned; C6 planned→partial
  (real isolation done); honest claim → H4 83, H2 82, H5/H6 stay 80 (infra-bound).
- scoring-report-02-after-competition.md: current state — 211/0, H4 80→83,
  H2 80→82, avg 80.9→81.6, lowest harness still 80 (H5/H6), 3-milestone table.
- README claim boundary: deep-gap closers listed; totals 175→211; H4/H2 bumps.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 09:51:39 +09:00
thanhnvandClaude Fable 5 da66a36f97 feat(h6): AgentOps hardening — live alerting, provider-API reconcile, hosted dashboard, window breaker (79→80)
Close the three gaps the scoring report itself flagged for H6 plus V15,
each as a real MVP + fail-able adversarial test (same pattern that lifted H5):

- D1 alert-dispatch.sh: alerts POST to a real HTTP webhook (severity routing,
  dedup window, retry) + dead-letter queue with redelivery; fail-loud in strict.
  Wired into agent-metrics.sh so a failing step pages live end-to-end.
- D2 provider-usage-fetch.sh + telemetry-reconcile.sh: pull usage from a provider
  usage HTTP API (all-or-nothing schema gate, fail-loud) + reconcile local vs
  provider ground truth — token under-reporting/hidden runs => TELEMETRY_DISCREPANCY.
- D3 dashboard-serve.sh + dashboard-server.py: serve the dashboard over HTTP with
  a stale-aware /healthz probe (fresh=200 ok, telemetry silent-death=503 stale).
- D4 circuit-breaker-check.sh: sliding-window failure-rate breaker (V15) — interleaved
  successes no longer evade the consecutive-failure breaker (CIRCUIT_OPEN_WINDOW).

New suite phase-h6-agentops-tests.sh: 20/20, all live against local HTTP endpoints
(webhook sink, mock provider API, dashboard server) — deterministic, no model needed.

Also fix sign-policy-bundle.sh key-sync invariant: the local-fallback branch only
exported policy-public.pem when generating a NEW key, so a Vault-DOWN run after a
Vault-signed run verified a local-key signature against the Vault pubkey (RSA padding
error, run-casan4 died mid-suite). Now always re-exports the pubkey before signing —
same fix class as tool-audit-lib.sh / governance-check.sh.

Full battery re-run sequentially: 175/175 PASS, 0 FAIL across 8 suites
(KMS SKIP this run — Vault down; validated live 2026-07-04). Docs synced:
scoring-run-report (H6 79→80, no harness below 80, 155→175), CASAN_HARDENING_STATUS
(Phase 5 D1–D4), Plan-07, submission README, and run-hardening.sh (H6+ scenes HO1–HO4).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-05 01:14:46 +09:00
thanhnvandClaude Opus 4.8 00aabfac4d feat(video): add H5+ governance-hardening scenes to run-hardening.sh
New "H5+ — Governance Hardening" section (before Evidence Pack) demoing the three
lowest-harness fixes with on-screen verdicts:
- HG1 approval-identity: env-var approver → BLOCKED; reviewer-signed → APPROVED.
- HG2 KMS key: sign/verify via Vault Transit + rotate + non-exportable (skip-aware
  when no Vault; shows the docker one-liner to enable it live).
- HG3 WORM audit: ship anchors → in-sync; roll back local audit → AUDIT_GAP_DETECTED.
Closer updated: H5 76→~85 line, total 155 checks. Verified end-to-end (exit 0,
live Vault: rotate v3 + non-exportable confirmed).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-04 23:19:52 +09:00
thanhnvandClaude Opus 4.8 2ffbda3fad feat(video+deck): Part 2 hardening demo script + slide deck update
- run-hardening.sh: narrated "Part 2" battery in the same visual language as
  run-all.sh (card/attack/guard/cmd + on-screen exit code with ⛔/✋/✅ verdict
  chips). Scenes: Track A (HA1-7: homoglyph/zero-width/base64, strict fail-closed,
  telemetry tamper, cost slow-boil/spray, benign FP=0%), Track C-MVP (HC1-4:
  action-gate, supply-chain, data-exfil, sandbox), and the Evidence Pack
  money-shot (HE1-4: pack → verify VALID → tamper 1 byte → TAMPERED exit=1 →
  certified-only-when-earned). Verified end-to-end (exit 0).
- CASAN_SLIDE_DECK.html: reflect implemented vs planned honestly. Updated H4/H5/H6
  AFTER columns, evidence terminal (140 checks), threat-model reframed to
  "identified AND Track A closed", readiness meters bumped to ~3.8-4.0, Track C-MVP
  reframed to DELIVERED (29/29), roadmap marks 07+09 done. Added 2 slides:
  "Track A delivered" and "Evidence Pack money-shot" (18 slides total).
- video guide: Part 1 (run-all) + Part 2 (run-hardening) with pre-flight note.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 23:51:11 +09:00
thanhnvandClaude Opus 4.8 fbcef967e5 chore(freeze): snapshot demo state before Plan-07 hardening work
Freeze current submission/demo baseline:
- casan-next-plans/: full task-level plan set (Plan 00 index + 02/04/06/07/08/09/12, QA, slide deck)
- optimize-docs/video-steps/: per-vector scene breakdown (commands/screen-text/script) + start-tmux
- run-all.sh / scorecard.sh / map-live.sh: REAL=1 live-battery wiring
- regenerated evidence + audit/telemetry logs from live REAL=1 run
- submission README + video recording guide updates
- dry-run pipeline logs for 001-okr-web-app

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-03 22:03:44 +09:00
thanhnvandClaude Opus 4.8 c08d119381 feat(demo): REAL=1 runs the live attack battery through the production wrapper
Add REAL=1 to the video-steps demo so attack vectors flow through the real
production entry-point instead of calling sub-scripts directly.

- run-all.sh: REAL=1 feeds each H4 vector (A1/A2/A4/A6/A7 + cross-layer step
  1) as the INPUT of an agent step run through casan-harness.sh, so the
  BLOCK/PASS verdict is produced by the wrapper itself (H4-in -> H5 -> H6 ->
  exec -> H4-out) exactly as when the real pipeline meets malicious input.
  After the battery it runs a real pipeline slice (STEP1 okr.srs via
  casan-harness.sh -- node casan-step.mjs) and shows audit.jsonl growing by a
  real record. An inline inventory documents which vectors intentionally keep
  calling a single control directly (artifact-scan, audit tamper/re-forge,
  detectors on synthetic telemetry) and why. Default mode (no REAL) unchanged.
- map-live.sh: show the PIPELINE (STEP1) row only under REAL=1, driven by a
  mode sidecar file written by run-all.sh.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-03 10:05:06 +09:00
thanhnvandClaude Sonnet 4.6 2f06662f5d scorecard: chấm live 2 mục hardcode; pipeline: fallback real + honest scoring doc
Hướng A — scorecard.sh (video demo):
- h5_1 approval workflow: hardcode 0 → governance-check deploy live (approval_required)
- h6_2 hallucination rate: hardcode 0 → hallucination-scan phân biệt dirty>clean live
- "N/5 mục" chuyển từ text cứng sang đếm động
- H4/H5/H6 → 100/100 (5/5 gate live), Average 57.9 → 90.0

Hướng B — run-casan-pipeline.mjs:
- fallback: stub 'exit 9' → 'cat /nonexistent' (real failure, nhất quán adversarial T3)
- drift: giữ so fallback-output vs golden (clean run=1.0); năng lực phát hiện
  drift thật chứng minh ở adversarial suite
- Full 12-step run verify: H1 CONTEXT_VALID=24, H2 tool-audit records=25 signed,
  H5 audit-chain records=22 signed, H6 provider_telemetry per-step thật, H7 rollback real

phase3-real-run-scoring.md: giải thích vì sao scorecard cũ cho H5=60/H6=80
(hardcode), phân biệt scorecard-90 vs re-score-84 (2 mục đích khác nhau).

Verify: adversarial 44/0, security-gate 11/0/0, pipeline 12 steps OK.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-07-03 00:18:43 +09:00