Skip to content

Commit 2914dd0

Browse files
emmanuelgjrclaude
andcommitted
Add FedRAMP + DORA frameworks, npm package, SBOM generation (v1.7.0)
New frameworks (19th & 20th): - FedRAMP AI overlay — 3 mapping files (LLM/Agentic/DSGAI × SP 800-53 controls) - DORA (EU 2022/2554) — 3 mapping files (LLM/Agentic/DSGAI × Art. 5-45) npm package (@owasp/genai-crosswalk): - src/index.ts — typed API: getEntry, getFramework, searchEntries, getBySeverity - src/index.test.ts — 12 smoke tests (all pass) - tsconfig.json, dist/ output, package.json updated SBOM generation: - .github/workflows/sbom.yml — CycloneDX on release tags - scripts/sbom-inventory.js — content-level SBOM (mapping files, entries, incidents) Infrastructure: - generate.js — SP 800-218A, FedRAMP, DORA in FRAMEWORK_FILES catalog (66/67 parsed) - compliance-report.js — FedRAMP + DORA in REPORT_FRAMEWORKS + FW_META - All 41 data/entries/ regenerated with 20 frameworks - 20 gap assessment reports (3 new: SP 800-218A, FedRAMP, DORA) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 5d871d6 commit 2914dd0

60 files changed

Lines changed: 15568 additions & 343 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/sbom.yml

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
name: SBOM Generation
2+
3+
on:
4+
push:
5+
tags: ['v*']
6+
workflow_dispatch:
7+
8+
permissions:
9+
contents: write
10+
11+
jobs:
12+
sbom:
13+
name: Generate CycloneDX SBOM
14+
runs-on: ubuntu-latest
15+
steps:
16+
- uses: actions/checkout@v4
17+
18+
- name: Use Node.js
19+
uses: actions/setup-node@v4
20+
with:
21+
node-version: '20'
22+
23+
- name: Install dependencies
24+
run: npm install --ignore-scripts
25+
26+
- name: Generate CycloneDX SBOM
27+
uses: CycloneDX/gh-node-module-generatebom@v1
28+
with:
29+
output: sbom.cdx.json
30+
31+
- name: Generate content inventory SBOM
32+
run: node scripts/sbom-inventory.js
33+
34+
- name: Upload SBOM artifacts
35+
uses: actions/upload-artifact@v4
36+
with:
37+
name: sbom
38+
path: |
39+
sbom.cdx.json
40+
sbom-content.cdx.json
41+
42+
- name: Attach SBOM to release
43+
if: startsWith(github.ref, 'refs/tags/v')
44+
env:
45+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46+
run: |
47+
TAG="${GITHUB_REF#refs/tags/}"
48+
gh release upload "$TAG" sbom.cdx.json sbom-content.cdx.json --clobber

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,3 +7,6 @@ __pycache__/
77
evals/results/
88
reports/
99
data/.watch-state.json
10+
dist/
11+
sbom.cdx.json
12+
sbom-content.cdx.json

CHANGELOG.md

Lines changed: 45 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,51 @@ Versioning follows [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
99

1010
## [Unreleased]
1111

12-
Next: npm package `@owasp/genai-crosswalk` with TypeScript types, SBOM generation in CI, FedRAMP AI overlay + DORA framework additions.
12+
All items through v1.7.0 complete.
13+
14+
---
15+
16+
## [1.7.0] — 2026-03-28
17+
18+
### Added
19+
20+
#### Two new frameworks: FedRAMP AI overlay + DORA (frameworks 19 & 20)
21+
22+
**FedRAMP** — US Federal Risk and Authorization Management Program AI overlay, extending SP 800-53 Rev 5 baseline:
23+
24+
| File | Entries |
25+
|---|---|
26+
| `llm-top10/LLM_FedRAMP.md` | LLM01–LLM10 |
27+
| `agentic-top10/Agentic_FedRAMP.md` | ASI01–ASI10 |
28+
| `dsgai-2026/DSGAI_FedRAMP.md` | DSGAI01–DSGAI21 |
29+
30+
**DORA** — EU Digital Operational Resilience Act (Regulation 2022/2554), mandatory for financial entities:
31+
32+
| File | Entries |
33+
|---|---|
34+
| `llm-top10/LLM_DORA.md` | LLM01–LLM10 |
35+
| `agentic-top10/Agentic_DORA.md` | ASI01–ASI10 |
36+
| `dsgai-2026/DSGAI_DORA.md` | DSGAI01–DSGAI21 |
37+
38+
#### npm package `@owasp/genai-crosswalk`
39+
40+
- TypeScript types for all data structures (Entry, Incident, Mapping, MaestroLayer, etc.)
41+
- `src/index.ts` — typed API: `getEntry()`, `getFramework()`, `searchEntries()`, `getBySeverity()`, `getIncidentsForEntry()`, `getIncidentsByLayer()`
42+
- `src/index.test.ts` — 12 smoke tests using Node.js built-in test runner
43+
- `tsconfig.json`, `dist/` build output
44+
- `package.json` updated: `@owasp/genai-crosswalk`, `main: dist/index.js`, `types: dist/index.d.ts`
45+
46+
#### SBOM generation
47+
48+
- `.github/workflows/sbom.yml` — CycloneDX SBOM on every tag push, attached to GitHub Release
49+
- `scripts/sbom-inventory.js` — content-level SBOM of all crosswalk data assets (mapping files, entries, incidents)
50+
51+
### Changed
52+
- `scripts/generate.js` — added SP 800-218A, FedRAMP, and DORA to FRAMEWORK_FILES catalog
53+
- `scripts/compliance-report.js` — added FedRAMP and DORA to REPORT_FRAMEWORKS + FW_META
54+
- `.gitignore` — added `dist/`, SBOM artifacts
55+
- Mapping file count: 61 → 67 (6 FedRAMP + DORA files)
56+
- Framework count: 18 → 20
1357

1458
---
1559

README.md

Lines changed: 35 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,13 @@
22

33
[![License: CC BY-SA 4.0](https://img.shields.io/badge/License-CC%20BY--SA%204.0-lightgrey.svg)](https://creativecommons.org/licenses/by-sa/4.0/)
44
[![OWASP Lab](https://img.shields.io/badge/OWASP-GenAI%20Data%20Security-blue)](https://genai.owasp.org)
5-
[![Version](https://img.shields.io/badge/version-1.6.0-green)](CHANGELOG.md)
5+
[![Version](https://img.shields.io/badge/version-1.7.0-green)](CHANGELOG.md)
66
[![Source Lists](https://img.shields.io/badge/source%20lists-3-blueviolet)](README.md)
7-
[![Mapping Files](https://img.shields.io/badge/mapping%20files-61-brightgreen)](README.md)
8-
[![Frameworks](https://img.shields.io/badge/frameworks-18-orange)](README.md)
7+
[![Mapping Files](https://img.shields.io/badge/mapping%20files-67-brightgreen)](README.md)
8+
[![Frameworks](https://img.shields.io/badge/frameworks-20-orange)](README.md)
9+
[![npm](https://img.shields.io/badge/npm-%40owasp%2Fgenai--crosswalk-red)](https://www.npmjs.com/package/@owasp/genai-crosswalk)
910

10-
> The most comprehensive publicly available mapping of OWASP GenAI security risks to industry frameworks — covering LLM applications, autonomous agentic AI, and GenAI data security across **18 frameworks** and **3 OWASP source lists**.
11+
> The most comprehensive publicly available mapping of OWASP GenAI security risks to industry frameworks — covering LLM applications, autonomous agentic AI, and GenAI data security across **20 frameworks** and **3 OWASP source lists**.
1112
1213
Maintained by the [OWASP GenAI Data Security Initiative](https://genai.owasp.org).
1314
Created by **[Emmanuel Guilherme Junior](https://github.com/emmanuelgjr)**.
@@ -21,8 +22,8 @@ Every file answers one question: **which controls from framework X address vulne
2122
| | |
2223
|---|---|
2324
| **3** source lists | LLM Top 10 · Agentic Top 10 · DSGAI 2026 |
24-
| **18** frameworks | Compliance · Governance · Threat modeling · Testing · OT/ICS · Identity · Secure SDLC |
25-
| **61** mapping files | Every source list entry × every applicable framework |
25+
| **20** frameworks | Compliance · Governance · Threat modeling · Testing · OT/ICS · Identity · Secure SDLC · Financial |
26+
| **67** mapping files | Every source list entry × every applicable framework |
2627
| **13** implementation recipes | Production-ready Python patterns |
2728
| **40+** open-source tools | Catalogued and organised by function |
2829
| **10** eval profiles | Runnable Garak + PyRIT tests mapped to OWASP entries |
@@ -66,12 +67,14 @@ All free. All open-source. Built for practitioners.
6667
| [AIUC-1](https://www.aiuc-1.com) ||||
6768
| [OWASP NHI Top 10](https://owasp.org/www-project-non-human-identities-top-10/) ||||
6869
| [NIST SP 800-218A](https://doi.org/10.6028/NIST.SP.800-218A.ipd) ||||
70+
| [FedRAMP](https://www.fedramp.gov/) ||||
71+
| [DORA (EU 2022/2554)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32022R2554) ||||
6972

7073
---
7174

7275
## All mapping files
7376

74-
### LLM Top 10 2025 — 21 framework mappings
77+
### LLM Top 10 2025 — 23 framework mappings
7578

7679
| File | Framework | Standout content |
7780
|---|---|---|
@@ -96,8 +99,10 @@ All free. All open-source. Built for practitioners.
9699
| [LLM_AIUC1.md](llm-top10/LLM_AIUC1.md) | AIUC-1 | Six-domain control mapping for LLM deployments — certification readiness checklist |
97100
| [LLM_NHI.md](llm-top10/LLM_NHI.md) | OWASP NHI Top 10 | Credential and identity controls per LLM entry — NHI programme maturity table |
98101
| [LLM_SP800218A.md](llm-top10/LLM_SP800218A.md) | NIST SP 800-218A | Secure AI SDLC practices — PW/PS/RV practice mapping per LLM entry |
102+
| [LLM_FedRAMP.md](llm-top10/LLM_FedRAMP.md) | FedRAMP | SP 800-53 AI overlay — AC/AU/CA/CM/IA/IR/RA/SA/SC/SI/SR control families |
103+
| [LLM_DORA.md](llm-top10/LLM_DORA.md) | DORA | EU financial sector resilience — Art. 5–45 per LLM entry |
99104

100-
### Agentic Top 10 2026 — 21 framework mappings
105+
### Agentic Top 10 2026 — 23 framework mappings
101106

102107
| File | Framework | Standout content |
103108
|---|---|---|
@@ -121,10 +126,12 @@ All free. All open-source. Built for practitioners.
121126
| [Agentic_SAMM.md](agentic-top10/Agentic_SAMM.md) | OWASP SAMM v2.0 | L1–L3 maturity scorecard for agentic AI — pre-deployment gates and programme maturity roadmap |
122127
| [Agentic_NISTSP80082.md](agentic-top10/Agentic_NISTSP80082.md) | NIST SP 800-82 Rev 3 | OT agent placement, SP 800-53 controls, U.S. regulatory crosswalk (NERC CIP, AWIA, CMMC) |
123128
| [Agentic_SP800218A.md](agentic-top10/Agentic_SP800218A.md) | NIST SP 800-218A | Secure agentic SDLC — tool access, memory integrity, multi-agent pipeline practices |
129+
| [Agentic_FedRAMP.md](agentic-top10/Agentic_FedRAMP.md) | FedRAMP | Federal agentic AI authorization — agent identity, tool access, cascade controls |
130+
| [Agentic_DORA.md](agentic-top10/Agentic_DORA.md) | DORA | Financial sector agentic resilience — incident reporting, third-party agent risk |
124131

125132
> **Also in this folder:** [Agentic_CWE_CVE.md](agentic-top10/Agentic_CWE_CVE.md) — CWE root cause taxonomy, confirmed CVEs, full CWE cross-reference index.
126133
127-
### DSGAI 2026 — 19 framework mappings
134+
### DSGAI 2026 — 21 framework mappings
128135

129136
| File | Framework | Standout content |
130137
|---|---|---|
@@ -147,6 +154,8 @@ All free. All open-source. Built for practitioners.
147154
| [DSGAI_AIUC1.md](dsgai-2026/DSGAI_AIUC1.md) | AIUC-1 | Domain A (Data & Privacy) covers 50%+ of DSGAI entries — certification readiness table |
148155
| [DSGAI_NHI.md](dsgai-2026/DSGAI_NHI.md) | OWASP NHI Top 10 | NHI as enabling condition for DSGAI risks — NHI programme maturity table for GenAI data |
149156
| [DSGAI_SP800218A.md](dsgai-2026/DSGAI_SP800218A.md) | NIST SP 800-218A | Secure GenAI data SDLC — training data protection, data governance, provenance practices |
157+
| [DSGAI_FedRAMP.md](dsgai-2026/DSGAI_FedRAMP.md) | FedRAMP | Federal data security controls — SC-28 data at rest, AU-2 logging, SR supply chain |
158+
| [DSGAI_DORA.md](dsgai-2026/DSGAI_DORA.md) | DORA | Financial data resilience — Art. 8 asset inventory, Art. 12 backup, Art. 28-44 vendor risk |
150159

151160
### Shared resources
152161

@@ -345,6 +354,23 @@ node scripts/watch.js --watcher arxiv # run single watcher
345354

346355
Weekly GitHub Actions cron (`.github/workflows/weekly-watch.yml`) runs all 4 watchers and opens labeled issues automatically.
347356

357+
### npm package
358+
359+
```bash
360+
npm install @owasp/genai-crosswalk
361+
```
362+
363+
```typescript
364+
import { getEntry, getFramework, searchEntries, incidents } from '@owasp/genai-crosswalk';
365+
366+
const llm01 = getEntry('LLM01'); // typed Entry object
367+
const euai = getFramework('EU AI Act'); // { framework, entries, controls }
368+
const hits = searchEntries('injection'); // Entry[]
369+
const incs = incidents; // 31 Incident[] with MAESTRO layers
370+
```
371+
372+
Full TypeScript types included for all data structures.
373+
348374
---
349375

350376
## Start here — by role

0 commit comments

Comments
 (0)