@mitre/hdf-converters 2.6.49 → 2.6.54
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 +19 -17
- package/lib/index.d.ts +2 -0
- package/lib/index.js +2 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +3 -3
- package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +72 -0
- package/lib/src/ckl-mapper/checklist-jsonix-converter.js +123 -0
- package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -0
- package/lib/src/ckl-mapper/checklist-mapper.d.ts +19 -0
- package/lib/src/ckl-mapper/checklist-mapper.js +292 -0
- package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -0
- package/lib/src/ckl-mapper/jsonixMapping.d.ts +110 -0
- package/lib/src/ckl-mapper/jsonixMapping.js +586 -0
- package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -0
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +8 -20
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +77 -121
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
- package/lib/src/conveyor-mapper.d.ts +14 -0
- package/lib/src/conveyor-mapper.js +188 -0
- package/lib/src/conveyor-mapper.js.map +1 -0
- package/lib/src/dbprotect-mapper.d.ts +5 -2
- package/lib/src/dbprotect-mapper.js +21 -20
- package/lib/src/dbprotect-mapper.js.map +1 -1
- package/lib/src/jsonix-converter.d.ts +5 -0
- package/lib/src/jsonix-converter.js +16 -0
- package/lib/src/jsonix-converter.js.map +1 -0
- package/lib/src/jsonix-intermediate-converter.d.ts +4 -0
- package/lib/src/jsonix-intermediate-converter.js +8 -0
- package/lib/src/jsonix-intermediate-converter.js.map +1 -0
- package/lib/src/splunk-mapper.d.ts +13 -12
- package/lib/src/splunk-mapper.js +110 -99
- package/lib/src/splunk-mapper.js.map +1 -1
- package/lib/src/utils/fingerprinting.d.ts +2 -0
- package/lib/src/utils/fingerprinting.js +9 -0
- package/lib/src/utils/fingerprinting.js.map +1 -1
- package/lib/src/utils/splunk-tools.d.ts +5 -0
- package/lib/src/utils/splunk-tools.js +73 -0
- package/lib/src/utils/splunk-tools.js.map +1 -0
- package/lib/types/splunk-config-types.d.ts +13 -0
- package/lib/types/splunk-config-types.js +3 -0
- package/lib/types/splunk-config-types.js.map +1 -0
- package/lib/{src/converters-from-hdf/splunk → types}/splunk-control-types.d.ts +1 -1
- package/lib/types/splunk-control-types.js.map +1 -0
- package/lib/{src/converters-from-hdf/splunk → types}/splunk-profile-types.d.ts +1 -1
- package/lib/types/splunk-profile-types.js.map +1 -0
- package/lib/types/splunk-report-types.js.map +1 -0
- package/package.json +3 -3
- package/lib/src/converters-from-hdf/splunk/splunk-control-types.js.map +0 -1
- package/lib/src/converters-from-hdf/splunk/splunk-profile-types.js.map +0 -1
- package/lib/src/converters-from-hdf/splunk/splunk-report-types.js.map +0 -1
- /package/lib/{src/converters-from-hdf/splunk → types}/splunk-control-types.js +0 -0
- /package/lib/{src/converters-from-hdf/splunk → types}/splunk-profile-types.js +0 -0
- /package/lib/{src/converters-from-hdf/splunk → types}/splunk-report-types.d.ts +0 -0
- /package/lib/{src/converters-from-hdf/splunk → types}/splunk-report-types.js +0 -0
package/README.md
CHANGED
|
@@ -8,23 +8,25 @@ HDF Converters supplies several methods to convert various types of security too
|
|
|
8
8
|
1. [**asff-mapper**] - AWS Security Finding Format JSON file, Prowler-derived AWS Security Finding Format results from concatenated JSON blobs, and Trivy-derived AWS Security Finding Format results from concatenated JSON blobs
|
|
9
9
|
2. [**aws-config-mapper**] - AWS Config
|
|
10
10
|
3. [**burpsuite-mapper**] - BurpSuite Pro XML file
|
|
11
|
-
4. [**
|
|
12
|
-
5. [**
|
|
13
|
-
6. [**
|
|
14
|
-
7. [**
|
|
15
|
-
8. [**
|
|
16
|
-
9. [**
|
|
17
|
-
10. [**
|
|
18
|
-
11. [**
|
|
19
|
-
12. [**
|
|
20
|
-
13. [**
|
|
21
|
-
14. [**
|
|
22
|
-
15. [**
|
|
23
|
-
16. [**
|
|
24
|
-
17. [**
|
|
25
|
-
18. [**
|
|
26
|
-
19. [**
|
|
27
|
-
20. [**
|
|
11
|
+
4. [**checklist-mapper**] - Checlist Mapper format
|
|
12
|
+
5. [**conveyor-mapper**] - Conveyor JSON file
|
|
13
|
+
6. [**dbprotect-mapper**] - DBProtect report in "Check Results Details" XML format
|
|
14
|
+
7. [**fortify-mapper**] - Fortify results FVDL file
|
|
15
|
+
8. [**ionchannel-mapper**] - SBOM data from Ion Channel
|
|
16
|
+
9. [**jfrog-xray-mapper**] - JFrog Xray results JSON file
|
|
17
|
+
10. [**nessus-mapper**] - Nessus XML results file
|
|
18
|
+
11. [**netsparker-mapper**] - Netsparker XML results file
|
|
19
|
+
12. [**nikto-mapper**] - Nikto results JSON file
|
|
20
|
+
13. [**prisma-mapper**] - Prisma Cloud Scan Report CSV file
|
|
21
|
+
14. [**sarif-mapper**] - SARIF JSON file
|
|
22
|
+
15. [**scoutsuite-mapper**] - ScoutSuite results from a Javascript object
|
|
23
|
+
16. [**snyk-mapper**] - Snyk results JSON file
|
|
24
|
+
17. [**sonarqube-mapper**] - SonarQube vulnerabilities for the specified project name and optional branch or pull/merge request ID name from an API
|
|
25
|
+
18. [**splunk-mapper**] - Splunk instance
|
|
26
|
+
19. [**twistlock-mapper**] - Twistlock CLI output file
|
|
27
|
+
20. [**veracode-mapper**] - Veracode Scan Results XML file
|
|
28
|
+
21. [**xccdf-results-mapper**] - SCAP client XCCDF-Results XML report
|
|
29
|
+
22. [**zap-mapper**] - OWASP ZAP results JSON
|
|
28
30
|
|
|
29
31
|
### NOTICE
|
|
30
32
|
|
package/lib/index.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
export { ASFFResults } from './src/asff-mapper/asff-mapper';
|
|
2
2
|
export * from './src/aws-config-mapper';
|
|
3
3
|
export * from './src/burpsuite-mapper';
|
|
4
|
+
export * from './src/ckl-mapper/checklist-mapper';
|
|
4
5
|
export * from './src/converters-from-hdf/asff/reverse-asff-mapper';
|
|
5
6
|
export * from './src/converters-from-hdf/splunk/reverse-splunk-mapper';
|
|
6
7
|
export * from './src/converters-from-hdf/xccdf/reverse-xccdf-mapper';
|
|
8
|
+
export * from './src/conveyor-mapper';
|
|
7
9
|
export * from './src/dbprotect-mapper';
|
|
8
10
|
export * from './src/fortify-mapper';
|
|
9
11
|
export * from './src/gosec-mapper';
|
package/lib/index.js
CHANGED
|
@@ -31,9 +31,11 @@ var asff_mapper_1 = require("./src/asff-mapper/asff-mapper");
|
|
|
31
31
|
Object.defineProperty(exports, "ASFFResults", { enumerable: true, get: function () { return asff_mapper_1.ASFFResults; } });
|
|
32
32
|
__exportStar(require("./src/aws-config-mapper"), exports);
|
|
33
33
|
__exportStar(require("./src/burpsuite-mapper"), exports);
|
|
34
|
+
__exportStar(require("./src/ckl-mapper/checklist-mapper"), exports);
|
|
34
35
|
__exportStar(require("./src/converters-from-hdf/asff/reverse-asff-mapper"), exports);
|
|
35
36
|
__exportStar(require("./src/converters-from-hdf/splunk/reverse-splunk-mapper"), exports);
|
|
36
37
|
__exportStar(require("./src/converters-from-hdf/xccdf/reverse-xccdf-mapper"), exports);
|
|
38
|
+
__exportStar(require("./src/conveyor-mapper"), exports);
|
|
37
39
|
__exportStar(require("./src/dbprotect-mapper"), exports);
|
|
38
40
|
__exportStar(require("./src/fortify-mapper"), exports);
|
|
39
41
|
__exportStar(require("./src/gosec-mapper"), exports);
|
package/lib/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA0D;AAAlD,0GAAA,WAAW,OAAA;AACnB,0DAAwC;AACxC,yDAAuC;AACvC,qFAAmE;AACnE,yFAAuE;AACvE,uFAAqE;AACrE,yDAAuC;AACvC,uDAAqC;AACrC,qDAAmC;AACnC,0DAAwC;AACxC,0DAAwC;AACxC,4FAA4E;AAC5E,wFAAwE;AACxE,wFAAwE;AACxE,0GAA0F;AAC1F,4FAA4E;AAC5E,wFAAwE;AACxE,4FAA4E;AAC5E,sGAAsF;AACtF,sDAAoC;AACpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,qDAAmC;AACnC,0DAAwC;AACxC,oDAAkC;AAClC,yDAAuC;AACvC,sDAAoC;AACpC,yDAAuC;AACvC,2DAAyC;AACzC,6DAA2C;AAC3C,wDAAsC;AACtC,6DAA2C;AAC3C,mDAAiC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,6DAA0D;AAAlD,0GAAA,WAAW,OAAA;AACnB,0DAAwC;AACxC,yDAAuC;AACvC,oEAAkD;AAClD,qFAAmE;AACnE,yFAAuE;AACvE,uFAAqE;AACrE,wDAAsC;AACtC,yDAAuC;AACvC,uDAAqC;AACrC,qDAAmC;AACnC,0DAAwC;AACxC,0DAAwC;AACxC,4FAA4E;AAC5E,wFAAwE;AACxE,wFAAwE;AACxE,0GAA0F;AAC1F,4FAA4E;AAC5E,wFAAwE;AACxE,4FAA4E;AAC5E,sGAAsF;AACtF,sDAAoC;AACpC,0DAAwC;AACxC,qDAAmC;AACnC,sDAAoC;AACpC,qDAAmC;AACnC,0DAAwC;AACxC,oDAAkC;AAClC,yDAAuC;AACvC,sDAAoC;AACpC,yDAAuC;AACvC,2DAAyC;AACzC,6DAA2C;AAC3C,wDAAsC;AACtC,6DAA2C;AAC3C,mDAAiC"}
|
package/lib/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mitre/hdf-converters",
|
|
3
|
-
"version": "2.6.
|
|
3
|
+
"version": "2.6.54",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"description": "Converter util library used to transform various scan results into HDF format",
|
|
6
6
|
"files": [
|
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
28
|
"@aws-sdk/client-config-service": "^3.95.0",
|
|
29
|
-
"@mitre/
|
|
29
|
+
"@mitre/jsonix": "^3.0.6",
|
|
30
30
|
"@types/csv2json": "^1.4.2",
|
|
31
31
|
"@types/ms": "^0.7.31",
|
|
32
32
|
"@types/mustache": "^4.1.2",
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
"run-script-os": "^1.1.6",
|
|
49
49
|
"winston": "^3.6.0",
|
|
50
50
|
"xlsx": "^0.18.5",
|
|
51
|
-
"xml2js": "^0.
|
|
51
|
+
"xml2js": "^0.6.0",
|
|
52
52
|
"yaml": "^2.1.1"
|
|
53
53
|
},
|
|
54
54
|
"devDependencies": {
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import { Asset, Checklist, Sidata, Stigdata, Vuln } from '../../types/checklistJsonix';
|
|
2
|
+
import { JsonixIntermediateConverter } from '../jsonix-intermediate-converter';
|
|
3
|
+
export declare type ChecklistObject = {
|
|
4
|
+
asset: ChecklistAsset;
|
|
5
|
+
stigs: ChecklistStig[];
|
|
6
|
+
jsonixData: Checklist;
|
|
7
|
+
};
|
|
8
|
+
declare type ChecklistAsset = Asset;
|
|
9
|
+
declare type ChecklistStig = {
|
|
10
|
+
header: StigHeader;
|
|
11
|
+
vulns: ChecklistVuln[];
|
|
12
|
+
};
|
|
13
|
+
declare type StigHeader = {
|
|
14
|
+
version: string;
|
|
15
|
+
classification: 'UNCLASSIFIED' | 'UNCLASSIFIED//FOR OFFICIAL USE ONLY' | 'CUI';
|
|
16
|
+
customname?: string;
|
|
17
|
+
stigid: string;
|
|
18
|
+
description: string;
|
|
19
|
+
filename: string;
|
|
20
|
+
releaseinfo?: string;
|
|
21
|
+
title: string;
|
|
22
|
+
uuid: string;
|
|
23
|
+
notice?: string;
|
|
24
|
+
source?: string;
|
|
25
|
+
};
|
|
26
|
+
export declare type ChecklistVuln = Omit<Vuln, 'stigdata' | 'status'> & {
|
|
27
|
+
status: StatusMapping;
|
|
28
|
+
vulnNum: string;
|
|
29
|
+
severity: Severity;
|
|
30
|
+
groupTitle: string;
|
|
31
|
+
ruleId: string;
|
|
32
|
+
ruleVersion: string;
|
|
33
|
+
ruleTitle: string;
|
|
34
|
+
vulnDiscuss: string;
|
|
35
|
+
iaControls: string;
|
|
36
|
+
checkContent: string;
|
|
37
|
+
fixText: string;
|
|
38
|
+
falsePositives: string;
|
|
39
|
+
falseNegatives: string;
|
|
40
|
+
documentable: boolean;
|
|
41
|
+
mitigations: string;
|
|
42
|
+
potentialImpact: string;
|
|
43
|
+
thirdPartyTools: string;
|
|
44
|
+
mitigationControl: string;
|
|
45
|
+
responsibility: string;
|
|
46
|
+
securityOverrideGuidance: string;
|
|
47
|
+
checkContentRef: string;
|
|
48
|
+
weight: string;
|
|
49
|
+
class: 'Unclass' | 'FOUO' | 'CUI';
|
|
50
|
+
stigRef: string;
|
|
51
|
+
targetKey: string;
|
|
52
|
+
stigUuid: string;
|
|
53
|
+
legacyId: string;
|
|
54
|
+
cciRef: string;
|
|
55
|
+
};
|
|
56
|
+
declare enum StatusMapping {
|
|
57
|
+
NotAFinding = "Passed",
|
|
58
|
+
Open = "Failed",
|
|
59
|
+
Not_Applicable = "Not Applicable",
|
|
60
|
+
Not_Reviewed = "Not Reviewed"
|
|
61
|
+
}
|
|
62
|
+
export declare enum Severity {
|
|
63
|
+
Empty = "",
|
|
64
|
+
High = "high",
|
|
65
|
+
Low = "low",
|
|
66
|
+
Medium = "medium"
|
|
67
|
+
}
|
|
68
|
+
export declare class ChecklistJsonixConverter extends JsonixIntermediateConverter<Checklist, ChecklistObject> {
|
|
69
|
+
getValueFromAttributeName<T extends Stigdata | Sidata>(data: T[], tag: string): string;
|
|
70
|
+
toIntermediateObject(jsonixData: Checklist): ChecklistObject;
|
|
71
|
+
}
|
|
72
|
+
export {};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ChecklistJsonixConverter = exports.Severity = void 0;
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const jsonix_intermediate_converter_1 = require("../jsonix-intermediate-converter");
|
|
9
|
+
var StatusMapping;
|
|
10
|
+
(function (StatusMapping) {
|
|
11
|
+
StatusMapping["NotAFinding"] = "Passed";
|
|
12
|
+
StatusMapping["Open"] = "Failed";
|
|
13
|
+
StatusMapping["Not_Applicable"] = "Not Applicable";
|
|
14
|
+
StatusMapping["Not_Reviewed"] = "Not Reviewed";
|
|
15
|
+
})(StatusMapping || (StatusMapping = {}));
|
|
16
|
+
var Severity;
|
|
17
|
+
(function (Severity) {
|
|
18
|
+
Severity["Empty"] = "";
|
|
19
|
+
Severity["High"] = "high";
|
|
20
|
+
Severity["Low"] = "low";
|
|
21
|
+
Severity["Medium"] = "medium";
|
|
22
|
+
})(Severity = exports.Severity || (exports.Severity = {}));
|
|
23
|
+
class ChecklistJsonixConverter extends jsonix_intermediate_converter_1.JsonixIntermediateConverter {
|
|
24
|
+
getValueFromAttributeName(data, tag) {
|
|
25
|
+
let keyName = 'vulnattribute';
|
|
26
|
+
let dataName = 'attributedata';
|
|
27
|
+
if (data.every((o) => 'sidname' in o)) {
|
|
28
|
+
keyName = 'sidname';
|
|
29
|
+
dataName = 'siddata';
|
|
30
|
+
}
|
|
31
|
+
const results = data.filter((attribute) => {
|
|
32
|
+
return lodash_1.default.get(attribute, keyName) == tag;
|
|
33
|
+
});
|
|
34
|
+
return results.map((result) => lodash_1.default.get(result, dataName)).join('; ');
|
|
35
|
+
}
|
|
36
|
+
toIntermediateObject(jsonixData) {
|
|
37
|
+
const asset = {
|
|
38
|
+
role: lodash_1.default.get(jsonixData, 'value.asset.role'),
|
|
39
|
+
assettype: lodash_1.default.get(jsonixData, 'value.asset.assettype'),
|
|
40
|
+
hostname: lodash_1.default.get(jsonixData, 'value.asset.hostname'),
|
|
41
|
+
hostip: lodash_1.default.get(jsonixData, 'value.asset.hostip'),
|
|
42
|
+
hostmac: lodash_1.default.get(jsonixData, 'value.asset.hostmac'),
|
|
43
|
+
hostfqdn: lodash_1.default.get(jsonixData, 'value.asset.hostfqdn'),
|
|
44
|
+
marking: lodash_1.default.get(jsonixData, 'value.asset.marking'),
|
|
45
|
+
targetcomment: lodash_1.default.get(jsonixData, 'value.asset.targetcomment'),
|
|
46
|
+
techarea: lodash_1.default.get(jsonixData, 'value.asset.techarea'),
|
|
47
|
+
targetkey: lodash_1.default.get(jsonixData, 'value.asset.targetkey'),
|
|
48
|
+
webordatabase: lodash_1.default.get(jsonixData, 'value.asset.webordatabase'),
|
|
49
|
+
webdbsite: lodash_1.default.get(jsonixData, 'value.asset.webdbsite'),
|
|
50
|
+
webdbinstance: lodash_1.default.get(jsonixData, 'value.asset.webdbinstance')
|
|
51
|
+
};
|
|
52
|
+
const rawStigs = lodash_1.default.get(jsonixData, 'value.stigs.istig');
|
|
53
|
+
const stigs = [];
|
|
54
|
+
for (const stig of rawStigs) {
|
|
55
|
+
const stigInfo = lodash_1.default.get(stig, 'stiginfo.sidata');
|
|
56
|
+
const header = {
|
|
57
|
+
version: this.getValueFromAttributeName(stigInfo, 'version'),
|
|
58
|
+
classification: this.getValueFromAttributeName(stigInfo, 'classification'),
|
|
59
|
+
customname: this.getValueFromAttributeName(stigInfo, 'customname'),
|
|
60
|
+
stigid: this.getValueFromAttributeName(stigInfo, 'stigid'),
|
|
61
|
+
description: this.getValueFromAttributeName(stigInfo, 'description'),
|
|
62
|
+
filename: this.getValueFromAttributeName(stigInfo, 'filename'),
|
|
63
|
+
releaseinfo: this.getValueFromAttributeName(stigInfo, 'releaseinfo'),
|
|
64
|
+
title: this.getValueFromAttributeName(stigInfo, 'title'),
|
|
65
|
+
uuid: this.getValueFromAttributeName(stigInfo, 'uuid'),
|
|
66
|
+
notice: this.getValueFromAttributeName(stigInfo, 'notice'),
|
|
67
|
+
source: this.getValueFromAttributeName(stigInfo, 'source')
|
|
68
|
+
};
|
|
69
|
+
const checklistVulns = [];
|
|
70
|
+
const vulns = lodash_1.default.get(stig, 'vuln');
|
|
71
|
+
for (const vuln of vulns) {
|
|
72
|
+
const stigdata = lodash_1.default.get(vuln, 'stigdata');
|
|
73
|
+
const checklistVuln = {
|
|
74
|
+
status: StatusMapping[lodash_1.default.get(vuln, 'status')],
|
|
75
|
+
findingdetails: lodash_1.default.get(vuln, 'findingdetails'),
|
|
76
|
+
comments: lodash_1.default.get(vuln, 'comments'),
|
|
77
|
+
severityoverride: lodash_1.default.get(vuln, 'severityoverride'),
|
|
78
|
+
severityjustification: lodash_1.default.get(vuln, 'severityjustification'),
|
|
79
|
+
vulnNum: this.getValueFromAttributeName(stigdata, 'Vuln_Num'),
|
|
80
|
+
severity: this.getValueFromAttributeName(stigdata, 'Severity'),
|
|
81
|
+
groupTitle: this.getValueFromAttributeName(stigdata, 'Group_Title'),
|
|
82
|
+
ruleId: this.getValueFromAttributeName(stigdata, 'Rule_ID'),
|
|
83
|
+
ruleVersion: this.getValueFromAttributeName(stigdata, 'Rule_Ver'),
|
|
84
|
+
ruleTitle: this.getValueFromAttributeName(stigdata, 'Rule_Title'),
|
|
85
|
+
vulnDiscuss: this.getValueFromAttributeName(stigdata, 'Vuln_Discuss'),
|
|
86
|
+
iaControls: this.getValueFromAttributeName(stigdata, 'IA_Controls'),
|
|
87
|
+
checkContent: this.getValueFromAttributeName(stigdata, 'Check_Content'),
|
|
88
|
+
fixText: this.getValueFromAttributeName(stigdata, 'Fix_Text'),
|
|
89
|
+
falsePositives: this.getValueFromAttributeName(stigdata, 'False_Positives'),
|
|
90
|
+
falseNegatives: this.getValueFromAttributeName(stigdata, 'False_Negatives'),
|
|
91
|
+
documentable: this.getValueFromAttributeName(stigdata, 'Documentable'),
|
|
92
|
+
mitigations: this.getValueFromAttributeName(stigdata, 'Mitigations'),
|
|
93
|
+
potentialImpact: this.getValueFromAttributeName(stigdata, 'Potential_Impact'),
|
|
94
|
+
thirdPartyTools: this.getValueFromAttributeName(stigdata, 'Third_Party_Tools'),
|
|
95
|
+
mitigationControl: this.getValueFromAttributeName(stigdata, 'Mitigation_Control'),
|
|
96
|
+
responsibility: this.getValueFromAttributeName(stigdata, 'Responsibility'),
|
|
97
|
+
securityOverrideGuidance: this.getValueFromAttributeName(stigdata, 'Security_Override_Guidance'),
|
|
98
|
+
checkContentRef: this.getValueFromAttributeName(stigdata, 'Check_Content_Ref'),
|
|
99
|
+
weight: this.getValueFromAttributeName(stigdata, 'Weight'),
|
|
100
|
+
class: this.getValueFromAttributeName(stigdata, 'Class'),
|
|
101
|
+
stigRef: this.getValueFromAttributeName(stigdata, 'STIGRef'),
|
|
102
|
+
targetKey: this.getValueFromAttributeName(stigdata, 'TargetKey'),
|
|
103
|
+
stigUuid: this.getValueFromAttributeName(stigdata, 'STIG_UUID'),
|
|
104
|
+
legacyId: this.getValueFromAttributeName(stigdata, 'LEGACY_ID'),
|
|
105
|
+
cciRef: this.getValueFromAttributeName(stigdata, 'CCI_REF')
|
|
106
|
+
};
|
|
107
|
+
checklistVulns.push(checklistVuln);
|
|
108
|
+
}
|
|
109
|
+
stigs.push({
|
|
110
|
+
header: header,
|
|
111
|
+
vulns: checklistVulns
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
const checklistObject = {
|
|
115
|
+
asset: asset,
|
|
116
|
+
stigs: stigs,
|
|
117
|
+
jsonixData: jsonixData
|
|
118
|
+
};
|
|
119
|
+
return checklistObject;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
exports.ChecklistJsonixConverter = ChecklistJsonixConverter;
|
|
123
|
+
//# sourceMappingURL=checklist-jsonix-converter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checklist-jsonix-converter.js","sourceRoot":"","sources":["../../../src/ckl-mapper/checklist-jsonix-converter.ts"],"names":[],"mappings":";;;;;;AAAA,oDAAuB;AASvB,oFAA6E;AAiE7E,IAAK,aAKJ;AALD,WAAK,aAAa;IAChB,uCAAsB,CAAA;IACtB,gCAAe,CAAA;IACf,kDAAiC,CAAA;IACjC,8CAA6B,CAAA;AAC/B,CAAC,EALI,aAAa,KAAb,aAAa,QAKjB;AAED,IAAY,QAKX;AALD,WAAY,QAAQ;IAClB,sBAAU,CAAA;IACV,yBAAa,CAAA;IACb,uBAAW,CAAA;IACX,6BAAiB,CAAA;AACnB,CAAC,EALW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAKnB;AAED,MAAa,wBAAyB,SAAQ,2DAG7C;IACC,yBAAyB,CACvB,IAAS,EACT,GAAW;QAEX,IAAI,OAAO,GAAG,eAAe,CAAC;QAC9B,IAAI,QAAQ,GAAG,eAAe,CAAC;QAC/B,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,SAAS,IAAI,CAAC,CAAC,EAAE;YACrC,OAAO,GAAG,SAAS,CAAC;YACpB,QAAQ,GAAG,SAAS,CAAC;SACtB;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,SAAY,EAAE,EAAE;YAC3C,OAAO,gBAAC,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,IAAI,GAAG,CAAC;QAC1C,CAAC,CAAC,CAAC;QACH,OAAO,OAAO,CAAC,GAAG,CAAC,CAAC,MAAS,EAAE,EAAE,CAAC,gBAAC,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACxE,CAAC;IAOD,oBAAoB,CAAC,UAAqB;QACxC,MAAM,KAAK,GAAmB;YAC5B,IAAI,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,kBAAkB,CAAC;YAC3C,SAAS,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC;YACrD,QAAQ,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC;YACnD,MAAM,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,oBAAoB,CAAC;YAC/C,OAAO,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC;YACjD,QAAQ,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC;YACnD,OAAO,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,qBAAqB,CAAC;YACjD,aAAa,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;YAC7D,QAAQ,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,sBAAsB,CAAC;YACnD,SAAS,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC;YACrD,aAAa,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;YAC7D,SAAS,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,uBAAuB,CAAC;YACrD,aAAa,EAAE,gBAAC,CAAC,GAAG,CAAC,UAAU,EAAE,2BAA2B,CAAC;SAC9D,CAAC;QAEF,MAAM,QAAQ,GAAY,gBAAC,CAAC,GAAG,CAC7B,UAAU,EACV,mBAAmB,CACE,CAAC;QACxB,MAAM,KAAK,GAAoB,EAAE,CAAC;QAClC,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE;YAC3B,MAAM,QAAQ,GAAa,gBAAC,CAAC,GAAG,CAC9B,IAAI,EACJ,iBAAiB,CACK,CAAC;YACzB,MAAM,MAAM,GAAe;gBACzB,OAAO,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,SAAS,CAAC;gBACpE,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAC5C,QAAQ,EACR,gBAAgB,CAC0B;gBAC5C,UAAU,EAAE,IAAI,CAAC,yBAAyB,CACxC,QAAQ,EACR,YAAY,CACb;gBACD,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,QAAQ,CAAC;gBAClE,WAAW,EAAE,IAAI,CAAC,yBAAyB,CACzC,QAAQ,EACR,aAAa,CACd;gBACD,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,UAAU,CAAC;gBACtE,WAAW,EAAE,IAAI,CAAC,yBAAyB,CACzC,QAAQ,EACR,aAAa,CACd;gBACD,KAAK,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,OAAO,CAAC;gBAChE,IAAI,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,MAAM,CAAC;gBAC9D,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,QAAQ,CAAC;gBAClE,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAS,QAAQ,EAAE,QAAQ,CAAC;aACnE,CAAC;YAEF,MAAM,cAAc,GAAoB,EAAE,CAAC;YAC3C,MAAM,KAAK,GAAW,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;YAC1C,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;gBACxB,MAAM,QAAQ,GAAe,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;gBACrD,MAAM,aAAa,GAAkB;oBACnC,MAAM,EAAE,aAAa,CAAC,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;oBAC5C,cAAc,EAAE,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,gBAAgB,CAAC;oBAC7C,QAAQ,EAAE,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC;oBACjC,gBAAgB,EAAE,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,kBAAkB,CAAC;oBACjD,qBAAqB,EAAE,gBAAC,CAAC,GAAG,CAAC,IAAI,EAAE,uBAAuB,CAAC;oBAC3D,OAAO,EAAE,IAAI,CAAC,yBAAyB,CACrC,QAAQ,EACR,UAAU,CACX;oBACD,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CACtC,QAAQ,EACR,UAAU,CAC6B;oBACzC,UAAU,EAAE,IAAI,CAAC,yBAAyB,CACxC,QAAQ,EACR,aAAa,CACd;oBACD,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAW,QAAQ,EAAE,SAAS,CAAC;oBACrE,WAAW,EAAE,IAAI,CAAC,yBAAyB,CACzC,QAAQ,EACR,UAAU,CACX;oBACD,SAAS,EAAE,IAAI,CAAC,yBAAyB,CACvC,QAAQ,EACR,YAAY,CACb;oBACD,WAAW,EAAE,IAAI,CAAC,yBAAyB,CACzC,QAAQ,EACR,cAAc,CACf;oBACD,UAAU,EAAE,IAAI,CAAC,yBAAyB,CACxC,QAAQ,EACR,aAAa,CACd;oBACD,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAC1C,QAAQ,EACR,eAAe,CAChB;oBACD,OAAO,EAAE,IAAI,CAAC,yBAAyB,CACrC,QAAQ,EACR,UAAU,CACX;oBACD,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAC5C,QAAQ,EACR,iBAAiB,CAClB;oBACD,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAC5C,QAAQ,EACR,iBAAiB,CAClB;oBACD,YAAY,EAAE,IAAI,CAAC,yBAAyB,CAC1C,QAAQ,EACR,cAAc,CACO;oBACvB,WAAW,EAAE,IAAI,CAAC,yBAAyB,CACzC,QAAQ,EACR,aAAa,CACd;oBACD,eAAe,EAAE,IAAI,CAAC,yBAAyB,CAC7C,QAAQ,EACR,kBAAkB,CACnB;oBACD,eAAe,EAAE,IAAI,CAAC,yBAAyB,CAC7C,QAAQ,EACR,mBAAmB,CACpB;oBACD,iBAAiB,EAAE,IAAI,CAAC,yBAAyB,CAC/C,QAAQ,EACR,oBAAoB,CACrB;oBACD,cAAc,EAAE,IAAI,CAAC,yBAAyB,CAC5C,QAAQ,EACR,gBAAgB,CACjB;oBACD,wBAAwB,EAAE,IAAI,CAAC,yBAAyB,CACtD,QAAQ,EACR,4BAA4B,CAC7B;oBACD,eAAe,EAAE,IAAI,CAAC,yBAAyB,CAC7C,QAAQ,EACR,mBAAmB,CACpB;oBACD,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAW,QAAQ,EAAE,QAAQ,CAAC;oBACpE,KAAK,EAAE,IAAI,CAAC,yBAAyB,CACnC,QAAQ,EACR,OAAO,CAC6B;oBACtC,OAAO,EAAE,IAAI,CAAC,yBAAyB,CACrC,QAAQ,EACR,SAAS,CACV;oBACD,SAAS,EAAE,IAAI,CAAC,yBAAyB,CACvC,QAAQ,EACR,WAAW,CACZ;oBACD,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CACtC,QAAQ,EACR,WAAW,CACZ;oBACD,QAAQ,EAAE,IAAI,CAAC,yBAAyB,CACtC,QAAQ,EACR,WAAW,CACZ;oBACD,MAAM,EAAE,IAAI,CAAC,yBAAyB,CAAW,QAAQ,EAAE,SAAS,CAAC;iBACtE,CAAC;gBACF,cAAc,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;aACpC;YAED,KAAK,CAAC,IAAI,CAAC;gBACT,MAAM,EAAE,MAAM;gBACd,KAAK,EAAE,cAAc;aACtB,CAAC,CAAC;SACJ;QAED,MAAM,eAAe,GAAoB;YACvC,KAAK,EAAE,KAAK;YACZ,KAAK,EAAE,KAAK;YACZ,UAAU,EAAE,UAAU;SACvB,CAAC;QACF,OAAO,eAAe,CAAC;IACzB,CAAC;CACF;AA5MD,4DA4MC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ExecJSON } from 'inspecjs';
|
|
2
|
+
import { Checklist } from '../../types/checklistJsonix';
|
|
3
|
+
import { BaseConverter, ILookupPath, MappedTransform } from '../base-converter';
|
|
4
|
+
import { ChecklistJsonixConverter, ChecklistObject } from './checklist-jsonix-converter';
|
|
5
|
+
export declare class ChecklistResults extends ChecklistJsonixConverter {
|
|
6
|
+
checklistXml: string;
|
|
7
|
+
jsonixData: Checklist;
|
|
8
|
+
checklistObject: ChecklistObject;
|
|
9
|
+
withRaw: boolean;
|
|
10
|
+
constructor(checklistXml: string, withRaw?: boolean);
|
|
11
|
+
toHdf(): ExecJSON.Execution;
|
|
12
|
+
}
|
|
13
|
+
export declare class ChecklistMapper extends BaseConverter {
|
|
14
|
+
withRaw: boolean;
|
|
15
|
+
mappings: MappedTransform<ExecJSON.Execution & {
|
|
16
|
+
passthrough: unknown;
|
|
17
|
+
}, ILookupPath>;
|
|
18
|
+
constructor(checklistObject: ChecklistObject, withRaw?: boolean);
|
|
19
|
+
}
|
|
@@ -0,0 +1,292 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
25
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.ChecklistMapper = exports.ChecklistResults = void 0;
|
|
30
|
+
const inspecjs_1 = require("inspecjs");
|
|
31
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
32
|
+
const package_json_1 = require("../../package.json");
|
|
33
|
+
const base_converter_1 = require("../base-converter");
|
|
34
|
+
const CciNistMapping_1 = require("../mappings/CciNistMapping");
|
|
35
|
+
const global_1 = require("../utils/global");
|
|
36
|
+
const checklist_jsonix_converter_1 = require("./checklist-jsonix-converter");
|
|
37
|
+
const checklistMapping = __importStar(require("./jsonixMapping"));
|
|
38
|
+
var ImpactMapping;
|
|
39
|
+
(function (ImpactMapping) {
|
|
40
|
+
ImpactMapping[ImpactMapping["high"] = 0.7] = "high";
|
|
41
|
+
ImpactMapping[ImpactMapping["medium"] = 0.5] = "medium";
|
|
42
|
+
ImpactMapping[ImpactMapping["low"] = 0.3] = "low";
|
|
43
|
+
})(ImpactMapping || (ImpactMapping = {}));
|
|
44
|
+
const CCI_NIST_MAPPING = new CciNistMapping_1.CciNistMapping();
|
|
45
|
+
function cciRef(input) {
|
|
46
|
+
return input.split('; ');
|
|
47
|
+
}
|
|
48
|
+
function nistTag(input) {
|
|
49
|
+
const identifiers = cciRef(input);
|
|
50
|
+
return CCI_NIST_MAPPING.nistFilter(identifiers, global_1.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS);
|
|
51
|
+
}
|
|
52
|
+
function findSeverity(vuln) {
|
|
53
|
+
if (vuln.severityoverride) {
|
|
54
|
+
return vuln.severityoverride;
|
|
55
|
+
}
|
|
56
|
+
return vuln.severity;
|
|
57
|
+
}
|
|
58
|
+
function transformImpact(vuln) {
|
|
59
|
+
if (vuln.status === 'Not Applicable')
|
|
60
|
+
return 0.0;
|
|
61
|
+
const severity = findSeverity(vuln);
|
|
62
|
+
const impact = ImpactMapping[severity.toLowerCase()];
|
|
63
|
+
if (!impact)
|
|
64
|
+
throw new Error(`Severity "${severity}" does not match low, medium, or high, please check severity for ${vuln.vulnNum}`);
|
|
65
|
+
return impact;
|
|
66
|
+
}
|
|
67
|
+
function getStatus(input) {
|
|
68
|
+
const status = input.toLowerCase();
|
|
69
|
+
switch (status) {
|
|
70
|
+
case 'notafinding':
|
|
71
|
+
case 'passed':
|
|
72
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Passed;
|
|
73
|
+
case 'open':
|
|
74
|
+
case 'failed':
|
|
75
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Failed;
|
|
76
|
+
case 'error':
|
|
77
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Error;
|
|
78
|
+
default:
|
|
79
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Skipped;
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
function parseFindingDetails(input) {
|
|
83
|
+
const findings = input;
|
|
84
|
+
const results = [];
|
|
85
|
+
const statusSet = ['passed', 'failed', 'skipped', 'error'];
|
|
86
|
+
for (const finding of findings) {
|
|
87
|
+
if (!finding.code_desc) {
|
|
88
|
+
results.push({
|
|
89
|
+
status: finding.status,
|
|
90
|
+
code_desc: finding.code_desc,
|
|
91
|
+
start_time: finding.start_time
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
for (const details of finding.code_desc.split('--------------------------------\n')) {
|
|
96
|
+
let code_desc;
|
|
97
|
+
let status;
|
|
98
|
+
let message = '';
|
|
99
|
+
const [findingStatus, descAndMessage] = details.split(/\n(.*)/s, 2);
|
|
100
|
+
if (statusSet.includes(findingStatus)) {
|
|
101
|
+
const indexOfExpected = descAndMessage.indexOf('\nexpected');
|
|
102
|
+
if (indexOfExpected > 0) {
|
|
103
|
+
code_desc = descAndMessage.slice(0, indexOfExpected - 1);
|
|
104
|
+
message = descAndMessage.slice(indexOfExpected);
|
|
105
|
+
status = getStatus(findingStatus);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
code_desc = descAndMessage;
|
|
109
|
+
status = getStatus(findingStatus);
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
code_desc = details;
|
|
114
|
+
status = finding.status;
|
|
115
|
+
}
|
|
116
|
+
results.push({
|
|
117
|
+
code_desc,
|
|
118
|
+
status,
|
|
119
|
+
message: message ? message : null,
|
|
120
|
+
start_time: ''
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
return results;
|
|
126
|
+
}
|
|
127
|
+
class ChecklistResults extends checklist_jsonix_converter_1.ChecklistJsonixConverter {
|
|
128
|
+
constructor(checklistXml, withRaw = false) {
|
|
129
|
+
super(checklistXml);
|
|
130
|
+
this.checklistXml = checklistXml;
|
|
131
|
+
this.withRaw = withRaw;
|
|
132
|
+
this.jsonixData = super.toJsonix(checklistMapping.jsonixMapping);
|
|
133
|
+
this.checklistObject = super.toIntermediateObject(this.jsonixData);
|
|
134
|
+
}
|
|
135
|
+
toHdf() {
|
|
136
|
+
var _a;
|
|
137
|
+
const numberOfStigs = this.checklistObject.stigs.length;
|
|
138
|
+
if (numberOfStigs === 1) {
|
|
139
|
+
const defaultChecklist = new ChecklistMapper(this.checklistObject);
|
|
140
|
+
return defaultChecklist.toHdf();
|
|
141
|
+
}
|
|
142
|
+
else {
|
|
143
|
+
const checklist = new ChecklistMapper(this.checklistObject);
|
|
144
|
+
const original = checklist.toHdf();
|
|
145
|
+
const parentProfileName = 'Parent Profile';
|
|
146
|
+
const parent_profile = {
|
|
147
|
+
name: parentProfileName,
|
|
148
|
+
version: package_json_1.version,
|
|
149
|
+
supports: [],
|
|
150
|
+
attributes: [],
|
|
151
|
+
groups: [],
|
|
152
|
+
depends: [],
|
|
153
|
+
controls: [],
|
|
154
|
+
sha256: ''
|
|
155
|
+
};
|
|
156
|
+
for (const profile of original.profiles) {
|
|
157
|
+
(_a = parent_profile.depends) === null || _a === void 0 ? void 0 : _a.push({ name: profile.name });
|
|
158
|
+
parent_profile.controls.push(...profile.controls);
|
|
159
|
+
profile.parent_profile = parentProfileName;
|
|
160
|
+
profile.sha256 = (0, base_converter_1.generateHash)(JSON.stringify(profile));
|
|
161
|
+
}
|
|
162
|
+
parent_profile.sha256 = (0, base_converter_1.generateHash)(JSON.stringify(parent_profile));
|
|
163
|
+
original.profiles.unshift(parent_profile);
|
|
164
|
+
return original;
|
|
165
|
+
}
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
exports.ChecklistResults = ChecklistResults;
|
|
169
|
+
class ChecklistMapper extends base_converter_1.BaseConverter {
|
|
170
|
+
constructor(checklistObject, withRaw = false) {
|
|
171
|
+
super(checklistObject);
|
|
172
|
+
this.mappings = {
|
|
173
|
+
platform: {
|
|
174
|
+
name: 'Heimdall Tools',
|
|
175
|
+
release: package_json_1.version
|
|
176
|
+
},
|
|
177
|
+
version: package_json_1.version,
|
|
178
|
+
statistics: {},
|
|
179
|
+
profiles: [
|
|
180
|
+
{
|
|
181
|
+
path: 'stigs',
|
|
182
|
+
name: { path: 'header.title' },
|
|
183
|
+
version: { path: 'header.version' },
|
|
184
|
+
title: { path: 'header.title' },
|
|
185
|
+
summary: { path: 'header.description' },
|
|
186
|
+
license: { path: 'header.notice' },
|
|
187
|
+
supports: [],
|
|
188
|
+
attributes: [],
|
|
189
|
+
groups: [],
|
|
190
|
+
status: 'loaded',
|
|
191
|
+
controls: [
|
|
192
|
+
{
|
|
193
|
+
path: 'vulns',
|
|
194
|
+
key: 'id',
|
|
195
|
+
tags: {
|
|
196
|
+
gtitle: { path: 'groupTitle' },
|
|
197
|
+
rid: { path: 'ruleId' },
|
|
198
|
+
gid: { path: 'vulnNum' },
|
|
199
|
+
stig_id: { path: 'ruleVersion' },
|
|
200
|
+
cci: {
|
|
201
|
+
path: 'cciRef',
|
|
202
|
+
transformer: cciRef
|
|
203
|
+
},
|
|
204
|
+
nist: {
|
|
205
|
+
path: 'cciRef',
|
|
206
|
+
transformer: nistTag
|
|
207
|
+
},
|
|
208
|
+
weight: { path: 'weight' },
|
|
209
|
+
transformer: (input) => {
|
|
210
|
+
const tags = [
|
|
211
|
+
['IA Controls', 'iaControls'],
|
|
212
|
+
['Legacy ID', 'legacyId'],
|
|
213
|
+
['False Positives', 'falsePositives'],
|
|
214
|
+
['False Negatives', 'falseNegatives'],
|
|
215
|
+
['Mitigations', 'mitigations'],
|
|
216
|
+
['Mitigation Controls', 'mitigationControl'],
|
|
217
|
+
['Potential Impact', 'potentialImpact'],
|
|
218
|
+
['Responsibility', 'responsibility'],
|
|
219
|
+
['STIGRef', 'stigRef'],
|
|
220
|
+
['Security Override Guidance', 'securityOverrideGuidance'],
|
|
221
|
+
['Severity Justification', 'severityJustification']
|
|
222
|
+
];
|
|
223
|
+
const fullTags = {};
|
|
224
|
+
for (const [key, path] of tags) {
|
|
225
|
+
const tagValue = lodash_1.default.get(input, path);
|
|
226
|
+
if (tagValue && tagValue !== '; ') {
|
|
227
|
+
fullTags[key] = tagValue;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
return fullTags;
|
|
231
|
+
}
|
|
232
|
+
},
|
|
233
|
+
refs: [],
|
|
234
|
+
source_location: {},
|
|
235
|
+
title: { path: 'ruleTitle' },
|
|
236
|
+
id: { path: 'vulnNum' },
|
|
237
|
+
desc: { path: 'vulnDiscuss' },
|
|
238
|
+
descriptions: [
|
|
239
|
+
{
|
|
240
|
+
data: { path: 'checkContent' },
|
|
241
|
+
label: 'check'
|
|
242
|
+
},
|
|
243
|
+
{
|
|
244
|
+
data: { path: 'fixText' },
|
|
245
|
+
label: 'fix'
|
|
246
|
+
},
|
|
247
|
+
{
|
|
248
|
+
data: { path: 'comments' },
|
|
249
|
+
label: 'comments'
|
|
250
|
+
}
|
|
251
|
+
],
|
|
252
|
+
impact: {
|
|
253
|
+
transformer: (vulnerability) => transformImpact(vulnerability)
|
|
254
|
+
},
|
|
255
|
+
code: {
|
|
256
|
+
transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
|
|
257
|
+
},
|
|
258
|
+
results: [
|
|
259
|
+
{
|
|
260
|
+
arrayTransformer: parseFindingDetails,
|
|
261
|
+
status: {
|
|
262
|
+
path: 'status',
|
|
263
|
+
transformer: getStatus
|
|
264
|
+
},
|
|
265
|
+
code_desc: { path: 'findingdetails' },
|
|
266
|
+
start_time: ''
|
|
267
|
+
}
|
|
268
|
+
]
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
sha256: ''
|
|
272
|
+
}
|
|
273
|
+
],
|
|
274
|
+
passthrough: {
|
|
275
|
+
transformer: (data) => {
|
|
276
|
+
return {
|
|
277
|
+
...{
|
|
278
|
+
checklist: {
|
|
279
|
+
asset: data.asset,
|
|
280
|
+
stigs: data.stigs
|
|
281
|
+
}
|
|
282
|
+
},
|
|
283
|
+
...(this.withRaw && { raw: data.jsonixData })
|
|
284
|
+
};
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
};
|
|
288
|
+
this.withRaw = withRaw;
|
|
289
|
+
}
|
|
290
|
+
}
|
|
291
|
+
exports.ChecklistMapper = ChecklistMapper;
|
|
292
|
+
//# sourceMappingURL=checklist-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checklist-mapper.js","sourceRoot":"","sources":["../../../src/ckl-mapper/checklist-mapper.ts"],"names":[],"mappings":"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"}
|