Regulatory freshness, OWASP ASI reconciliation + 13th framework, MITRE ATLAS agentic - #34
Merged
Merged
Conversation
…URITY.md, Omnibus, stamps Continues a7d9e2b and c69a1da, actioning items they deliberately deferred (HF "flagged not flipped"; reference-YAML stamps "not re-dated"). Every change verified against a primary source this session. Hugging Face GPAI signatory: flipped signed:true -> signed:false Re-verified against the EC published signatory list (26 orgs, 1 Aug 2025 baseline) and the Wikipedia GPAI Code of Practice article (edited 15 Jul 2026); Hugging Face is on neither (Meta and Chinese providers are the other notable absences). The prior signed:true was an error. The SBOM now annotates HF-detected code as a known non-signatory ("false") rather than "unknown". Test updated to assert the verified status, not "all vendors signed". SECURITY.md corrected + hardened against future drift - "Sigstore not yet shipped" was WRONG: PyPI shows 1.7.x ships PEP 740 provenance attestations via Trusted Publishing (verified on the PyPI page + release.yml). Moved to the posture table; added verification steps. - stale "2,468 tests" -> 2,789 (canonical). Root cause: SECURITY.md was not in claim_auditor's checked set — now added, so it cannot drift again. - added a public CodeQL triage section: 42 open high-severity alerts (not 30, and not all one rule), each triaged, none suppressed. CodeQL: one real bug fixed, not suppressed claim_auditor.py <script>/<style> blanking regex now tolerates whitespace in the closing tag (py/bad-tag-filter). The rest are documented in SECURITY.md, left open per the never-suppress rule. Regulatory freshness - blog-startups-ignoring-ai-act.html: added a July-2026 editor's note and corrected the stale Omnibus framing. The "569-45-23 on 26 Mar 2026" vote is REAL (EP negotiating-position vote, verified vs europarl.europa.eu) — kept as history, only the surrounding tense was stale. Also corrected "only Finland has a competent authority": ~8-10 of 27 had formally designated by 2026; Finland was first with an active enforcer (Traficom, 1 Jan 2026), not the only one. - reference YAMLs re-verified and re-stamped to 2026-07-22: owasp_llm_top10 (v2.0 2025 still current), gpai_code_of_practice (facts unchanged), mitre_atlas (2026.05 noted), harmonised_standards (EN 18228 Art 9 / EN 18282 Art 15(5) public enquiry, early May 2026 — verified vs jtc21.eu, adamleonsmith, cms-lawnow). Gates custom runner 1381 passed, 0 failed, 0 skipped (947 functions) pytest 2789 passed claim-auditor both modes clean (SECURITY.md now checked) site_integrity / verify_seo OK Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…26 list
regula owasp-agentic already implements the OWASP Top 10 for Agentic
Applications (agent_monitor.OWASP_AGENTIC_RISKS + per-risk detection patterns).
The catalog matches the official 2026 list, but several call-sites still carried
DRAFT-era labels that contradicted it. Reconciled against genai.owasp.org
(verified 2026-07-22).
Corrected
ASI04 "Missing Guardrails" (draft) was used for agent-autonomy findings.
Official ASI04 is "Agentic Supply Chain Vulnerabilities". Autonomy findings
map to ASI02 (Tool Misuse), plus ASI05 (Unexpected Code Execution) where the
action is subprocess/system execution:
agent_monitor.py (comment + owasp_ref), cli_scan.py (section header),
blog-scanning-10-ai-apps.html.
ASI04 "control-flow hijacking" (draft) was used for unvalidated tool-output
findings. That is ASI01 (Agent Goal Hijack):
remediation.py (article + explanation), risk_patterns.py, and its client
mirror site/assess/scanner.js (kept in sync).
Left untouched: docs/article-state-of-ai-compliance.md (dated snapshot).
Drift guard
test_owasp_agentic.py::test_coverage_score_full now asserts ASI01-ASI10 names
match the official list (sourced from OWASP_AGENTIC_RISKS, not a copy). This
would have caught the ASI04 mislabel. Added to an existing test, so the test
count is unchanged.
Gates
custom runner 1381 passed, 0 failed, 0 skipped (947 functions)
pytest 2789 passed
regula owasp-agentic runs, catalog correct
site_integrity OK
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…LAS 2026.06 agentic techniques
Two owner-approved agentic-framework additions. The count moves 12 -> 13; the
existing `regula owasp-agentic` command is unchanged (this adds the crosswalk
framework so `regula gap/compliance --framework owasp-agentic` and the count
surface it).
OWASP Top 10 for Agentic Applications (ASI) -> 13th framework
- references/owasp_agentic_top10.yaml: ASI01-ASI10, verified against the OWASP
GenAI Security Project official list (genai.owasp.org, 2026-07-22).
- framework_crosswalk.yaml: owasp_agentic mappings on articles 9, 10, 13, 14, 15.
- framework_mapper._FRAMEWORK_KEYS + compliance_check display label.
- count 12 -> 13 (count_frameworks reads _FRAMEWORK_KEYS): cascaded across the
gate-enforced site surfaces (index.html, about.html, llms.txt, and both
locales de.html/pt-br.html — numerals + the exhaustive lists in about.html
and llms.txt now name OWASP Agentic; pt-br "e mais 8 frameworks" -> "e outros
frameworks" to avoid a stray count), .claim-allowlist (12 -> 13 self-claim
exemptions), and claim_auditor canonical.
- test_framework_mapper_all_8_frameworks now also asserts owasp_agentic is
mapped on Art 15 (no new test fn, so the test count is unchanged).
MITRE ATLAS agentic techniques (release 2026.06, 30 Jun 2026)
- Added AML.T0054 (LLM Jailbreak), T0086 (Exfiltration via AI Agent Tool
Invocation), T0101 (Data Destruction via AI Agent Tool Invocation), T0108
(AI Agent Tool Poisoning), T0109 (AI Supply Chain Rug Pull), T0112 (Machine
Compromise) to mitre_atlas.yaml + crosswalk art 15.
- Verified against the mitre-atlas/atlas-data CHANGELOG (the authoritative
source repo). The live atlas.mitre.org lags the repo, so these 404 there for
now; sourced to the repo, not the live site.
NOT done (documented, not silently skipped)
The 12 -> 13 cascade covered the gate-enforced surfaces. Internal docs
(architecture.md, cli-reference.md) and blog-aicdi-governance-gaps.html still
say 12. blog-aicdi has a PRE-EXISTING framework-list inconsistency (lists a
non-canonical "NIST AI 600-1" and 13 names under "12 frameworks"); left to
avoid worsening it. Tracked in .claude/handover.md §4c.
Gates
custom runner 1383 passed, 0 failed, 0 skipped (947 functions)
pytest 2789 passed (unchanged; no new test fn, no count cascade)
claim-auditor both modes clean (frameworks now 13)
site_integrity / verify_seo OK
regula gap --framework owasp-agentic surfaces the ASI mapping
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…K region, and remaining locale copy Follow-up to f49f16a: that commit updated the gate-enforced site surfaces to 13 frameworks; this brings the remaining CURRENT surfaces into line so nothing public or internal still says 12. Corrected 12 -> 13 (+ OWASP Agentic named where a list also states the count) - docs/cli-reference.md, docs/architecture.md (x2), docs/course/10-custom-patterns.md - scripts/site_facts.py frameworks_vs_claim note (also fixed a stale sub-claim: the 5 non-core frameworks are display-handler-only now, not filter keys) - site/locales/de.html: 3 "12 Compliance-Framework(s)" mentions the earlier regex AND the auditor both missed (German hyphenated compound is a gate blind spot; values fixed, blind spot noted for a future auditor improvement) - site/blog/blog-aicdi-governance-gaps.html: 12 -> 13; list reconciled to the canonical 13 (added OWASP Agentic; NIST AI 600-1 repositioned as a risk set, not a counted framework — it is a separate crosswalk key, not in _FRAMEWORK_KEYS) - content/regulations/united-kingdom.py: added OWASP Agentic to the crosswalk list; rebuilt uk-ai-regulation.html FROM SOURCE (region pages are generated, never hand-edited — a first hand-edit attempt was caught by the site_integrity drift check and reverted) Left as-is CHANGELOG.md "(12 frameworks)" — a historical release note, accurate for its date. Gates custom runner 1383 passed, 0 failed, 0 skipped (947 functions) pytest 2789 passed claim-auditor verify-facts clean (13 frameworks) site_integrity OK (UK region drift resolved by rebuilding from source) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
|
||
| text = re.sub(r"<!--.*?-->", _blank, text, flags=re.DOTALL) | ||
| text = re.sub(r"<script[^>]*>.*?</script>", _blank, text, | ||
| text = re.sub(r"<script[^>]*>.*?</script\s*>", _blank, text, |
Contributor
🟢 Regula Compliance: PASS
Scanned by Regula — EU AI Act risk indication for code |
✅ Deploy Preview for getregula ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
A verification, freshness, and agentic-framework pass. Every factual change is
traced to a primary source; every count change is gate-enforced.
Commits
e8eb84dfreshness/accuracy — Hugging Face flipped tosigned: false(not a GPAI CoP signatory, verified vs the EC list + Wikipedia);SECURITY.mdcorrected (Sigstore attestations ARE shipped;2,468→2,789; new public CodeQL triage section for the 42 open alerts) and added to the auditor's checked set; a realpy/bad-tag-filterbug fixed (not suppressed); the Omnibus blog corrected (the 569-45-23 / 26 Mar vote is REAL — an EP negotiating-position vote — kept as history; the "only Finland has a competent authority" claim corrected to ~8-10 of 27); reference YAMLs re-verified and re-stamped.5de83faOWASP ASI reconciliation —regula owasp-agenticalready implements the OWASP Top 10 for Agentic Applications; several call-sites carried DRAFT-era labels (ASI04 "Missing Guardrails" / "control-flow hijacking") contradicting the official 2026 list and the repo's own catalog. Reconciled to ASI02/ASI05 and ASI01; added a catalog drift-guard.f49f16aOWASP ASI as the 13th framework + MITRE ATLAS 2026.06 agentic techniques — newowasp_agentic_top10.yaml, crosswalk +_FRAMEWORK_KEYSwiring, count cascaded 12→13; 6 verified ATLAS agentic techniques (AML.T0054/T0086/T0101/T0108/T0109/T0112, sourced to themitre-atlas/atlas-dataCHANGELOG).9241a3dcount consistency — remaining current docs, the UK region page (rebuilt from source), and 3 German locale compounds brought to 13; NIST AI 600-1 repositioned as a risk set (not a counted framework).Verification
claim-auditor --verify-factsclean (13 frameworks),site_integrity/verify_seoOKregula owasp-agenticandgap --framework owasp-agenticverified end-to-endSECURITY.mdand left openNotes
CHANGELOG.md's "(12 frameworks)" left as a dated historical record.🤖 Generated with Claude Code