@cdxgen/cdxgen 0.0.1 → 13.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +921 -87
- package/bin/audit.js +239 -0
- package/bin/cdxgen.js +2324 -0
- package/bin/convert.js +213 -0
- package/bin/evinse.js +353 -0
- package/bin/hbom.js +495 -0
- package/bin/repl.js +2224 -0
- package/bin/sign.js +195 -0
- package/bin/tracebom.js +295 -0
- package/bin/validate.js +268 -0
- package/bin/verify.js +189 -0
- package/data/README.md +307 -0
- package/data/bom-1.4.schema.json +1605 -0
- package/data/bom-1.5.schema.json +3660 -0
- package/data/bom-1.6.schema.json +5511 -0
- package/data/bom-1.7.schema.json +6700 -0
- package/data/cbomosdb-queries.json +68 -0
- package/data/component-tags.json +339 -0
- package/data/container-knowledge-index.json +125 -0
- package/data/cosdb-queries.json +17 -0
- package/data/crypto-oid.json +1998 -0
- package/data/cryptography-defs.json +3793 -0
- package/data/cryptography-defs.schema.json +576 -0
- package/data/cyclonedx-2.0-bundled.schema.json +7182 -0
- package/data/frameworks-list.json +219 -0
- package/data/glibc-stdlib.json +117 -0
- package/data/gtfobins-index.json +6296 -0
- package/data/helpers/init.gradle +71 -0
- package/data/jsf-0.82.schema.json +211 -0
- package/data/known-licenses.json +82 -0
- package/data/lic-mapping.json +338 -0
- package/data/license-aliases.json +6624 -0
- package/data/license-db.json +39059 -0
- package/data/license-deprecations.json +302 -0
- package/data/lolbas-index.json +150 -0
- package/data/predictive-audit-allowlist.json +11 -0
- package/data/pypi-pkg-aliases.json +1199 -0
- package/data/python-stdlib.json +308 -0
- package/data/queries-darwin.json +193 -0
- package/data/queries-win.json +257 -0
- package/data/queries.json +268 -0
- package/data/ruby-known-modules.json +281 -0
- package/data/rules/ai-agent-governance.yaml +323 -0
- package/data/rules/ai-bom.yaml +268 -0
- package/data/rules/ai-oversight.yaml +186 -0
- package/data/rules/ai-provenance.yaml +92 -0
- package/data/rules/asar-archives.yaml +150 -0
- package/data/rules/cbom-security.yaml +165 -0
- package/data/rules/chrome-extensions.yaml +248 -0
- package/data/rules/ci-permissions.yaml +802 -0
- package/data/rules/container-risk.yaml +353 -0
- package/data/rules/dependency-sources.yaml +236 -0
- package/data/rules/golem-go.yaml +229 -0
- package/data/rules/hbom-compliance.yaml +325 -0
- package/data/rules/hbom-performance.yaml +307 -0
- package/data/rules/hbom-security.yaml +248 -0
- package/data/rules/host-topology.yaml +165 -0
- package/data/rules/mcp-servers.yaml +388 -0
- package/data/rules/obom-runtime.yaml +1776 -0
- package/data/rules/package-integrity.yaml +364 -0
- package/data/rules/rootfs-hardening.yaml +179 -0
- package/data/rules/vscode-extensions.yaml +237 -0
- package/data/spdx-export.schema.json +6794 -0
- package/data/spdx-license-list.json +7449 -0
- package/data/spdx-licenses.json +759 -0
- package/data/spdx.schema.json +819 -0
- package/data/templates/README.md +3 -0
- package/data/templates/asvs-4.0.3.cdx.json +2943 -0
- package/data/templates/asvs-5.0.cdx.json +3046 -0
- package/data/templates/bsimm-v13.cdx.json +1008 -0
- package/data/templates/masvs-2.0.0.cdx.json +225 -0
- package/data/templates/nist-ssdf-1.1.cdx.json +828 -0
- package/data/templates/pcissc-secure-slc-1.1.cdx.json +1027 -0
- package/data/templates/scvs-1.0.0.cdx.json +813 -0
- package/data/templates/ssaf-DRAFT-2023-11.cdx.json +127 -0
- package/data/vendor-alias.json +41967 -0
- package/data/wrapdb-releases.json +4227 -0
- package/index.cjs +15 -0
- package/lib/audit/index.js +2800 -0
- package/lib/audit/progress.js +114 -0
- package/lib/audit/reporters.js +937 -0
- package/lib/audit/scoring.js +560 -0
- package/lib/audit/targets.js +798 -0
- package/lib/cli/bomAssembly.js +1833 -0
- package/lib/cli/cliOptions.js +513 -0
- package/lib/cli/index.js +2759 -0
- package/lib/cli/jsBom.js +2087 -0
- package/lib/cli/jvmBom.js +1858 -0
- package/lib/cli/managedBom.js +2083 -0
- package/lib/cli/nativeBom.js +2125 -0
- package/lib/core/activity.js +1087 -0
- package/lib/core/env.js +719 -0
- package/lib/core/fs.js +1058 -0
- package/lib/core/httpClient.js +730 -0
- package/lib/core/logger.js +142 -0
- package/lib/core/parallel.js +323 -0
- package/lib/core/paths.js +70 -0
- package/lib/core/projectConfig.js +122 -0
- package/lib/core/propertySanitizer.js +174 -0
- package/lib/core/spdx.js +5 -0
- package/lib/core/state.js +59 -0
- package/lib/core/text.js +207 -0
- package/lib/core/ui.js +876 -0
- package/lib/core/urls.js +84 -0
- package/lib/ecosystems/asarutils.js +1636 -0
- package/lib/ecosystems/bunutils.js +402 -0
- package/lib/ecosystems/caxa.js +77 -0
- package/lib/ecosystems/chromextutils.js +1174 -0
- package/lib/ecosystems/cmakeResolver.js +587 -0
- package/lib/ecosystems/cppEvidence.js +305 -0
- package/lib/ecosystems/denoutils.js +1094 -0
- package/lib/ecosystems/dotnetutils.js +132 -0
- package/lib/ecosystems/ecosystems.js +2772 -0
- package/lib/ecosystems/golem.js +1807 -0
- package/lib/ecosystems/gradleutils.js +1048 -0
- package/lib/ecosystems/jsEvidence.js +317 -0
- package/lib/ecosystems/npmutils.js +586 -0
- package/lib/ecosystems/parsers-bazel.js +875 -0
- package/lib/ecosystems/parsers-dotnet.js +1430 -0
- package/lib/ecosystems/parsers-gleam.js +302 -0
- package/lib/ecosystems/parsers-go.js +818 -0
- package/lib/ecosystems/parsers-js.js +4222 -0
- package/lib/ecosystems/parsers-jvm.js +948 -0
- package/lib/ecosystems/parsers-misc.js +3191 -0
- package/lib/ecosystems/parsers-python.js +2070 -0
- package/lib/ecosystems/parsers-rust.js +1294 -0
- package/lib/ecosystems/parsers-zig.js +861 -0
- package/lib/ecosystems/pep770.js +341 -0
- package/lib/ecosystems/pylockutils.js +427 -0
- package/lib/ecosystems/pythonutils.js +1281 -0
- package/lib/ecosystems/registryProvenance.js +1003 -0
- package/lib/ecosystems/remote/huggingface.js +1343 -0
- package/lib/ecosystems/rubyutils.js +1629 -0
- package/lib/ecosystems/rusi.js +820 -0
- package/lib/ecosystems/sbtutils.js +972 -0
- package/lib/ecosystems/tea.js +607 -0
- package/lib/ecosystems/utils.js +575 -0
- package/lib/ecosystems/zigResolver.js +410 -0
- package/lib/evinser/db.js +145 -0
- package/lib/evinser/evinser.js +2362 -0
- package/lib/evinser/scalasem.js +65 -0
- package/lib/evinser/swiftsem.js +767 -0
- package/lib/helpers/annotationFormatter.js +84 -0
- package/lib/helpers/bomSigner.js +312 -0
- package/lib/helpers/exportUtils.js +160 -0
- package/lib/helpers/remote/dependency-track.js +117 -0
- package/lib/helpers/versutils.js +202 -0
- package/lib/helpers/vsixutils.js +1069 -0
- package/lib/inventory/agentFormulationParser.js +322 -0
- package/lib/inventory/aiCollector.js +2140 -0
- package/lib/inventory/aiInventory.js +414 -0
- package/lib/inventory/aiModelVariants.js +121 -0
- package/lib/inventory/aiOversightCollector.js +661 -0
- package/lib/inventory/aiProvenanceCollector.js +822 -0
- package/lib/inventory/analyzer.js +6089 -0
- package/lib/inventory/analyzerScope.js +807 -0
- package/lib/inventory/astWorker.js +20 -0
- package/lib/inventory/atomUtils.js +1092 -0
- package/lib/inventory/auditCategories.js +192 -0
- package/lib/inventory/bomUtils.js +369 -0
- package/lib/inventory/cacheCommands.js +182 -0
- package/lib/inventory/cacheDir.js +104 -0
- package/lib/inventory/cbomutils.js +590 -0
- package/lib/inventory/cdxrs.js +434 -0
- package/lib/inventory/ciParsers/azurePipelines.js +295 -0
- package/lib/inventory/ciParsers/circleCi.js +286 -0
- package/lib/inventory/ciParsers/common.js +24 -0
- package/lib/inventory/ciParsers/githubActions.js +2434 -0
- package/lib/inventory/ciParsers/gitlabCi.js +213 -0
- package/lib/inventory/ciParsers/jenkins.js +180 -0
- package/lib/inventory/citations.js +234 -0
- package/lib/inventory/communityAiConfigParser.js +756 -0
- package/lib/inventory/containerRisk.js +204 -0
- package/lib/inventory/cryptoAlgorithmFamily.js +258 -0
- package/lib/inventory/deps.js +807 -0
- package/lib/inventory/depsUtils.js +588 -0
- package/lib/inventory/display.js +2128 -0
- package/lib/inventory/dosai.js +601 -0
- package/lib/inventory/dosaiParsers.js +154 -0
- package/lib/inventory/dynamic.js +145 -0
- package/lib/inventory/envcontext.js +1789 -0
- package/lib/inventory/evidenceUtils.js +774 -0
- package/lib/inventory/fetchBatch.js +779 -0
- package/lib/inventory/fetchRate.js +255 -0
- package/lib/inventory/forgeEnricher.js +300 -0
- package/lib/inventory/formulationParsers.js +422 -0
- package/lib/inventory/gtfobins.js +339 -0
- package/lib/inventory/hbom.js +719 -0
- package/lib/inventory/hbomAnalysis.js +310 -0
- package/lib/inventory/hbomLoader.js +35 -0
- package/lib/inventory/hostTopology.js +835 -0
- package/lib/inventory/inventoryStats.js +100 -0
- package/lib/inventory/jsonLike.js +121 -0
- package/lib/inventory/licenseEnhancer.js +918 -0
- package/lib/inventory/lolbas.js +285 -0
- package/lib/inventory/mcp.js +253 -0
- package/lib/inventory/mcpConfigParser.js +683 -0
- package/lib/inventory/mcpDiscovery.js +112 -0
- package/lib/inventory/mcpPinning.js +209 -0
- package/lib/inventory/osPackageResolver.js +493 -0
- package/lib/inventory/osinfo.js +277 -0
- package/lib/inventory/osqueryTransform.js +274 -0
- package/lib/inventory/plugins.js +466 -0
- package/lib/inventory/protobom.js +231 -0
- package/lib/inventory/protobomLoader.js +43 -0
- package/lib/inventory/provenanceUtils.js +224 -0
- package/lib/inventory/purl.js +749 -0
- package/lib/inventory/rustFormulationParser.js +339 -0
- package/lib/inventory/sbomDocument.js +340 -0
- package/lib/inventory/source.js +1488 -0
- package/lib/inventory/spdx.js +361 -0
- package/lib/inventory/spdxExpression.js +512 -0
- package/lib/inventory/spdxUtils.js +107 -0
- package/lib/inventory/table.js +263 -0
- package/lib/inventory/traceRunner.js +439 -0
- package/lib/inventory/unicodeScan.js +147 -0
- package/lib/managers/binary.js +3307 -0
- package/lib/managers/containerutils.js +125 -0
- package/lib/managers/docker.js +2145 -0
- package/lib/managers/dockerConnection.js +162 -0
- package/lib/managers/oci.js +704 -0
- package/lib/managers/piptree.js +267 -0
- package/lib/parsers/cmakeCache.js +199 -0
- package/lib/parsers/gguf.js +492 -0
- package/lib/parsers/gitAiNotes.js +233 -0
- package/lib/parsers/gitmodules.js +239 -0
- package/lib/parsers/htmlExtract.js +610 -0
- package/lib/parsers/huggingfaceManifest.js +551 -0
- package/lib/parsers/huggingfaceUtils.js +506 -0
- package/lib/parsers/iri.js +618 -0
- package/lib/parsers/npmrc.js +99 -0
- package/lib/parsers/ollama.js +101 -0
- package/lib/parsers/xml.js +841 -0
- package/lib/server/openapi.yaml +433 -0
- package/lib/server/server.js +616 -0
- package/lib/stages/postgen/annotator.js +977 -0
- package/lib/stages/postgen/auditBom.js +468 -0
- package/lib/stages/postgen/postgen.js +1239 -0
- package/lib/stages/postgen/ruleEngine.js +731 -0
- package/lib/stages/postgen/sortBom.js +195 -0
- package/lib/stages/postgen/spdxConverter.js +796 -0
- package/lib/stages/postgen/specVersionCompat.js +703 -0
- package/lib/stages/pregen/envAudit.js +388 -0
- package/lib/stages/pregen/pregen.js +637 -0
- package/lib/third-party/README.md +9 -0
- package/lib/third-party/arborist/CHANGELOG.md +1109 -0
- package/lib/third-party/arborist/LICENSE.md +20 -0
- package/lib/third-party/arborist/README.md +315 -0
- package/lib/third-party/arborist/lib/arborist/index.js +258 -0
- package/lib/third-party/arborist/lib/arborist/load-actual.js +605 -0
- package/lib/third-party/arborist/lib/arborist/load-virtual.js +300 -0
- package/lib/third-party/arborist/lib/bin-links.js +120 -0
- package/lib/third-party/arborist/lib/calc-dep-flags.js +130 -0
- package/lib/third-party/arborist/lib/case-insensitive-map.js +51 -0
- package/lib/third-party/arborist/lib/consistent-resolve.js +42 -0
- package/lib/third-party/arborist/lib/debug.js +50 -0
- package/lib/third-party/arborist/lib/dep-valid.js +190 -0
- package/lib/third-party/arborist/lib/edge.js +417 -0
- package/lib/third-party/arborist/lib/from-path.js +36 -0
- package/lib/third-party/arborist/lib/gather-dep-set.js +43 -0
- package/lib/third-party/arborist/lib/index.js +22 -0
- package/lib/third-party/arborist/lib/inventory.js +138 -0
- package/lib/third-party/arborist/lib/link.js +169 -0
- package/lib/third-party/arborist/lib/node.js +1673 -0
- package/lib/third-party/arborist/lib/npm-extension.js +45 -0
- package/lib/third-party/arborist/lib/override-resolves.js +11 -0
- package/lib/third-party/arborist/lib/override-set.js +319 -0
- package/lib/third-party/arborist/lib/package-extensions.js +289 -0
- package/lib/third-party/arborist/lib/printable.js +210 -0
- package/lib/third-party/arborist/lib/proc-log.js +30 -0
- package/lib/third-party/arborist/lib/realpath.js +100 -0
- package/lib/third-party/arborist/lib/relpath.js +4 -0
- package/lib/third-party/arborist/lib/shrinkwrap.js +1291 -0
- package/lib/third-party/arborist/lib/spec-from-lock.js +34 -0
- package/lib/third-party/arborist/lib/tree-check.js +165 -0
- package/lib/third-party/arborist/lib/validate-npm-package-name.js +107 -0
- package/lib/third-party/arborist/lib/version-from-tgz.js +51 -0
- package/lib/third-party/arborist/lib/yarn-lock.js +397 -0
- package/lib/validator/bomValidator.js +985 -0
- package/lib/validator/complianceEngine.js +241 -0
- package/lib/validator/complianceRules.js +1680 -0
- package/lib/validator/generated/runtime.mjs +17 -0
- package/lib/validator/generated/validate-1.6.mjs +21258 -0
- package/lib/validator/generated/validate-1.7.mjs +24803 -0
- package/lib/validator/generated/validate-2.0.mjs +22931 -0
- package/lib/validator/index.js +246 -0
- package/lib/validator/reporters/annotations.js +142 -0
- package/lib/validator/reporters/console.js +160 -0
- package/lib/validator/reporters/index.js +41 -0
- package/lib/validator/reporters/json.js +37 -0
- package/lib/validator/reporters/sarif.js +184 -0
- package/package.json +209 -26
- package/types/bin/audit.d.ts +3 -0
- package/types/bin/audit.d.ts.map +1 -0
- package/types/bin/cdxgen.d.ts +3 -0
- package/types/bin/cdxgen.d.ts.map +1 -0
- package/types/bin/convert.d.ts +3 -0
- package/types/bin/convert.d.ts.map +1 -0
- package/types/bin/evinse.d.ts +3 -0
- package/types/bin/evinse.d.ts.map +1 -0
- package/types/bin/hbom.d.ts +3 -0
- package/types/bin/hbom.d.ts.map +1 -0
- package/types/bin/repl.d.ts +3 -0
- package/types/bin/repl.d.ts.map +1 -0
- package/types/bin/sign.d.ts +3 -0
- package/types/bin/sign.d.ts.map +1 -0
- package/types/bin/tracebom.d.ts +3 -0
- package/types/bin/tracebom.d.ts.map +1 -0
- package/types/bin/validate.d.ts +14 -0
- package/types/bin/validate.d.ts.map +1 -0
- package/types/bin/verify.d.ts +3 -0
- package/types/bin/verify.d.ts.map +1 -0
- package/types/lib/audit/index.d.ts +153 -0
- package/types/lib/audit/index.d.ts.map +1 -0
- package/types/lib/audit/progress.d.ts +31 -0
- package/types/lib/audit/progress.d.ts.map +1 -0
- package/types/lib/audit/reporters.d.ts +62 -0
- package/types/lib/audit/reporters.d.ts.map +1 -0
- package/types/lib/audit/scoring.d.ts +36 -0
- package/types/lib/audit/scoring.d.ts.map +1 -0
- package/types/lib/audit/targets.d.ts +77 -0
- package/types/lib/audit/targets.d.ts.map +1 -0
- package/types/lib/cli/bomAssembly.d.ts +315 -0
- package/types/lib/cli/bomAssembly.d.ts.map +1 -0
- package/types/lib/cli/cliOptions.d.ts +156 -0
- package/types/lib/cli/cliOptions.d.ts.map +1 -0
- package/types/lib/cli/index.d.ts +107 -0
- package/types/lib/cli/index.d.ts.map +1 -0
- package/types/lib/cli/jsBom.d.ts +94 -0
- package/types/lib/cli/jsBom.d.ts.map +1 -0
- package/types/lib/cli/jvmBom.d.ts +54 -0
- package/types/lib/cli/jvmBom.d.ts.map +1 -0
- package/types/lib/cli/managedBom.d.ts +105 -0
- package/types/lib/cli/managedBom.d.ts.map +1 -0
- package/types/lib/cli/nativeBom.d.ts +143 -0
- package/types/lib/cli/nativeBom.d.ts.map +1 -0
- package/types/lib/core/activity.d.ts +178 -0
- package/types/lib/core/activity.d.ts.map +1 -0
- package/types/lib/core/env.d.ts +192 -0
- package/types/lib/core/env.d.ts.map +1 -0
- package/types/lib/core/fs.d.ts +158 -0
- package/types/lib/core/fs.d.ts.map +1 -0
- package/types/lib/core/httpClient.d.ts +149 -0
- package/types/lib/core/httpClient.d.ts.map +1 -0
- package/types/lib/core/logger.d.ts +28 -0
- package/types/lib/core/logger.d.ts.map +1 -0
- package/types/lib/core/parallel.d.ts +95 -0
- package/types/lib/core/parallel.d.ts.map +1 -0
- package/types/lib/core/paths.d.ts +36 -0
- package/types/lib/core/paths.d.ts.map +1 -0
- package/types/lib/core/projectConfig.d.ts +23 -0
- package/types/lib/core/projectConfig.d.ts.map +1 -0
- package/types/lib/core/propertySanitizer.d.ts +23 -0
- package/types/lib/core/propertySanitizer.d.ts.map +1 -0
- package/types/lib/core/spdx.d.ts +5 -0
- package/types/lib/core/spdx.d.ts.map +1 -0
- package/types/lib/core/state.d.ts +20 -0
- package/types/lib/core/state.d.ts.map +1 -0
- package/types/lib/core/text.d.ts +78 -0
- package/types/lib/core/text.d.ts.map +1 -0
- package/types/lib/core/ui.d.ts +87 -0
- package/types/lib/core/ui.d.ts.map +1 -0
- package/types/lib/core/urls.d.ts +43 -0
- package/types/lib/core/urls.d.ts.map +1 -0
- package/types/lib/ecosystems/asarutils.d.ts +71 -0
- package/types/lib/ecosystems/asarutils.d.ts.map +1 -0
- package/types/lib/ecosystems/bunutils.d.ts +38 -0
- package/types/lib/ecosystems/bunutils.d.ts.map +1 -0
- package/types/lib/ecosystems/caxa.d.ts +8 -0
- package/types/lib/ecosystems/caxa.d.ts.map +1 -0
- package/types/lib/ecosystems/chromextutils.d.ts +97 -0
- package/types/lib/ecosystems/chromextutils.d.ts.map +1 -0
- package/types/lib/ecosystems/cmakeResolver.d.ts +176 -0
- package/types/lib/ecosystems/cmakeResolver.d.ts.map +1 -0
- package/types/lib/ecosystems/cppEvidence.d.ts +35 -0
- package/types/lib/ecosystems/cppEvidence.d.ts.map +1 -0
- package/types/lib/ecosystems/denoutils.d.ts +76 -0
- package/types/lib/ecosystems/denoutils.d.ts.map +1 -0
- package/types/lib/ecosystems/dotnetutils.d.ts +45 -0
- package/types/lib/ecosystems/dotnetutils.d.ts.map +1 -0
- package/types/lib/ecosystems/ecosystems.d.ts +279 -0
- package/types/lib/ecosystems/ecosystems.d.ts.map +1 -0
- package/types/lib/ecosystems/golem.d.ts +60 -0
- package/types/lib/ecosystems/golem.d.ts.map +1 -0
- package/types/lib/ecosystems/gradleutils.d.ts +139 -0
- package/types/lib/ecosystems/gradleutils.d.ts.map +1 -0
- package/types/lib/ecosystems/jsEvidence.d.ts +17 -0
- package/types/lib/ecosystems/jsEvidence.d.ts.map +1 -0
- package/types/lib/ecosystems/npmutils.d.ts +183 -0
- package/types/lib/ecosystems/npmutils.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-bazel.d.ts +36 -0
- package/types/lib/ecosystems/parsers-bazel.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts +116 -0
- package/types/lib/ecosystems/parsers-dotnet.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-gleam.d.ts +33 -0
- package/types/lib/ecosystems/parsers-gleam.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-go.d.ts +92 -0
- package/types/lib/ecosystems/parsers-go.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-js.d.ts +242 -0
- package/types/lib/ecosystems/parsers-js.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-jvm.d.ts +100 -0
- package/types/lib/ecosystems/parsers-jvm.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-misc.d.ts +450 -0
- package/types/lib/ecosystems/parsers-misc.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-python.d.ts +145 -0
- package/types/lib/ecosystems/parsers-python.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-rust.d.ts +56 -0
- package/types/lib/ecosystems/parsers-rust.d.ts.map +1 -0
- package/types/lib/ecosystems/parsers-zig.d.ts +83 -0
- package/types/lib/ecosystems/parsers-zig.d.ts.map +1 -0
- package/types/lib/ecosystems/pep770.d.ts +38 -0
- package/types/lib/ecosystems/pep770.d.ts.map +1 -0
- package/types/lib/ecosystems/pylockutils.d.ts +68 -0
- package/types/lib/ecosystems/pylockutils.d.ts.map +1 -0
- package/types/lib/ecosystems/pythonutils.d.ts +70 -0
- package/types/lib/ecosystems/pythonutils.d.ts.map +1 -0
- package/types/lib/ecosystems/registryProvenance.d.ts +26 -0
- package/types/lib/ecosystems/registryProvenance.d.ts.map +1 -0
- package/types/lib/ecosystems/remote/huggingface.d.ts +31 -0
- package/types/lib/ecosystems/remote/huggingface.d.ts.map +1 -0
- package/types/lib/ecosystems/rubyutils.d.ts +182 -0
- package/types/lib/ecosystems/rubyutils.d.ts.map +1 -0
- package/types/lib/ecosystems/rusi.d.ts +40 -0
- package/types/lib/ecosystems/rusi.d.ts.map +1 -0
- package/types/lib/ecosystems/sbtutils.d.ts +179 -0
- package/types/lib/ecosystems/sbtutils.d.ts.map +1 -0
- package/types/lib/ecosystems/tea.d.ts +180 -0
- package/types/lib/ecosystems/tea.d.ts.map +1 -0
- package/types/lib/ecosystems/utils.d.ts +41 -0
- package/types/lib/ecosystems/utils.d.ts.map +1 -0
- package/types/lib/ecosystems/zigResolver.d.ts +70 -0
- package/types/lib/ecosystems/zigResolver.d.ts.map +1 -0
- package/types/lib/evinser/db.d.ts +17 -0
- package/types/lib/evinser/db.d.ts.map +1 -0
- package/types/lib/evinser/evinser.d.ts +354 -0
- package/types/lib/evinser/evinser.d.ts.map +1 -0
- package/types/lib/evinser/scalasem.d.ts +15 -0
- package/types/lib/evinser/scalasem.d.ts.map +1 -0
- package/types/lib/evinser/swiftsem.d.ts +103 -0
- package/types/lib/evinser/swiftsem.d.ts.map +1 -0
- package/types/lib/helpers/annotationFormatter.d.ts +23 -0
- package/types/lib/helpers/annotationFormatter.d.ts.map +1 -0
- package/types/lib/helpers/bomSigner.d.ts +28 -0
- package/types/lib/helpers/bomSigner.d.ts.map +1 -0
- package/types/lib/helpers/exportUtils.d.ts +52 -0
- package/types/lib/helpers/exportUtils.d.ts.map +1 -0
- package/types/lib/helpers/remote/dependency-track.d.ts +23 -0
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -0
- package/types/lib/helpers/versutils.d.ts +8 -0
- package/types/lib/helpers/versutils.d.ts.map +1 -0
- package/types/lib/helpers/vsixutils.d.ts +130 -0
- package/types/lib/helpers/vsixutils.d.ts.map +1 -0
- package/types/lib/inventory/agentFormulationParser.d.ts +21 -0
- package/types/lib/inventory/agentFormulationParser.d.ts.map +1 -0
- package/types/lib/inventory/aiCollector.d.ts +61 -0
- package/types/lib/inventory/aiCollector.d.ts.map +1 -0
- package/types/lib/inventory/aiInventory.d.ts +103 -0
- package/types/lib/inventory/aiInventory.d.ts.map +1 -0
- package/types/lib/inventory/aiModelVariants.d.ts +31 -0
- package/types/lib/inventory/aiModelVariants.d.ts.map +1 -0
- package/types/lib/inventory/aiOversightCollector.d.ts +28 -0
- package/types/lib/inventory/aiOversightCollector.d.ts.map +1 -0
- package/types/lib/inventory/aiProvenanceCollector.d.ts +13 -0
- package/types/lib/inventory/aiProvenanceCollector.d.ts.map +1 -0
- package/types/lib/inventory/analyzer.d.ts +157 -0
- package/types/lib/inventory/analyzer.d.ts.map +1 -0
- package/types/lib/inventory/analyzerScope.d.ts +106 -0
- package/types/lib/inventory/analyzerScope.d.ts.map +1 -0
- package/types/lib/inventory/astWorker.d.ts +9 -0
- package/types/lib/inventory/astWorker.d.ts.map +1 -0
- package/types/lib/inventory/atomUtils.d.ts +159 -0
- package/types/lib/inventory/atomUtils.d.ts.map +1 -0
- package/types/lib/inventory/auditCategories.d.ts +80 -0
- package/types/lib/inventory/auditCategories.d.ts.map +1 -0
- package/types/lib/inventory/bomUtils.d.ts +145 -0
- package/types/lib/inventory/bomUtils.d.ts.map +1 -0
- package/types/lib/inventory/cacheCommands.d.ts +28 -0
- package/types/lib/inventory/cacheCommands.d.ts.map +1 -0
- package/types/lib/inventory/cacheDir.d.ts +55 -0
- package/types/lib/inventory/cacheDir.d.ts.map +1 -0
- package/types/lib/inventory/cbomutils.d.ts +37 -0
- package/types/lib/inventory/cbomutils.d.ts.map +1 -0
- package/types/lib/inventory/cdxrs.d.ts +90 -0
- package/types/lib/inventory/cdxrs.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/azurePipelines.d.ts +27 -0
- package/types/lib/inventory/ciParsers/azurePipelines.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/circleCi.d.ts +27 -0
- package/types/lib/inventory/ciParsers/circleCi.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/common.d.ts +11 -0
- package/types/lib/inventory/ciParsers/common.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/githubActions.d.ts +38 -0
- package/types/lib/inventory/ciParsers/githubActions.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/gitlabCi.d.ts +26 -0
- package/types/lib/inventory/ciParsers/gitlabCi.d.ts.map +1 -0
- package/types/lib/inventory/ciParsers/jenkins.d.ts +26 -0
- package/types/lib/inventory/ciParsers/jenkins.d.ts.map +1 -0
- package/types/lib/inventory/citations.d.ts +90 -0
- package/types/lib/inventory/citations.d.ts.map +1 -0
- package/types/lib/inventory/communityAiConfigParser.d.ts +14 -0
- package/types/lib/inventory/communityAiConfigParser.d.ts.map +1 -0
- package/types/lib/inventory/containerRisk.d.ts +20 -0
- package/types/lib/inventory/containerRisk.d.ts.map +1 -0
- package/types/lib/inventory/cryptoAlgorithmFamily.d.ts +37 -0
- package/types/lib/inventory/cryptoAlgorithmFamily.d.ts.map +1 -0
- package/types/lib/inventory/deps.d.ts +140 -0
- package/types/lib/inventory/deps.d.ts.map +1 -0
- package/types/lib/inventory/depsUtils.d.ts +74 -0
- package/types/lib/inventory/depsUtils.d.ts.map +1 -0
- package/types/lib/inventory/display.d.ts +227 -0
- package/types/lib/inventory/display.d.ts.map +1 -0
- package/types/lib/inventory/dosai.d.ts +130 -0
- package/types/lib/inventory/dosai.d.ts.map +1 -0
- package/types/lib/inventory/dosaiParsers.d.ts +59 -0
- package/types/lib/inventory/dosaiParsers.d.ts.map +1 -0
- package/types/lib/inventory/dynamic.d.ts +25 -0
- package/types/lib/inventory/dynamic.d.ts.map +1 -0
- package/types/lib/inventory/envcontext.d.ts +377 -0
- package/types/lib/inventory/envcontext.d.ts.map +1 -0
- package/types/lib/inventory/evidenceUtils.d.ts +74 -0
- package/types/lib/inventory/evidenceUtils.d.ts.map +1 -0
- package/types/lib/inventory/fetchBatch.d.ts +127 -0
- package/types/lib/inventory/fetchBatch.d.ts.map +1 -0
- package/types/lib/inventory/fetchRate.d.ts +118 -0
- package/types/lib/inventory/fetchRate.d.ts.map +1 -0
- package/types/lib/inventory/forgeEnricher.d.ts +31 -0
- package/types/lib/inventory/forgeEnricher.d.ts.map +1 -0
- package/types/lib/inventory/formulationParsers.d.ts +50 -0
- package/types/lib/inventory/formulationParsers.d.ts.map +1 -0
- package/types/lib/inventory/gtfobins.d.ts +27 -0
- package/types/lib/inventory/gtfobins.d.ts.map +1 -0
- package/types/lib/inventory/hbom.d.ts +58 -0
- package/types/lib/inventory/hbom.d.ts.map +1 -0
- package/types/lib/inventory/hbomAnalysis.d.ts +56 -0
- package/types/lib/inventory/hbomAnalysis.d.ts.map +1 -0
- package/types/lib/inventory/hbomLoader.d.ts +7 -0
- package/types/lib/inventory/hbomLoader.d.ts.map +1 -0
- package/types/lib/inventory/hostTopology.d.ts +47 -0
- package/types/lib/inventory/hostTopology.d.ts.map +1 -0
- package/types/lib/inventory/inventoryStats.d.ts +42 -0
- package/types/lib/inventory/inventoryStats.d.ts.map +1 -0
- package/types/lib/inventory/jsonLike.d.ts +23 -0
- package/types/lib/inventory/jsonLike.d.ts.map +1 -0
- package/types/lib/inventory/licenseEnhancer.d.ts +70 -0
- package/types/lib/inventory/licenseEnhancer.d.ts.map +1 -0
- package/types/lib/inventory/lolbas.d.ts +16 -0
- package/types/lib/inventory/lolbas.d.ts.map +1 -0
- package/types/lib/inventory/mcp.d.ts +29 -0
- package/types/lib/inventory/mcp.d.ts.map +1 -0
- package/types/lib/inventory/mcpConfigParser.d.ts +20 -0
- package/types/lib/inventory/mcpConfigParser.d.ts.map +1 -0
- package/types/lib/inventory/mcpDiscovery.d.ts +33 -0
- package/types/lib/inventory/mcpDiscovery.d.ts.map +1 -0
- package/types/lib/inventory/mcpPinning.d.ts +11 -0
- package/types/lib/inventory/mcpPinning.d.ts.map +1 -0
- package/types/lib/inventory/osPackageResolver.d.ts +49 -0
- package/types/lib/inventory/osPackageResolver.d.ts.map +1 -0
- package/types/lib/inventory/osinfo.d.ts +120 -0
- package/types/lib/inventory/osinfo.d.ts.map +1 -0
- package/types/lib/inventory/osqueryTransform.d.ts +84 -0
- package/types/lib/inventory/osqueryTransform.d.ts.map +1 -0
- package/types/lib/inventory/plugins.d.ts +58 -0
- package/types/lib/inventory/plugins.d.ts.map +1 -0
- package/types/lib/inventory/protobom.d.ts +71 -0
- package/types/lib/inventory/protobom.d.ts.map +1 -0
- package/types/lib/inventory/protobomLoader.d.ts +17 -0
- package/types/lib/inventory/protobomLoader.d.ts.map +1 -0
- package/types/lib/inventory/provenanceUtils.d.ts +98 -0
- package/types/lib/inventory/provenanceUtils.d.ts.map +1 -0
- package/types/lib/inventory/purl.d.ts +313 -0
- package/types/lib/inventory/purl.d.ts.map +1 -0
- package/types/lib/inventory/rustFormulationParser.d.ts +17 -0
- package/types/lib/inventory/rustFormulationParser.d.ts.map +1 -0
- package/types/lib/inventory/sbomDocument.d.ts +59 -0
- package/types/lib/inventory/sbomDocument.d.ts.map +1 -0
- package/types/lib/inventory/source.d.ts +163 -0
- package/types/lib/inventory/source.d.ts.map +1 -0
- package/types/lib/inventory/spdx.d.ts +66 -0
- package/types/lib/inventory/spdx.d.ts.map +1 -0
- package/types/lib/inventory/spdxExpression.d.ts +58 -0
- package/types/lib/inventory/spdxExpression.d.ts.map +1 -0
- package/types/lib/inventory/spdxUtils.d.ts +12 -0
- package/types/lib/inventory/spdxUtils.d.ts.map +1 -0
- package/types/lib/inventory/table.d.ts +19 -0
- package/types/lib/inventory/table.d.ts.map +1 -0
- package/types/lib/inventory/traceRunner.d.ts +80 -0
- package/types/lib/inventory/traceRunner.d.ts.map +1 -0
- package/types/lib/inventory/unicodeScan.d.ts +46 -0
- package/types/lib/inventory/unicodeScan.d.ts.map +1 -0
- package/types/lib/managers/binary.d.ts +76 -0
- package/types/lib/managers/binary.d.ts.map +1 -0
- package/types/lib/managers/containerutils.d.ts +30 -0
- package/types/lib/managers/containerutils.d.ts.map +1 -0
- package/types/lib/managers/docker.d.ts +157 -0
- package/types/lib/managers/docker.d.ts.map +1 -0
- package/types/lib/managers/dockerConnection.d.ts +42 -0
- package/types/lib/managers/dockerConnection.d.ts.map +1 -0
- package/types/lib/managers/oci.d.ts +21 -0
- package/types/lib/managers/oci.d.ts.map +1 -0
- package/types/lib/managers/piptree.d.ts +13 -0
- package/types/lib/managers/piptree.d.ts.map +1 -0
- package/types/lib/parsers/cmakeCache.d.ts +70 -0
- package/types/lib/parsers/cmakeCache.d.ts.map +1 -0
- package/types/lib/parsers/gguf.d.ts +39 -0
- package/types/lib/parsers/gguf.d.ts.map +1 -0
- package/types/lib/parsers/gitAiNotes.d.ts +15 -0
- package/types/lib/parsers/gitAiNotes.d.ts.map +1 -0
- package/types/lib/parsers/gitmodules.d.ts +88 -0
- package/types/lib/parsers/gitmodules.d.ts.map +1 -0
- package/types/lib/parsers/htmlExtract.d.ts +34 -0
- package/types/lib/parsers/htmlExtract.d.ts.map +1 -0
- package/types/lib/parsers/huggingfaceManifest.d.ts +153 -0
- package/types/lib/parsers/huggingfaceManifest.d.ts.map +1 -0
- package/types/lib/parsers/huggingfaceUtils.d.ts +155 -0
- package/types/lib/parsers/huggingfaceUtils.d.ts.map +1 -0
- package/types/lib/parsers/iri.d.ts +68 -0
- package/types/lib/parsers/iri.d.ts.map +1 -0
- package/types/lib/parsers/npmrc.d.ts +33 -0
- package/types/lib/parsers/npmrc.d.ts.map +1 -0
- package/types/lib/parsers/ollama.d.ts +22 -0
- package/types/lib/parsers/ollama.d.ts.map +1 -0
- package/types/lib/parsers/xml.d.ts +47 -0
- package/types/lib/parsers/xml.d.ts.map +1 -0
- package/types/lib/server/server.d.ts +51 -0
- package/types/lib/server/server.d.ts.map +1 -0
- package/types/lib/stages/postgen/annotator.d.ts +36 -0
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -0
- package/types/lib/stages/postgen/auditBom.d.ts +92 -0
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -0
- package/types/lib/stages/postgen/postgen.d.ts +59 -0
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -0
- package/types/lib/stages/postgen/ruleEngine.d.ts +18 -0
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -0
- package/types/lib/stages/postgen/sortBom.d.ts +34 -0
- package/types/lib/stages/postgen/sortBom.d.ts.map +1 -0
- package/types/lib/stages/postgen/spdxConverter.d.ts +11 -0
- package/types/lib/stages/postgen/spdxConverter.d.ts.map +1 -0
- package/types/lib/stages/postgen/specVersionCompat.d.ts +71 -0
- package/types/lib/stages/postgen/specVersionCompat.d.ts.map +1 -0
- package/types/lib/stages/pregen/envAudit.d.ts +14 -0
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -0
- package/types/lib/stages/pregen/pregen.d.ts +59 -0
- package/types/lib/stages/pregen/pregen.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/index.d.ts +47 -0
- package/types/lib/third-party/arborist/lib/arborist/index.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts +4 -0
- package/types/lib/third-party/arborist/lib/arborist/load-actual.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts +4 -0
- package/types/lib/third-party/arborist/lib/arborist/load-virtual.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/bin-links.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/bin-links.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/calc-dep-flags.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts +9 -0
- package/types/lib/third-party/arborist/lib/case-insensitive-map.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/consistent-resolve.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/debug.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/debug.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/dep-valid.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/dep-valid.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/edge.d.ts +46 -0
- package/types/lib/third-party/arborist/lib/edge.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/from-path.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/from-path.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/gather-dep-set.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/index.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/index.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/inventory.d.ts +14 -0
- package/types/lib/third-party/arborist/lib/inventory.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/link.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/link.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/node.d.ts +112 -0
- package/types/lib/third-party/arborist/lib/node.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/npm-extension.d.ts +18 -0
- package/types/lib/third-party/arborist/lib/npm-extension.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/override-resolves.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/override-resolves.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/override-set.d.ts +27 -0
- package/types/lib/third-party/arborist/lib/override-set.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/package-extensions.d.ts +36 -0
- package/types/lib/third-party/arborist/lib/package-extensions.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/printable.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/printable.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/proc-log.d.ts +20 -0
- package/types/lib/third-party/arborist/lib/proc-log.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/realpath.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/realpath.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/relpath.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/relpath.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts +54 -0
- package/types/lib/third-party/arborist/lib/shrinkwrap.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/spec-from-lock.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/tree-check.d.ts +3 -0
- package/types/lib/third-party/arborist/lib/tree-check.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts +13 -0
- package/types/lib/third-party/arborist/lib/validate-npm-package-name.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts +6 -0
- package/types/lib/third-party/arborist/lib/version-from-tgz.d.ts.map +1 -0
- package/types/lib/third-party/arborist/lib/yarn-lock.d.ts +35 -0
- package/types/lib/third-party/arborist/lib/yarn-lock.d.ts.map +1 -0
- package/types/lib/validator/bomValidator.d.ts +40 -0
- package/types/lib/validator/bomValidator.d.ts.map +1 -0
- package/types/lib/validator/complianceEngine.d.ts +72 -0
- package/types/lib/validator/complianceEngine.d.ts.map +1 -0
- package/types/lib/validator/complianceRules.d.ts +61 -0
- package/types/lib/validator/complianceRules.d.ts.map +1 -0
- package/types/lib/validator/index.d.ts +101 -0
- package/types/lib/validator/index.d.ts.map +1 -0
- package/types/lib/validator/reporters/annotations.d.ts +37 -0
- package/types/lib/validator/reporters/annotations.d.ts.map +1 -0
- package/types/lib/validator/reporters/console.d.ts +34 -0
- package/types/lib/validator/reporters/console.d.ts.map +1 -0
- package/types/lib/validator/reporters/index.d.ts +30 -0
- package/types/lib/validator/reporters/index.d.ts.map +1 -0
- package/types/lib/validator/reporters/json.d.ts +11 -0
- package/types/lib/validator/reporters/json.d.ts.map +1 -0
- package/types/lib/validator/reporters/sarif.d.ts +22 -0
- package/types/lib/validator/reporters/sarif.d.ts.map +1 -0
- package/mod.d.ts +0 -7
- package/mod.js +0 -22
|
@@ -0,0 +1,268 @@
|
|
|
1
|
+
- id: AIG-001
|
|
2
|
+
name: "Prompt config file ships in a build or post-build BOM"
|
|
3
|
+
description: "Prompt and model-routing config files included in distributable BOMs deserve governance review because they can silently alter downstream AI behavior, provider selection, and policy posture."
|
|
4
|
+
severity: medium
|
|
5
|
+
category: ai-governance
|
|
6
|
+
dry-run-support: full
|
|
7
|
+
standards:
|
|
8
|
+
owasp-ai-top-10:
|
|
9
|
+
- "LLM08: Excessive Agency"
|
|
10
|
+
- "LLM09: Overreliance"
|
|
11
|
+
- "LLM06:2025 Excessive Agency"
|
|
12
|
+
eu-ai-act:
|
|
13
|
+
- "Technical documentation and traceability"
|
|
14
|
+
- "Transparency and instructions for use"
|
|
15
|
+
nist-ai-rmf:
|
|
16
|
+
- "Govern"
|
|
17
|
+
- "Map"
|
|
18
|
+
condition: |
|
|
19
|
+
$count(metadata.lifecycles[phase = 'build' or phase = 'post-build']) > 0
|
|
20
|
+
? components[
|
|
21
|
+
$prop($, 'cdx:file:kind') = 'prompt-config-file'
|
|
22
|
+
]
|
|
23
|
+
: []
|
|
24
|
+
location: |
|
|
25
|
+
{
|
|
26
|
+
"bomRef": $."bom-ref"
|
|
27
|
+
}
|
|
28
|
+
message: "Prompt or model-routing file '{{ name }}' is included in a build/post-build BOM"
|
|
29
|
+
mitigation: "Review shipped prompt/config files explicitly, keep model-routing decisions versioned, and exclude them from release BOMs when they are only development-time inputs."
|
|
30
|
+
evidence: |
|
|
31
|
+
{
|
|
32
|
+
"fileKind": $prop($, 'cdx:file:kind'),
|
|
33
|
+
"source": $prop($, 'cdx:ai:source')
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- id: AIG-002
|
|
37
|
+
name: "AI inference service lacks explicit model selection"
|
|
38
|
+
description: "Source-discovered AI services without an explicit model identifier make governance, reproducibility, and downstream policy gating harder."
|
|
39
|
+
severity: medium
|
|
40
|
+
category: ai-governance
|
|
41
|
+
dry-run-support: full
|
|
42
|
+
standards:
|
|
43
|
+
owasp-ai-top-10:
|
|
44
|
+
- "LLM09: Overreliance"
|
|
45
|
+
eu-ai-act:
|
|
46
|
+
- "Technical documentation and traceability"
|
|
47
|
+
- "Human oversight"
|
|
48
|
+
nist-ai-rmf:
|
|
49
|
+
- "Govern"
|
|
50
|
+
- "Manage"
|
|
51
|
+
condition: |
|
|
52
|
+
$auditServices($)[
|
|
53
|
+
$prop($, 'cdx:ai:kind') = 'inference-service'
|
|
54
|
+
and $prop($, 'cdx:ai:modelSelection') = 'implicit'
|
|
55
|
+
]
|
|
56
|
+
location: |
|
|
57
|
+
{
|
|
58
|
+
"bomRef": $."bom-ref",
|
|
59
|
+
"purl": endpoints[0]
|
|
60
|
+
}
|
|
61
|
+
message: "AI inference service '{{ name }}' is used without an explicit model identifier"
|
|
62
|
+
mitigation: "Declare the exact model ID in code or configuration so routing decisions can be reviewed, tested, and governed consistently."
|
|
63
|
+
evidence: |
|
|
64
|
+
{
|
|
65
|
+
"provider": $prop($, 'cdx:ai:provider'),
|
|
66
|
+
"deployment": $prop($, 'cdx:ai:deployment'),
|
|
67
|
+
"modelCount": $prop($, 'cdx:ai:modelCount'),
|
|
68
|
+
"source": $prop($, 'cdx:ai:source')
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
- id: AIS-001
|
|
72
|
+
name: "AI inference service uses an insecure remote HTTP endpoint"
|
|
73
|
+
description: "Remote AI inference endpoints should use HTTPS so prompts, tokens, and model responses are not exposed to passive interception or tampering."
|
|
74
|
+
severity: high
|
|
75
|
+
category: ai-security
|
|
76
|
+
dry-run-support: full
|
|
77
|
+
attack:
|
|
78
|
+
tactics: [TA0001, TA0009]
|
|
79
|
+
techniques: [T1190, T1557]
|
|
80
|
+
standards:
|
|
81
|
+
owasp-ai-top-10:
|
|
82
|
+
- "LLM07: Insecure Plugin Design"
|
|
83
|
+
- "LLM05: Supply Chain Vulnerabilities"
|
|
84
|
+
- "LLM03:2025 Supply Chain"
|
|
85
|
+
eu-ai-act:
|
|
86
|
+
- "Accuracy, robustness and cybersecurity"
|
|
87
|
+
- "Technical documentation and traceability"
|
|
88
|
+
eu-cra:
|
|
89
|
+
- "Secure by default network exposure"
|
|
90
|
+
- "Technical documentation for software components"
|
|
91
|
+
nist-ai-rmf:
|
|
92
|
+
- "Manage"
|
|
93
|
+
condition: |
|
|
94
|
+
$auditServices($)[
|
|
95
|
+
$prop($, 'cdx:ai:kind') = 'inference-service'
|
|
96
|
+
and $prop($, 'cdx:ai:deployment') = 'remote'
|
|
97
|
+
and $prop($, 'cdx:ai:transportSecurity') = 'insecure-http'
|
|
98
|
+
]
|
|
99
|
+
location: |
|
|
100
|
+
{
|
|
101
|
+
"bomRef": $."bom-ref",
|
|
102
|
+
"purl": endpoints[0]
|
|
103
|
+
}
|
|
104
|
+
message: "AI inference service '{{ name }}' uses insecure remote transport '{{ endpoints[0] }}'"
|
|
105
|
+
mitigation: "Require HTTPS/TLS for remote AI endpoints and keep any development-only HTTP endpoints isolated to local-only environments."
|
|
106
|
+
evidence: |
|
|
107
|
+
{
|
|
108
|
+
"provider": $prop($, 'cdx:ai:provider'),
|
|
109
|
+
"deployment": $prop($, 'cdx:ai:deployment'),
|
|
110
|
+
"transportSecurity": $prop($, 'cdx:ai:transportSecurity')
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
- id: AIG-003
|
|
114
|
+
name: "AI model is a derived or modified variant"
|
|
115
|
+
description: "Fine-tuned, distilled, merged, quantized, unlocked, or otherwise modified models deserve explicit review because their behavior and deployment profile can differ materially from the upstream base model."
|
|
116
|
+
severity: medium
|
|
117
|
+
category: ai-governance
|
|
118
|
+
dry-run-support: full
|
|
119
|
+
standards:
|
|
120
|
+
owasp-ai-top-10:
|
|
121
|
+
- "LLM05: Supply Chain Vulnerabilities"
|
|
122
|
+
- "LLM03:2025 Supply Chain"
|
|
123
|
+
- "LLM09: Overreliance"
|
|
124
|
+
eu-ai-act:
|
|
125
|
+
- "Technical documentation and traceability"
|
|
126
|
+
- "Transparency and instructions for use"
|
|
127
|
+
nist-ai-rmf:
|
|
128
|
+
- "Govern"
|
|
129
|
+
- "Map"
|
|
130
|
+
condition: |
|
|
131
|
+
components[
|
|
132
|
+
type = 'machine-learning-model'
|
|
133
|
+
and $count(properties[
|
|
134
|
+
name = 'cdx:ai:variant'
|
|
135
|
+
and (
|
|
136
|
+
value = 'fine-tuned'
|
|
137
|
+
or value = 'distilled'
|
|
138
|
+
or value = 'merged'
|
|
139
|
+
or value = 'adapter'
|
|
140
|
+
or value = 'quantized'
|
|
141
|
+
or value = 'unlocked'
|
|
142
|
+
or value = 'abliterated'
|
|
143
|
+
)
|
|
144
|
+
]) > 0
|
|
145
|
+
]
|
|
146
|
+
location: |
|
|
147
|
+
{
|
|
148
|
+
"bomRef": $."bom-ref"
|
|
149
|
+
}
|
|
150
|
+
message: "AI model '{{ name }}' is marked as a modified variant"
|
|
151
|
+
mitigation: "Review how the model was adapted, quantized, or otherwise modified; record the upstream source model and confirm the derived artifact still meets governance, safety, and performance expectations."
|
|
152
|
+
evidence: |
|
|
153
|
+
{
|
|
154
|
+
"provider": $prop($, 'cdx:ai:provider'),
|
|
155
|
+
"source": $prop($, 'cdx:ai:source'),
|
|
156
|
+
"pedigreeNotes": pedigree.notes
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
- id: AIS-002
|
|
160
|
+
name: "AI model appears unlocked or abliterated"
|
|
161
|
+
description: "Unlocked or abliterated models often indicate safety controls were weakened or removed, increasing misuse and policy-bypass risk."
|
|
162
|
+
severity: high
|
|
163
|
+
category: ai-security
|
|
164
|
+
dry-run-support: full
|
|
165
|
+
attack:
|
|
166
|
+
tactics: [TA0001, TA0005]
|
|
167
|
+
techniques: [T1190, T1552]
|
|
168
|
+
standards:
|
|
169
|
+
owasp-ai-top-10:
|
|
170
|
+
- "LLM06:2025 Excessive Agency"
|
|
171
|
+
- "LLM09: Overreliance"
|
|
172
|
+
eu-ai-act:
|
|
173
|
+
- "Accuracy, robustness and cybersecurity"
|
|
174
|
+
- "Technical documentation and traceability"
|
|
175
|
+
nist-ai-rmf:
|
|
176
|
+
- "Manage"
|
|
177
|
+
- "Govern"
|
|
178
|
+
condition: |
|
|
179
|
+
components[
|
|
180
|
+
type = 'machine-learning-model'
|
|
181
|
+
and $count(properties[
|
|
182
|
+
name = 'cdx:ai:variant'
|
|
183
|
+
and (value = 'unlocked' or value = 'abliterated')
|
|
184
|
+
]) > 0
|
|
185
|
+
]
|
|
186
|
+
location: |
|
|
187
|
+
{
|
|
188
|
+
"bomRef": $."bom-ref"
|
|
189
|
+
}
|
|
190
|
+
message: "AI model '{{ name }}' appears unlocked or abliterated"
|
|
191
|
+
mitigation: "Treat unlocked or abliterated models as high-risk artifacts, review intended use carefully, and add deployment guardrails before distribution."
|
|
192
|
+
evidence: |
|
|
193
|
+
{
|
|
194
|
+
"provider": $prop($, 'cdx:ai:provider'),
|
|
195
|
+
"source": $prop($, 'cdx:ai:source'),
|
|
196
|
+
"pedigreeNotes": pedigree.notes
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
- id: AIP-001
|
|
200
|
+
name: "Local AI model advertises a very large context window"
|
|
201
|
+
description: "Large local context windows can increase memory pressure, latency, and review cost for self-hosted AI runtimes."
|
|
202
|
+
severity: medium
|
|
203
|
+
category: ai-performance
|
|
204
|
+
dry-run-support: full
|
|
205
|
+
standards:
|
|
206
|
+
eu-ai-act:
|
|
207
|
+
- "Performance and resource limitations should be documented"
|
|
208
|
+
- "Technical documentation and traceability"
|
|
209
|
+
nist-ai-rmf:
|
|
210
|
+
- "Measure"
|
|
211
|
+
- "Manage"
|
|
212
|
+
condition: |
|
|
213
|
+
components[
|
|
214
|
+
type = 'machine-learning-model'
|
|
215
|
+
and (
|
|
216
|
+
$contains($nullSafeProp($, 'cdx:ai:runtime'), 'ollama')
|
|
217
|
+
or $contains($nullSafeProp($, 'cdx:ai:runtime'), 'llama.cpp')
|
|
218
|
+
)
|
|
219
|
+
and $number($nullSafeProp($, 'cdx:ai:contextWindow')) >= 131072
|
|
220
|
+
]
|
|
221
|
+
location: |
|
|
222
|
+
{
|
|
223
|
+
"bomRef": $."bom-ref"
|
|
224
|
+
}
|
|
225
|
+
message: "Local AI model '{{ name }}' advertises a large context window of {{ $prop($, 'cdx:ai:contextWindow') }} tokens"
|
|
226
|
+
mitigation: "Validate that the target environment has enough memory and latency budget for the configured context window, or choose a smaller context budget."
|
|
227
|
+
evidence: |
|
|
228
|
+
{
|
|
229
|
+
"runtime": $prop($, 'cdx:ai:runtime'),
|
|
230
|
+
"contextWindow": $prop($, 'cdx:ai:contextWindow'),
|
|
231
|
+
"artifactFormat": $prop($, 'cdx:ai:artifactFormat')
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
- id: AIP-002
|
|
235
|
+
name: "Large local AI model lacks quantization metadata"
|
|
236
|
+
description: "Large locally hosted models without quantization metadata are harder to capacity-plan and can hide unnecessary CPU, RAM, or GPU pressure."
|
|
237
|
+
severity: medium
|
|
238
|
+
category: ai-performance
|
|
239
|
+
dry-run-support: full
|
|
240
|
+
standards:
|
|
241
|
+
eu-ai-act:
|
|
242
|
+
- "Technical documentation and traceability"
|
|
243
|
+
- "Performance and deployment characteristics should be documented"
|
|
244
|
+
nist-ai-rmf:
|
|
245
|
+
- "Measure"
|
|
246
|
+
- "Manage"
|
|
247
|
+
condition: |
|
|
248
|
+
components[
|
|
249
|
+
type = 'machine-learning-model'
|
|
250
|
+
and (
|
|
251
|
+
$prop($, 'cdx:ai:source') = 'local-artifact'
|
|
252
|
+
or $prop($, 'cdx:ai:source') = 'local-config'
|
|
253
|
+
)
|
|
254
|
+
and $number($nullSafeProp($, 'cdx:ai:parameterCount')) >= 7000000000
|
|
255
|
+
and $nullSafeProp($, 'cdx:ai:quantization') = ''
|
|
256
|
+
]
|
|
257
|
+
location: |
|
|
258
|
+
{
|
|
259
|
+
"bomRef": $."bom-ref"
|
|
260
|
+
}
|
|
261
|
+
message: "Large local AI model '{{ name }}' lacks quantization metadata"
|
|
262
|
+
mitigation: "Record quantization and deployment sizing details for large local models so reviewers can validate resource budgets and runtime fit before rollout."
|
|
263
|
+
evidence: |
|
|
264
|
+
{
|
|
265
|
+
"runtime": $prop($, 'cdx:ai:runtime'),
|
|
266
|
+
"parameterCount": $prop($, 'cdx:ai:parameterCount'),
|
|
267
|
+
"source": $prop($, 'cdx:ai:source')
|
|
268
|
+
}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
# AI Human Oversight & Rigor rules.
|
|
2
|
+
#
|
|
3
|
+
# These rules evaluate the cdx:ai:oversight:* properties (BOM document root) emitted by the
|
|
4
|
+
# AI oversight collector. They evaluate whether AI-assisted code was merged
|
|
5
|
+
# with adequate independent human review, and detect rubber-stamping or quality gate bypassing.
|
|
6
|
+
|
|
7
|
+
- id: AIOVS-001
|
|
8
|
+
name: "High AI Verification Debt"
|
|
9
|
+
description: >-
|
|
10
|
+
A high fraction of AI-authored commits or pull requests lacks independent
|
|
11
|
+
human review, suggesting a potential failure of human-in-the-loop controls.
|
|
12
|
+
severity: high
|
|
13
|
+
category: ai-oversight
|
|
14
|
+
dry-run-support: full
|
|
15
|
+
standards:
|
|
16
|
+
eu-ai-act:
|
|
17
|
+
- "Article 14 - Human oversight"
|
|
18
|
+
nist-ai-rmf:
|
|
19
|
+
- "Govern"
|
|
20
|
+
- "Manage"
|
|
21
|
+
condition: |
|
|
22
|
+
$[$number($nullSafeProp($, 'cdx:ai:oversight:verificationDebtRatio')[$ != '' and $ != 'unavailable']) >= 0.5]
|
|
23
|
+
location: |
|
|
24
|
+
{
|
|
25
|
+
"purl": metadata.component.purl,
|
|
26
|
+
"bomRef": metadata.component."bom-ref"
|
|
27
|
+
}
|
|
28
|
+
message: "High AI verification debt detected ({{ $prop(bom, 'cdx:ai:oversight:verificationDebtRatio') }}). A large fraction of AI-generated code has not been independently reviewed."
|
|
29
|
+
mitigation: >-
|
|
30
|
+
Ensure all AI-generated code undergoes independent human review and approval before merging.
|
|
31
|
+
Establish pull request guidelines that require at least one human reviewer to sign off.
|
|
32
|
+
evidence: |
|
|
33
|
+
{
|
|
34
|
+
"verificationDebtRatio": $prop(bom, 'cdx:ai:oversight:verificationDebtRatio'),
|
|
35
|
+
"selfMergeRate": $prop(bom, 'cdx:ai:oversight:selfMergeRate'),
|
|
36
|
+
"score": $prop(bom, 'cdx:ai:oversight:score')
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
- id: AIOVS-002
|
|
40
|
+
name: "CI Weakening Events in AI Commits"
|
|
41
|
+
description: >-
|
|
42
|
+
AI-authored commits were found to weaken quality gates by deleting test files,
|
|
43
|
+
adding silencing scripts (like '|| true' or 'continue-on-error'), or skipping lints.
|
|
44
|
+
severity: high
|
|
45
|
+
category: ai-oversight
|
|
46
|
+
dry-run-support: full
|
|
47
|
+
standards:
|
|
48
|
+
eu-ai-act:
|
|
49
|
+
- "Article 15 - Accuracy, robustness and cybersecurity"
|
|
50
|
+
nist-ai-rmf:
|
|
51
|
+
- "Measure"
|
|
52
|
+
- "Manage"
|
|
53
|
+
condition: |
|
|
54
|
+
$[$number($nullSafeProp($, 'cdx:ai:oversight:ciWeakeningEvents')[$ != '']) > 0]
|
|
55
|
+
location: |
|
|
56
|
+
{
|
|
57
|
+
"purl": metadata.component.purl,
|
|
58
|
+
"bomRef": metadata.component."bom-ref"
|
|
59
|
+
}
|
|
60
|
+
message: "CI weakening events detected in AI commits ({{ $prop(bom, 'cdx:ai:oversight:ciWeakeningEvents') }} event(s))."
|
|
61
|
+
mitigation: >-
|
|
62
|
+
Review AI commits that modified CI/CD configurations, bypassed tests, or deleted checks.
|
|
63
|
+
Re-enable tests and ensure quality gates cannot be bypassed by automated changes.
|
|
64
|
+
evidence: |
|
|
65
|
+
{
|
|
66
|
+
"ciWeakeningEvents": $prop(bom, 'cdx:ai:oversight:ciWeakeningEvents'),
|
|
67
|
+
"score": $prop(bom, 'cdx:ai:oversight:score')
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
- id: AIOVS-003
|
|
71
|
+
name: "High Self-Merge Rate of AI Commits"
|
|
72
|
+
description: >-
|
|
73
|
+
A large fraction of AI-authored commits were self-merged or self-approved by
|
|
74
|
+
their author, bypassing independent validation and peer review.
|
|
75
|
+
severity: medium
|
|
76
|
+
category: ai-oversight
|
|
77
|
+
dry-run-support: full
|
|
78
|
+
standards:
|
|
79
|
+
eu-ai-act:
|
|
80
|
+
- "Article 14 - Human oversight"
|
|
81
|
+
nist-ai-rmf:
|
|
82
|
+
- "Govern"
|
|
83
|
+
- "Measure"
|
|
84
|
+
condition: |
|
|
85
|
+
$[$number($nullSafeProp($, 'cdx:ai:oversight:selfMergeRate')[$ != '' and $ != 'unavailable']) >= 0.5]
|
|
86
|
+
location: |
|
|
87
|
+
{
|
|
88
|
+
"purl": metadata.component.purl,
|
|
89
|
+
"bomRef": metadata.component."bom-ref"
|
|
90
|
+
}
|
|
91
|
+
message: "High self-merge rate of AI commits detected ({{ $prop(bom, 'cdx:ai:oversight:selfMergeRate') }})."
|
|
92
|
+
mitigation: >-
|
|
93
|
+
Require independent review for all pull requests. Configure repository branch protection
|
|
94
|
+
rules to prevent self-merging and require independent approvals.
|
|
95
|
+
evidence: |
|
|
96
|
+
{
|
|
97
|
+
"selfMergeRate": $prop(bom, 'cdx:ai:oversight:selfMergeRate'),
|
|
98
|
+
"score": $prop(bom, 'cdx:ai:oversight:score')
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
- id: AIOVS-004
|
|
102
|
+
name: "Low AI Review Coverage"
|
|
103
|
+
description: >-
|
|
104
|
+
The percentage of AI commits/PRs with verified independent human approvals is low.
|
|
105
|
+
severity: medium
|
|
106
|
+
category: ai-oversight
|
|
107
|
+
dry-run-support: full
|
|
108
|
+
standards:
|
|
109
|
+
eu-ai-act:
|
|
110
|
+
- "Article 14 - Human oversight"
|
|
111
|
+
nist-ai-rmf:
|
|
112
|
+
- "Govern"
|
|
113
|
+
condition: |
|
|
114
|
+
$[$number($nullSafeProp($, 'cdx:ai:oversight:reviewCoverage')[$ != '' and $ != 'unavailable']) < 0.5]
|
|
115
|
+
location: |
|
|
116
|
+
{
|
|
117
|
+
"purl": metadata.component.purl,
|
|
118
|
+
"bomRef": metadata.component."bom-ref"
|
|
119
|
+
}
|
|
120
|
+
message: "Low AI review coverage detected ({{ $prop(bom, 'cdx:ai:oversight:reviewCoverage') }})."
|
|
121
|
+
mitigation: >-
|
|
122
|
+
Require Pull Request reviews for all branches and increase reviewer coverage to ensure independent validation.
|
|
123
|
+
evidence: |
|
|
124
|
+
{
|
|
125
|
+
"reviewCoverage": $prop(bom, 'cdx:ai:oversight:reviewCoverage'),
|
|
126
|
+
"score": $prop(bom, 'cdx:ai:oversight:score')
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
- id: AIOVS-005
|
|
130
|
+
name: "Weak Role Accountability and Gaps in AI Attribution"
|
|
131
|
+
description: >-
|
|
132
|
+
A large fraction of files touched by AI-authored commits are not covered by a
|
|
133
|
+
CODEOWNERS entry, indicating weak role accountability and gaps in AI attribution.
|
|
134
|
+
Fires only when a CODEOWNERS file exists (otherwise coverage is `unavailable`).
|
|
135
|
+
severity: low
|
|
136
|
+
category: ai-oversight
|
|
137
|
+
dry-run-support: full
|
|
138
|
+
standards:
|
|
139
|
+
eu-ai-act:
|
|
140
|
+
- "Article 12 - Record-keeping"
|
|
141
|
+
nist-ai-rmf:
|
|
142
|
+
- "Govern"
|
|
143
|
+
condition: |
|
|
144
|
+
$[$number($nullSafeProp($, 'cdx:ai:oversight:codeownersCoverage')[$ != '' and $ != 'unavailable']) < 0.5]
|
|
145
|
+
location: |
|
|
146
|
+
{
|
|
147
|
+
"purl": metadata.component.purl,
|
|
148
|
+
"bomRef": metadata.component."bom-ref"
|
|
149
|
+
}
|
|
150
|
+
message: "Weak role accountability or sign-off on AI commits: CODEOWNERS ({{ $prop(bom, 'cdx:ai:oversight:codeownersCoverage') }}), Sign-off ({{ $prop(bom, 'cdx:ai:oversight:signoffCoverage') }})."
|
|
151
|
+
mitigation: >-
|
|
152
|
+
Define file ownership in CODEOWNERS and enforce developer sign-offs (DCO) to improve accountability.
|
|
153
|
+
evidence: |
|
|
154
|
+
{
|
|
155
|
+
"codeownersCoverage": $prop(bom, 'cdx:ai:oversight:codeownersCoverage'),
|
|
156
|
+
"signoffCoverage": $prop(bom, 'cdx:ai:oversight:signoffCoverage')
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
- id: AIOVS-006
|
|
160
|
+
name: "Weak Overall AI Human Oversight"
|
|
161
|
+
description: >-
|
|
162
|
+
The overall human oversight score falls into the weak band, indicating poor governance.
|
|
163
|
+
severity: medium
|
|
164
|
+
category: ai-oversight
|
|
165
|
+
dry-run-support: full
|
|
166
|
+
standards:
|
|
167
|
+
eu-ai-act:
|
|
168
|
+
- "Article 14 - Human oversight"
|
|
169
|
+
nist-ai-rmf:
|
|
170
|
+
- "Govern"
|
|
171
|
+
- "Manage"
|
|
172
|
+
condition: |
|
|
173
|
+
$[$nullSafeProp($, 'cdx:ai:oversight:band') = 'weak']
|
|
174
|
+
location: |
|
|
175
|
+
{
|
|
176
|
+
"purl": metadata.component.purl,
|
|
177
|
+
"bomRef": metadata.component."bom-ref"
|
|
178
|
+
}
|
|
179
|
+
message: "Weak overall AI human oversight score ({{ $prop(bom, 'cdx:ai:oversight:score') }})."
|
|
180
|
+
mitigation: >-
|
|
181
|
+
Address high-priority governance gaps including verification debt, self-merges, and CI weakening to establish a moderate or strong oversight band.
|
|
182
|
+
evidence: |
|
|
183
|
+
{
|
|
184
|
+
"score": $prop(bom, 'cdx:ai:oversight:score'),
|
|
185
|
+
"band": $prop(bom, 'cdx:ai:oversight:band')
|
|
186
|
+
}
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
# AI-generated code and authorship provenance rules.
|
|
2
|
+
#
|
|
3
|
+
# These rules evaluate the cdx:ai:codegen:* properties (BOM document root) emitted by the
|
|
4
|
+
# AI provenance collector (see docs/AI_PROVENANCE.md). They surface governance,
|
|
5
|
+
# licensing, and intellectual-property considerations that arise when AI, LLMs,
|
|
6
|
+
# or coding agents contribute to a project.
|
|
7
|
+
|
|
8
|
+
- id: AIPROV-001
|
|
9
|
+
name: "AI/LLM/agent involvement detected in project development"
|
|
10
|
+
description: >-
|
|
11
|
+
Signals of AI, LLM, or coding-agent involvement were detected in this
|
|
12
|
+
project's development, testing, review, or triage. Under current US Copyright
|
|
13
|
+
Office guidance (Copyright and Artificial Intelligence, Part 2, 2025) and
|
|
14
|
+
Thaler v. Perlmutter, works lacking sufficient human authorship are not
|
|
15
|
+
eligible for copyright protection - prompts alone do not make the user the
|
|
16
|
+
author of the output. Code produced solely by AI may therefore receive no
|
|
17
|
+
implicit copyright protection and could be freely used by others unless it is
|
|
18
|
+
protected by another mechanism such as a licence, contract, or trade secret.
|
|
19
|
+
severity: low
|
|
20
|
+
category: ai-provenance
|
|
21
|
+
dry-run-support: full
|
|
22
|
+
standards:
|
|
23
|
+
eu-ai-act:
|
|
24
|
+
- "Transparency and instructions for use"
|
|
25
|
+
- "Technical documentation and traceability"
|
|
26
|
+
nist-ai-rmf:
|
|
27
|
+
- "Govern"
|
|
28
|
+
- "Map"
|
|
29
|
+
condition: |
|
|
30
|
+
$[$nullSafeProp($, 'cdx:ai:codegen:detected') = 'true']
|
|
31
|
+
location: |
|
|
32
|
+
{
|
|
33
|
+
"purl": metadata.component.purl,
|
|
34
|
+
"bomRef": metadata.component."bom-ref"
|
|
35
|
+
}
|
|
36
|
+
message: "AI/LLM/agent involvement detected ({{ $prop(bom, 'cdx:ai:codegen:tools') }}); AI-authored code may receive no implicit copyright protection without sufficient human authorship."
|
|
37
|
+
mitigation: >-
|
|
38
|
+
Document the creative human contributions across the software development
|
|
39
|
+
lifecycle (design, selection, arrangement, and substantial modification of
|
|
40
|
+
AI output). Confirm the licensing and ownership posture for AI-assisted code
|
|
41
|
+
and consider contractual or trade-secret protections where copyright may not
|
|
42
|
+
apply. Attribute AI usage in commits and disclosures for auditability.
|
|
43
|
+
evidence: |
|
|
44
|
+
{
|
|
45
|
+
"tools": $prop(bom, 'cdx:ai:codegen:tools'),
|
|
46
|
+
"phases": $prop(bom, 'cdx:ai:codegen:phases'),
|
|
47
|
+
"confidence": $prop(bom, 'cdx:ai:codegen:confidence'),
|
|
48
|
+
"confidenceBand": $prop(bom, 'cdx:ai:codegen:confidence:band'),
|
|
49
|
+
"signalCount": $prop(bom, 'cdx:ai:codegen:signals:count')
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
- id: AIPROV-002
|
|
53
|
+
name: "High-confidence AI/LLM/agent authorship signals"
|
|
54
|
+
description: >-
|
|
55
|
+
High-confidence signals (for example bot commit authors or explicit
|
|
56
|
+
AI co-author trailers) indicate that AI or coding agents authored parts of
|
|
57
|
+
this project. Purely AI-generated code is ineligible for copyright protection
|
|
58
|
+
in the absence of sufficiently creative human input, which has ownership,
|
|
59
|
+
licensing, and warranty implications for downstream consumers.
|
|
60
|
+
severity: medium
|
|
61
|
+
category: ai-provenance
|
|
62
|
+
dry-run-support: full
|
|
63
|
+
standards:
|
|
64
|
+
eu-ai-act:
|
|
65
|
+
- "Transparency and instructions for use"
|
|
66
|
+
- "Human oversight"
|
|
67
|
+
nist-ai-rmf:
|
|
68
|
+
- "Govern"
|
|
69
|
+
- "Manage"
|
|
70
|
+
condition: |
|
|
71
|
+
$[
|
|
72
|
+
$nullSafeProp($, 'cdx:ai:codegen:detected') = 'true'
|
|
73
|
+
and $nullSafeProp($, 'cdx:ai:codegen:confidence:band') = 'high'
|
|
74
|
+
]
|
|
75
|
+
location: |
|
|
76
|
+
{
|
|
77
|
+
"purl": metadata.component.purl,
|
|
78
|
+
"bomRef": metadata.component."bom-ref"
|
|
79
|
+
}
|
|
80
|
+
message: "High-confidence AI/LLM/agent authorship detected ({{ $prop(bom, 'cdx:ai:codegen:tools') }}); review copyright, licensing, and human-authorship posture before relying on ownership of this code."
|
|
81
|
+
mitigation: >-
|
|
82
|
+
Treat this code as potentially uncopyrightable unless human authorship can be
|
|
83
|
+
demonstrated. Record who reviewed, modified, and arranged the AI output;
|
|
84
|
+
verify third-party licence compatibility; and communicate the AI-authorship
|
|
85
|
+
status to consumers who may assume standard copyright ownership.
|
|
86
|
+
evidence: |
|
|
87
|
+
{
|
|
88
|
+
"tools": $prop(bom, 'cdx:ai:codegen:tools'),
|
|
89
|
+
"phases": $prop(bom, 'cdx:ai:codegen:phases'),
|
|
90
|
+
"confidence": $prop(bom, 'cdx:ai:codegen:confidence'),
|
|
91
|
+
"signalCount": $prop(bom, 'cdx:ai:codegen:signals:count')
|
|
92
|
+
}
|