@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.
Files changed (110) hide show
  1. package/lib/data/aws-config-mapping.json +638 -0
  2. package/lib/data/cci-nist-mapping.json +3553 -0
  3. package/lib/data/converters/csv2json.d.ts +1 -0
  4. package/lib/data/converters/csv2json.js +36 -0
  5. package/lib/data/converters/csv2json.js.map +1 -0
  6. package/lib/data/converters/csv2json.ts +36 -0
  7. package/lib/data/converters/xml2json.d.ts +14 -0
  8. package/lib/data/converters/xml2json.js +42 -0
  9. package/lib/data/converters/xml2json.js.map +1 -0
  10. package/lib/data/converters/xml2json.ts +57 -0
  11. package/lib/data/cwe-nist-mapping.json +1416 -0
  12. package/lib/data/nessus-plugins-nist-mapping.json +644 -0
  13. package/lib/data/nikto-nist-mapping.json +53648 -0
  14. package/lib/data/owasp-nist-mapping.json +72 -0
  15. package/lib/data/scoutsuite-nist-mapping.json +558 -0
  16. package/lib/index.d.ts +3 -0
  17. package/lib/index.js +3 -0
  18. package/lib/index.js.map +1 -1
  19. package/lib/package.json +18 -9
  20. package/lib/src/asff-mapper.d.ts +15 -0
  21. package/lib/src/asff-mapper.js +508 -0
  22. package/lib/src/asff-mapper.js.map +1 -0
  23. package/lib/src/base-converter.d.ts +3 -7
  24. package/lib/src/base-converter.js +27 -9
  25. package/lib/src/base-converter.js.map +1 -1
  26. package/lib/src/burpsuite-mapper.js +6 -8
  27. package/lib/src/burpsuite-mapper.js.map +1 -1
  28. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +88 -0
  29. package/lib/src/converters-from-hdf/asff/asff-types.js +3 -0
  30. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -0
  31. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +31 -0
  32. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +132 -0
  33. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -0
  34. package/lib/src/converters-from-hdf/asff/transformers.d.ts +44 -0
  35. package/lib/src/converters-from-hdf/asff/transformers.js +397 -0
  36. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -0
  37. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +24 -0
  38. package/lib/src/converters-from-hdf/reverse-base-converter.js +111 -0
  39. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -0
  40. package/lib/src/dbprotect-mapper.js +1 -1
  41. package/lib/src/dbprotect-mapper.js.map +1 -1
  42. package/lib/src/jfrog-xray-mapper.js +3 -5
  43. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  44. package/lib/src/mappings/AwsConfigMapping.d.ts +6 -0
  45. package/lib/src/mappings/AwsConfigMapping.js +39 -0
  46. package/lib/src/mappings/AwsConfigMapping.js.map +1 -0
  47. package/lib/src/mappings/AwsConfigMappingItem.d.ts +7 -0
  48. package/lib/src/mappings/AwsConfigMappingItem.js +28 -0
  49. package/lib/src/mappings/AwsConfigMappingItem.js.map +1 -0
  50. package/lib/src/mappings/CciNistMapping.d.ts +1 -1
  51. package/lib/src/mappings/CciNistMapping.js +5 -24
  52. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  53. package/lib/src/mappings/CweNistMapping.d.ts +8 -1
  54. package/lib/src/mappings/CweNistMapping.js +4 -27
  55. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  56. package/lib/src/mappings/CweNistMappingItem.d.ts +2 -1
  57. package/lib/src/mappings/CweNistMappingItem.js +9 -9
  58. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  59. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +7 -1
  60. package/lib/src/mappings/NessusPluginsNistMapping.js +4 -8
  61. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  62. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +2 -1
  63. package/lib/src/mappings/NessusPluginsNistMappingItem.js +16 -6
  64. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  65. package/lib/src/mappings/NiktoNistMapping.d.ts +7 -1
  66. package/lib/src/mappings/NiktoNistMapping.js +4 -8
  67. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  68. package/lib/src/mappings/NiktoNistMappingItem.d.ts +2 -1
  69. package/lib/src/mappings/NiktoNistMappingItem.js +7 -7
  70. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  71. package/lib/src/mappings/OwaspNistMapping.d.ts +8 -1
  72. package/lib/src/mappings/OwaspNistMapping.js +4 -8
  73. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  74. package/lib/src/mappings/OwaspNistMappingItem.d.ts +2 -1
  75. package/lib/src/mappings/OwaspNistMappingItem.js +9 -9
  76. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  77. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +5 -1
  78. package/lib/src/mappings/ScoutsuiteNistMapping.js +4 -10
  79. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  80. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +2 -1
  81. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +4 -4
  82. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  83. package/lib/src/nessus-mapper.js +9 -12
  84. package/lib/src/nessus-mapper.js.map +1 -1
  85. package/lib/src/netsparker-mapper.js +4 -7
  86. package/lib/src/netsparker-mapper.js.map +1 -1
  87. package/lib/src/nikto-mapper.js +1 -3
  88. package/lib/src/nikto-mapper.js.map +1 -1
  89. package/lib/src/sarif-mapper.js +1 -3
  90. package/lib/src/sarif-mapper.js.map +1 -1
  91. package/lib/src/scoutsuite-mapper.js +2 -4
  92. package/lib/src/scoutsuite-mapper.js.map +1 -1
  93. package/lib/src/snyk-mapper.js +2 -7
  94. package/lib/src/snyk-mapper.js.map +1 -1
  95. package/lib/src/sonarqube-mapper.d.ts +54 -0
  96. package/lib/src/sonarqube-mapper.js +196 -0
  97. package/lib/src/sonarqube-mapper.js.map +1 -0
  98. package/lib/src/xccdf-results-mapper.js +4 -6
  99. package/lib/src/xccdf-results-mapper.js.map +1 -1
  100. package/lib/src/zap-mapper.d.ts +1 -1
  101. package/lib/src/zap-mapper.js +8 -5
  102. package/lib/src/zap-mapper.js.map +1 -1
  103. package/package.json +18 -9
  104. package/lib/data/U_CCI_List.xml +0 -38403
  105. package/lib/data/aws-config-mapping.csv +0 -107
  106. package/lib/data/cwe-nist-mapping.csv +0 -203
  107. package/lib/data/nessus-plugins-nist-mapping.csv +0 -108
  108. package/lib/data/nikto-nist-mapping.csv +0 -8942
  109. package/lib/data/owasp-nist-mapping.csv +0 -11
  110. 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,14 @@
1
+ export interface ICCIList {
2
+ cci_list: {
3
+ cci_items: {
4
+ cci_item: {
5
+ $: Record<string, string>;
6
+ references: {
7
+ reference: {
8
+ $: Record<string, string>;
9
+ }[];
10
+ }[];
11
+ }[];
12
+ }[];
13
+ };
14
+ }
@@ -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
+ }