@cyclonedx/cdxgen 12.3.3 → 12.4.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 +64 -22
- package/bin/audit.js +21 -7
- package/bin/cdxgen.js +238 -116
- package/bin/convert.js +28 -13
- package/bin/hbom.js +490 -0
- package/bin/repl.js +580 -29
- package/bin/validate.js +34 -4
- package/bin/verify.js +40 -5
- package/data/README.md +298 -25
- package/data/component-tags.json +6 -0
- package/data/crypto-oid.json +16 -0
- package/data/predictive-audit-allowlist.json +11 -0
- package/data/queries-darwin.json +12 -1
- package/data/queries-win.json +7 -1
- package/data/queries.json +39 -2
- package/data/rules/ai-agent-governance.yaml +16 -0
- package/data/rules/asar-archives.yaml +150 -0
- package/data/rules/chrome-extensions.yaml +8 -0
- package/data/rules/ci-permissions.yaml +42 -18
- package/data/rules/container-risk.yaml +14 -7
- package/data/rules/dependency-sources.yaml +11 -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 +18 -3
- package/data/rules/obom-runtime.yaml +907 -22
- package/data/rules/package-integrity.yaml +14 -0
- package/data/rules/rootfs-hardening.yaml +179 -0
- package/data/rules/vscode-extensions.yaml +9 -0
- package/lib/audit/index.js +209 -8
- package/lib/audit/index.poku.js +332 -0
- package/lib/audit/reporters.js +222 -0
- package/lib/audit/targets.js +146 -1
- package/lib/audit/targets.poku.js +186 -0
- package/lib/cli/asar.poku.js +328 -0
- package/lib/cli/index.js +506 -88
- package/lib/cli/index.poku.js +1352 -212
- package/lib/evinser/evinser.js +14 -9
- package/lib/helpers/analyzer.js +1406 -29
- package/lib/helpers/analyzer.poku.js +342 -0
- package/lib/helpers/analyzerScope.js +712 -0
- package/lib/helpers/asarutils.js +1556 -0
- package/lib/helpers/asarutils.poku.js +443 -0
- package/lib/helpers/auditCategories.js +12 -0
- package/lib/helpers/auditCategories.poku.js +32 -0
- package/lib/helpers/cbomutils.js +271 -1
- package/lib/helpers/cbomutils.poku.js +248 -5
- package/lib/helpers/display.js +291 -1
- package/lib/helpers/display.poku.js +149 -0
- package/lib/helpers/evidenceUtils.js +58 -0
- package/lib/helpers/evidenceUtils.poku.js +54 -0
- package/lib/helpers/exportUtils.js +9 -0
- package/lib/helpers/gtfobins.js +142 -8
- package/lib/helpers/gtfobins.poku.js +24 -1
- package/lib/helpers/hbom.js +710 -0
- package/lib/helpers/hbom.poku.js +496 -0
- package/lib/helpers/hbomAnalysis.js +268 -0
- package/lib/helpers/hbomAnalysis.poku.js +249 -0
- package/lib/helpers/hbomLoader.js +35 -0
- package/lib/helpers/hostTopology.js +803 -0
- package/lib/helpers/hostTopology.poku.js +363 -0
- package/lib/helpers/inventoryStats.js +69 -0
- package/lib/helpers/inventoryStats.poku.js +86 -0
- package/lib/helpers/lolbas.js +19 -1
- package/lib/helpers/lolbas.poku.js +23 -0
- package/lib/helpers/osqueryTransform.js +47 -0
- package/lib/helpers/osqueryTransform.poku.js +47 -0
- package/lib/helpers/plugins.js +349 -0
- package/lib/helpers/plugins.poku.js +57 -0
- package/lib/helpers/protobom.js +156 -45
- package/lib/helpers/protobom.poku.js +140 -5
- package/lib/helpers/remote/dependency-track.js +36 -3
- package/lib/helpers/remote/dependency-track.poku.js +44 -0
- package/lib/helpers/source.js +24 -0
- package/lib/helpers/source.poku.js +32 -0
- package/lib/helpers/utils.js +1438 -93
- package/lib/helpers/utils.poku.js +846 -4
- package/lib/managers/binary.e2e.poku.js +367 -0
- package/lib/managers/binary.js +2293 -353
- package/lib/managers/binary.poku.js +1699 -1
- package/lib/managers/docker.js +201 -79
- package/lib/managers/docker.poku.js +337 -12
- package/lib/server/server.js +2 -27
- package/lib/stages/postgen/annotator.js +38 -0
- package/lib/stages/postgen/annotator.poku.js +107 -1
- package/lib/stages/postgen/auditBom.js +121 -18
- package/lib/stages/postgen/auditBom.poku.js +1366 -31
- package/lib/stages/postgen/hostTopologyAudit.poku.js +186 -0
- package/lib/stages/postgen/postgen.js +192 -1
- package/lib/stages/postgen/postgen.poku.js +321 -0
- package/lib/stages/postgen/ruleEngine.js +116 -0
- package/lib/stages/pregen/envAudit.js +14 -3
- package/package.json +23 -21
- package/types/bin/hbom.d.ts +3 -0
- package/types/bin/hbom.d.ts.map +1 -0
- package/types/bin/repl.d.ts.map +1 -1
- package/types/lib/audit/index.d.ts +44 -0
- package/types/lib/audit/index.d.ts.map +1 -1
- package/types/lib/audit/reporters.d.ts +16 -0
- package/types/lib/audit/reporters.d.ts.map +1 -1
- package/types/lib/audit/targets.d.ts.map +1 -1
- package/types/lib/cli/index.d.ts +16 -0
- package/types/lib/cli/index.d.ts.map +1 -1
- package/types/lib/evinser/evinser.d.ts +4 -0
- package/types/lib/evinser/evinser.d.ts.map +1 -1
- package/types/lib/helpers/analyzer.d.ts +33 -0
- package/types/lib/helpers/analyzer.d.ts.map +1 -1
- package/types/lib/helpers/analyzerScope.d.ts +11 -0
- package/types/lib/helpers/analyzerScope.d.ts.map +1 -0
- package/types/lib/helpers/asarutils.d.ts +34 -0
- package/types/lib/helpers/asarutils.d.ts.map +1 -0
- package/types/lib/helpers/auditCategories.d.ts +5 -0
- package/types/lib/helpers/auditCategories.d.ts.map +1 -1
- package/types/lib/helpers/cbomutils.d.ts +3 -2
- package/types/lib/helpers/cbomutils.d.ts.map +1 -1
- package/types/lib/helpers/display.d.ts.map +1 -1
- package/types/lib/helpers/evidenceUtils.d.ts +8 -0
- package/types/lib/helpers/evidenceUtils.d.ts.map +1 -0
- package/types/lib/helpers/exportUtils.d.ts.map +1 -1
- package/types/lib/helpers/gtfobins.d.ts +8 -0
- package/types/lib/helpers/gtfobins.d.ts.map +1 -1
- package/types/lib/helpers/hbom.d.ts +49 -0
- package/types/lib/helpers/hbom.d.ts.map +1 -0
- package/types/lib/helpers/hbomAnalysis.d.ts +62 -0
- package/types/lib/helpers/hbomAnalysis.d.ts.map +1 -0
- package/types/lib/helpers/hbomLoader.d.ts +7 -0
- package/types/lib/helpers/hbomLoader.d.ts.map +1 -0
- package/types/lib/helpers/hostTopology.d.ts +12 -0
- package/types/lib/helpers/hostTopology.d.ts.map +1 -0
- package/types/lib/helpers/inventoryStats.d.ts +11 -0
- package/types/lib/helpers/inventoryStats.d.ts.map +1 -0
- package/types/lib/helpers/lolbas.d.ts.map +1 -1
- package/types/lib/helpers/osqueryTransform.d.ts +3 -0
- package/types/lib/helpers/osqueryTransform.d.ts.map +1 -1
- package/types/lib/helpers/plugins.d.ts +58 -0
- package/types/lib/helpers/plugins.d.ts.map +1 -0
- package/types/lib/helpers/protobom.d.ts +3 -4
- package/types/lib/helpers/protobom.d.ts.map +1 -1
- package/types/lib/helpers/remote/dependency-track.d.ts +10 -3
- package/types/lib/helpers/remote/dependency-track.d.ts.map +1 -1
- package/types/lib/helpers/source.d.ts.map +1 -1
- package/types/lib/helpers/utils.d.ts +45 -8
- package/types/lib/helpers/utils.d.ts.map +1 -1
- package/types/lib/managers/binary.d.ts +5 -0
- package/types/lib/managers/binary.d.ts.map +1 -1
- package/types/lib/managers/docker.d.ts.map +1 -1
- package/types/lib/server/server.d.ts +2 -1
- package/types/lib/server/server.d.ts.map +1 -1
- package/types/lib/stages/postgen/annotator.d.ts.map +1 -1
- package/types/lib/stages/postgen/auditBom.d.ts +26 -1
- package/types/lib/stages/postgen/auditBom.d.ts.map +1 -1
- package/types/lib/stages/postgen/postgen.d.ts +2 -1
- package/types/lib/stages/postgen/postgen.d.ts.map +1 -1
- package/types/lib/stages/postgen/ruleEngine.d.ts.map +1 -1
- package/types/lib/stages/pregen/envAudit.d.ts.map +1 -1
- package/data/spdx-model-v3.0.1.jsonld +0 -15999
package/lib/evinser/evinser.js
CHANGED
|
@@ -5,6 +5,7 @@ import process from "node:process";
|
|
|
5
5
|
import { PackageURL } from "packageurl-js";
|
|
6
6
|
|
|
7
7
|
import { findCryptoAlgos } from "../helpers/cbomutils.js";
|
|
8
|
+
import { parseOccurrenceEvidenceLocation } from "../helpers/evidenceUtils.js";
|
|
8
9
|
import {
|
|
9
10
|
collectGradleDependencies,
|
|
10
11
|
collectMvnDependencies,
|
|
@@ -238,12 +239,15 @@ export async function createSlice(
|
|
|
238
239
|
}
|
|
239
240
|
|
|
240
241
|
let sliceOutputDir = safeMkdtempSync(join(getTmpDir(), `atom-${sliceType}-`));
|
|
242
|
+
let tempDirOwned = true;
|
|
241
243
|
if (options?.output) {
|
|
244
|
+
const resolvedOutputPath = resolve(options.output);
|
|
242
245
|
sliceOutputDir =
|
|
243
|
-
safeExistsSync(
|
|
244
|
-
fs.lstatSync(
|
|
245
|
-
?
|
|
246
|
-
: path.dirname(
|
|
246
|
+
safeExistsSync(resolvedOutputPath) &&
|
|
247
|
+
fs.lstatSync(resolvedOutputPath).isDirectory()
|
|
248
|
+
? resolvedOutputPath
|
|
249
|
+
: path.dirname(resolvedOutputPath);
|
|
250
|
+
tempDirOwned = false;
|
|
247
251
|
}
|
|
248
252
|
const slicesFile =
|
|
249
253
|
options[`${sliceType}SlicesFile`] ||
|
|
@@ -264,7 +268,7 @@ export async function createSlice(
|
|
|
264
268
|
JSON.stringify(slicesData, null, options.jsonPretty ? 2 : null),
|
|
265
269
|
);
|
|
266
270
|
}
|
|
267
|
-
return { tempDir: sliceOutputDir, slicesFile };
|
|
271
|
+
return { tempDir: sliceOutputDir, tempDirOwned, slicesFile };
|
|
268
272
|
}
|
|
269
273
|
console.log(
|
|
270
274
|
`Creating ${sliceType} slice for ${resolve(filePath)}. Please wait ...`,
|
|
@@ -362,6 +366,7 @@ export async function createSlice(
|
|
|
362
366
|
}
|
|
363
367
|
return {
|
|
364
368
|
tempDir: sliceOutputDir,
|
|
369
|
+
tempDirOwned,
|
|
365
370
|
slicesFile,
|
|
366
371
|
atomFile,
|
|
367
372
|
openapiSpecFile: resolve(join(filePath, openapiSpecFile)),
|
|
@@ -609,6 +614,7 @@ export async function analyzeProject(dbObjMap, options) {
|
|
|
609
614
|
servicesMap,
|
|
610
615
|
dataFlowFrames,
|
|
611
616
|
tempDir: retMap?.tempDir,
|
|
617
|
+
tempDirOwned: retMap?.tempDirOwned,
|
|
612
618
|
userDefinedTypesMap,
|
|
613
619
|
cryptoComponents,
|
|
614
620
|
cryptoGeneratePurls,
|
|
@@ -1396,6 +1402,7 @@ export function extractEndpoints(language, code) {
|
|
|
1396
1402
|
export function createEvinseFile(sliceArtefacts, options) {
|
|
1397
1403
|
const {
|
|
1398
1404
|
tempDir,
|
|
1405
|
+
tempDirOwned,
|
|
1399
1406
|
usagesSlicesFile,
|
|
1400
1407
|
dataFlowSlicesFile,
|
|
1401
1408
|
reachablesSlicesFile,
|
|
@@ -1430,9 +1437,7 @@ export function createEvinseFile(sliceArtefacts, options) {
|
|
|
1430
1437
|
// This is fine as long as the input sbom was also generated by cdxgen
|
|
1431
1438
|
comp.evidence.occurrences = locationOccurrences
|
|
1432
1439
|
.filter((l) => !!l)
|
|
1433
|
-
.map((l) => (
|
|
1434
|
-
location: l,
|
|
1435
|
-
}));
|
|
1440
|
+
.map((l) => parseOccurrenceEvidenceLocation(l));
|
|
1436
1441
|
occEvidencePresent = true;
|
|
1437
1442
|
}
|
|
1438
1443
|
const dfFrames = dataFlowFrames[comp.purl];
|
|
@@ -1557,7 +1562,7 @@ export function createEvinseFile(sliceArtefacts, options) {
|
|
|
1557
1562
|
);
|
|
1558
1563
|
}
|
|
1559
1564
|
}
|
|
1560
|
-
if (tempDir?.startsWith(getTmpDir())) {
|
|
1565
|
+
if (tempDirOwned && tempDir?.startsWith(getTmpDir())) {
|
|
1561
1566
|
safeRmSync(tempDir, { recursive: true, force: true });
|
|
1562
1567
|
}
|
|
1563
1568
|
return bomNSData?.bomJson;
|