@cdxgen/cdxgen 0.0.1 → 13.0.1
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 +2335 -0
- package/bin/convert.js +220 -0
- package/bin/evinse.js +353 -0
- package/bin/hbom.js +504 -0
- package/bin/repl.js +2224 -0
- package/bin/sign.js +195 -0
- package/bin/tracebom.js +303 -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 +1882 -0
- package/lib/cli/cliOptions.js +543 -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 +280 -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 +920 -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 +583 -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 +1793 -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 +383 -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 +267 -0
- package/lib/inventory/traceRunner.js +439 -0
- package/lib/inventory/unicodeScan.js +147 -0
- package/lib/managers/binary.js +3459 -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 +329 -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 +50 -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 +201 -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 +22 -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 +147 -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,364 @@
|
|
|
1
|
+
# Package Integrity and Lifecycle Rules
|
|
2
|
+
# Category: package-integrity
|
|
3
|
+
# Detects deprecated, yanked, or tampered packages and suspicious metadata
|
|
4
|
+
|
|
5
|
+
- id: INT-001
|
|
6
|
+
name: "npm package with install script"
|
|
7
|
+
description: "npm packages with lifecycle hooks (preinstall, postinstall, etc.) execute arbitrary code during installation"
|
|
8
|
+
severity: medium
|
|
9
|
+
category: package-integrity
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
condition: |
|
|
12
|
+
components[
|
|
13
|
+
$prop($, 'cdx:npm:hasInstallScript') = 'true'
|
|
14
|
+
]
|
|
15
|
+
location: |
|
|
16
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
17
|
+
message: "npm package '{{ name }}@{{ version }}' has install-time execution hooks"
|
|
18
|
+
mitigation: "Review install scripts before use. Consider using --ignore-scripts or an allowlist-based approach"
|
|
19
|
+
evidence: |
|
|
20
|
+
{
|
|
21
|
+
"riskyScripts": $prop($, 'cdx:npm:risky_scripts'),
|
|
22
|
+
"isRegistryDependency": $prop($, 'cdx:npm:isRegistryDependency')
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
- id: INT-002
|
|
26
|
+
name: "npm package name or version mismatch"
|
|
27
|
+
description: "Detected mismatch between expected and resolved package name or version, which may indicate dependency confusion or tampering"
|
|
28
|
+
severity: high
|
|
29
|
+
category: package-integrity
|
|
30
|
+
dry-run-support: full
|
|
31
|
+
condition: |
|
|
32
|
+
components[
|
|
33
|
+
$hasProp($, 'cdx:npm:nameMismatchError')
|
|
34
|
+
or $hasProp($, 'cdx:npm:versionMismatchError')
|
|
35
|
+
]
|
|
36
|
+
location: |
|
|
37
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
38
|
+
message: "npm package '{{ name }}@{{ version }}' has a name or version mismatch"
|
|
39
|
+
mitigation: "Investigate the mismatch immediately. This may indicate dependency confusion, registry tampering, or a corrupted lockfile"
|
|
40
|
+
evidence: |
|
|
41
|
+
{
|
|
42
|
+
"nameMismatch": $prop($, 'cdx:npm:nameMismatchError'),
|
|
43
|
+
"versionMismatch": $prop($, 'cdx:npm:versionMismatchError')
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- id: INT-003
|
|
47
|
+
name: "Deprecated Go module"
|
|
48
|
+
description: "Go modules marked as deprecated may contain known issues or be abandoned"
|
|
49
|
+
severity: medium
|
|
50
|
+
category: package-integrity
|
|
51
|
+
dry-run-support: no
|
|
52
|
+
condition: |
|
|
53
|
+
components[
|
|
54
|
+
$hasProp($, 'cdx:go:deprecated')
|
|
55
|
+
]
|
|
56
|
+
location: |
|
|
57
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
58
|
+
message: "Go module '{{ name }}' is deprecated: {{ $prop($, 'cdx:go:deprecated') }}"
|
|
59
|
+
mitigation: "Migrate to the recommended replacement module or assess continued usage risk"
|
|
60
|
+
evidence: |
|
|
61
|
+
{
|
|
62
|
+
"deprecationNotice": $prop($, 'cdx:go:deprecated'),
|
|
63
|
+
"isIndirect": $prop($, 'cdx:go:indirect')
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
- id: INT-004
|
|
67
|
+
name: "Yanked Ruby gem in dependency tree"
|
|
68
|
+
description: "Yanked gems have been removed from RubyGems, typically due to security issues or critical bugs"
|
|
69
|
+
severity: high
|
|
70
|
+
category: package-integrity
|
|
71
|
+
dry-run-support: no
|
|
72
|
+
condition: |
|
|
73
|
+
components[
|
|
74
|
+
$prop($, 'cdx:gem:yanked') = 'true'
|
|
75
|
+
]
|
|
76
|
+
location: |
|
|
77
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
78
|
+
message: "Ruby gem '{{ name }}@{{ version }}' has been yanked from RubyGems"
|
|
79
|
+
mitigation: "Update to a non-yanked version immediately. Yanked gems are typically removed due to security or correctness issues"
|
|
80
|
+
evidence: |
|
|
81
|
+
{
|
|
82
|
+
"platform": $contains(purl, 'platform=') ? $substringAfter(purl, 'platform=') : 'ruby',
|
|
83
|
+
"isPrerelease": $prop($, 'cdx:gem:prerelease')
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
- id: INT-005
|
|
87
|
+
name: "npm deprecated package"
|
|
88
|
+
description: "npm packages marked as deprecated may have known vulnerabilities or unmaintained code"
|
|
89
|
+
severity: low
|
|
90
|
+
category: package-integrity
|
|
91
|
+
dry-run-support: partial
|
|
92
|
+
condition: |
|
|
93
|
+
components[
|
|
94
|
+
$prop($, 'cdx:npm:deprecated') = 'true'
|
|
95
|
+
]
|
|
96
|
+
location: |
|
|
97
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
98
|
+
message: "npm package '{{ name }}@{{ version }}' is deprecated: {{ $prop($, 'cdx:npm:deprecation_notice') }}"
|
|
99
|
+
mitigation: "Migrate to a maintained alternative package"
|
|
100
|
+
evidence: |
|
|
101
|
+
{
|
|
102
|
+
"deprecationNotice": $prop($, 'cdx:npm:deprecation_notice')
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
- id: INT-006
|
|
106
|
+
name: "Dart pub uses non-default registry"
|
|
107
|
+
description: "Dart packages from non-default registries may introduce unvetted code"
|
|
108
|
+
severity: low
|
|
109
|
+
category: package-integrity
|
|
110
|
+
dry-run-support: full
|
|
111
|
+
condition: |
|
|
112
|
+
components[
|
|
113
|
+
$hasProp($, 'cdx:pub:registry')
|
|
114
|
+
]
|
|
115
|
+
location: |
|
|
116
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
117
|
+
message: "Dart package '{{ name }}' sourced from non-default registry: {{ $prop($, 'cdx:pub:registry') }}"
|
|
118
|
+
mitigation: "Verify registry trustworthiness"
|
|
119
|
+
evidence: |
|
|
120
|
+
{
|
|
121
|
+
"registry": $prop($, 'cdx:pub:registry')
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
- id: INT-007
|
|
125
|
+
name: "Maven shaded/relocated package"
|
|
126
|
+
description: "Maven packages with shaded or relocated classes may obscure the true dependency graph and introduce hidden vulnerabilities"
|
|
127
|
+
severity: low
|
|
128
|
+
category: package-integrity
|
|
129
|
+
dry-run-support: full
|
|
130
|
+
condition: |
|
|
131
|
+
components[
|
|
132
|
+
$prop($, 'cdx:maven:shaded') = 'true'
|
|
133
|
+
]
|
|
134
|
+
location: |
|
|
135
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
136
|
+
message: "Maven package '{{ name }}@{{ version }}' contains shaded/relocated classes"
|
|
137
|
+
mitigation: "Prefer non-shaded dependency variants where available to maintain transparent dependency resolution"
|
|
138
|
+
evidence: |
|
|
139
|
+
{
|
|
140
|
+
"unshadedNamespaces": $prop($, 'cdx:maven:unshadedNamespaces'),
|
|
141
|
+
"scope": $prop($, 'cdx:maven:component_scope')
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
- id: INT-008
|
|
145
|
+
name: "README file contains hidden Unicode characters"
|
|
146
|
+
description: "Hidden Unicode in README files can conceal malicious or misleading content in code review, especially inside comments"
|
|
147
|
+
severity: medium
|
|
148
|
+
category: package-integrity
|
|
149
|
+
dry-run-support: full
|
|
150
|
+
condition: |
|
|
151
|
+
formulation.components[
|
|
152
|
+
$prop($, 'cdx:file:kind') = 'readme'
|
|
153
|
+
and $prop($, 'cdx:file:hasHiddenUnicode') = 'true'
|
|
154
|
+
]
|
|
155
|
+
location: |
|
|
156
|
+
{
|
|
157
|
+
"bomRef": $."bom-ref",
|
|
158
|
+
"file": $prop($, 'internal:SrcFile')
|
|
159
|
+
}
|
|
160
|
+
message: "README file '{{ name }}' contains hidden Unicode characters"
|
|
161
|
+
mitigation: "Review the file with hidden-character rendering enabled, remove suspicious bidirectional or zero-width characters, and verify comment blocks carefully before merge"
|
|
162
|
+
evidence: |
|
|
163
|
+
{
|
|
164
|
+
"codePoints": $prop($, 'cdx:file:hiddenUnicodeCodePoints'),
|
|
165
|
+
"lineNumbers": $prop($, 'cdx:file:hiddenUnicodeLineNumbers'),
|
|
166
|
+
"inComments": $prop($, 'cdx:file:hiddenUnicodeInComments')
|
|
167
|
+
}
|
|
168
|
+
|
|
169
|
+
- id: INT-009
|
|
170
|
+
name: "npm lifecycle hook contains obfuscated or encoded execution"
|
|
171
|
+
description: "Lifecycle hooks that decode base64 payloads, hide long encoded blobs, or blend obfuscation with install-time execution are high-confidence supply-chain abuse indicators"
|
|
172
|
+
severity: critical
|
|
173
|
+
category: package-integrity
|
|
174
|
+
dry-run-support: full
|
|
175
|
+
attack:
|
|
176
|
+
tactics: [TA0005]
|
|
177
|
+
techniques: [T1027]
|
|
178
|
+
condition: |
|
|
179
|
+
components[
|
|
180
|
+
$prop($, 'cdx:npm:hasObfuscatedLifecycleScript') = 'true'
|
|
181
|
+
]
|
|
182
|
+
location: |
|
|
183
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
184
|
+
message: "npm package '{{ name }}@{{ version }}' contains obfuscated install-time lifecycle scripts '{{ $prop($, 'cdx:npm:obfuscatedLifecycleScripts') }}'"
|
|
185
|
+
mitigation: "Treat encoded or obfuscated lifecycle hooks as suspicious by default. Review the decoded payload, inspect any referenced script files, and avoid installing until provenance and maintainer intent are verified"
|
|
186
|
+
evidence: |
|
|
187
|
+
{
|
|
188
|
+
"scripts": $prop($, 'cdx:npm:obfuscatedLifecycleScripts'),
|
|
189
|
+
"obfuscationIndicators": $prop($, 'cdx:npm:lifecycleObfuscationIndicators'),
|
|
190
|
+
"executionIndicators": $prop($, 'cdx:npm:lifecycleExecutionIndicators'),
|
|
191
|
+
"indicatorMap": $prop($, 'cdx:npm:lifecycleIndicatorMap')
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
- id: INT-010
|
|
195
|
+
name: "Yanked Cargo crate in dependency tree"
|
|
196
|
+
description: "Crates yanked from crates.io are often removed because of security, correctness, or ecosystem breakage issues"
|
|
197
|
+
severity: high
|
|
198
|
+
category: package-integrity
|
|
199
|
+
dry-run-support: no
|
|
200
|
+
condition: |
|
|
201
|
+
components[
|
|
202
|
+
$prop($, 'cdx:cargo:yanked') = 'true'
|
|
203
|
+
]
|
|
204
|
+
location: |
|
|
205
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
206
|
+
message: "Cargo crate '{{ name }}@{{ version }}' has been yanked from crates.io"
|
|
207
|
+
mitigation: "Update to a non-yanked release and review any recent publisher or release-cadence changes before upgrading"
|
|
208
|
+
evidence: |
|
|
209
|
+
{
|
|
210
|
+
"publisher": $prop($, 'cdx:cargo:publisher'),
|
|
211
|
+
"priorPublisher": $prop($, 'cdx:cargo:priorPublisher'),
|
|
212
|
+
"publishTime": $prop($, 'cdx:cargo:publishTime'),
|
|
213
|
+
"releaseGapDays": $prop($, 'cdx:cargo:releaseGapDays')
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
- id: INT-011
|
|
217
|
+
name: "Rust project uses native Cargo build surface"
|
|
218
|
+
description: "Cargo build scripts and native build helpers expand execution surface during build and deserve additional review before release"
|
|
219
|
+
severity: medium
|
|
220
|
+
category: package-integrity
|
|
221
|
+
dry-run-support: full
|
|
222
|
+
condition: |
|
|
223
|
+
formulation.components[
|
|
224
|
+
$prop($, 'cdx:rust:buildTool') = 'cargo'
|
|
225
|
+
and $prop($, 'cdx:cargo:hasNativeBuild') = 'true'
|
|
226
|
+
]
|
|
227
|
+
location: |
|
|
228
|
+
{
|
|
229
|
+
"bomRef": $."bom-ref",
|
|
230
|
+
"file": $prop($, 'internal:SrcFile')
|
|
231
|
+
}
|
|
232
|
+
message: "Rust project '{{ name }}' uses Cargo build.rs or native build helpers"
|
|
233
|
+
mitigation: "Review `build.rs`, native build dependencies, and release workflows to ensure the build remains hermetic and expected"
|
|
234
|
+
evidence: |
|
|
235
|
+
{
|
|
236
|
+
"buildScript": $prop($, 'cdx:cargo:buildScript'),
|
|
237
|
+
"nativeBuildIndicators": $prop($, 'cdx:cargo:nativeBuildIndicators'),
|
|
238
|
+
"releaseProfiles": $prop($, 'cdx:cargo:releaseProfiles')
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
- id: INT-012
|
|
242
|
+
name: "Rust native build uses mutable Cargo setup action"
|
|
243
|
+
description: "Native Cargo build surfaces deserve additional scrutiny when the workflow relies on mutable Cargo toolchain setup actions instead of immutable SHA-pinned references"
|
|
244
|
+
severity: medium
|
|
245
|
+
category: package-integrity
|
|
246
|
+
dry-run-support: full
|
|
247
|
+
condition: |
|
|
248
|
+
formulation.components[
|
|
249
|
+
$prop($, 'cdx:rust:buildTool') = 'cargo'
|
|
250
|
+
and $prop($, 'cdx:cargo:hasNativeBuild') = 'true'
|
|
251
|
+
and $count($$.components[
|
|
252
|
+
$prop($, 'cdx:github:action:ecosystem') = 'cargo'
|
|
253
|
+
and $contains($prop($, 'cdx:github:action:role'), 'toolchain')
|
|
254
|
+
and $prop($, 'cdx:github:action:versionPinningType') != 'sha'
|
|
255
|
+
]) > 0
|
|
256
|
+
]
|
|
257
|
+
location: |
|
|
258
|
+
{
|
|
259
|
+
"bomRef": $."bom-ref",
|
|
260
|
+
"file": $prop($, 'internal:SrcFile')
|
|
261
|
+
}
|
|
262
|
+
message: "Rust project '{{ name }}' combines native Cargo build surfaces with mutable Cargo toolchain setup actions"
|
|
263
|
+
mitigation: "Prefer SHA-pinned Cargo toolchain setup actions for release workflows, especially when build.rs or native helpers run during CI"
|
|
264
|
+
evidence: |
|
|
265
|
+
{
|
|
266
|
+
"buildScript": $prop($, 'cdx:cargo:buildScript'),
|
|
267
|
+
"buildScriptCapabilities": $prop($, 'cdx:cargo:buildScriptCapabilities'),
|
|
268
|
+
"toolchainActions": $$.components[
|
|
269
|
+
$prop($, 'cdx:github:action:ecosystem') = 'cargo'
|
|
270
|
+
and $contains($prop($, 'cdx:github:action:role'), 'toolchain')
|
|
271
|
+
and $prop($, 'cdx:github:action:versionPinningType') != 'sha'
|
|
272
|
+
].$prop($, 'cdx:github:action:uses')
|
|
273
|
+
}
|
|
274
|
+
|
|
275
|
+
- id: INT-013
|
|
276
|
+
name: "Rust native build is exercised by Cargo workflow steps"
|
|
277
|
+
description: "Cargo workflows that execute build/test/package/publish steps against native build surfaces increase the impact of build-script or native-helper changes"
|
|
278
|
+
severity: medium
|
|
279
|
+
category: package-integrity
|
|
280
|
+
dry-run-support: full
|
|
281
|
+
condition: |
|
|
282
|
+
formulation.components[
|
|
283
|
+
$prop($, 'cdx:rust:buildTool') = 'cargo'
|
|
284
|
+
and $prop($, 'cdx:cargo:hasNativeBuild') = 'true'
|
|
285
|
+
and (
|
|
286
|
+
$contains($prop($, 'cdx:cargo:buildScriptCapabilities'), 'process-execution')
|
|
287
|
+
or $contains($prop($, 'cdx:cargo:buildScriptCapabilities'), 'network-access')
|
|
288
|
+
or $contains($prop($, 'cdx:cargo:nativeBuildIndicators'), '-sys')
|
|
289
|
+
)
|
|
290
|
+
and $count($$.components[
|
|
291
|
+
$prop($, 'cdx:github:step:usesCargo') = 'true'
|
|
292
|
+
and (
|
|
293
|
+
$contains($prop($, 'cdx:github:step:cargoSubcommands'), 'build')
|
|
294
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'test')
|
|
295
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'package')
|
|
296
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'publish')
|
|
297
|
+
)
|
|
298
|
+
]) > 0
|
|
299
|
+
]
|
|
300
|
+
location: |
|
|
301
|
+
{
|
|
302
|
+
"bomRef": $."bom-ref",
|
|
303
|
+
"file": $prop($, 'internal:SrcFile')
|
|
304
|
+
}
|
|
305
|
+
message: "Rust project '{{ name }}' runs Cargo build/test/package workflow steps against a native build surface"
|
|
306
|
+
mitigation: "Review build.rs, native helper crates, and workflow command scope before merging or publishing releases that exercise native build logic"
|
|
307
|
+
evidence: |
|
|
308
|
+
{
|
|
309
|
+
"buildScriptCapabilities": $prop($, 'cdx:cargo:buildScriptCapabilities'),
|
|
310
|
+
"nativeBuildIndicators": $prop($, 'cdx:cargo:nativeBuildIndicators'),
|
|
311
|
+
"cargoCommands": $$.components[
|
|
312
|
+
$prop($, 'cdx:github:step:usesCargo') = 'true'
|
|
313
|
+
and (
|
|
314
|
+
$contains($prop($, 'cdx:github:step:cargoSubcommands'), 'build')
|
|
315
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'test')
|
|
316
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'package')
|
|
317
|
+
or $contains($prop($, 'cdx:github:step:cargoSubcommands'), 'publish')
|
|
318
|
+
)
|
|
319
|
+
].$prop($, 'cdx:github:step:command')
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
- id: INT-014
|
|
323
|
+
name: "Collider package missing valid wrap hash pin"
|
|
324
|
+
description: "Collider lock entries should carry a SHA-256 wrap_hash so the selected wrap file remains integrity-pinned and reproducible"
|
|
325
|
+
severity: high
|
|
326
|
+
category: package-integrity
|
|
327
|
+
dry-run-support: full
|
|
328
|
+
condition: |
|
|
329
|
+
components[
|
|
330
|
+
$hasProp($, 'cdx:collider:dependencyKind')
|
|
331
|
+
and $prop($, 'cdx:collider:hasWrapHash') = 'false'
|
|
332
|
+
]
|
|
333
|
+
location: |
|
|
334
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
335
|
+
message: "Collider package '{{ name }}@{{ version }}' is missing a valid wrap hash integrity pin"
|
|
336
|
+
mitigation: "Recreate collider.lock with valid wrap_hash values and verify the lockfile against the repository before release"
|
|
337
|
+
evidence: |
|
|
338
|
+
{
|
|
339
|
+
"wrapHash": $prop($, 'cdx:collider:wrapHash'),
|
|
340
|
+
"wrapHashInvalid": $prop($, 'cdx:collider:wrapHashInvalid'),
|
|
341
|
+
"origin": $prop($, 'cdx:collider:origin'),
|
|
342
|
+
"dependencyKind": $prop($, 'cdx:collider:dependencyKind')
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
- id: INT-015
|
|
346
|
+
name: "Ruby gem compiles native extensions at install time"
|
|
347
|
+
description: "A gem that declares extensions runs extconf.rb and a compiler on the install host, so installing it executes arbitrary code from the gem author. This is the RubyGems equivalent of an npm install script"
|
|
348
|
+
severity: low
|
|
349
|
+
category: package-integrity
|
|
350
|
+
dry-run-support: full
|
|
351
|
+
condition: |
|
|
352
|
+
components[
|
|
353
|
+
$hasProp($, 'cdx:gem:extensions')
|
|
354
|
+
]
|
|
355
|
+
location: |
|
|
356
|
+
{ "bomRef": $."bom-ref", "purl": purl }
|
|
357
|
+
message: "Ruby gem '{{ name }}@{{ version }}' compiles native extensions at install time ({{ $prop($, 'cdx:gem:extensions') }})"
|
|
358
|
+
mitigation: "Prefer the precompiled native gem for your platform so that no compiler runs at install time, and review the extconf.rb of gems you build from source"
|
|
359
|
+
evidence: |
|
|
360
|
+
{
|
|
361
|
+
"extensions": $prop($, 'cdx:gem:extensions'),
|
|
362
|
+
"platform": $contains(purl, 'platform=') ? $substringAfter(purl, 'platform=') : 'ruby',
|
|
363
|
+
"requiredRubyVersion": $prop($, 'cdx:gem:rubyVersionSpecifiers')
|
|
364
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
# Rootfs and Offline Host Hardening Rules
|
|
2
|
+
# Category: rootfs-hardening
|
|
3
|
+
# Evaluates repository trust, trust anchors, privileged helpers, and service execution paths
|
|
4
|
+
|
|
5
|
+
- id: RFS-001
|
|
6
|
+
name: "Enabled OS repository uses plaintext HTTP transport"
|
|
7
|
+
description: "Plain HTTP package repositories weaken integrity guarantees and make mirror tampering easier when network controls are absent."
|
|
8
|
+
severity: high
|
|
9
|
+
category: rootfs-hardening
|
|
10
|
+
dry-run-support: full
|
|
11
|
+
condition: |
|
|
12
|
+
components[
|
|
13
|
+
type = 'data'
|
|
14
|
+
and $hasProp($, 'cdx:os:repo:type')
|
|
15
|
+
and $safeStr($prop($, 'cdx:os:repo:enabled')) = 'true'
|
|
16
|
+
and $startsWith($lowercase($safeStr($prop($, 'cdx:os:repo:url'))), 'http://')
|
|
17
|
+
]
|
|
18
|
+
location: |
|
|
19
|
+
{
|
|
20
|
+
"bomRef": $."bom-ref",
|
|
21
|
+
"purl": purl
|
|
22
|
+
}
|
|
23
|
+
message: "Repository '{{ name }}' is enabled and still uses plaintext HTTP: {{ $prop($, 'cdx:os:repo:url') }}"
|
|
24
|
+
mitigation: "Move package sources to HTTPS or a trusted local mirror protected by authenticated transport and repository signing."
|
|
25
|
+
evidence: |
|
|
26
|
+
{
|
|
27
|
+
"sourceFile": $prop($, 'internal:SrcFile'),
|
|
28
|
+
"repoType": $prop($, 'cdx:os:repo:type'),
|
|
29
|
+
"repoUrl": $prop($, 'cdx:os:repo:url')
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
- id: RFS-002
|
|
33
|
+
name: "YUM repository has package signature checks disabled"
|
|
34
|
+
description: "Disabling gpgcheck in a configured YUM repository removes a core package authenticity control."
|
|
35
|
+
severity: critical
|
|
36
|
+
category: rootfs-hardening
|
|
37
|
+
dry-run-support: full
|
|
38
|
+
condition: |
|
|
39
|
+
components[
|
|
40
|
+
type = 'data'
|
|
41
|
+
and $safeStr($prop($, 'cdx:os:repo:type')) = 'yum-repository'
|
|
42
|
+
and $safeStr($prop($, 'cdx:os:repo:enabled')) = 'true'
|
|
43
|
+
and $safeStr($prop($, 'cdx:os:repo:gpgcheck')) = '0'
|
|
44
|
+
]
|
|
45
|
+
location: |
|
|
46
|
+
{
|
|
47
|
+
"bomRef": $."bom-ref",
|
|
48
|
+
"purl": purl
|
|
49
|
+
}
|
|
50
|
+
message: "YUM repository '{{ name }}' is enabled with gpgcheck disabled"
|
|
51
|
+
mitigation: "Enable gpgcheck, pin the expected signing keys, and review recent repository changes before continuing to trust packages from this source."
|
|
52
|
+
evidence: |
|
|
53
|
+
{
|
|
54
|
+
"sourceFile": $prop($, 'internal:SrcFile'),
|
|
55
|
+
"repoUrl": $prop($, 'cdx:os:repo:url'),
|
|
56
|
+
"gpgcheck": $prop($, 'cdx:os:repo:gpgcheck'),
|
|
57
|
+
"gpgkey": $prop($, 'cdx:os:repo:gpgkey')
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
- id: RFS-003
|
|
61
|
+
name: "Offline trust anchor is marked expired"
|
|
62
|
+
description: "Expired trust anchors inside an image or rootfs can break planned rotations and hide stale trust relationships."
|
|
63
|
+
severity: high
|
|
64
|
+
category: rootfs-hardening
|
|
65
|
+
dry-run-support: full
|
|
66
|
+
condition: |
|
|
67
|
+
components[
|
|
68
|
+
type = 'cryptographic-asset'
|
|
69
|
+
and $safeStr(cryptoProperties.assetType) = 'related-crypto-material'
|
|
70
|
+
and $safeStr(cryptoProperties.relatedCryptoMaterialProperties.state) = 'expired'
|
|
71
|
+
]
|
|
72
|
+
location: |
|
|
73
|
+
{
|
|
74
|
+
"bomRef": $."bom-ref"
|
|
75
|
+
}
|
|
76
|
+
message: "Trust anchor '{{ name }}' is marked expired and should be reviewed"
|
|
77
|
+
mitigation: "Remove stale keys, replace expired trust anchors, and confirm the remaining repository trust chain matches approved policy."
|
|
78
|
+
evidence: |
|
|
79
|
+
{
|
|
80
|
+
"path": $prop($, 'internal:SrcFile'),
|
|
81
|
+
"trustDomain": $prop($, 'cdx:crypto:trustDomain'),
|
|
82
|
+
"keyId": $prop($, 'cdx:crypto:keyId'),
|
|
83
|
+
"expiresAt": $prop($, 'cdx:crypto:expiresAt')
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
- id: RFS-004
|
|
87
|
+
name: "Offline image retains setuid GTFOBins execution helper"
|
|
88
|
+
description: "Setuid GTFOBins-capable binaries increase privilege-escalation exposure inside rootfs and golden image baselines."
|
|
89
|
+
severity: critical
|
|
90
|
+
category: rootfs-hardening
|
|
91
|
+
dry-run-support: full
|
|
92
|
+
condition: |
|
|
93
|
+
components[
|
|
94
|
+
type = 'file'
|
|
95
|
+
and (
|
|
96
|
+
$prop($, 'internal:has_setuid') = 'true'
|
|
97
|
+
or $prop($, 'internal:has_setgid') = 'true'
|
|
98
|
+
)
|
|
99
|
+
and $prop($, 'cdx:gtfobins:matched') = 'true'
|
|
100
|
+
and (
|
|
101
|
+
$listContains($prop($, 'cdx:gtfobins:functions'), 'shell')
|
|
102
|
+
or $listContains($prop($, 'cdx:gtfobins:functions'), 'command')
|
|
103
|
+
or $listContains($prop($, 'cdx:gtfobins:functions'), 'library-load')
|
|
104
|
+
)
|
|
105
|
+
]
|
|
106
|
+
location: |
|
|
107
|
+
{
|
|
108
|
+
"bomRef": $."bom-ref",
|
|
109
|
+
"purl": purl
|
|
110
|
+
}
|
|
111
|
+
message: "Privileged helper '{{ name }}' keeps GTFOBins execution capability in the offline image"
|
|
112
|
+
mitigation: "Remove unnecessary setuid or setgid bits, replace the helper with a safer alternative, or justify and baseline the exposure explicitly."
|
|
113
|
+
evidence: |
|
|
114
|
+
{
|
|
115
|
+
"path": $prop($, 'internal:SrcFile'),
|
|
116
|
+
"functions": $prop($, 'cdx:gtfobins:functions'),
|
|
117
|
+
"contexts": $prop($, 'cdx:gtfobins:contexts'),
|
|
118
|
+
"riskTags": $prop($, 'cdx:gtfobins:riskTags')
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
- id: RFS-005
|
|
122
|
+
name: "Offline service executes from writable or temporary path"
|
|
123
|
+
description: "Services pointing at writable or temporary paths are a strong persistence and drift signal in base images and offline hosts."
|
|
124
|
+
severity: critical
|
|
125
|
+
category: rootfs-hardening
|
|
126
|
+
dry-run-support: full
|
|
127
|
+
condition: |
|
|
128
|
+
$auditServices($)[
|
|
129
|
+
$contains($lowercase($safeStr($prop($, 'cdx:service:ExecStart'))), '/tmp/')
|
|
130
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStart'))), '/var/tmp/')
|
|
131
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStart'))), '/dev/shm/')
|
|
132
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStart'))), '/home/')
|
|
133
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStart'))), '/run/user/')
|
|
134
|
+
]
|
|
135
|
+
location: |
|
|
136
|
+
{
|
|
137
|
+
"bomRef": $."bom-ref"
|
|
138
|
+
}
|
|
139
|
+
message: "Service '{{ name }}' launches from a writable or temporary path"
|
|
140
|
+
mitigation: "Relocate approved service binaries into trusted system paths and investigate any service definition that executes from writable directories."
|
|
141
|
+
evidence: |
|
|
142
|
+
{
|
|
143
|
+
"sourceFile": $prop($, 'internal:SrcFile'),
|
|
144
|
+
"manager": $prop($, 'cdx:service:manager'),
|
|
145
|
+
"execStart": $prop($, 'cdx:service:ExecStart'),
|
|
146
|
+
"packageRef": $prop($, 'cdx:service:packageRef')
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
- id: RFS-006
|
|
150
|
+
name: "Offline service pre-start step fetches or shells remote content"
|
|
151
|
+
description: "ExecStartPre hooks that fetch remote content or shell inline commands add bootstrap drift and weaken image reproducibility."
|
|
152
|
+
severity: high
|
|
153
|
+
category: rootfs-hardening
|
|
154
|
+
dry-run-support: full
|
|
155
|
+
condition: |
|
|
156
|
+
$auditServices($)[
|
|
157
|
+
(
|
|
158
|
+
$contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), 'curl ')
|
|
159
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), 'wget ')
|
|
160
|
+
)
|
|
161
|
+
and (
|
|
162
|
+
$contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), 'http://')
|
|
163
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), 'https://')
|
|
164
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), '| sh')
|
|
165
|
+
or $contains($lowercase($safeStr($prop($, 'cdx:service:ExecStartPre'))), '| bash')
|
|
166
|
+
)
|
|
167
|
+
]
|
|
168
|
+
location: |
|
|
169
|
+
{
|
|
170
|
+
"bomRef": $."bom-ref"
|
|
171
|
+
}
|
|
172
|
+
message: "Service '{{ name }}' uses a remote-fetching ExecStartPre hook: {{ $prop($, 'cdx:service:ExecStartPre') }}"
|
|
173
|
+
mitigation: "Move bootstrap downloads into the image build pipeline, pin artifacts, and keep service startup paths deterministic and locally sourced."
|
|
174
|
+
evidence: |
|
|
175
|
+
{
|
|
176
|
+
"sourceFile": $prop($, 'internal:SrcFile'),
|
|
177
|
+
"manager": $prop($, 'cdx:service:manager'),
|
|
178
|
+
"execStartPre": $prop($, 'cdx:service:ExecStartPre')
|
|
179
|
+
}
|