@mitre/hdf-converters 2.6.2 → 2.6.5

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/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export * from './src/asff-mapper';
2
+ export * from './src/aws-config-mapper';
2
3
  export * from './src/burpsuite-mapper';
3
4
  export * from './src/converters-from-hdf/asff/reverse-asff-mapper';
4
5
  export * from './src/dbprotect-mapper';
package/lib/index.js CHANGED
@@ -11,6 +11,7 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
11
11
  };
12
12
  Object.defineProperty(exports, "__esModule", { value: true });
13
13
  __exportStar(require("./src/asff-mapper"), exports);
14
+ __exportStar(require("./src/aws-config-mapper"), exports);
14
15
  __exportStar(require("./src/burpsuite-mapper"), exports);
15
16
  __exportStar(require("./src/converters-from-hdf/asff/reverse-asff-mapper"), exports);
16
17
  __exportStar(require("./src/dbprotect-mapper"), exports);
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,yDAAuC;AACvC,qFAAmE;AACnE,yDAAuC;AACvC,uDAAqC;AACrC,0DAAwC;AACxC,sDAAoC;AACpC,0DAAwC;AACxC,qDAAmC;AACnC,qDAAmC;AACnC,0DAAwC;AACxC,oDAAkC;AAClC,yDAAuC;AACvC,6DAA2C;AAC3C,mDAAiC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oDAAkC;AAClC,0DAAwC;AACxC,yDAAuC;AACvC,qFAAmE;AACnE,yDAAuC;AACvC,uDAAqC;AACrC,0DAAwC;AACxC,sDAAoC;AACpC,0DAAwC;AACxC,qDAAmC;AACnC,qDAAmC;AACnC,0DAAwC;AACxC,oDAAkC;AAClC,yDAAuC;AACvC,6DAA2C;AAC3C,mDAAiC"}
package/lib/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mitre/hdf-converters",
3
- "version": "2.6.2",
3
+ "version": "2.6.5",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Converter util library used to transform various scan results into HDF format",
6
6
  "files": [
@@ -23,6 +23,7 @@
23
23
  "dependencies": {
24
24
  "@types/csv2json": "^1.4.2",
25
25
  "@types/xml2js": "^0.4.9",
26
+ "aws-sdk": "^2.1046.0",
26
27
  "axios": "^0.24.0",
27
28
  "csv-parse": "^5.0.1",
28
29
  "csv2json": "^2.0.2",
@@ -0,0 +1,28 @@
1
+ import { ConfigRule } from '@aws-sdk/client-config-service';
2
+ import AWS from 'aws-sdk';
3
+ import { ExecJSON } from 'inspecjs';
4
+ export declare class AwsConfigMapper {
5
+ configService: AWS.ConfigService;
6
+ issues: Promise<ConfigRule[]>;
7
+ results: ExecJSON.ControlResult[][];
8
+ constructor(options: AWS.ConfigService.ClientConfiguration, verifySSLCertificates?: boolean);
9
+ private delay;
10
+ private getAllConfigRules;
11
+ private chunkArray;
12
+ private getConfigRulePage;
13
+ private getResults;
14
+ private appendResourceNamesToResults;
15
+ private extractResourceNamesFromIds;
16
+ private getCodeDesc;
17
+ private getRunTime;
18
+ private getStatus;
19
+ private getMessage;
20
+ private fetchAllComplianceInfo;
21
+ private hdfTags;
22
+ private checkText;
23
+ private hdfDescriptions;
24
+ private getAccountId;
25
+ private getControls;
26
+ private getImpact;
27
+ toHdf(): Promise<ExecJSON.Execution>;
28
+ }
@@ -0,0 +1,369 @@
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.AwsConfigMapper = void 0;
7
+ const aws_sdk_1 = __importDefault(require("aws-sdk"));
8
+ const https_1 = __importDefault(require("https"));
9
+ const inspecjs_1 = require("inspecjs");
10
+ const lodash_1 = __importDefault(require("lodash"));
11
+ const package_json_1 = require("../package.json");
12
+ const AwsConfigMapping_1 = require("./mappings/AwsConfigMapping");
13
+ const NOT_APPLICABLE_MSG = 'No AWS resources found to evaluate compliance for this rule';
14
+ const INSUFFICIENT_DATA_MSG = 'Not enough data has been collected to determine compliance yet.';
15
+ const NAME = 'AWS Config';
16
+ const AWS_CONFIG_MAPPING = new AwsConfigMapping_1.AwsConfigMapping();
17
+ class AwsConfigMapper {
18
+ constructor(options, verifySSLCertificates = true) {
19
+ aws_sdk_1.default.config.update({
20
+ httpOptions: {
21
+ agent: new https_1.default.Agent({
22
+ rejectUnauthorized: verifySSLCertificates
23
+ })
24
+ }
25
+ });
26
+ this.configService = new aws_sdk_1.default.ConfigService(options);
27
+ this.results = [];
28
+ this.issues = this.getAllConfigRules();
29
+ }
30
+ delay(ms) {
31
+ return new Promise((resolve) => setTimeout(resolve, ms));
32
+ }
33
+ async getAllConfigRules() {
34
+ let params = {
35
+ ConfigRuleNames: [],
36
+ NextToken: ''
37
+ };
38
+ const configRules = [];
39
+ let response = await this.getConfigRulePage(params);
40
+ if (response.ConfigRules === undefined) {
41
+ throw new Error('No data was returned');
42
+ }
43
+ else {
44
+ while (response !== undefined && response.ConfigRules !== undefined) {
45
+ response.ConfigRules.forEach((rule) => {
46
+ configRules.push(rule);
47
+ });
48
+ if (response.NextToken) {
49
+ params = lodash_1.default.set(params, 'NextToken', response.NextToken);
50
+ }
51
+ else {
52
+ break;
53
+ }
54
+ response = await this.getConfigRulePage(params);
55
+ }
56
+ }
57
+ this.results = await this.getResults(configRules);
58
+ return configRules;
59
+ }
60
+ chunkArray(sourceArray, chunkSize) {
61
+ const result = [];
62
+ for (let i = 0; i < sourceArray.length; i += chunkSize) {
63
+ result.push(sourceArray.slice(i, i + chunkSize));
64
+ }
65
+ return result;
66
+ }
67
+ async getConfigRulePage(params) {
68
+ await this.delay(150);
69
+ return this.configService.describeConfigRules(params).promise();
70
+ }
71
+ async getResults(configRules) {
72
+ const complianceResults = await this.fetchAllComplianceInfo(configRules);
73
+ const ruleData = [];
74
+ const allRulesResolved = [];
75
+ for (const configRule of configRules) {
76
+ const result = [];
77
+ let params = {
78
+ ConfigRuleName: configRule.ConfigRuleName || '',
79
+ Limit: 100
80
+ };
81
+ await this.delay(150);
82
+ let response = await this.configService
83
+ .getComplianceDetailsByConfigRule(params)
84
+ .promise();
85
+ let ruleResults = response.EvaluationResults || [];
86
+ allRulesResolved.push(...ruleResults);
87
+ while (response.NextToken !== undefined) {
88
+ params = lodash_1.default.set(params, 'NextToken', response.NextToken);
89
+ await this.delay(150);
90
+ response = await this.configService
91
+ .getComplianceDetailsByConfigRule(params)
92
+ .promise();
93
+ ruleResults = ruleResults === null || ruleResults === void 0 ? void 0 : ruleResults.concat(response.EvaluationResults || []);
94
+ allRulesResolved.push(...ruleResults);
95
+ }
96
+ ruleResults.forEach((evaluation) => {
97
+ var _a, _b, _c;
98
+ const hdfResult = {
99
+ code_desc: this.getCodeDesc(evaluation),
100
+ start_time: ((_a = evaluation.ConfigRuleInvokedTime) === null || _a === void 0 ? void 0 : _a.toISOString()) || '',
101
+ run_time: this.getRunTime(evaluation),
102
+ status: this.getStatus(evaluation),
103
+ message: this.getMessage(evaluation, this.getCodeDesc(evaluation), this.getStatus(evaluation))
104
+ };
105
+ result.push(hdfResult);
106
+ const currentDate = new Date().toISOString();
107
+ if (result.length === 0) {
108
+ switch ((_c = (_b = complianceResults.find((complianceResult) => complianceResult.ConfigRuleName === configRule.ConfigRuleName)) === null || _b === void 0 ? void 0 : _b.Compliance) === null || _c === void 0 ? void 0 : _c.ComplianceType) {
109
+ case 'NOT_APPLICABLE':
110
+ return [
111
+ {
112
+ run_time: 0,
113
+ code_desc: NOT_APPLICABLE_MSG,
114
+ skip_message: NOT_APPLICABLE_MSG,
115
+ start_time: currentDate,
116
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Skipped
117
+ }
118
+ ];
119
+ case 'INSUFFICIENT_DATA':
120
+ return [
121
+ {
122
+ run_time: 0,
123
+ code_desc: INSUFFICIENT_DATA_MSG,
124
+ skip_message: INSUFFICIENT_DATA_MSG,
125
+ start_time: currentDate,
126
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Skipped
127
+ }
128
+ ];
129
+ default:
130
+ return [];
131
+ }
132
+ }
133
+ else {
134
+ return ruleData.push(result);
135
+ }
136
+ });
137
+ }
138
+ return this.appendResourceNamesToResults(await Promise.all(ruleData), await this.extractResourceNamesFromIds(allRulesResolved));
139
+ }
140
+ async appendResourceNamesToResults(completedControlResults, extractedResourceNames) {
141
+ return completedControlResults.map((completedControlResult) => completedControlResult.map((completedControl) => {
142
+ for (const extractedResourceName in extractedResourceNames) {
143
+ if (completedControl.code_desc.indexOf(JSON.stringify(extractedResourceName)
144
+ .replace(/\"/gi, '')
145
+ .replace(/{/gi, '')
146
+ .replace(/}/gi, '')) !== -1) {
147
+ return {
148
+ ...completedControl,
149
+ code_desc: `${completedControl.code_desc}, resource_name: ${extractedResourceNames[extractedResourceName]}`
150
+ };
151
+ }
152
+ }
153
+ return completedControl;
154
+ }));
155
+ }
156
+ async extractResourceNamesFromIds(evaluationResults) {
157
+ var _a;
158
+ const resourceMap = {};
159
+ const resolvedResourcesMap = {};
160
+ evaluationResults.forEach((result) => {
161
+ const resourceType = lodash_1.default.get(result, 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceType');
162
+ const resourceId = lodash_1.default.get(result, 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId');
163
+ if (!(resourceType in resourceMap)) {
164
+ resourceMap[resourceType] = [resourceId];
165
+ }
166
+ else {
167
+ if (!resourceMap[resourceType].includes(resourceId) &&
168
+ typeof resourceId === 'string') {
169
+ resourceMap[resourceType].push(resourceId);
170
+ }
171
+ }
172
+ });
173
+ for (const resourceType in resourceMap) {
174
+ const resourceIDSlices = this.chunkArray(resourceMap[resourceType], 20);
175
+ for (const slice of resourceIDSlices) {
176
+ await this.delay(150);
177
+ const resources = await this.configService
178
+ .listDiscoveredResources({
179
+ resourceType: resourceType,
180
+ resourceIds: slice
181
+ })
182
+ .promise();
183
+ (_a = resources.resourceIdentifiers) === null || _a === void 0 ? void 0 : _a.forEach((resource) => {
184
+ if (resource.resourceId && resource.resourceName) {
185
+ resolvedResourcesMap[resource.resourceId] = resource.resourceName;
186
+ }
187
+ });
188
+ }
189
+ }
190
+ return resolvedResourcesMap;
191
+ }
192
+ getCodeDesc(result) {
193
+ let output = '';
194
+ if (result.EvaluationResultIdentifier !== undefined &&
195
+ result.EvaluationResultIdentifier.EvaluationResultQualifier !== undefined) {
196
+ output = JSON.stringify(result.EvaluationResultIdentifier.EvaluationResultQualifier)
197
+ .replace(/\"/gi, '')
198
+ .replace(/{/gi, '')
199
+ .replace(/}/gi, '');
200
+ }
201
+ return output;
202
+ }
203
+ getRunTime(result) {
204
+ let diff = 0;
205
+ if (result.ResultRecordedTime !== undefined &&
206
+ result.ConfigRuleInvokedTime !== undefined) {
207
+ diff =
208
+ (result.ResultRecordedTime.getTime() -
209
+ result.ConfigRuleInvokedTime.getTime()) /
210
+ 1000;
211
+ }
212
+ return diff;
213
+ }
214
+ getStatus(result) {
215
+ if (result.ComplianceType === 'COMPLIANT') {
216
+ return inspecjs_1.ExecJSON.ControlResultStatus.Passed;
217
+ }
218
+ else if (result.ComplianceType === 'NON_COMPLIANT') {
219
+ return inspecjs_1.ExecJSON.ControlResultStatus.Failed;
220
+ }
221
+ else {
222
+ return inspecjs_1.ExecJSON.ControlResultStatus.Skipped;
223
+ }
224
+ }
225
+ getMessage(result, codeDesc, status) {
226
+ if (status === inspecjs_1.ExecJSON.ControlResultStatus.Failed) {
227
+ return `${codeDesc}: ${result.Annotation || 'Rule does not pass rule compliance'}`;
228
+ }
229
+ else {
230
+ return undefined;
231
+ }
232
+ }
233
+ async fetchAllComplianceInfo(configRules) {
234
+ var _a;
235
+ const complianceResults = [];
236
+ const configRuleSlices = this.chunkArray(configRules, 25);
237
+ for (const slice of configRuleSlices) {
238
+ await this.delay(150);
239
+ const response = await this.configService
240
+ .describeComplianceByConfigRule({
241
+ ConfigRuleNames: slice.map((rule) => rule.ConfigRuleName || '')
242
+ })
243
+ .promise();
244
+ if (response.ComplianceByConfigRules === undefined) {
245
+ throw new Error('No compliance data was returned');
246
+ }
247
+ else {
248
+ (_a = response.ComplianceByConfigRules) === null || _a === void 0 ? void 0 : _a.forEach((compliance) => complianceResults.push(compliance));
249
+ }
250
+ }
251
+ return complianceResults;
252
+ }
253
+ hdfTags(configRule) {
254
+ var _a;
255
+ let result = {};
256
+ const sourceIdentifier = (_a = configRule.Source) === null || _a === void 0 ? void 0 : _a.SourceIdentifier;
257
+ result = lodash_1.default.set(result, 'nist', []);
258
+ let defaultMatch = [];
259
+ if (sourceIdentifier !== undefined) {
260
+ defaultMatch = AWS_CONFIG_MAPPING.nistFilter([sourceIdentifier]);
261
+ }
262
+ if (Array.isArray(defaultMatch) && defaultMatch.length !== 0) {
263
+ result = lodash_1.default.set(result, 'nist', lodash_1.default.get(result, 'nist').concat(defaultMatch));
264
+ }
265
+ if (Array.isArray(lodash_1.default.get(result, 'nist')) &&
266
+ lodash_1.default.get(result, 'nist').length === 0) {
267
+ result = lodash_1.default.set(result, 'nist', ['unmapped']);
268
+ }
269
+ return result;
270
+ }
271
+ checkText(configRule) {
272
+ var _a;
273
+ let params = [];
274
+ if (configRule.InputParameters !== undefined &&
275
+ configRule.InputParameters !== '{}') {
276
+ params = configRule.InputParameters.replace(/{/gi, '')
277
+ .replace(/}/gi, '')
278
+ .split(',');
279
+ }
280
+ const checkText = [];
281
+ checkText.push(`ARN: ${configRule.ConfigRuleArn || 'N/A'}`);
282
+ checkText.push(`Source Identifier: ${((_a = configRule.Source) === null || _a === void 0 ? void 0 : _a.SourceIdentifier) || 'N/A'}`);
283
+ if (params.length !== 0) {
284
+ checkText.push(`${params.join('<br/>').replace(/\"/gi, '')}`);
285
+ }
286
+ return checkText.join('<br/>');
287
+ }
288
+ hdfDescriptions(configRule) {
289
+ return [
290
+ {
291
+ data: this.checkText(configRule),
292
+ label: 'check'
293
+ }
294
+ ];
295
+ }
296
+ getAccountId(arn) {
297
+ const matches = arn.match(/:(\d{12}):config-rule/);
298
+ if (matches === null) {
299
+ return 'no-account-id';
300
+ }
301
+ else {
302
+ return matches[0];
303
+ }
304
+ }
305
+ async getControls() {
306
+ let index = 0;
307
+ return (await this.issues).map((issue) => {
308
+ const control = {
309
+ id: issue.ConfigRuleId || '',
310
+ title: `${this.getAccountId(issue.ConfigRuleArn || '')} - ${issue.ConfigRuleName}`
311
+ .replace(/:/gi, '')
312
+ .replace(/config-rule/gi, ''),
313
+ desc: issue.Description || null,
314
+ impact: this.getImpact(issue),
315
+ tags: this.hdfTags(issue),
316
+ descriptions: this.hdfDescriptions(issue),
317
+ refs: [],
318
+ source_location: { ref: issue.ConfigRuleArn, line: 1 },
319
+ code: '',
320
+ results: this.results[index]
321
+ };
322
+ index++;
323
+ return control;
324
+ });
325
+ }
326
+ getImpact(issue) {
327
+ if (lodash_1.default.get(issue, 'compliance') === 'NOT_APPLICABLE') {
328
+ return 0;
329
+ }
330
+ else {
331
+ return 0.5;
332
+ }
333
+ }
334
+ async toHdf() {
335
+ const hdf = {
336
+ platform: {
337
+ name: 'Heimdall Tools',
338
+ release: package_json_1.version,
339
+ target_id: ''
340
+ },
341
+ version: package_json_1.version,
342
+ statistics: {
343
+ duration: null
344
+ },
345
+ profiles: [
346
+ {
347
+ name: NAME,
348
+ version: '',
349
+ title: NAME,
350
+ maintainer: null,
351
+ summary: NAME,
352
+ license: null,
353
+ copyright: null,
354
+ copyright_email: null,
355
+ supports: [],
356
+ attributes: [],
357
+ depends: [],
358
+ groups: [],
359
+ status: 'loaded',
360
+ controls: await this.getControls(),
361
+ sha256: ''
362
+ }
363
+ ]
364
+ };
365
+ return hdf;
366
+ }
367
+ }
368
+ exports.AwsConfigMapper = AwsConfigMapper;
369
+ //# sourceMappingURL=aws-config-mapper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-config-mapper.js","sourceRoot":"","sources":["../../src/aws-config-mapper.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mitre/hdf-converters",
3
- "version": "2.6.2",
3
+ "version": "2.6.5",
4
4
  "license": "Apache-2.0",
5
5
  "description": "Converter util library used to transform various scan results into HDF format",
6
6
  "files": [
@@ -23,6 +23,7 @@
23
23
  "dependencies": {
24
24
  "@types/csv2json": "^1.4.2",
25
25
  "@types/xml2js": "^0.4.9",
26
+ "aws-sdk": "^2.1046.0",
26
27
  "axios": "^0.24.0",
27
28
  "csv-parse": "^5.0.1",
28
29
  "csv2json": "^2.0.2",