@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,229 @@
|
|
|
1
|
+
# Go Evinse and Golem Rules
|
|
2
|
+
# Categories: golem-security, golem-performance, golem-compliance
|
|
3
|
+
# Evaluates actionable cdx:golem:* properties emitted by evinse -l go when golem is available.
|
|
4
|
+
|
|
5
|
+
- id: GOLEM-SEC-001
|
|
6
|
+
name: "Runtime Go dependency has a high-severity semantic security signal"
|
|
7
|
+
description: "Golem mapped a high or critical security-sensitive Go API signal to a component that appears in runtime usage evidence"
|
|
8
|
+
severity: medium
|
|
9
|
+
category: golem-security
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
condition: |
|
|
12
|
+
components[
|
|
13
|
+
(
|
|
14
|
+
$prop($, 'cdx:golem:securitySignalSeverity') = 'high'
|
|
15
|
+
or $prop($, 'cdx:golem:securitySignalSeverity') = 'critical'
|
|
16
|
+
)
|
|
17
|
+
and (
|
|
18
|
+
$prop($, 'cdx:golem:usageScopes') = null
|
|
19
|
+
or $listContains($prop($, 'cdx:golem:usageScopes'), 'runtime')
|
|
20
|
+
)
|
|
21
|
+
]
|
|
22
|
+
location: |
|
|
23
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
24
|
+
message: "Runtime Go component '{{ name }}' has Golem security signal '{{ $prop($, 'cdx:golem:securitySignalCategory') }}' with severity '{{ $prop($, 'cdx:golem:securitySignalSeverity') }}'"
|
|
25
|
+
mitigation: "Inspect the component's occurrence and call-stack evidence. Confirm whether the API use is reachable in production code, whether configuration is safe, and whether a safer library or API should replace it"
|
|
26
|
+
evidence: |
|
|
27
|
+
{
|
|
28
|
+
"category": $prop($, 'cdx:golem:securitySignalCategory'),
|
|
29
|
+
"severity": $prop($, 'cdx:golem:securitySignalSeverity'),
|
|
30
|
+
"usageScopes": $prop($, 'cdx:golem:usageScopes'),
|
|
31
|
+
"evidenceKinds": $prop($, 'cdx:golem:occurrenceEvidenceKinds')
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
- id: GOLEM-SEC-002
|
|
35
|
+
name: "Go crypto material flows into a crypto sink"
|
|
36
|
+
description: "Golem data-flow found a crypto-related source-to-sink path, such as user input, environment, or parameter data reaching a cryptographic operation"
|
|
37
|
+
severity: low
|
|
38
|
+
category: golem-security
|
|
39
|
+
dry-run-support: full
|
|
40
|
+
condition: |
|
|
41
|
+
components[
|
|
42
|
+
$prop($, 'cdx:golem:cryptoDataFlow') = 'true'
|
|
43
|
+
or $number($firstNonEmpty($prop($, 'cdx:golem:cryptoDataFlowCount'), '0')) > 0
|
|
44
|
+
]
|
|
45
|
+
location: |
|
|
46
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
47
|
+
message: "Go component '{{ name }}' has crypto data-flow evidence: {{ $prop($, 'cdx:golem:cryptoDataFlowCategories') }}"
|
|
48
|
+
mitigation: "Review the source and sink locations, taint kinds, and call-stack frames. Verify key provenance, entropy, sanitization, secret handling, and whether the algorithm or protocol use is appropriate for production"
|
|
49
|
+
evidence: |
|
|
50
|
+
{
|
|
51
|
+
"categories": $prop($, 'cdx:golem:cryptoDataFlowCategories'),
|
|
52
|
+
"ruleId": $prop($, 'cdx:golem:cryptoDataFlowRuleId'),
|
|
53
|
+
"taintKinds": $prop($, 'cdx:golem:cryptoDataFlowTaintKinds'),
|
|
54
|
+
"count": $prop($, 'cdx:golem:cryptoDataFlowCount')
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
- id: GOLEM-SEC-003
|
|
58
|
+
name: "Go component has a cryptographic finding"
|
|
59
|
+
description: "Golem reported a crypto-specific finding, such as weak algorithm use, insecure TLS configuration, or suspicious crypto material handling"
|
|
60
|
+
severity: low
|
|
61
|
+
category: golem-security
|
|
62
|
+
dry-run-support: full
|
|
63
|
+
condition: |
|
|
64
|
+
components[
|
|
65
|
+
$prop($, 'cdx:golem:cryptoFinding') != null
|
|
66
|
+
]
|
|
67
|
+
location: |
|
|
68
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
69
|
+
message: "Go component '{{ name }}' has crypto finding '{{ $prop($, 'cdx:golem:cryptoFinding') }}' with severity '{{ $prop($, 'cdx:golem:cryptoFindingSeverity') }}'"
|
|
70
|
+
mitigation: "Inspect the crypto asset, operation, and occurrence evidence. Replace weak algorithms, remove insecure TLS settings, and ensure keys, nonces, salts, and certificates are generated and stored through approved mechanisms"
|
|
71
|
+
evidence: |
|
|
72
|
+
{
|
|
73
|
+
"finding": $prop($, 'cdx:golem:cryptoFinding'),
|
|
74
|
+
"severity": $prop($, 'cdx:golem:cryptoFindingSeverity'),
|
|
75
|
+
"algorithm": $prop($, 'cdx:golem:cryptoAlgorithm'),
|
|
76
|
+
"operationType": $prop($, 'cdx:golem:cryptoOperationType')
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
- id: GOLEM-SEC-004
|
|
80
|
+
name: "Go module uses a local replacement in analyzed source"
|
|
81
|
+
description: "Golem observed a local Go module replacement, which can make builds non-hermetic and bypass normal module provenance review"
|
|
82
|
+
severity: low
|
|
83
|
+
category: golem-security
|
|
84
|
+
dry-run-support: full
|
|
85
|
+
condition: |
|
|
86
|
+
components[
|
|
87
|
+
$prop($, 'cdx:golem:localReplacement') = 'true'
|
|
88
|
+
]
|
|
89
|
+
location: |
|
|
90
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
91
|
+
message: "Go component '{{ name }}' is affected by a local replacement in the analyzed module graph"
|
|
92
|
+
mitigation: "Use a published immutable module version for release builds, or vendor the exact source with explicit provenance, review approval, and reproducibility evidence"
|
|
93
|
+
evidence: |
|
|
94
|
+
{
|
|
95
|
+
"replacementModule": $prop($, 'cdx:golem:replacementModule'),
|
|
96
|
+
"modulePath": $prop($, 'cdx:golem:modulePath'),
|
|
97
|
+
"vendored": $prop($, 'cdx:golem:vendored')
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
- id: GOLEM-PERF-001
|
|
101
|
+
name: "Go project crosses a native code boundary"
|
|
102
|
+
description: "Golem observed cgo, assembly, native object, or related native sidecar evidence that can change build reproducibility, review scope, and platform risk"
|
|
103
|
+
severity: low
|
|
104
|
+
category: golem-performance
|
|
105
|
+
dry-run-support: full
|
|
106
|
+
condition: |
|
|
107
|
+
metadata.component[
|
|
108
|
+
$number($firstNonEmpty($prop($, 'cdx:golem:nativeArtifactCount'), '0')) > 0
|
|
109
|
+
]
|
|
110
|
+
location: |
|
|
111
|
+
{ "bomRef": $."bom-ref", "component": name }
|
|
112
|
+
message: "Go project '{{ name }}' includes native artifacts: {{ $prop($, 'cdx:golem:nativeArtifactKinds') }}"
|
|
113
|
+
mitigation: "Review cgo, assembly, and native object provenance. Verify supported architectures, compiler/linker flags, reproducible build steps, and whether native code needs separate security review or signing"
|
|
114
|
+
evidence: |
|
|
115
|
+
{
|
|
116
|
+
"nativeArtifactCount": $prop($, 'cdx:golem:nativeArtifactCount'),
|
|
117
|
+
"nativeArtifactKinds": $prop($, 'cdx:golem:nativeArtifactKinds')
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
- id: GOLEM-PERF-002
|
|
121
|
+
name: "Go project relies on generated or embedded build inputs"
|
|
122
|
+
description: "Golem observed go:generate, go:embed, or generated-file evidence that should be reviewed for reproducibility and release completeness"
|
|
123
|
+
severity: low
|
|
124
|
+
category: golem-performance
|
|
125
|
+
dry-run-support: full
|
|
126
|
+
condition: |
|
|
127
|
+
metadata.component[
|
|
128
|
+
$number($firstNonEmpty($prop($, 'cdx:golem:goGenerateCount'), '0')) > 0
|
|
129
|
+
or $number($firstNonEmpty($prop($, 'cdx:golem:goEmbedCount'), '0')) > 0
|
|
130
|
+
or $number($firstNonEmpty($prop($, 'cdx:golem:generatedFileCount'), '0')) > 0
|
|
131
|
+
]
|
|
132
|
+
location: |
|
|
133
|
+
{ "bomRef": $."bom-ref", "component": name }
|
|
134
|
+
message: "Go project '{{ name }}' has generated or embedded build inputs: generate={{ $prop($, 'cdx:golem:goGenerateCount') }}, embed={{ $prop($, 'cdx:golem:goEmbedCount') }}, generatedFiles={{ $prop($, 'cdx:golem:generatedFileCount') }}"
|
|
135
|
+
mitigation: "Confirm generated files are reproducible and reviewed, go:generate commands are not required at release time unless explicitly controlled, and embedded assets are covered by license and secret-scanning review"
|
|
136
|
+
evidence: |
|
|
137
|
+
{
|
|
138
|
+
"goGenerateCount": $prop($, 'cdx:golem:goGenerateCount'),
|
|
139
|
+
"goEmbedCount": $prop($, 'cdx:golem:goEmbedCount'),
|
|
140
|
+
"generatedFileCount": $prop($, 'cdx:golem:generatedFileCount'),
|
|
141
|
+
"generatorKinds": $prop($, 'cdx:golem:generatorKinds')
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
- id: GOLEM-PERF-003
|
|
145
|
+
name: "Go data-flow evidence was truncated or sanitized"
|
|
146
|
+
description: "Golem reported data-flow truncation or sanitization, which means some source-to-sink evidence may be incomplete in the enriched BOM"
|
|
147
|
+
severity: low
|
|
148
|
+
category: golem-performance
|
|
149
|
+
dry-run-support: full
|
|
150
|
+
condition: |
|
|
151
|
+
metadata.component[
|
|
152
|
+
$prop($, 'cdx:golem:dataFlowTruncated') = 'true'
|
|
153
|
+
or $prop($, 'cdx:golem:dataFlowTruncationReasons') != null
|
|
154
|
+
or $number($firstNonEmpty($prop($, 'cdx:golem:dataFlowSanitizedSliceCount'), '0')) > 0
|
|
155
|
+
]
|
|
156
|
+
location: |
|
|
157
|
+
{ "bomRef": $."bom-ref", "component": name }
|
|
158
|
+
message: "Go data-flow evidence for '{{ name }}' was truncated or sanitized"
|
|
159
|
+
mitigation: "For high-assurance review, rerun with narrower --golem-patterns, a focused --golem-dataflow mode such as crypto, larger slice/trace limits, or more memory. Treat a clean result as coverage-limited until truncation is resolved"
|
|
160
|
+
evidence: |
|
|
161
|
+
{
|
|
162
|
+
"dataFlowTruncated": $prop($, 'cdx:golem:dataFlowTruncated'),
|
|
163
|
+
"dataFlowTruncationReasons": $prop($, 'cdx:golem:dataFlowTruncationReasons'),
|
|
164
|
+
"dataFlowSanitizedSliceCount": $prop($, 'cdx:golem:dataFlowSanitizedSliceCount'),
|
|
165
|
+
"dataFlowSliceCount": $prop($, 'cdx:golem:dataFlowSliceCount')
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
- id: GOLEM-COMP-001
|
|
169
|
+
name: "Go module appears private or workspace-local"
|
|
170
|
+
description: "Private or workspace-local Go module candidates require internal provenance, access-control, and retention review because public registry metadata may be unavailable"
|
|
171
|
+
severity: low
|
|
172
|
+
category: golem-compliance
|
|
173
|
+
dry-run-support: full
|
|
174
|
+
condition: |
|
|
175
|
+
components[
|
|
176
|
+
$prop($, 'cdx:golem:privateModuleCandidate') = 'true'
|
|
177
|
+
]
|
|
178
|
+
location: |
|
|
179
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
180
|
+
message: "Go component '{{ name }}' appears to be a private module candidate"
|
|
181
|
+
mitigation: "Confirm the module is covered by internal source retention, license review, vulnerability intake, and release provenance controls. Ensure private module names are not shared externally unless approved"
|
|
182
|
+
evidence: |
|
|
183
|
+
{
|
|
184
|
+
"modulePath": $prop($, 'cdx:golem:modulePath'),
|
|
185
|
+
"goVersion": $prop($, 'cdx:golem:goVersion'),
|
|
186
|
+
"usageScopes": $prop($, 'cdx:golem:usageScopes')
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
- id: GOLEM-COMP-002
|
|
190
|
+
name: "Vendored Go module lacks license-file evidence"
|
|
191
|
+
description: "Vendored Go modules should preserve license files or equivalent license evidence for redistribution and audit readiness"
|
|
192
|
+
severity: medium
|
|
193
|
+
category: golem-compliance
|
|
194
|
+
dry-run-support: full
|
|
195
|
+
condition: |
|
|
196
|
+
components[
|
|
197
|
+
$prop($, 'cdx:golem:vendored') = 'true'
|
|
198
|
+
and $number($firstNonEmpty($prop($, 'cdx:golem:licenseFileCount'), '0')) = 0
|
|
199
|
+
]
|
|
200
|
+
location: |
|
|
201
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
202
|
+
message: "Vendored Go component '{{ name }}' does not carry Golem license-file evidence"
|
|
203
|
+
mitigation: "Keep upstream license files with vendored modules or document the equivalent license source in the release evidence bundle. Re-run Go Evinse after correcting the vendor tree"
|
|
204
|
+
evidence: |
|
|
205
|
+
{
|
|
206
|
+
"vendored": $prop($, 'cdx:golem:vendored'),
|
|
207
|
+
"licenseFileCount": $prop($, 'cdx:golem:licenseFileCount'),
|
|
208
|
+
"licenseFiles": $prop($, 'cdx:golem:licenseFiles')
|
|
209
|
+
}
|
|
210
|
+
|
|
211
|
+
- id: GOLEM-COMP-003
|
|
212
|
+
name: "Go module graph uses exclude directives"
|
|
213
|
+
description: "Go exclude directives alter dependency resolution and can hide why a version was intentionally blocked or replaced"
|
|
214
|
+
severity: low
|
|
215
|
+
category: golem-compliance
|
|
216
|
+
dry-run-support: full
|
|
217
|
+
condition: |
|
|
218
|
+
metadata.component[
|
|
219
|
+
$number($firstNonEmpty($prop($, 'cdx:golem:goModExcludeCount'), '0')) > 0
|
|
220
|
+
]
|
|
221
|
+
location: |
|
|
222
|
+
{ "bomRef": $."bom-ref", "component": name }
|
|
223
|
+
message: "Go project '{{ name }}' uses {{ $prop($, 'cdx:golem:goModExcludeCount') }} go.mod exclude directive(s)"
|
|
224
|
+
mitigation: "Document why each excluded module version is blocked, verify the selected replacement version is safe and supported, and ensure release builds use the reviewed go.mod/go.sum pair"
|
|
225
|
+
evidence: |
|
|
226
|
+
{
|
|
227
|
+
"goModExcludeCount": $prop($, 'cdx:golem:goModExcludeCount'),
|
|
228
|
+
"excludeModule": $prop($, 'cdx:golem:excludeModule')
|
|
229
|
+
}
|
|
@@ -0,0 +1,325 @@
|
|
|
1
|
+
# HBOM Compliance and Governance Rules
|
|
2
|
+
# Category: hbom-compliance
|
|
3
|
+
# Evaluates hardware inventory completeness, redaction posture, and governance-ready evidence.
|
|
4
|
+
|
|
5
|
+
- id: HBC-001
|
|
6
|
+
name: "HBOM inventory lacks firmware or board provenance"
|
|
7
|
+
description: "Incomplete firmware or board provenance weakens auditability for hardware refresh, attestation, and patch-governance workflows."
|
|
8
|
+
severity: medium
|
|
9
|
+
category: hbom-compliance
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
standards:
|
|
12
|
+
nist-800-53:
|
|
13
|
+
- "CM-8 System Component Inventory"
|
|
14
|
+
- "SI-7 Software, Firmware, and Information Integrity"
|
|
15
|
+
cis-controls-v8:
|
|
16
|
+
- "1.1 Establish and Maintain Detailed Enterprise Asset Inventory"
|
|
17
|
+
condition: |
|
|
18
|
+
metadata.component[
|
|
19
|
+
$safeStr($prop($, 'cdx:hbom:platform')) = 'linux'
|
|
20
|
+
and $count(
|
|
21
|
+
$$.components[
|
|
22
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'board'
|
|
23
|
+
and (
|
|
24
|
+
$hasProp($, 'cdx:hbom:boardVendor')
|
|
25
|
+
or $hasProp($, 'cdx:hbom:boardName')
|
|
26
|
+
or $hasProp($, 'cdx:hbom:biosVendor')
|
|
27
|
+
or $hasProp($, 'cdx:hbom:biosVersion')
|
|
28
|
+
or $hasProp($, 'cdx:hbom:firmwareDate')
|
|
29
|
+
)
|
|
30
|
+
]
|
|
31
|
+
) = 0
|
|
32
|
+
]
|
|
33
|
+
location: |
|
|
34
|
+
{
|
|
35
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
36
|
+
}
|
|
37
|
+
message: "HBOM for '{{ name }}' lacks board or firmware provenance fields needed for governance review"
|
|
38
|
+
mitigation: "Enable richer firmware/board collection on supported Linux hosts, validate SMBIOS access, and ensure the inventory captures board vendor, board name, BIOS vendor, BIOS version, and firmware date where available."
|
|
39
|
+
evidence: |
|
|
40
|
+
{
|
|
41
|
+
"platform": $prop($, 'cdx:hbom:platform'),
|
|
42
|
+
"architecture": $prop($, 'cdx:hbom:architecture'),
|
|
43
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
44
|
+
"boardComponentCount": $count($$.components[$prop($, 'cdx:hbom:hardwareClass') = 'board'])
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
- id: HBC-002
|
|
48
|
+
name: "Managed asset identity is incomplete"
|
|
49
|
+
description: "HBOMs used for fleet governance should capture stable host identity fields such as model, platform, and serial or asset identifiers."
|
|
50
|
+
severity: medium
|
|
51
|
+
category: hbom-compliance
|
|
52
|
+
dry-run-support: full
|
|
53
|
+
standards:
|
|
54
|
+
nist-800-53:
|
|
55
|
+
- "CM-8 System Component Inventory"
|
|
56
|
+
cis-controls-v8:
|
|
57
|
+
- "1.1 Establish and Maintain Detailed Enterprise Asset Inventory"
|
|
58
|
+
iso-27001:
|
|
59
|
+
- "A.5.9 Inventory of information and other associated assets"
|
|
60
|
+
condition: |
|
|
61
|
+
metadata.component[
|
|
62
|
+
type = 'device'
|
|
63
|
+
and (
|
|
64
|
+
$hasProp($, 'cdx:hbom:platform') = false
|
|
65
|
+
or $hasProp($, 'cdx:hbom:architecture') = false
|
|
66
|
+
or (
|
|
67
|
+
$hasProp($, 'cdx:hbom:serialNumber') = false
|
|
68
|
+
and $hasProp($, 'cdx:hbom:platformUuid') = false
|
|
69
|
+
and $hasProp($, 'cdx:hbom:assetTag') = false
|
|
70
|
+
)
|
|
71
|
+
)
|
|
72
|
+
]
|
|
73
|
+
location: |
|
|
74
|
+
{
|
|
75
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
76
|
+
}
|
|
77
|
+
message: "HBOM metadata for '{{ name }}' is missing stable asset identity fields required for governance workflows"
|
|
78
|
+
mitigation: "Capture platform, architecture, and at least one durable host identifier (serial, platform UUID, or asset tag) so the device can be reconciled with CMDB and lifecycle systems."
|
|
79
|
+
evidence: |
|
|
80
|
+
{
|
|
81
|
+
"platform": $prop($, 'cdx:hbom:platform'),
|
|
82
|
+
"architecture": $prop($, 'cdx:hbom:architecture'),
|
|
83
|
+
"serialNumber": $prop($, 'cdx:hbom:serialNumber'),
|
|
84
|
+
"platformUuid": $prop($, 'cdx:hbom:platformUuid'),
|
|
85
|
+
"assetTag": $prop($, 'cdx:hbom:assetTag')
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
- id: HBC-003
|
|
89
|
+
name: "HBOM collector evidence is incomplete"
|
|
90
|
+
description: "Governance review is weaker when the BOM omits the collector command evidence used to derive the hardware inventory."
|
|
91
|
+
severity: medium
|
|
92
|
+
category: hbom-compliance
|
|
93
|
+
dry-run-support: full
|
|
94
|
+
condition: |
|
|
95
|
+
metadata.component[
|
|
96
|
+
type = 'device'
|
|
97
|
+
and (
|
|
98
|
+
$hasProp($$, 'cdx:hbom:evidence:commandCount') = false
|
|
99
|
+
or $number($firstNonEmpty($prop($$, 'cdx:hbom:evidence:commandCount'), '0')) = 0
|
|
100
|
+
or $hasProp($$, 'cdx:hbom:evidence:command') = false
|
|
101
|
+
)
|
|
102
|
+
]
|
|
103
|
+
location: |
|
|
104
|
+
{
|
|
105
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
106
|
+
}
|
|
107
|
+
message: "HBOM for '{{ name }}' is missing collector command evidence needed for reproducible review"
|
|
108
|
+
mitigation: "Retain command-evidence metadata in the distributed BOM, or attach equivalent collection provenance so reviewers can understand how the hardware inventory was derived."
|
|
109
|
+
evidence: |
|
|
110
|
+
{
|
|
111
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
112
|
+
"commandCount": $prop(bom, 'cdx:hbom:evidence:commandCount'),
|
|
113
|
+
"commandEvidence": $prop(bom, 'cdx:hbom:evidence:command')
|
|
114
|
+
}
|
|
115
|
+
|
|
116
|
+
- id: HBC-004
|
|
117
|
+
name: "Storage inventory lacks encryption posture evidence"
|
|
118
|
+
description: "Storage volumes without explicit encryption posture make it difficult to prove compliance with device and media protection requirements."
|
|
119
|
+
severity: medium
|
|
120
|
+
category: hbom-compliance
|
|
121
|
+
dry-run-support: full
|
|
122
|
+
standards:
|
|
123
|
+
nist-800-53:
|
|
124
|
+
- "SC-28 Protection of Information at Rest"
|
|
125
|
+
- "CM-8 System Component Inventory"
|
|
126
|
+
condition: |
|
|
127
|
+
metadata.component[
|
|
128
|
+
type = 'device'
|
|
129
|
+
and $count($$.components[$prop($, 'cdx:hbom:hardwareClass') = 'storage-volume']) > 0
|
|
130
|
+
and $count(
|
|
131
|
+
$$.components[
|
|
132
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'storage-volume'
|
|
133
|
+
and (
|
|
134
|
+
$hasProp($, 'cdx:hbom:isEncrypted')
|
|
135
|
+
or $hasProp($, 'cdx:hbom:fileVault')
|
|
136
|
+
)
|
|
137
|
+
]
|
|
138
|
+
) = 0
|
|
139
|
+
]
|
|
140
|
+
location: |
|
|
141
|
+
{
|
|
142
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
143
|
+
}
|
|
144
|
+
message: "HBOM for '{{ name }}' includes storage volumes but no explicit encryption posture evidence"
|
|
145
|
+
mitigation: "Enable volume-level enrichment on supported platforms or pair the HBOM with equivalent host controls evidence so encryption compliance can be verified."
|
|
146
|
+
evidence: |
|
|
147
|
+
{
|
|
148
|
+
"storageVolumeCount": $count($$.components[$prop($, 'cdx:hbom:hardwareClass') = 'storage-volume']),
|
|
149
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
150
|
+
"platform": $prop($, 'cdx:hbom:platform')
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
- id: HBC-005
|
|
154
|
+
name: "HBOM uses non-redacted identifier policy"
|
|
155
|
+
description: "HBOMs intended for broad distribution should avoid a non-redacted identifier policy unless raw identifiers are explicitly required by the receiving workflow."
|
|
156
|
+
severity: medium
|
|
157
|
+
category: hbom-compliance
|
|
158
|
+
dry-run-support: full
|
|
159
|
+
condition: |
|
|
160
|
+
metadata.component[
|
|
161
|
+
type = 'device'
|
|
162
|
+
and $hasProp($, 'cdx:hbom:identifierPolicy')
|
|
163
|
+
and $not($startsWith($lowercase($safeStr($prop($, 'cdx:hbom:identifierPolicy'))), 'redacted'))
|
|
164
|
+
]
|
|
165
|
+
location: |
|
|
166
|
+
{
|
|
167
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
168
|
+
}
|
|
169
|
+
message: "HBOM for '{{ name }}' uses identifier policy '{{ $prop($, 'cdx:hbom:identifierPolicy') }}' instead of a redacted posture"
|
|
170
|
+
mitigation: "Default distributed HBOMs to redacted identifiers and keep raw hardware identity values confined to internal asset-governance workflows with a documented need-to-know."
|
|
171
|
+
evidence: |
|
|
172
|
+
{
|
|
173
|
+
"identifierPolicy": $prop($, 'cdx:hbom:identifierPolicy'),
|
|
174
|
+
"serialNumber": $prop($, 'cdx:hbom:serialNumber'),
|
|
175
|
+
"platformUuid": $prop($, 'cdx:hbom:platformUuid')
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
- id: HBC-006
|
|
179
|
+
name: "HBOM collector is missing optional enrichment commands"
|
|
180
|
+
description: "Missing native utilities reduce the hardware evidence available to governance, assurance, and troubleshooting workflows."
|
|
181
|
+
severity: medium
|
|
182
|
+
category: hbom-compliance
|
|
183
|
+
dry-run-support: full
|
|
184
|
+
condition: |
|
|
185
|
+
metadata.component[
|
|
186
|
+
type = 'device'
|
|
187
|
+
and $number($firstNonEmpty($prop($$, 'cdx:hbom:analysis:missingCommandCount'), '0')) > 0
|
|
188
|
+
]
|
|
189
|
+
location: |
|
|
190
|
+
{
|
|
191
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
192
|
+
}
|
|
193
|
+
message: "HBOM for '{{ name }}' reported missing native enrichment commands"
|
|
194
|
+
mitigation: "Install the reported utilities on the target host and rerun the HBOM collection so the inventory includes the richer structured hardware evidence those commands provide."
|
|
195
|
+
evidence: |
|
|
196
|
+
{
|
|
197
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
198
|
+
"missingCommandCount": $prop(bom, 'cdx:hbom:analysis:missingCommandCount'),
|
|
199
|
+
"missingCommands": $propList(bom, 'cdx:hbom:analysis:missingCommands'),
|
|
200
|
+
"diagnosticIssues": $propList(bom, 'cdx:hbom:analysis:diagnosticIssues')
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
- id: HBC-007
|
|
204
|
+
name: "HBOM collector hit permission-denied enrichments"
|
|
205
|
+
description: "Permission-sensitive enrichments that fail during collection often leave firmware, graphics, or SMBIOS evidence incomplete until the host is rerun with the documented privileged mode."
|
|
206
|
+
severity: medium
|
|
207
|
+
category: hbom-compliance
|
|
208
|
+
dry-run-support: full
|
|
209
|
+
standards:
|
|
210
|
+
nist-800-53:
|
|
211
|
+
- "CM-8 System Component Inventory"
|
|
212
|
+
- "SI-7 Software, Firmware, and Information Integrity"
|
|
213
|
+
condition: |
|
|
214
|
+
metadata.component[
|
|
215
|
+
type = 'device'
|
|
216
|
+
and $number($firstNonEmpty($prop($$, 'cdx:hbom:analysis:permissionDeniedCount'), '0')) > 0
|
|
217
|
+
]
|
|
218
|
+
location: |
|
|
219
|
+
{
|
|
220
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
221
|
+
}
|
|
222
|
+
message: "HBOM for '{{ name }}' hit permission-denied enrichments that likely require a rerun with --privileged"
|
|
223
|
+
mitigation: "Where policy allows, rerun HBOM collection with --privileged so cdx-hbom can use the documented non-interactive sudo path for permission-sensitive Linux enrichments."
|
|
224
|
+
evidence: |
|
|
225
|
+
{
|
|
226
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
227
|
+
"permissionDeniedCount": $prop(bom, 'cdx:hbom:analysis:permissionDeniedCount'),
|
|
228
|
+
"permissionDeniedCommands": $propList(bom, 'cdx:hbom:analysis:permissionDeniedCommands'),
|
|
229
|
+
"requiresPrivileged": $prop(bom, 'cdx:hbom:analysis:requiresPrivileged')
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
- id: HBC-008
|
|
233
|
+
name: "HBOM collector is missing firmware-management enrichment"
|
|
234
|
+
description: "Without fwupd-derived metadata, governance teams lose update-protocol, firmware GUID, and device lifecycle context that is useful for firmware assurance and remediation planning."
|
|
235
|
+
severity: medium
|
|
236
|
+
category: hbom-compliance
|
|
237
|
+
dry-run-support: full
|
|
238
|
+
standards:
|
|
239
|
+
nist-800-53:
|
|
240
|
+
- "CM-8 System Component Inventory"
|
|
241
|
+
- "SI-7 Software, Firmware, and Information Integrity"
|
|
242
|
+
condition: |
|
|
243
|
+
metadata.component[
|
|
244
|
+
$safeStr($prop($, 'cdx:hbom:platform')) = 'linux'
|
|
245
|
+
and $listContains($propList($$, 'cdx:hbom:analysis:missingCommandIds'), 'fwupdmgr-devices-json')
|
|
246
|
+
]
|
|
247
|
+
location: |
|
|
248
|
+
{
|
|
249
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
250
|
+
}
|
|
251
|
+
message: "HBOM for '{{ name }}' is missing firmware-management enrichment because fwupdmgr was unavailable"
|
|
252
|
+
mitigation: "Install fwupd on the target host and rerun the collection so the BOM can capture protocol, flags, GUIDs, and related firmware-management properties where supported."
|
|
253
|
+
evidence: |
|
|
254
|
+
{
|
|
255
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
256
|
+
"missingCommandIds": $propList(bom, 'cdx:hbom:analysis:missingCommandIds'),
|
|
257
|
+
"missingCommands": $propList(bom, 'cdx:hbom:analysis:missingCommands'),
|
|
258
|
+
"installHintCount": $prop(bom, 'cdx:hbom:analysis:installHintCount')
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
- id: HBC-009
|
|
262
|
+
name: "HBOM board and BIOS provenance was blocked by permissions"
|
|
263
|
+
description: "When dmidecode-backed firmware and board enrichment is blocked, the HBOM may miss board-vendor, board-name, BIOS-version, and related governance evidence."
|
|
264
|
+
severity: medium
|
|
265
|
+
category: hbom-compliance
|
|
266
|
+
dry-run-support: full
|
|
267
|
+
standards:
|
|
268
|
+
nist-800-53:
|
|
269
|
+
- "CM-8 System Component Inventory"
|
|
270
|
+
- "SI-7 Software, Firmware, and Information Integrity"
|
|
271
|
+
condition: |
|
|
272
|
+
metadata.component[
|
|
273
|
+
$safeStr($prop($, 'cdx:hbom:platform')) = 'linux'
|
|
274
|
+
and $listContains($propList($$, 'cdx:hbom:analysis:permissionDeniedIds'), 'dmidecode-firmware-board')
|
|
275
|
+
]
|
|
276
|
+
location: |
|
|
277
|
+
{
|
|
278
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
279
|
+
}
|
|
280
|
+
message: "HBOM for '{{ name }}' could not capture full board and BIOS provenance because dmidecode enrichment was blocked"
|
|
281
|
+
mitigation: "Where policy allows, rerun with --privileged or equivalent access so the collector can gather firmware vendor, BIOS version, board vendor, and board name data."
|
|
282
|
+
evidence: |
|
|
283
|
+
{
|
|
284
|
+
"collectorProfile": $prop(bom, 'cdx:hbom:collectorProfile'),
|
|
285
|
+
"permissionDeniedIds": $propList(bom, 'cdx:hbom:analysis:permissionDeniedIds'),
|
|
286
|
+
"permissionDeniedCommands": $propList(bom, 'cdx:hbom:analysis:permissionDeniedCommands'),
|
|
287
|
+
"boardComponentCount": $count($$.components[$prop($, 'cdx:hbom:hardwareClass') = 'board'])
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
- id: HBC-010
|
|
291
|
+
name: "HBOM display and DRM evidence is incomplete"
|
|
292
|
+
description: "Missing EDID decoding or blocked DRM enrichment reduces the fidelity of display, connector, and content-protection metadata used during workstation and kiosk governance reviews."
|
|
293
|
+
severity: medium
|
|
294
|
+
category: hbom-compliance
|
|
295
|
+
dry-run-support: full
|
|
296
|
+
condition: |
|
|
297
|
+
metadata.component[
|
|
298
|
+
$count(
|
|
299
|
+
$$.components[
|
|
300
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'display-connector'
|
|
301
|
+
or $prop($, 'cdx:hbom:hardwareClass') = 'display-adapter'
|
|
302
|
+
]
|
|
303
|
+
) > 0
|
|
304
|
+
and (
|
|
305
|
+
$listContains($propList($$, 'cdx:hbom:analysis:missingCommandIds'), 'edid-decode')
|
|
306
|
+
or $listContains($propList($$, 'cdx:hbom:analysis:permissionDeniedIds'), 'drm-info-json')
|
|
307
|
+
)
|
|
308
|
+
]
|
|
309
|
+
location: |
|
|
310
|
+
{
|
|
311
|
+
"bomRef": $firstNonEmpty($."bom-ref", bom.serialNumber)
|
|
312
|
+
}
|
|
313
|
+
message: "HBOM for '{{ name }}' includes display hardware but the richer DRM or EDID evidence is incomplete"
|
|
314
|
+
mitigation: "Install edid-decode where available and, if policy permits, rerun with --privileged so the collector can capture connector, mode, and content-protection metadata for Linux displays."
|
|
315
|
+
evidence: |
|
|
316
|
+
{
|
|
317
|
+
"displayComponentCount": $count(
|
|
318
|
+
$$.components[
|
|
319
|
+
$prop($, 'cdx:hbom:hardwareClass') = 'display-connector'
|
|
320
|
+
or $prop($, 'cdx:hbom:hardwareClass') = 'display-adapter'
|
|
321
|
+
]
|
|
322
|
+
),
|
|
323
|
+
"missingCommandIds": $propList(bom, 'cdx:hbom:analysis:missingCommandIds'),
|
|
324
|
+
"permissionDeniedIds": $propList(bom, 'cdx:hbom:analysis:permissionDeniedIds')
|
|
325
|
+
}
|