docs(llm-security): v8 Phase 2 — B10 docs consistency, counts pinned by test
Extends tests/lib/doc-consistency.test.mjs with 15 cases that derive every inventory count from source instead of trusting prose. Each count has one stated derivation; a doc surface that disagrees now fails the suite. Counts corrected (all were wrong before the test existed): - orchestrated scanners: docs said 10 (README, ci-cd-guide), CLAUDE.md said 12, the synthesizer agent said 9 — scan-orchestrator registers 14 - total scanners: README badge + 3 prose sites said 23; the counting rule in docs/scanner-reference.md (14 orchestrated + 8 standalone) yields 22 - knowledge files: README badge + prose said 22; knowledge/ holds 23 - output.mjs finding() prefix JSDoc listed 10 of the 17 prefixes actually passed to it (missing IDE, MCI, MEM, PST, SCR, TFA, WFL) - norwegian-context.md said "8 hooks, 10 scanners" -> 9 and 14 - ci-cd-guide "what gets scanned" table listed 10 of 14 rows; adds workflow, trigger abuse, signature, AST taint Two plan items changed after verifying against ground truth: - CLAUDE.md's synthesizer "(12 scanners)" was not a deliberate subset; the agent file itself claimed 9. Both bumped to 14. - compliance-mapping.md's "13 posture categories" is substantively correct — its matrix has exactly 13 data rows, and categories 14-16 are governance consumers of the file, not rows in it. The planned 13->16 bump would have made the document false. Wording clarified to "code-level" instead, and the test now pins row count against the stated claim. Framework currency (both verified against primary reporting): - EU AI Act: Digital Omnibus (EP 2026-06-16, Council 2026-06-29) deferred the high-risk obligations behind Art. 9/15 to 2027-12-02 (Annex III) and 2028-08-02 (Annex I); transparency still applies from 2026-08-02 - OWASP Agentic AI Top 10 labelled as the 2026 edition Also: CLAUDE.md Distribution section rewritten monorepo -> polyrepo (each plugin is its own repo; the catalog pins url + ref per plugin), and current-state test counts synced 2013 -> 2034. Release-note paragraphs keep their historical numbers. No scanner, hook, or command behaviour changes. Suite 2034/2034. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Wt4YQGoXwRja5K2Zmv8RZE
This commit is contained in:
parent
ff4d8e8a31
commit
0f1be986d0
8 changed files with 287 additions and 22 deletions
|
|
@ -1,6 +1,6 @@
|
|||
# CI/CD Integration Guide
|
||||
|
||||
Integrate llm-security into your CI/CD pipeline for automated security scanning of AI/LLM projects. The standalone CLI runs 10 deterministic Node.js scanners — no AI models, no external API calls, no data leaves your pipeline environment.
|
||||
Integrate llm-security into your CI/CD pipeline for automated security scanning of AI/LLM projects. The standalone CLI runs 14 deterministic Node.js scanners — no AI models, no external API calls, no data leaves your pipeline environment.
|
||||
|
||||
## Data Sovereignty
|
||||
|
||||
|
|
@ -20,7 +20,7 @@ Integrate llm-security into your CI/CD pipeline for automated security scanning
|
|||
|
||||
- **NSM Grunnprinsipper:** Automated security scanning fulfills GP 3.1 (vulnerability management) and GP 2.4 (secure development)
|
||||
- **Digitaliseringsdirektoratet:** Aligns with recommended practices for AI system development lifecycle security
|
||||
- **EU AI Act (expected Aug 2026):** Directly supports Art. 9 (risk management) and Art. 15 (cybersecurity) requirements
|
||||
- **EU AI Act:** Directly supports Art. 9 (risk management) and Art. 15 (cybersecurity) requirements. Note the Digital Omnibus (European Parliament 16 June 2026, Council 29 June 2026) deferred the high-risk obligations these articles sit under — to 2 December 2027 for stand-alone Annex III systems and 2 August 2028 for AI embedded in Annex I regulated products. Transparency obligations still apply from 2 August 2026, so this remains preparatory rather than deadline-driven work
|
||||
|
||||
## 5-Minute Setup
|
||||
|
||||
|
|
@ -137,7 +137,7 @@ With `--fail-on`, exit codes are binary: 0 (clean) or 1 (threshold exceeded). Wi
|
|||
|
||||
## What Gets Scanned
|
||||
|
||||
The 10 deterministic scanners cover:
|
||||
The 14 deterministic scanners cover:
|
||||
|
||||
| Scanner | Detects |
|
||||
|---------|---------|
|
||||
|
|
@ -150,6 +150,10 @@ The 10 deterministic scanners cover:
|
|||
| Network | Suspicious URLs, exfiltration endpoints, C2 patterns |
|
||||
| Memory poisoning | Injection patterns in CLAUDE.md, memory files, rules |
|
||||
| Supply chain | Lockfile audit, blocklists, OSV.dev (opt-in) |
|
||||
| Workflow | CI/CD workflow injection — untrusted triggers, unpinned actions, spoofed bots |
|
||||
| Trigger abuse | Activation-surface abuse in command/agent/skill frontmatter — shadowing, baiting, overly broad triggers |
|
||||
| Signature | Known-malware identity match (webshells, reverse shells, cryptominers, hacktools) |
|
||||
| AST taint | Scope-aware Python taint analysis (parse-only), falls back to regex taint tracing |
|
||||
| Toxic flow | Lethal trifecta correlation (input + access + exfil) |
|
||||
|
||||
## Local Testing
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue