@mitre/hdf-converters 2.5.0 → 2.6.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/lib/data/aws-config-mapping.json +638 -0
- package/lib/data/cci-nist-mapping.json +3553 -0
- package/lib/data/converters/csv2json.d.ts +1 -0
- package/lib/data/converters/csv2json.js +36 -0
- package/lib/data/converters/csv2json.js.map +1 -0
- package/lib/data/converters/csv2json.ts +36 -0
- package/lib/data/converters/xml2json.d.ts +14 -0
- package/lib/data/converters/xml2json.js +42 -0
- package/lib/data/converters/xml2json.js.map +1 -0
- package/lib/data/converters/xml2json.ts +57 -0
- package/lib/data/cwe-nist-mapping.json +1416 -0
- package/lib/data/nessus-plugins-nist-mapping.json +644 -0
- package/lib/data/nikto-nist-mapping.json +53648 -0
- package/lib/data/owasp-nist-mapping.json +72 -0
- package/lib/data/scoutsuite-nist-mapping.json +558 -0
- package/lib/index.d.ts +3 -0
- package/lib/index.js +3 -0
- package/lib/index.js.map +1 -1
- package/lib/package.json +18 -9
- package/lib/src/asff-mapper.d.ts +15 -0
- package/lib/src/asff-mapper.js +508 -0
- package/lib/src/asff-mapper.js.map +1 -0
- package/lib/src/base-converter.d.ts +3 -7
- package/lib/src/base-converter.js +27 -9
- package/lib/src/base-converter.js.map +1 -1
- package/lib/src/burpsuite-mapper.js +6 -8
- package/lib/src/burpsuite-mapper.js.map +1 -1
- package/lib/src/converters-from-hdf/asff/asff-types.d.ts +88 -0
- package/lib/src/converters-from-hdf/asff/asff-types.js +3 -0
- package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -0
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +31 -0
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +132 -0
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -0
- package/lib/src/converters-from-hdf/asff/transformers.d.ts +44 -0
- package/lib/src/converters-from-hdf/asff/transformers.js +397 -0
- package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -0
- package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +24 -0
- package/lib/src/converters-from-hdf/reverse-base-converter.js +111 -0
- package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -0
- package/lib/src/dbprotect-mapper.js +1 -1
- package/lib/src/dbprotect-mapper.js.map +1 -1
- package/lib/src/jfrog-xray-mapper.js +3 -5
- package/lib/src/jfrog-xray-mapper.js.map +1 -1
- package/lib/src/mappings/AwsConfigMapping.d.ts +6 -0
- package/lib/src/mappings/AwsConfigMapping.js +39 -0
- package/lib/src/mappings/AwsConfigMapping.js.map +1 -0
- package/lib/src/mappings/AwsConfigMappingItem.d.ts +7 -0
- package/lib/src/mappings/AwsConfigMappingItem.js +28 -0
- package/lib/src/mappings/AwsConfigMappingItem.js.map +1 -0
- package/lib/src/mappings/CciNistMapping.d.ts +1 -1
- package/lib/src/mappings/CciNistMapping.js +5 -24
- package/lib/src/mappings/CciNistMapping.js.map +1 -1
- package/lib/src/mappings/CweNistMapping.d.ts +8 -1
- package/lib/src/mappings/CweNistMapping.js +4 -27
- package/lib/src/mappings/CweNistMapping.js.map +1 -1
- package/lib/src/mappings/CweNistMappingItem.d.ts +2 -1
- package/lib/src/mappings/CweNistMappingItem.js +9 -9
- package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
- package/lib/src/mappings/NessusPluginsNistMapping.d.ts +7 -1
- package/lib/src/mappings/NessusPluginsNistMapping.js +4 -8
- package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
- package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +2 -1
- package/lib/src/mappings/NessusPluginsNistMappingItem.js +16 -6
- package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
- package/lib/src/mappings/NiktoNistMapping.d.ts +7 -1
- package/lib/src/mappings/NiktoNistMapping.js +4 -8
- package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
- package/lib/src/mappings/NiktoNistMappingItem.d.ts +2 -1
- package/lib/src/mappings/NiktoNistMappingItem.js +7 -7
- package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
- package/lib/src/mappings/OwaspNistMapping.d.ts +8 -1
- package/lib/src/mappings/OwaspNistMapping.js +4 -8
- package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
- package/lib/src/mappings/OwaspNistMappingItem.d.ts +2 -1
- package/lib/src/mappings/OwaspNistMappingItem.js +9 -9
- package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
- package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +5 -1
- package/lib/src/mappings/ScoutsuiteNistMapping.js +4 -10
- package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
- package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +2 -1
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js +4 -4
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
- package/lib/src/nessus-mapper.js +9 -12
- package/lib/src/nessus-mapper.js.map +1 -1
- package/lib/src/netsparker-mapper.js +4 -7
- package/lib/src/netsparker-mapper.js.map +1 -1
- package/lib/src/nikto-mapper.js +1 -3
- package/lib/src/nikto-mapper.js.map +1 -1
- package/lib/src/sarif-mapper.js +1 -3
- package/lib/src/sarif-mapper.js.map +1 -1
- package/lib/src/scoutsuite-mapper.js +2 -4
- package/lib/src/scoutsuite-mapper.js.map +1 -1
- package/lib/src/snyk-mapper.js +2 -7
- package/lib/src/snyk-mapper.js.map +1 -1
- package/lib/src/sonarqube-mapper.d.ts +54 -0
- package/lib/src/sonarqube-mapper.js +196 -0
- package/lib/src/sonarqube-mapper.js.map +1 -0
- package/lib/src/xccdf-results-mapper.js +4 -6
- package/lib/src/xccdf-results-mapper.js.map +1 -1
- package/lib/src/zap-mapper.d.ts +1 -1
- package/lib/src/zap-mapper.js +8 -5
- package/lib/src/zap-mapper.js.map +1 -1
- package/package.json +18 -9
- package/lib/data/U_CCI_List.xml +0 -38403
- package/lib/data/aws-config-mapping.csv +0 -107
- package/lib/data/cwe-nist-mapping.csv +0 -203
- package/lib/data/nessus-plugins-nist-mapping.csv +0 -108
- package/lib/data/nikto-nist-mapping.csv +0 -8942
- package/lib/data/owasp-nist-mapping.csv +0 -11
- package/lib/data/scoutsuite-nist-mapping.csv +0 -140
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,36 @@
|
|
|
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
|
+
const csv2json_1 = __importDefault(require("csv2json"));
|
|
7
|
+
const fs_1 = require("fs");
|
|
8
|
+
const path_1 = __importDefault(require("path"));
|
|
9
|
+
const files = [
|
|
10
|
+
'aws-config-mapping.csv',
|
|
11
|
+
'cwe-nist-mapping.csv',
|
|
12
|
+
'nessus-plugins-nist-mapping.csv',
|
|
13
|
+
'nikto-nist-mapping.csv',
|
|
14
|
+
'owasp-nist-mapping.csv',
|
|
15
|
+
'scoutsuite-nist-mapping.csv'
|
|
16
|
+
];
|
|
17
|
+
try {
|
|
18
|
+
const pathToFiles = process.argv[2];
|
|
19
|
+
try {
|
|
20
|
+
const pathToOutput = process.argv[3];
|
|
21
|
+
files.forEach((file) => {
|
|
22
|
+
(0, fs_1.createReadStream)(path_1.default.join(pathToFiles, file))
|
|
23
|
+
.pipe((0, csv2json_1.default)())
|
|
24
|
+
.pipe((0, fs_1.createWriteStream)(path_1.default.join(pathToOutput, file.replace('.csv', '.json'))));
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
catch {
|
|
28
|
+
console.error(`You must provide the path to an output folder.`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
console.error(`You must provide the path to a folder containing ${files.join(', ')}.`);
|
|
34
|
+
process.exit(1);
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=csv2json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"csv2json.js","sourceRoot":"","sources":["../../../data/converters/csv2json.ts"],"names":[],"mappings":";;;;;AAAA,wDAAgC;AAChC,2BAAuD;AACvD,gDAAwB;AAExB,MAAM,KAAK,GAAG;IACZ,wBAAwB;IACxB,sBAAsB;IACtB,iCAAiC;IACjC,wBAAwB;IACxB,wBAAwB;IACxB,6BAA6B;CAC9B,CAAC;AAEF,IAAI;IACF,MAAM,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI;QACF,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAA,qBAAgB,EAAC,cAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;iBAC3C,IAAI,CAAC,IAAA,kBAAQ,GAAE,CAAC;iBAChB,IAAI,CACH,IAAA,sBAAiB,EACf,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CACvD,CACF,CAAC;QACN,CAAC,CAAC,CAAC;KACJ;IAAC,MAAM;QACN,OAAO,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;KACjB;CACF;AAAC,MAAM;IACN,OAAO,CAAC,KAAK,CACX,oDAAoD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CACxE,CAAC;IACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;CACjB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import csv2json from 'csv2json';
|
|
2
|
+
import {createReadStream, createWriteStream} from 'fs';
|
|
3
|
+
import path from 'path';
|
|
4
|
+
|
|
5
|
+
const files = [
|
|
6
|
+
'aws-config-mapping.csv',
|
|
7
|
+
'cwe-nist-mapping.csv',
|
|
8
|
+
'nessus-plugins-nist-mapping.csv',
|
|
9
|
+
'nikto-nist-mapping.csv',
|
|
10
|
+
'owasp-nist-mapping.csv',
|
|
11
|
+
'scoutsuite-nist-mapping.csv'
|
|
12
|
+
];
|
|
13
|
+
|
|
14
|
+
try {
|
|
15
|
+
const pathToFiles = process.argv[2];
|
|
16
|
+
try {
|
|
17
|
+
const pathToOutput = process.argv[3];
|
|
18
|
+
files.forEach((file) => {
|
|
19
|
+
createReadStream(path.join(pathToFiles, file))
|
|
20
|
+
.pipe(csv2json())
|
|
21
|
+
.pipe(
|
|
22
|
+
createWriteStream(
|
|
23
|
+
path.join(pathToOutput, file.replace('.csv', '.json'))
|
|
24
|
+
)
|
|
25
|
+
);
|
|
26
|
+
});
|
|
27
|
+
} catch {
|
|
28
|
+
console.error(`You must provide the path to an output folder.`);
|
|
29
|
+
process.exit(1);
|
|
30
|
+
}
|
|
31
|
+
} catch {
|
|
32
|
+
console.error(
|
|
33
|
+
`You must provide the path to a folder containing ${files.join(', ')}.`
|
|
34
|
+
);
|
|
35
|
+
process.exit(1);
|
|
36
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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
|
+
const fs_1 = __importDefault(require("fs"));
|
|
7
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
8
|
+
const xml2js_1 = __importDefault(require("xml2js"));
|
|
9
|
+
const parser = new xml2js_1.default.Parser();
|
|
10
|
+
const pathToInfile = process.argv[2];
|
|
11
|
+
const pathToOutfile = process.argv[3];
|
|
12
|
+
if (!pathToInfile || !pathToOutfile) {
|
|
13
|
+
console.error(`You must provide the path to botn an input and ouput file.`);
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
fs_1.default.readFile(pathToInfile, function (readFileError, data) {
|
|
17
|
+
if (readFileError) {
|
|
18
|
+
console.error(`Failed to read ${pathToInfile}: ${readFileError}`);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
parser.parseString(data, (parseFileError, converted) => {
|
|
22
|
+
if (parseFileError) {
|
|
23
|
+
console.error(`Failed to parse ${pathToInfile}: ${parseFileError}`);
|
|
24
|
+
}
|
|
25
|
+
else {
|
|
26
|
+
const result = {};
|
|
27
|
+
converted.cci_list.cci_items[0].cci_item.forEach((cciItem) => {
|
|
28
|
+
const newestReference = lodash_1.default.maxBy(cciItem.references[0].reference, '$.version');
|
|
29
|
+
if (newestReference) {
|
|
30
|
+
result[cciItem.$.id] = newestReference.$.index;
|
|
31
|
+
}
|
|
32
|
+
else {
|
|
33
|
+
console.error(`No NIST Controls found for ${cciItem.$.id}`);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
fs_1.default.writeFileSync(pathToOutfile, JSON.stringify(result));
|
|
37
|
+
}
|
|
38
|
+
});
|
|
39
|
+
}
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
//# sourceMappingURL=xml2json.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xml2json.js","sourceRoot":"","sources":["../../../data/converters/xml2json.ts"],"names":[],"mappings":";;;;;AAAA,4CAAoB;AACpB,oDAAuB;AACvB,oDAA4B;AAE5B,MAAM,MAAM,GAAG,IAAI,gBAAM,CAAC,MAAM,EAAE,CAAC;AACnC,MAAM,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACrC,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAkBtC,IAAI,CAAC,YAAY,IAAI,CAAC,aAAa,EAAE;IACnC,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;CAC7E;KAAM;IACL,YAAE,CAAC,QAAQ,CAAC,YAAY,EAAE,UAAU,aAAa,EAAE,IAAI;QACrD,IAAI,aAAa,EAAE;YACjB,OAAO,CAAC,KAAK,CAAC,kBAAkB,YAAY,KAAK,aAAa,EAAE,CAAC,CAAC;SACnE;aAAM;YAEL,MAAM,CAAC,WAAW,CAAC,IAAI,EAAE,CAAC,cAAmB,EAAE,SAAmB,EAAE,EAAE;gBACpE,IAAI,cAAc,EAAE;oBAClB,OAAO,CAAC,KAAK,CAAC,mBAAmB,YAAY,KAAK,cAAc,EAAE,CAAC,CAAC;iBACrE;qBAAM;oBAEL,MAAM,MAAM,GAA2B,EAAE,CAAC;oBAE1C,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;wBAE3D,MAAM,eAAe,GAAG,gBAAC,CAAC,KAAK,CAC7B,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,EAC/B,WAAW,CACZ,CAAC;wBACF,IAAI,eAAe,EAAE;4BACnB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,KAAK,CAAC;yBAChD;6BAAM;4BACL,OAAO,CAAC,KAAK,CAAC,8BAA8B,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;yBAC7D;oBACH,CAAC,CAAC,CAAC;oBACH,YAAE,CAAC,aAAa,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;iBACzD;YACH,CAAC,CAAC,CAAC;SACJ;IACH,CAAC,CAAC,CAAC;CACJ"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import fs from 'fs';
|
|
2
|
+
import _ from 'lodash';
|
|
3
|
+
import xml2js from 'xml2js';
|
|
4
|
+
|
|
5
|
+
const parser = new xml2js.Parser();
|
|
6
|
+
const pathToInfile = process.argv[2];
|
|
7
|
+
const pathToOutfile = process.argv[3];
|
|
8
|
+
|
|
9
|
+
// XML Structure after conversion
|
|
10
|
+
export interface ICCIList {
|
|
11
|
+
cci_list: {
|
|
12
|
+
cci_items: {
|
|
13
|
+
cci_item: {
|
|
14
|
+
$: Record<string, string>;
|
|
15
|
+
references: {
|
|
16
|
+
reference: {
|
|
17
|
+
$: Record<string, string>;
|
|
18
|
+
}[];
|
|
19
|
+
}[];
|
|
20
|
+
}[];
|
|
21
|
+
}[];
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
if (!pathToInfile || !pathToOutfile) {
|
|
26
|
+
console.error(`You must provide the path to botn an input and ouput file.`);
|
|
27
|
+
} else {
|
|
28
|
+
fs.readFile(pathToInfile, function (readFileError, data) {
|
|
29
|
+
if (readFileError) {
|
|
30
|
+
console.error(`Failed to read ${pathToInfile}: ${readFileError}`);
|
|
31
|
+
} else {
|
|
32
|
+
// Parse XML to JS Object
|
|
33
|
+
parser.parseString(data, (parseFileError: any, converted: ICCIList) => {
|
|
34
|
+
if (parseFileError) {
|
|
35
|
+
console.error(`Failed to parse ${pathToInfile}: ${parseFileError}`);
|
|
36
|
+
} else {
|
|
37
|
+
// Stores our CCI->NIST mapping
|
|
38
|
+
const result: Record<string, string> = {};
|
|
39
|
+
// For all cci items
|
|
40
|
+
converted.cci_list.cci_items[0].cci_item.forEach((cciItem) => {
|
|
41
|
+
// Get the latest reference
|
|
42
|
+
const newestReference = _.maxBy(
|
|
43
|
+
cciItem.references[0].reference,
|
|
44
|
+
'$.version'
|
|
45
|
+
);
|
|
46
|
+
if (newestReference) {
|
|
47
|
+
result[cciItem.$.id] = newestReference.$.index;
|
|
48
|
+
} else {
|
|
49
|
+
console.error(`No NIST Controls found for ${cciItem.$.id}`);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
fs.writeFileSync(pathToOutfile, JSON.stringify(result));
|
|
53
|
+
}
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
}
|