Skip to content

Regulatory freshness, OWASP ASI reconciliation + 13th framework, MITRE ATLAS agentic - #34

Merged
kuzivaai merged 4 commits into
mainfrom
fix/regulatory-freshness-owasp-asi
Jul 23, 2026
Merged

Regulatory freshness, OWASP ASI reconciliation + 13th framework, MITRE ATLAS agentic#34
kuzivaai merged 4 commits into
mainfrom
fix/regulatory-freshness-owasp-asi

Conversation

@kuzivaai

Copy link
Copy Markdown
Owner

Summary

A verification, freshness, and agentic-framework pass. Every factual change is
traced to a primary source; every count change is gate-enforced.

Commits

  • e8eb84d freshness/accuracy — Hugging Face flipped to signed: false (not a GPAI CoP signatory, verified vs the EC list + Wikipedia); SECURITY.md corrected (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 real py/bad-tag-filter bug 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.
  • 5de83fa OWASP ASI reconciliationregula owasp-agentic already 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.
  • f49f16a OWASP ASI as the 13th framework + MITRE ATLAS 2026.06 agentic techniques — new owasp_agentic_top10.yaml, crosswalk + _FRAMEWORK_KEYS wiring, count cascaded 12→13; 6 verified ATLAS agentic techniques (AML.T0054/T0086/T0101/T0108/T0109/T0112, sourced to the mitre-atlas/atlas-data CHANGELOG).
  • 9241a3d count 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

  • custom runner 1383 passed, pytest 2789 passed (both exit 0)
  • claim-auditor --verify-facts clean (13 frameworks), site_integrity / verify_seo OK
  • regula owasp-agentic and gap --framework owasp-agentic verified end-to-end
  • No security alerts suppressed (never-suppress rule); the 42 CodeQL alerts are triaged in SECURITY.md and left open

Notes

  • Two things sourced to authoritative repos rather than live sites (which lag): the ATLAS agentic techniques (atlas-data CHANGELOG; they 404 on atlas.mitre.org for now) and HF's absence (EC list + Wikipedia).
  • CHANGELOG.md's "(12 frameworks)" left as a dated historical record.

🤖 Generated with Claude Code

Kuziva Muzondo and others added 4 commits July 22, 2026 17:07
…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>
Comment thread scripts/claim_auditor.py

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,
@github-actions

Copy link
Copy Markdown
Contributor

🟢 Regula Compliance: PASS

Metric Value
Findings 0
Prohibited 0
High-Risk 0
Dependency Pinning 0/100

Scanned by Regula — EU AI Act risk indication for code
Findings are indicators, not legal determinations.

@netlify

netlify Bot commented Jul 23, 2026

Copy link
Copy Markdown

Deploy Preview for getregula ready!

Name Link
🔨 Latest commit 9241a3d
🔍 Latest deploy log https://app.netlify.com/projects/getregula/deploys/6a61db719934e30008163550
😎 Deploy Preview https://deploy-preview-34--getregula.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.
🤖 Make changes Run an agent on this branch

To edit notification comments on pull requests, go to your Netlify project configuration.

@kuzivaai
kuzivaai merged commit 48809f3 into main Jul 23, 2026
28 of 29 checks passed
@kuzivaai
kuzivaai deleted the fix/regulatory-freshness-owasp-asi branch July 23, 2026 09:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants