@mitre/hdf-mappings 3.4.1 → 3.4.3
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 +52 -1
- package/dist/index.d.ts +29 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2202 -532
- package/dist/index.js.map +1 -1
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -20,6 +20,7 @@ and `tags.cci` fields in HDF output.
|
|
|
20
20
|
| Nikto | NIST SP 800-53 | Test ID string (`'1'`) |
|
|
21
21
|
| ScoutSuite | NIST SP 800-53 | Rule name string |
|
|
22
22
|
| AWS Config | NIST SP 800-53 | Rule identifier or rule name |
|
|
23
|
+
| Hipcheck | NIST SP 800-53 Rev 5 | Analysis name (`binary`, `mitre/binary`) |
|
|
23
24
|
|
|
24
25
|
Go equivalents are available in `go/` subdirectories (see below).
|
|
25
26
|
|
|
@@ -207,6 +208,55 @@ const nistId2 = getAwsConfigNistControlByName('secretsmanager-scheduled-rotation
|
|
|
207
208
|
if (awsConfigIdentifierExists('SECRETSMANAGER_SCHEDULED_ROTATION_SUCCESS_CHECK')) { /* ... */ }
|
|
208
209
|
```
|
|
209
210
|
|
|
211
|
+
#### Coverage tiers and semantics
|
|
212
|
+
|
|
213
|
+
The AWS Config→NIST table is regenerated (via `scripts/generate-awsconfig-mappings.mjs`) from
|
|
214
|
+
three tiers, in precedence order:
|
|
215
|
+
|
|
216
|
+
1. **config-pack** — AWS Config's "Operational Best Practices for NIST 800-53" docs (Rev 4 + Rev 5).
|
|
217
|
+
2. **security-hub** — AWS Security Hub's NIST 800-53 r5 standard control pages (Rev 5).
|
|
218
|
+
3. **derived** — for a managed rule the authoritative tiers miss but whose name matches a strong
|
|
219
|
+
theme (encryption-at-rest, in-transit/TLS, logging/audit, public-access), the controls that
|
|
220
|
+
≥75% of AWS's *own* same-theme mapped rules carry. Nothing is invented — controls are reused
|
|
221
|
+
from AWS's authoritative mappings. Rules matching no theme stay unmapped, and the
|
|
222
|
+
`aws-config-to-hdf` converter floors them to **CM-6** (Configuration Settings) at conversion time.
|
|
223
|
+
|
|
224
|
+
> **Interpretation.** These NIST tags are *candidate control associations for triage*, not evidence
|
|
225
|
+
> that a control is assessed or satisfied. A passed Config / Security Hub rule is evidence *toward*
|
|
226
|
+
> the tagged controls, not proof they are met — one rule rarely satisfies a control in full, and the
|
|
227
|
+
> derived and CM-6 tiers are coarse by design. Do not roll "rule passed" up to "tagged controls
|
|
228
|
+
> satisfied" in SSP / eMASS / ATO exports.
|
|
229
|
+
|
|
230
|
+
### Hipcheck
|
|
231
|
+
|
|
232
|
+
Maps MITRE Hipcheck analysis names to NIST 800-53 Rev 5 controls. Lookups accept
|
|
233
|
+
the bare analysis name (`binary`) or Hipcheck's published, publisher-prefixed
|
|
234
|
+
form (`mitre/binary`). `NIST-ID` is a `|`-delimited list.
|
|
235
|
+
|
|
236
|
+
```typescript
|
|
237
|
+
import {
|
|
238
|
+
getHipcheckNistControls,
|
|
239
|
+
hipcheckAnalysisExists,
|
|
240
|
+
getAllHipcheckAnalyses,
|
|
241
|
+
} from '@mitre/hdf-mappings';
|
|
242
|
+
|
|
243
|
+
const controls = getHipcheckNistControls('mitre/binary');
|
|
244
|
+
// Returns: ['SI-7', 'SR-4']
|
|
245
|
+
|
|
246
|
+
if (hipcheckAnalysisExists('typo')) { /* ... */ }
|
|
247
|
+
|
|
248
|
+
const analyses = getAllHipcheckAnalyses();
|
|
249
|
+
// Returns the 9 mapped Hipcheck analysis names, sorted
|
|
250
|
+
```
|
|
251
|
+
|
|
252
|
+
> **Provenance.** Hipcheck publishes no analysis-to-controls crosswalk, so this
|
|
253
|
+
> table is a hand-curated, NIST-RMF-reviewed mapping — each row carries a
|
|
254
|
+
> `Rationale`. It is the single source of truth in
|
|
255
|
+
> `scripts/generate-hipcheck-mappings.mjs`, which writes both the Go and TS
|
|
256
|
+
> copies byte-identically (`--check` gates drift in CI). As with the other
|
|
257
|
+
> mappings, these are candidate control associations for triage, not evidence a
|
|
258
|
+
> control is assessed or satisfied.
|
|
259
|
+
|
|
210
260
|
## Go API
|
|
211
261
|
|
|
212
262
|
Each mapping is also available as a Go package:
|
|
@@ -218,6 +268,7 @@ hdf-mappings/go/
|
|
|
218
268
|
owasp/ — OWASP→NIST lookups (NISTControls)
|
|
219
269
|
nessus/ — Nessus plugin→NIST lookups (NISTControls, with family+pluginID)
|
|
220
270
|
nikto/ — Nikto test→NIST lookups (NISTControls)
|
|
271
|
+
hipcheck/ — Hipcheck analysis→NIST lookups (NISTControls, Exists, AllAnalyses)
|
|
221
272
|
scoutsuite/ — ScoutSuite rule→NIST lookups (NISTControls)
|
|
222
273
|
awsconfig/ — AWS Config→NIST lookups (NISTControls, GetByRuleName, GetByIdentifier)
|
|
223
274
|
```
|
|
@@ -261,7 +312,7 @@ mapping = awsconfig.GetByRuleName("secretsmanager-scheduled-rotation-success-c
|
|
|
261
312
|
| Nessus→NIST | heimdall2 mapping tables |
|
|
262
313
|
| Nikto→NIST | heimdall2 mapping tables |
|
|
263
314
|
| ScoutSuite→NIST | heimdall2 mapping tables |
|
|
264
|
-
| AWS Config→NIST |
|
|
315
|
+
| AWS Config→NIST | AWS Config OBP for NIST 800-53 docs + Security Hub NIST r5 standard + derived (see Coverage tiers) |
|
|
265
316
|
|
|
266
317
|
## License
|
|
267
318
|
|
package/dist/index.d.ts
CHANGED
|
@@ -213,6 +213,8 @@ declare const DEFAULT_STATIC_ANALYSIS_NIST_TAGS: string[];
|
|
|
213
213
|
declare const DEFAULT_REMEDIATION_NIST_TAGS: string[];
|
|
214
214
|
/** Dependency/inventory management tools (CM-8). */
|
|
215
215
|
declare const DEFAULT_COMPONENT_MANAGEMENT_NIST_TAGS: string[];
|
|
216
|
+
/** Configuration-compliance checks with no specific mapping (CM-6: Configuration Settings). */
|
|
217
|
+
declare const DEFAULT_CONFIG_MANAGEMENT_NIST_TAGS: string[];
|
|
216
218
|
//#endregion
|
|
217
219
|
//#region src/owasp/types.d.ts
|
|
218
220
|
/**
|
|
@@ -492,5 +494,31 @@ declare function awsConfigMappedRevisions(identifier: string, ruleName: string):
|
|
|
492
494
|
/** Get all AWS Config to NIST mappings (all revisions). */
|
|
493
495
|
declare function getAllAwsConfigMappings(): AwsConfigNistMappings;
|
|
494
496
|
//#endregion
|
|
495
|
-
|
|
497
|
+
//#region src/hipcheck/types.d.ts
|
|
498
|
+
/**
|
|
499
|
+
* TypeScript types for Hipcheck analysis to NIST 800-53 mappings.
|
|
500
|
+
*/
|
|
501
|
+
interface HipcheckNistMapping {
|
|
502
|
+
Analysis: string;
|
|
503
|
+
'NIST-ID': string;
|
|
504
|
+
Rev: number;
|
|
505
|
+
Rationale: string;
|
|
506
|
+
}
|
|
507
|
+
type HipcheckNistMappings = HipcheckNistMapping[];
|
|
508
|
+
//#endregion
|
|
509
|
+
//#region src/hipcheck/index.d.ts
|
|
510
|
+
/**
|
|
511
|
+
* Get the NIST 800-53 controls for a Hipcheck analysis name.
|
|
512
|
+
* Accepts bare ("binary") or publisher-prefixed ("mitre/binary") names.
|
|
513
|
+
* @returns array of control IDs, or [] if the analysis has no mapping
|
|
514
|
+
*/
|
|
515
|
+
declare function getHipcheckNistControls(analysis: string): string[];
|
|
516
|
+
/** Check whether a Hipcheck analysis name has a NIST mapping. */
|
|
517
|
+
declare function hipcheckAnalysisExists(analysis: string): boolean;
|
|
518
|
+
/** Get all mapped Hipcheck analysis names, sorted. */
|
|
519
|
+
declare function getAllHipcheckAnalyses(): string[];
|
|
520
|
+
/** Get all Hipcheck to NIST mappings. */
|
|
521
|
+
declare function getAllHipcheckMappings(): HipcheckNistMappings;
|
|
522
|
+
//#endregion
|
|
523
|
+
export { type AwsConfigNistMapping, type AwsConfigNistMappings, type CCIItem, type CCIMappings, type CweNistMapping, type CweNistMappings, DEFAULT_COMPONENT_MANAGEMENT_NIST_TAGS, DEFAULT_CONFIG_MANAGEMENT_NIST_TAGS, DEFAULT_NIST_REVISION, DEFAULT_REMEDIATION_NIST_TAGS, DEFAULT_STATIC_ANALYSIS_NIST_TAGS, type HipcheckNistMapping, type HipcheckNistMappings, type NISTDescriptions, type NessusNistMapping, type NessusNistMappings, type NiktoNistMappings, type NistCCIMappings, type OwaspNistMapping, type OwaspNistMappings, SUPPORTED_NIST_REVISIONS, type ScoutsuiteNistMapping, type ScoutsuiteNistMappings, awsConfigIdentifierExists, awsConfigMappedRevisions, awsConfigRuleNameExists, cciExists, cweExists, getAllAwsConfigIdentifiers, getAllAwsConfigMappings, getAllAwsConfigRuleNames, getAllCCIIds, getAllCweIds, getAllCweMappings, getAllHipcheckAnalyses, getAllHipcheckMappings, getAllNISTIds, getAllNessusMappings, getAllNessusPluginFamilies, getAllNiktoIds, getAllNiktoMappings, getAllOwaspIds, getAllOwaspMappings, getAllScoutsuiteMappings, getAllScoutsuiteRules, getAwsConfigNistControlByIdentifier, getAwsConfigNistControlByName, getAwsConfigNistControlsBySubstring, getAwsConfigNistMappingByIdentifier, getAwsConfigNistMappingByName, getCCIDescription, getCCINistMappings, getCurrentNistRevision, getCweName, getCweNistControl, getCweNistMapping, getHipcheckNistControls, getNISTDescription, getNISTFamily, getNessusNistControl, getNessusPluginFamilyMappings, getNiktoNistControl, getNistCCIMappings, getOwaspName, getOwaspNistControl, getOwaspNistMapping, getScoutsuiteNistControl, getScoutsuiteNistMapping, hipcheckAnalysisExists, isNistStrict, nessusPluginFamilyExists, niktoExists, nistExists, nistToCci, owaspExists, resetNistRevision, scoutsuiteRuleExists, setCurrentNistRevision, setNistStrict };
|
|
496
524
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/cci/types.ts","../src/cci/index.ts","../src/nist/types.ts","../src/nist/index.ts","../src/owasp/types.ts","../src/owasp/index.ts","../src/cwe/types.ts","../src/cwe/index.ts","../src/nessus/types.ts","../src/nessus/index.ts","../src/nikto/types.ts","../src/nikto/index.ts","../src/scoutsuite/types.ts","../src/scoutsuite/index.ts","../src/awsconfig/types.ts","../src/awsconfig/index.ts"],"mappings":";;;;UAGiB;;EAEf;;EAEA;;;;;KAMU,cAAc,eAAe;;;;;KAM7B,kBAAkB;;;;;;;;;;;;;;;;;;iBCId,kBAAkB;;;;;;;;;;;;;iBAqBlB,mBAAmB;;;;;;;;;;;;iBAoBnB;;;;;;;;;;;;;;iBAiBA,UAAU;;;;;;;;;;;;;;iBA8BV,mBAAmB;;;;;;;;;;;;;;iBAqBnB,UAAU;;;;;;KCjId,mBAAmB;;;;;;;;;;;;;;;;cCiBlB;;cAGA;;iBAKG;;;;;iBAQA,uBAAuB;;iBAUvB;;iBAOA;;;;;;iBASA,cAAc;;;;;;;;;;;;;iBAgBd,mBAAmB;;;;;;;;;;;;iBAmBnB;;;;;;;;;;;;;;iBAiBA,WAAW;;;;;;;;;;;;;;;;iBAuBX,cAAc;;;;;;;;;;;cAgCjB;;cAGA;;cAGA;;;;;;
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":[],"sources":["../src/cci/types.ts","../src/cci/index.ts","../src/nist/types.ts","../src/nist/index.ts","../src/owasp/types.ts","../src/owasp/index.ts","../src/cwe/types.ts","../src/cwe/index.ts","../src/nessus/types.ts","../src/nessus/index.ts","../src/nikto/types.ts","../src/nikto/index.ts","../src/scoutsuite/types.ts","../src/scoutsuite/index.ts","../src/awsconfig/types.ts","../src/awsconfig/index.ts","../src/hipcheck/types.ts","../src/hipcheck/index.ts"],"mappings":";;;;UAGiB;;EAEf;;EAEA;;;;;KAMU,cAAc,eAAe;;;;;KAM7B,kBAAkB;;;;;;;;;;;;;;;;;;iBCId,kBAAkB;;;;;;;;;;;;;iBAqBlB,mBAAmB;;;;;;;;;;;;iBAoBnB;;;;;;;;;;;;;;iBAiBA,UAAU;;;;;;;;;;;;;;iBA8BV,mBAAmB;;;;;;;;;;;;;;iBAqBnB,UAAU;;;;;;KCjId,mBAAmB;;;;;;;;;;;;;;;;cCiBlB;;cAGA;;iBAKG;;;;;iBAQA,uBAAuB;;iBAUvB;;iBAOA;;;;;;iBASA,cAAc;;;;;;;;;;;;;iBAgBd,mBAAmB;;;;;;;;;;;;iBAmBnB;;;;;;;;;;;;;;iBAiBA,WAAW;;;;;;;;;;;;;;;;iBAuBX,cAAc;;;;;;;;;;;cAgCjB;;cAGA;;cAGA;;cAGA;;;;;;UC9KI;EACf;EACA;EACA;EACA;EACA;;KAGU,oBAAoB;;;;;;;;;;;;;;;iBCYhB,oBAAoB,kBAAkB;;;;;;;;;;;;;iBAoBtC,oBAAoB;;;;;;;;;;;;;iBAiBpB,aAAa;;;;;;;;;;;;iBAgBb;;;;;;;;;;;;;;iBAiBA,YAAY;;;;;;;;;;;;iBAmBZ,uBAAuB;;;;;;UC7GtB;EACf;EACA;EACA;EACA;EACA;;KAGU,kBAAkB;;;;iBCiBd,kBACd,eACA,eACC;;iBAKa,kBAAkB,eAAe;;iBAKjC,WAAW,eAAe;;iBAK1B,aAAa;;iBAKb,UAAU,eAAe;;iBAKzB,qBAAqB;;;;;;UCrDpB;EACf;EACA;EACA;;KAGU,qBAAqB;;;;;;;;;iBCKjB,qBACd,sBACA;;;;;;iBAwBc,8BACd,uBACC;;;;;iBAQa;;;;;;iBAUA,yBAAyB;;;;;iBAQzB,wBAAwB;;;;;;KCjE5B,oBAAoB;;;;;;;;iBCUhB,oBAAoB;;;;;iBASpB;;;;;;iBASA,YAAY;;;;;iBASZ,uBAAuB;;;;;;UCrCtB;EACf;EACA;;KAGU,yBAAyB;;;;;;;;iBCQrB,yBAAyB,eAAe;;;;;;iBASxC,yBAAyB;;;;;iBASzB;;;;;;iBASA,qBAAqB;;;;;iBAQrB,4BAA4B;;;;;;UChD3B;EACf;EACA;EACA;EACA;;KAGU,wBAAwB;;;;iBCsBpB,oCACd,oBACA,eACC;;iBAKa,8BACd,kBACA,eACC;;iBAKa,oCACd,oBACA;;iBAMc,8BACd,kBACA;;;;;;;iBAWc,oCACd,cACA;;iBAoBc,2BAA2B;;iBAK3B,yBAAyB;;iBAKzB,0BAA0B,oBAAoB;;iBAK9C,wBAAwB,kBAAkB;;;;;;;;iBAW1C,yBAAyB,oBAAoB;;iBAa7C,2BAA2B;;;;;;UC/H1B;EACf;EACA;EACA;EACA;;KAGU,uBAAuB;;;;;;;;iBCqBnB,wBAAwB;;iBAUxB,uBAAuB;;iBAKvB;;iBAKA,0BAA0B"}
|