@mitre/hdf-converters 3.4.1 → 3.4.2
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +41 -8
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../converters/legacyhdf-to-hdf/typescript/converter.ts","../converters/asff-to-hdf/typescript/converter.ts","../converters/sarif-to-hdf/typescript/converter.ts","../converters/junit-to-hdf/typescript/converter.ts","../converters/xccdf-results-to-hdf/typescript/converter.ts","../converters/ckl-to-hdf/typescript/converter.ts","../converters/cklb-to-hdf/typescript/converter.ts","../converters/hdf-to-ckl/typescript/converter.ts","../converters/hdf-to-cklb/typescript/converter.ts","../converters/snyk-to-hdf/typescript/converter.ts","../converters/grype-to-hdf/typescript/converter.ts","../converters/nessus-to-hdf/typescript/converter.ts","../converters/sonarqube-to-hdf/typescript/converter.ts","../converters/aws-config-to-hdf/typescript/converter.ts","../converters/checkov-to-hdf/typescript/converter.ts","../converters/gosec-to-hdf/typescript/converter.ts","../converters/nikto-to-hdf/typescript/converter.ts","../converters/zap-to-hdf/typescript/converter.ts","../converters/cyclonedx-to-hdf/typescript/converter.ts","../converters/hdf-to-csv/typescript/converter.ts","../converters/hdf-to-ecs/typescript/converter.ts","../converters/hdf-to-splunk/typescript/converter.ts","../converters/hdf-to-ocsf/typescript/converter.ts","../converters/hdf-to-asff/typescript/converter.ts","../converters/splunk-to-hdf/typescript/converter.ts","../converters/hdf-to-xml/typescript/converter.ts","../converters/gitlab-to-hdf/typescript/converter.ts","../converters/trufflehog-to-hdf/typescript/converter.ts","../converters/burpsuite-to-hdf/typescript/converter.ts","../converters/dbprotect-to-hdf/typescript/converter.ts","../converters/twistlock-to-hdf/typescript/converter.ts","../converters/deptrack-to-hdf/typescript/converter.ts","../converters/jfrog-xray-to-hdf/typescript/converter.ts","../converters/neuvector-to-hdf/typescript/converter.ts","../converters/fortify-to-hdf/typescript/converter.ts","../converters/prisma-to-hdf/typescript/converter.ts","../converters/netsparker-to-hdf/typescript/converter.ts","../converters/scoutsuite-to-hdf/typescript/converter.ts","../converters/conveyor-to-hdf/typescript/converter.ts","../converters/veracode-to-hdf/typescript/converter.ts","../converters/msft-secure-score-to-hdf/typescript/converter.ts","../converters/msft-defender-devops-to-hdf/typescript/converter.ts","../converters/msft-defender-cloud-to-hdf/typescript/converter.ts","../converters/msft-defender-endpoint-to-hdf/typescript/converter.ts","../converters/hdf-to-xccdf/typescript/converter.ts","../converters/hdf-to-oscal-sar/typescript/converter.ts","../converters/hdf-to-oscal-poam/typescript/converter.ts","../converters/ionchannel-to-hdf/typescript/converter.ts","../converters/openvex-to-hdf/typescript/converter.ts","../converters/csaf-vex-to-hdf/typescript/converter.ts","../converters/cyclonedx-vex-to-hdf/typescript/converter.ts","../converters/hdf-to-csaf-vex/typescript/converter.ts","../converters/hdf-to-openvex/typescript/converter.ts","../converters/hdf-to-cyclonedx-vex/typescript/converter.ts","../converters/oscal-to-hdf/typescript/detect.ts","../converters/oscal-to-hdf/typescript/converter-catalog.ts","../converters/oscal-to-hdf/typescript/converter-profile.ts","../converters/oscal-to-hdf/typescript/converter-component.ts","../converters/oscal-to-hdf/typescript/converter-ssp.ts","../converters/oscal-to-hdf/typescript/converter-sap.ts","../converters/oscal-to-hdf/typescript/converter-poam.ts","../converters/oscal-to-hdf/typescript/converter-sar.ts"],"mappings":";;;;;;;;;;;;UAkBiB;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA,eAAe;IAAO;IAAe;;EACrC;EACA;EACA,OAAO;EACP;EACA;IACE;IACA;;EAEF,cAAc;EACd,UAAU;EACV;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,WAAW;EACX;EACA,UAAU;EACV;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA,UAAU;EACV,UAAU;EACV;EACA;EACA;GACC;;UAKc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA,eAAe;IAAO;IAAe;;EACrC;EACA;EACA,OAAO;EACP;EACA;IACE;IACA;;EAEF,aAAa;EACb,UAAU;EACV;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,eAAe;EACf;IACE;IACA;;EAEF,UAAU;EACV;EACA;EACA;EACA;GACC;;UAGc;EACf,WAAW;EACX;EACA;EACA;EACA;IAAS;IAAe;IAAkB;;EAC1C;EACA;EACA;EACA;EACA;EACA,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqcC,cAAc,QAAQ,eAAe;;;;;;;iBAgErC,QAAQ,gBAAgB,QAAQ;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../converters/legacyhdf-to-hdf/typescript/converter.ts","../converters/asff-to-hdf/typescript/converter.ts","../converters/sarif-to-hdf/typescript/converter.ts","../converters/junit-to-hdf/typescript/converter.ts","../converters/xccdf-results-to-hdf/typescript/converter.ts","../converters/ckl-to-hdf/typescript/converter.ts","../converters/cklb-to-hdf/typescript/converter.ts","../converters/hdf-to-ckl/typescript/converter.ts","../converters/hdf-to-cklb/typescript/converter.ts","../converters/snyk-to-hdf/typescript/converter.ts","../converters/grype-to-hdf/typescript/converter.ts","../converters/nessus-to-hdf/typescript/converter.ts","../converters/sonarqube-to-hdf/typescript/converter.ts","../converters/aws-config-to-hdf/typescript/converter.ts","../converters/checkov-to-hdf/typescript/converter.ts","../converters/gosec-to-hdf/typescript/converter.ts","../converters/nikto-to-hdf/typescript/converter.ts","../converters/zap-to-hdf/typescript/converter.ts","../converters/cyclonedx-to-hdf/typescript/converter.ts","../converters/hdf-to-csv/typescript/converter.ts","../converters/hdf-to-ecs/typescript/converter.ts","../converters/hdf-to-splunk/typescript/converter.ts","../converters/hdf-to-ocsf/typescript/converter.ts","../converters/hdf-to-asff/typescript/converter.ts","../converters/splunk-to-hdf/typescript/converter.ts","../converters/hdf-to-xml/typescript/converter.ts","../converters/gitlab-to-hdf/typescript/converter.ts","../converters/trufflehog-to-hdf/typescript/converter.ts","../converters/burpsuite-to-hdf/typescript/converter.ts","../converters/dbprotect-to-hdf/typescript/converter.ts","../converters/twistlock-to-hdf/typescript/converter.ts","../converters/deptrack-to-hdf/typescript/converter.ts","../converters/jfrog-xray-to-hdf/typescript/converter.ts","../converters/neuvector-to-hdf/typescript/converter.ts","../converters/fortify-to-hdf/typescript/converter.ts","../converters/prisma-to-hdf/typescript/converter.ts","../converters/netsparker-to-hdf/typescript/converter.ts","../converters/scoutsuite-to-hdf/typescript/converter.ts","../converters/conveyor-to-hdf/typescript/converter.ts","../converters/veracode-to-hdf/typescript/converter.ts","../converters/msft-secure-score-to-hdf/typescript/converter.ts","../converters/msft-defender-devops-to-hdf/typescript/converter.ts","../converters/msft-defender-cloud-to-hdf/typescript/converter.ts","../converters/msft-defender-endpoint-to-hdf/typescript/converter.ts","../converters/hdf-to-xccdf/typescript/converter.ts","../converters/hdf-to-oscal-sar/typescript/converter.ts","../converters/hdf-to-oscal-poam/typescript/converter.ts","../converters/ionchannel-to-hdf/typescript/converter.ts","../converters/openvex-to-hdf/typescript/converter.ts","../converters/csaf-vex-to-hdf/typescript/converter.ts","../converters/cyclonedx-vex-to-hdf/typescript/converter.ts","../converters/hdf-to-csaf-vex/typescript/converter.ts","../converters/hdf-to-openvex/typescript/converter.ts","../converters/hdf-to-cyclonedx-vex/typescript/converter.ts","../converters/oscal-to-hdf/typescript/detect.ts","../converters/oscal-to-hdf/typescript/converter-catalog.ts","../converters/oscal-to-hdf/typescript/converter-profile.ts","../converters/oscal-to-hdf/typescript/converter-component.ts","../converters/oscal-to-hdf/typescript/converter-ssp.ts","../converters/oscal-to-hdf/typescript/converter-sap.ts","../converters/oscal-to-hdf/typescript/converter-poam.ts","../converters/oscal-to-hdf/typescript/converter-sar.ts"],"mappings":";;;;;;;;;;;;UAkBiB;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA,eAAe;IAAO;IAAe;;EACrC;EACA;EACA,OAAO;EACP;EACA;IACE;IACA;;EAEF,cAAc;EACd,UAAU;EACV;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,WAAW;EACX;EACA,UAAU;EACV;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA,UAAU;EACV,UAAU;EACV;EACA;EACA;GACC;;UAKc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA,eAAe;IAAO;IAAe;;EACrC;EACA;EACA,OAAO;EACP;EACA;IACE;IACA;;EAEF,aAAa;EACb,UAAU;EACV;GACC;;UAGc;EACf;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;GACC;;UAGc;EACf;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,SAAS;EACT,eAAe;EACf;IACE;IACA;;EAEF,UAAU;EACV;EACA;EACA;EACA;GACC;;UAGc;EACf,WAAW;EACX;EACA;EACA;EACA;IAAS;IAAe;IAAkB;;EAC1C;EACA;EACA;EACA;EACA;EACA,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;iBAqcC,cAAc,QAAQ,eAAe;;;;;;;iBAgErC,QAAQ,gBAAgB,QAAQ;;;;iBC9O1B,iBAAiB,eAAe,4BAA6B;;;iBCjU7D,kBAAkB,eAAe,4BAA6B;;;;;;iBC7E9D,kBAAkB,eAAe,4BAA6B;;;iBCqN9D,yBAAyB,eAAe,4BAA6B;;;;;;;;;;;;iBChSrE,gBAAgB,gBAAgB;;;;;;;;;;;;iBCAhC,iBAAiB,gBAAgB;;;;;;;;;;;;;;;;;iBCGvC,gBAAgB;;;;;;;;;;;;;;;;iBCDhB,iBAAiB;;;;;;;;;;;;iBCyNX,iBAAiB,eAAe,4BAA6B;;;iBCkQ7D,kBAAkB,eAAe,4BAA6B;;;;;;iBC9U9D,mBAAmB,mBAAmB,4BAA6B,QAAQ;;;;;;;;;iBC8D3E,sBAAsB,eAAe,4BAA6B;;;;;;;;;;iBC0DlE,sBAAsB,eAAe,4BAA6B;;;;;;;;;;;iBCpHlE,oBAAoB,eAAe,4BAA6B;;;;;;;;;;;iBCRhE,kBAAkB,eAAe,4BAA6B;;;iBC/D9D,kBAAkB,eAAe,4BAA+B;;;iBC+EhE,gBAAgB,eAAe,4BAA6B;;;;;;;;;iBC8B5D,sBAAsB,eAAe,4BAA6B;;;;;;;;iBCjKxE,gBAAgB;;;iBCChB,gBAAgB,eAAe;;;iBCG/B,mBAAmB,eAAe;;;iBCKlC,iBAAiB,eAAe;;;iBCFhC,iBAAiB,eAAe;;;;;;;;;;;;;;iBC8G1B,mBAAmB,eAAe,4BAA6B;;;;;;;;iBCjJrE,gBAAgB;;;iBC+NV,mBAAmB,eAAe,4BAA6B;;;;;;;;;;iBC6B/D,uBAAuB,eAAe,4BAA6B;;;;;;;;;;;;iBC/InE,sBAAsB,eAAe,4BAA6B;;;;;;;;;;;iBC6GlE,sBAAsB,eAAe,4BAA6B;;;;;;;;;;;;iBCoMlE,sBAAsB,eAAe,4BAA6B;;;;;;;;;iBCrLlE,qBAAqB,eAAe,4BAA6B;;;;;;;;;iBCEjE,sBAAsB,eAAe,4BAA6B;;;;;;;;;;;;;;;;;iBC7BlE,sBAAsB,eAAe,4BAA6B;;;;;;;;;;;;;iBCwGlE,oBAAoB,eAAe,4BAA6B;;;;;;;;;;;;;;;;;iBClChE,mBAAmB,eAAe,4BAA6B;;;;;;;;;;iBCsB/D,uBAAuB,eAAe,4BAA6B;;;;;;;;;;iBChFnE,uBAAuB,eAAe,4BAA6B;;;;;;;;;;iBCmDnE,qBAAqB,eAAe,4BAA6B;;;;;;;;;;;;;;;;;;;;;iBC8HjE,qBAAqB,eAAe,4BAA6B;;;;;;;;;;;;iBC9KjE,4BAA4B,eAAe,4BAA6B;;;;;;;;iBC7KxE,+BAA+B,eAAe,4BAA6B;;;;;;;;;iBC4H3E,8BAA8B,eAAe,4BAA6B;;;;;;;;;;iBCoG1E,iCAAiC,eAAe,4BAA6B;;;;;;;;;iBC3PnF,kBAAkB;;;;;;;;;iBCUZ,qBAAqB,gBAAgB;;;;;;;;;;;;;;iBCRrC,sBAAsB,gBAAgB;;;iBCoKtC,uBAAuB,eAAe,4BAA6B;;;iBCxHnE,oBACpB,eACA,4BACC,QAAQ;;;iBCiEW,oBACpB,eACA,4BACC,QAAQ;;;iBC1CW,yBACpB,eACA,4BACC,QAAQ;;;iBCVK,oBAAoB,eAAe;;;iBC9C7B,oBACpB,eACA,2BACC;;;iBC0DmB,yBACpB,eACA,2BACC;;;;;;;;;KC1GS;;;;;;;iBAeI,wBAAwB,gBAAgB;;;;;;;;;iBCClC,yBAAyB,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;iBCYzC,yBACpB,sBACA,uBACC;;;;;;;;;;;;;;iBCtBmB,2BAA2B,gBAAgB;;;;;;;;;;;;;;iBCY3C,qBAAqB,gBAAgB;;;;;;;;;;;;;;iBCKrC,qBAAqB,gBAAgB;;;;;;;;;;;;;;iBCOrC,sBAAsB,gBAAgB;;;;;;;;;;;;;;iBCCtC,qBAAqB,gBAAgB"}
|
package/dist/index.js
CHANGED
|
@@ -1056,13 +1056,30 @@ function vulnerabilitySummary(f) {
|
|
|
1056
1056
|
return parts.join("; ");
|
|
1057
1057
|
}).join("\n");
|
|
1058
1058
|
}
|
|
1059
|
-
/** Summarizes the installed vs patched package for a Trivy CVE finding. */
|
|
1060
1059
|
function trivyMessage(f) {
|
|
1061
1060
|
const o = f.Resources?.[0]?.Details?.Other;
|
|
1062
|
-
if (!o
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1061
|
+
if (!o) return "";
|
|
1062
|
+
if (o["CVE ID"]) {
|
|
1063
|
+
const patched = o["Patched Package"];
|
|
1064
|
+
const patchMsg = patched ? `The package has been patched since version(s): ${patched}.` : "There is no patched version of the package.";
|
|
1065
|
+
return `For package ${o["PkgName"] ?? ""}, the current version that is installed is ${o["Installed Package"] ?? ""}. ${patchMsg}`;
|
|
1066
|
+
}
|
|
1067
|
+
if (o["Message"]) {
|
|
1068
|
+
const loc = trivyLocation(o);
|
|
1069
|
+
return loc ? `${o["Message"]} (${loc})` : o["Message"];
|
|
1070
|
+
}
|
|
1071
|
+
if (o["Filename"]) return `Secret detected in ${o["Filename"]}.`;
|
|
1072
|
+
return "";
|
|
1073
|
+
}
|
|
1074
|
+
function trivyLocation(o) {
|
|
1075
|
+
const file = o["Filename"] ?? "";
|
|
1076
|
+
if (!file) return "";
|
|
1077
|
+
const sl = o["StartLine"];
|
|
1078
|
+
if (!sl || sl === "0") return file;
|
|
1079
|
+
let loc = `${file}:${sl}`;
|
|
1080
|
+
const el = o["EndLine"];
|
|
1081
|
+
if (el && el !== "0" && el !== sl) loc += `-${el}`;
|
|
1082
|
+
return loc;
|
|
1066
1083
|
}
|
|
1067
1084
|
function buildRequirement$17(id, group) {
|
|
1068
1085
|
const primary = group[0];
|
|
@@ -3844,6 +3861,18 @@ function checkRevisionAlignment(rules) {
|
|
|
3844
3861
|
if (isNistStrict()) throw new Error(`aws-config: ${detail}\nre-run with a matching revision, or disable strict mode to convert with the gaps`);
|
|
3845
3862
|
console.warn(`WARNING: ${detail}`);
|
|
3846
3863
|
}
|
|
3864
|
+
function buildFixText(rule) {
|
|
3865
|
+
const r = rule.Remediation;
|
|
3866
|
+
if (!r || !r.TargetId) return "";
|
|
3867
|
+
const trigger = r.Automatic ? "automatically on non-compliance" : "on demand";
|
|
3868
|
+
const doc = r.TargetVersion ? `${r.TargetId} (version ${r.TargetVersion})` : r.TargetId;
|
|
3869
|
+
return `Remediate via ${remediationTargetLabel(r.TargetType)} ${doc}, applied ${trigger}.`;
|
|
3870
|
+
}
|
|
3871
|
+
function remediationTargetLabel(targetType) {
|
|
3872
|
+
if (targetType === "SSM_DOCUMENT") return "SSM Automation document";
|
|
3873
|
+
if (!targetType) return "automation document";
|
|
3874
|
+
return `${targetType} document`;
|
|
3875
|
+
}
|
|
3847
3876
|
function buildCheckText(rule) {
|
|
3848
3877
|
const parts = [`ARN: ${rule.ConfigRuleArn || "N/A"}`, `Source Identifier: ${rule.Source.SourceIdentifier || "N/A"}`];
|
|
3849
3878
|
if (rule.InputParameters && rule.InputParameters !== "{}") {
|
|
@@ -3881,7 +3910,7 @@ function buildResult(r) {
|
|
|
3881
3910
|
* returned zero in-scope resources. The HDF schema requires `results` to have
|
|
3882
3911
|
* minItems >= 1; this honestly signals to auditors that the rule's check ran
|
|
3883
3912
|
* but had no scope in this account/region rather than vacuously claiming
|
|
3884
|
-
* "passed".
|
|
3913
|
+
* "passed".
|
|
3885
3914
|
*/
|
|
3886
3915
|
function buildNotApplicableResult(rule) {
|
|
3887
3916
|
const codeDesc = `AWS Config rule ${rule.ConfigRuleName} evaluated zero in-scope resources in this account/region.`;
|
|
@@ -3900,6 +3929,11 @@ function buildRequirement$15(rule) {
|
|
|
3900
3929
|
label: "check",
|
|
3901
3930
|
data: buildCheckText(rule)
|
|
3902
3931
|
}];
|
|
3932
|
+
const fix = buildFixText(rule);
|
|
3933
|
+
if (fix) descriptions.push({
|
|
3934
|
+
label: "fix",
|
|
3935
|
+
data: fix
|
|
3936
|
+
});
|
|
3903
3937
|
const title = `${getAccountId(rule.ConfigRuleArn)} - ${rule.ConfigRuleName}`;
|
|
3904
3938
|
const results = rule.EvaluationResults.length > 0 ? rule.EvaluationResults.map(buildResult) : [buildNotApplicableResult(rule)];
|
|
3905
3939
|
const req = createRequirement(rule.ConfigRuleId, title, descriptions, .5, results, {
|
|
@@ -6814,9 +6848,8 @@ function buildRequirement$12(reqID, findings) {
|
|
|
6814
6848
|
* @returns HDF JSON string
|
|
6815
6849
|
*/
|
|
6816
6850
|
async function convertTrufflehogToHdf(input, converterVersion = "1.0.0") {
|
|
6817
|
-
if (!input || input.trim().length === 0) throw new Error("trufflehog: empty input");
|
|
6818
6851
|
validateInputSize(input, "trufflehog");
|
|
6819
|
-
const findings = parseFindings(input);
|
|
6852
|
+
const findings = !input || input.trim().length === 0 ? [] : parseFindings(input);
|
|
6820
6853
|
const resultsChecksum = await inputChecksum(input);
|
|
6821
6854
|
const limitedFindings = limitArrayWithWarning(findings, "finding");
|
|
6822
6855
|
const groups = groupFindings(limitedFindings);
|