@mitre/hdf-converters 2.5.1
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/LICENSE.md +9 -0
- package/README.md +4 -0
- package/lib/data/U_CCI_List.xml +38403 -0
- package/lib/data/aws-config-mapping.csv +107 -0
- package/lib/data/cwe-nist-mapping.csv +203 -0
- package/lib/data/nessus-plugins-nist-mapping.csv +108 -0
- package/lib/data/nikto-nist-mapping.csv +8942 -0
- package/lib/data/owasp-nist-mapping.csv +11 -0
- package/lib/data/scoutsuite-nist-mapping.csv +140 -0
- package/lib/index.d.ts +12 -0
- package/lib/index.js +25 -0
- package/lib/index.js.map +1 -0
- package/lib/package.json +45 -0
- package/lib/src/base-converter.d.ts +39 -0
- package/lib/src/base-converter.js +216 -0
- package/lib/src/base-converter.js.map +1 -0
- package/lib/src/burpsuite-mapper.d.ts +7 -0
- package/lib/src/burpsuite-mapper.js +157 -0
- package/lib/src/burpsuite-mapper.js.map +1 -0
- package/lib/src/dbprotect-mapper.d.ts +7 -0
- package/lib/src/dbprotect-mapper.js +165 -0
- package/lib/src/dbprotect-mapper.js.map +1 -0
- package/lib/src/fortify-mapper.d.ts +8 -0
- package/lib/src/fortify-mapper.js +180 -0
- package/lib/src/fortify-mapper.js.map +1 -0
- package/lib/src/jfrog-xray-mapper.d.ts +7 -0
- package/lib/src/jfrog-xray-mapper.js +169 -0
- package/lib/src/jfrog-xray-mapper.js.map +1 -0
- package/lib/src/mappings/CciNistMapping.d.ts +6 -0
- package/lib/src/mappings/CciNistMapping.js +60 -0
- package/lib/src/mappings/CciNistMapping.js.map +1 -0
- package/lib/src/mappings/CciNistMappingItem.d.ts +5 -0
- package/lib/src/mappings/CciNistMappingItem.js +11 -0
- package/lib/src/mappings/CciNistMappingItem.js.map +1 -0
- package/lib/src/mappings/CweNistMapping.d.ts +6 -0
- package/lib/src/mappings/CweNistMapping.js +74 -0
- package/lib/src/mappings/CweNistMapping.js.map +1 -0
- package/lib/src/mappings/CweNistMappingItem.d.ts +8 -0
- package/lib/src/mappings/CweNistMappingItem.js +34 -0
- package/lib/src/mappings/CweNistMappingItem.js.map +1 -0
- package/lib/src/mappings/NessusPluginsNistMapping.d.ts +6 -0
- package/lib/src/mappings/NessusPluginsNistMapping.js +48 -0
- package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +7 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.js +23 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -0
- package/lib/src/mappings/NiktoNistMapping.d.ts +6 -0
- package/lib/src/mappings/NiktoNistMapping.js +40 -0
- package/lib/src/mappings/NiktoNistMapping.js.map +1 -0
- package/lib/src/mappings/NiktoNistMappingItem.d.ts +7 -0
- package/lib/src/mappings/NiktoNistMappingItem.js +28 -0
- package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -0
- package/lib/src/mappings/OwaspNistMapping.d.ts +6 -0
- package/lib/src/mappings/OwaspNistMapping.js +55 -0
- package/lib/src/mappings/OwaspNistMapping.js.map +1 -0
- package/lib/src/mappings/OwaspNistMappingItem.d.ts +8 -0
- package/lib/src/mappings/OwaspNistMappingItem.js +34 -0
- package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +6 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.js +39 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +5 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js +21 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -0
- package/lib/src/nessus-mapper.d.ts +13 -0
- package/lib/src/nessus-mapper.js +303 -0
- package/lib/src/nessus-mapper.js.map +1 -0
- package/lib/src/netsparker-mapper.d.ts +7 -0
- package/lib/src/netsparker-mapper.js +221 -0
- package/lib/src/netsparker-mapper.js.map +1 -0
- package/lib/src/nikto-mapper.d.ts +7 -0
- package/lib/src/nikto-mapper.js +96 -0
- package/lib/src/nikto-mapper.js.map +1 -0
- package/lib/src/sarif-mapper.d.ts +7 -0
- package/lib/src/sarif-mapper.js +143 -0
- package/lib/src/sarif-mapper.js.map +1 -0
- package/lib/src/scoutsuite-mapper.d.ts +7 -0
- package/lib/src/scoutsuite-mapper.js +258 -0
- package/lib/src/scoutsuite-mapper.js.map +1 -0
- package/lib/src/snyk-mapper.d.ts +14 -0
- package/lib/src/snyk-mapper.js +165 -0
- package/lib/src/snyk-mapper.js.map +1 -0
- package/lib/src/xccdf-results-mapper.d.ts +6 -0
- package/lib/src/xccdf-results-mapper.js +206 -0
- package/lib/src/xccdf-results-mapper.js.map +1 -0
- package/lib/src/zap-mapper.d.ts +8 -0
- package/lib/src/zap-mapper.js +177 -0
- package/lib/src/zap-mapper.js.map +1 -0
- package/package.json +45 -0
|
@@ -0,0 +1,206 @@
|
|
|
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.XCCDFResultsMapper = void 0;
|
|
7
|
+
const fast_xml_parser_1 = __importDefault(require("fast-xml-parser"));
|
|
8
|
+
const inspecjs_1 = require("inspecjs");
|
|
9
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
10
|
+
const path_1 = __importDefault(require("path"));
|
|
11
|
+
const package_json_1 = require("../package.json");
|
|
12
|
+
const base_converter_1 = require("./base-converter");
|
|
13
|
+
const CciNistMapping_1 = require("./mappings/CciNistMapping");
|
|
14
|
+
const IMPACT_MAPPING = new Map([
|
|
15
|
+
['critical', 0.9],
|
|
16
|
+
['high', 0.7],
|
|
17
|
+
['medium', 0.5],
|
|
18
|
+
['low', 0.3]
|
|
19
|
+
]);
|
|
20
|
+
const RULE_DESCRIPTION = 'cdf:Rule.cdf:description';
|
|
21
|
+
const CCI_REGEX = /CCI-(\d*)/;
|
|
22
|
+
const CCI_NIST_MAPPING_FILE = path_1.default.resolve(__dirname, '../data/U_CCI_List.xml');
|
|
23
|
+
const CCI_NIST_MAPPING = new CciNistMapping_1.CciNistMapping(CCI_NIST_MAPPING_FILE);
|
|
24
|
+
const DEFAULT_NIST_TAG = ['SA-11', 'RA-5', 'Rev_4'];
|
|
25
|
+
let counter = '';
|
|
26
|
+
function getStatus(file) {
|
|
27
|
+
const match = lodash_1.default.get(file, 'cdf:rule-result').find((element) => lodash_1.default.get(element, 'idref') === counter);
|
|
28
|
+
if (lodash_1.default.get(match, 'cdf:result') === 'pass') {
|
|
29
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Passed;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return inspecjs_1.ExecJSON.ControlResultStatus.Failed;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
function extractCci(input) {
|
|
36
|
+
const output = [];
|
|
37
|
+
input.forEach((element) => {
|
|
38
|
+
if (lodash_1.default.get(element, 'text').match(CCI_REGEX)) {
|
|
39
|
+
output.push(lodash_1.default.get(element, 'text'));
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
return output;
|
|
43
|
+
}
|
|
44
|
+
function nistTag(input) {
|
|
45
|
+
const identifiers = extractCci(input);
|
|
46
|
+
return CCI_NIST_MAPPING.nistFilter(identifiers, DEFAULT_NIST_TAG, false);
|
|
47
|
+
}
|
|
48
|
+
function parseXml(xml) {
|
|
49
|
+
const options = {
|
|
50
|
+
attributeNamePrefix: '',
|
|
51
|
+
textNodeName: 'text',
|
|
52
|
+
ignoreAttributes: false
|
|
53
|
+
};
|
|
54
|
+
return fast_xml_parser_1.default.parse(xml, options);
|
|
55
|
+
}
|
|
56
|
+
class XCCDFResultsMapper extends base_converter_1.BaseConverter {
|
|
57
|
+
constructor(scapXml) {
|
|
58
|
+
super(parseXml(scapXml));
|
|
59
|
+
this.mappings = {
|
|
60
|
+
platform: {
|
|
61
|
+
name: 'Heimdall Tools',
|
|
62
|
+
release: package_json_1.version,
|
|
63
|
+
target_id: ''
|
|
64
|
+
},
|
|
65
|
+
version: package_json_1.version,
|
|
66
|
+
statistics: {
|
|
67
|
+
duration: 0
|
|
68
|
+
},
|
|
69
|
+
profiles: [
|
|
70
|
+
{
|
|
71
|
+
name: { path: 'cdf:Benchmark.id' },
|
|
72
|
+
version: { path: 'cdf:Benchmark.style' },
|
|
73
|
+
title: { path: 'cdf:Benchmark.cdf:title' },
|
|
74
|
+
maintainer: { path: 'cdf:Benchmark.cdf:reference.dc:publisher' },
|
|
75
|
+
summary: { path: 'cdf:Benchmark.cdf:description' },
|
|
76
|
+
license: { path: 'cdf:Benchmark.cdf:notice.id' },
|
|
77
|
+
copyright: { path: 'cdf:Benchmark.cdf:metadata.dc:creator' },
|
|
78
|
+
copyright_email: 'disa.stig_spt@mail.mil',
|
|
79
|
+
supports: [],
|
|
80
|
+
attributes: [],
|
|
81
|
+
depends: [],
|
|
82
|
+
groups: [],
|
|
83
|
+
status: 'loaded',
|
|
84
|
+
controls: [
|
|
85
|
+
{
|
|
86
|
+
path: 'cdf:Benchmark.cdf:Group',
|
|
87
|
+
key: 'id',
|
|
88
|
+
id: {
|
|
89
|
+
path: 'cdf:Rule.id',
|
|
90
|
+
transformer: (input) => {
|
|
91
|
+
if (typeof input === 'string') {
|
|
92
|
+
counter = input;
|
|
93
|
+
return input.split('_S')[1].split('r')[0];
|
|
94
|
+
}
|
|
95
|
+
else {
|
|
96
|
+
return '';
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
title: { path: 'cdf:Rule.cdf:title' },
|
|
101
|
+
desc: {
|
|
102
|
+
path: RULE_DESCRIPTION,
|
|
103
|
+
transformer: (input) => {
|
|
104
|
+
if (typeof input === 'string') {
|
|
105
|
+
return (0, base_converter_1.parseHtml)(input.split('Satisfies')[0]);
|
|
106
|
+
}
|
|
107
|
+
else {
|
|
108
|
+
return '';
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
descriptions: [
|
|
113
|
+
{
|
|
114
|
+
data: {
|
|
115
|
+
path: RULE_DESCRIPTION,
|
|
116
|
+
transformer: (input) => {
|
|
117
|
+
if (typeof input === 'string') {
|
|
118
|
+
return (0, base_converter_1.parseHtml)(input);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
return '';
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
label: 'default'
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
data: 'NA',
|
|
129
|
+
label: 'rationale'
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
data: {
|
|
133
|
+
path: 'cdf:Rule.cdf:check.cdf:check-content-ref.name',
|
|
134
|
+
transformer: base_converter_1.parseHtml
|
|
135
|
+
},
|
|
136
|
+
label: 'check'
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
data: {
|
|
140
|
+
path: 'cdf:Rule.cdf:fixtext.text',
|
|
141
|
+
transformer: base_converter_1.parseHtml
|
|
142
|
+
},
|
|
143
|
+
label: 'fix'
|
|
144
|
+
}
|
|
145
|
+
],
|
|
146
|
+
impact: {
|
|
147
|
+
path: 'cdf:Rule.severity',
|
|
148
|
+
transformer: (0, base_converter_1.impactMapping)(IMPACT_MAPPING)
|
|
149
|
+
},
|
|
150
|
+
refs: [],
|
|
151
|
+
tags: {
|
|
152
|
+
severity: null,
|
|
153
|
+
gtitle: { path: 'cdf:title' },
|
|
154
|
+
satisfies: {
|
|
155
|
+
path: RULE_DESCRIPTION,
|
|
156
|
+
transformer: (input) => {
|
|
157
|
+
if (input.split('Satisfies: ')[1] !== undefined) {
|
|
158
|
+
return input
|
|
159
|
+
.split('Satisfies: ')[1]
|
|
160
|
+
.split('<')[0]
|
|
161
|
+
.replace(/', /gi, ',')
|
|
162
|
+
.split(',');
|
|
163
|
+
}
|
|
164
|
+
else {
|
|
165
|
+
return [];
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
},
|
|
169
|
+
gid: {
|
|
170
|
+
path: 'cdf:Rule.id',
|
|
171
|
+
transformer: (input) => {
|
|
172
|
+
return input.split('_').slice(-2, -1)[0].split('r')[0];
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
legacy_id: { path: 'cdf:Rule.cdf:ident[2].text' },
|
|
176
|
+
rid: { path: 'cdf:Rule.cdf:ident[1].text' },
|
|
177
|
+
stig_id: { path: '$.cdf:Benchmark.id' },
|
|
178
|
+
fix_id: { path: 'cdf:Rule.cdf:fix.id' },
|
|
179
|
+
cci: { path: 'cdf:Rule.cdf:ident', transformer: extractCci },
|
|
180
|
+
nist: { path: 'cdf:Rule.cdf:ident', transformer: nistTag }
|
|
181
|
+
},
|
|
182
|
+
code: '',
|
|
183
|
+
source_location: {},
|
|
184
|
+
results: [
|
|
185
|
+
{
|
|
186
|
+
status: {
|
|
187
|
+
path: '$.cdf:Benchmark.cdf:TestResult',
|
|
188
|
+
transformer: getStatus
|
|
189
|
+
},
|
|
190
|
+
code_desc: '',
|
|
191
|
+
run_time: 0,
|
|
192
|
+
start_time: { path: '$.cdf:Benchmark.cdf:TestResult.start-time' },
|
|
193
|
+
message: '',
|
|
194
|
+
resource: ''
|
|
195
|
+
}
|
|
196
|
+
]
|
|
197
|
+
}
|
|
198
|
+
],
|
|
199
|
+
sha256: ''
|
|
200
|
+
}
|
|
201
|
+
]
|
|
202
|
+
};
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
exports.XCCDFResultsMapper = XCCDFResultsMapper;
|
|
206
|
+
//# sourceMappingURL=xccdf-results-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"xccdf-results-mapper.js","sourceRoot":"","sources":["../../src/xccdf-results-mapper.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ExecJSON } from 'inspecjs';
|
|
2
|
+
import { BaseConverter, ILookupPath, MappedTransform } from './base-converter';
|
|
3
|
+
export declare class ZapMapper extends BaseConverter {
|
|
4
|
+
mappings: MappedTransform<ExecJSON.Execution, ILookupPath>;
|
|
5
|
+
constructor(zapJson: string, name: string);
|
|
6
|
+
setMappings(customMappings: MappedTransform<ExecJSON.Execution, ILookupPath>): void;
|
|
7
|
+
toHdf(): ExecJSON.Execution;
|
|
8
|
+
}
|
|
@@ -0,0 +1,177 @@
|
|
|
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.ZapMapper = void 0;
|
|
7
|
+
const inspecjs_1 = require("inspecjs");
|
|
8
|
+
const lodash_1 = __importDefault(require("lodash"));
|
|
9
|
+
const path_1 = __importDefault(require("path"));
|
|
10
|
+
const package_json_1 = require("../package.json");
|
|
11
|
+
const base_converter_1 = require("./base-converter");
|
|
12
|
+
const CweNistMapping_1 = require("./mappings/CweNistMapping");
|
|
13
|
+
const CWE_NIST_MAPPING_FILE = path_1.default.resolve(__dirname, '../data/cwe-nist-mapping.csv');
|
|
14
|
+
const CWE_NIST_MAPPING = new CweNistMapping_1.CweNistMapping(CWE_NIST_MAPPING_FILE);
|
|
15
|
+
const DEFAULT_NIST_TAG = ['SA-11', 'RA-5'];
|
|
16
|
+
function filterSite(input, name) {
|
|
17
|
+
return input.find((element) => lodash_1.default.get(element, '@name') === name);
|
|
18
|
+
}
|
|
19
|
+
function impactMapping(input) {
|
|
20
|
+
if (typeof input === 'string') {
|
|
21
|
+
const impact = parseInt(input);
|
|
22
|
+
if (0 <= impact && impact <= 1) {
|
|
23
|
+
return 0.3;
|
|
24
|
+
}
|
|
25
|
+
else if (impact === 2) {
|
|
26
|
+
return 0.5;
|
|
27
|
+
}
|
|
28
|
+
else if (impact >= 3) {
|
|
29
|
+
return 0.7;
|
|
30
|
+
}
|
|
31
|
+
else {
|
|
32
|
+
return 0;
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
else {
|
|
36
|
+
return 0;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
function nistTag(cweid) {
|
|
40
|
+
const result = CWE_NIST_MAPPING.nistFilter([cweid], DEFAULT_NIST_TAG);
|
|
41
|
+
if (result === DEFAULT_NIST_TAG) {
|
|
42
|
+
return result;
|
|
43
|
+
}
|
|
44
|
+
else {
|
|
45
|
+
return result.concat('Rev_4');
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
function checkText(input) {
|
|
49
|
+
const text = [];
|
|
50
|
+
text.push(lodash_1.default.get(input, 'solution'));
|
|
51
|
+
text.push(lodash_1.default.get(input, 'otherinfo'));
|
|
52
|
+
text.push(lodash_1.default.get(input, 'otherinfo'));
|
|
53
|
+
return text.join('\n');
|
|
54
|
+
}
|
|
55
|
+
function formatCodeDesc(input) {
|
|
56
|
+
const text = [];
|
|
57
|
+
if (input instanceof Object) {
|
|
58
|
+
Object.keys(input).forEach((key) => {
|
|
59
|
+
text.push(`${key.charAt(0).toUpperCase() + key.slice(1)}: ${lodash_1.default.get(input, key)}`);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
return text.join('\n') + '\n';
|
|
63
|
+
}
|
|
64
|
+
function deduplicateId(input) {
|
|
65
|
+
const controlId = input.map((element) => {
|
|
66
|
+
return lodash_1.default.get(element, 'id');
|
|
67
|
+
});
|
|
68
|
+
const dupId = (0, lodash_1.default)(controlId)
|
|
69
|
+
.groupBy()
|
|
70
|
+
.pickBy((value) => value.length > 1)
|
|
71
|
+
.keys()
|
|
72
|
+
.value();
|
|
73
|
+
dupId.forEach((id) => {
|
|
74
|
+
let index = 1;
|
|
75
|
+
input
|
|
76
|
+
.filter((element) => lodash_1.default.get(element, 'id') === id)
|
|
77
|
+
.forEach((element) => {
|
|
78
|
+
if (element instanceof Object) {
|
|
79
|
+
lodash_1.default.set(element, 'id', `${id}.${index.toString()}`);
|
|
80
|
+
}
|
|
81
|
+
index++;
|
|
82
|
+
});
|
|
83
|
+
});
|
|
84
|
+
return input;
|
|
85
|
+
}
|
|
86
|
+
class ZapMapper extends base_converter_1.BaseConverter {
|
|
87
|
+
constructor(zapJson, name) {
|
|
88
|
+
super(lodash_1.default.set(JSON.parse(zapJson), 'site', filterSite(lodash_1.default.get(JSON.parse(zapJson), 'site'), name)), false);
|
|
89
|
+
this.mappings = {
|
|
90
|
+
platform: {
|
|
91
|
+
name: 'Heimdall Tools',
|
|
92
|
+
release: package_json_1.version,
|
|
93
|
+
target_id: ''
|
|
94
|
+
},
|
|
95
|
+
version: package_json_1.version,
|
|
96
|
+
statistics: {
|
|
97
|
+
duration: null
|
|
98
|
+
},
|
|
99
|
+
profiles: [
|
|
100
|
+
{
|
|
101
|
+
name: 'OWASP ZAP Scan',
|
|
102
|
+
version: { path: '@version' },
|
|
103
|
+
title: {
|
|
104
|
+
path: 'site.@host',
|
|
105
|
+
transformer: (input) => {
|
|
106
|
+
return `OWASP ZAP Scan of Host: ${input}`;
|
|
107
|
+
}
|
|
108
|
+
},
|
|
109
|
+
maintainer: null,
|
|
110
|
+
summary: {
|
|
111
|
+
path: 'site.@host',
|
|
112
|
+
transformer: (input) => {
|
|
113
|
+
return `OWASP ZAP Scan of Host: ${input}`;
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
license: null,
|
|
117
|
+
copyright: null,
|
|
118
|
+
copyright_email: null,
|
|
119
|
+
supports: [],
|
|
120
|
+
attributes: [],
|
|
121
|
+
depends: [],
|
|
122
|
+
groups: [],
|
|
123
|
+
status: 'loaded',
|
|
124
|
+
controls: [
|
|
125
|
+
{
|
|
126
|
+
path: 'site.alerts',
|
|
127
|
+
arrayTransformer: deduplicateId,
|
|
128
|
+
id: { path: 'pluginid' },
|
|
129
|
+
title: { path: 'name' },
|
|
130
|
+
desc: { path: 'desc', transformer: base_converter_1.parseHtml },
|
|
131
|
+
impact: { path: 'riskcode', transformer: impactMapping },
|
|
132
|
+
tags: {
|
|
133
|
+
nist: { path: 'cweid', transformer: nistTag },
|
|
134
|
+
cweid: { path: 'cweid' },
|
|
135
|
+
wascid: { path: 'wascid' },
|
|
136
|
+
sourceid: { path: 'sourceid' },
|
|
137
|
+
confidence: { path: 'confidence' },
|
|
138
|
+
riskdesc: { path: 'riskdesc' },
|
|
139
|
+
check: { transformer: checkText }
|
|
140
|
+
},
|
|
141
|
+
descriptions: [],
|
|
142
|
+
refs: [],
|
|
143
|
+
source_location: {},
|
|
144
|
+
code: '',
|
|
145
|
+
results: [
|
|
146
|
+
{
|
|
147
|
+
path: 'instances',
|
|
148
|
+
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
149
|
+
code_desc: { transformer: formatCodeDesc },
|
|
150
|
+
run_time: 0,
|
|
151
|
+
start_time: { path: '$.@generated' }
|
|
152
|
+
}
|
|
153
|
+
]
|
|
154
|
+
}
|
|
155
|
+
],
|
|
156
|
+
sha256: ''
|
|
157
|
+
}
|
|
158
|
+
]
|
|
159
|
+
};
|
|
160
|
+
}
|
|
161
|
+
setMappings(customMappings) {
|
|
162
|
+
super.setMappings(customMappings);
|
|
163
|
+
}
|
|
164
|
+
toHdf() {
|
|
165
|
+
const original = super.toHdf();
|
|
166
|
+
lodash_1.default.get(original, 'profiles').forEach((profile) => {
|
|
167
|
+
lodash_1.default.get(profile, 'controls').forEach((control) => {
|
|
168
|
+
lodash_1.default.set(control, 'results', lodash_1.default.get(control, 'results').filter(function (element, index, self) {
|
|
169
|
+
return index === self.indexOf(element);
|
|
170
|
+
}));
|
|
171
|
+
});
|
|
172
|
+
});
|
|
173
|
+
return original;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
exports.ZapMapper = ZapMapper;
|
|
177
|
+
//# sourceMappingURL=zap-mapper.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zap-mapper.js","sourceRoot":"","sources":["../../src/zap-mapper.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@mitre/hdf-converters",
|
|
3
|
+
"version": "2.5.1",
|
|
4
|
+
"license": "Apache-2.0",
|
|
5
|
+
"description": "Converter util library used to transform various scan results into HDF format",
|
|
6
|
+
"files": [
|
|
7
|
+
"lib"
|
|
8
|
+
],
|
|
9
|
+
"main": "lib/index.js",
|
|
10
|
+
"publishConfig": {
|
|
11
|
+
"main": "lib/index.js"
|
|
12
|
+
},
|
|
13
|
+
"scripts": {
|
|
14
|
+
"prepack": "yarn build && cp package.json package.json.orig && cat package.json.orig | jq '.main = (.publishConfig.main)' > package.json",
|
|
15
|
+
"postpack": "mv package.json.orig package.json",
|
|
16
|
+
"build": "tsc -p ./tsconfig.build.json && cp -R ./data ./lib",
|
|
17
|
+
"lint": "eslint \"**/*.ts\" --fix",
|
|
18
|
+
"lint:ci": "eslint \"**/*.ts\" --max-warnings 0",
|
|
19
|
+
"test": "jest --silent"
|
|
20
|
+
},
|
|
21
|
+
"dependencies": {
|
|
22
|
+
"csv-parse": "^4.16.0",
|
|
23
|
+
"fast-xml-parser": "^3.19.0",
|
|
24
|
+
"htmlparser2": "^6.1.0",
|
|
25
|
+
"inspecjs": "^2.5.1",
|
|
26
|
+
"lodash": "^4.17.21"
|
|
27
|
+
},
|
|
28
|
+
"devDependencies": {
|
|
29
|
+
"@types/jest": "^27.0.0",
|
|
30
|
+
"@types/lodash": "^4.14.161",
|
|
31
|
+
"@types/node": "^15.0.1",
|
|
32
|
+
"htmlparser2": "^6.1.0",
|
|
33
|
+
"jest": "^27.0.6",
|
|
34
|
+
"quicktype": "^15.0.260",
|
|
35
|
+
"ts-jest": "^27.0.3",
|
|
36
|
+
"ts-node": "^10.0.0",
|
|
37
|
+
"typedoc": "^0.22.1"
|
|
38
|
+
},
|
|
39
|
+
"jest": {
|
|
40
|
+
"rootDir": ".",
|
|
41
|
+
"transform": {
|
|
42
|
+
"^.+\\.ts$": "ts-jest"
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|