@mitre/hdf-converters 2.12.2 → 2.13.0
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 +25 -24
- package/lib/data/converters/csv2json.d.ts +1 -0
- package/lib/data/converters/csv2json.d.ts.map +1 -0
- package/lib/data/converters/csv2json.js +1 -1
- package/lib/data/converters/csv2json.js.map +1 -1
- package/lib/data/converters/xml2json.d.ts +1 -0
- package/lib/data/converters/xml2json.d.ts.map +1 -0
- package/lib/data/converters/xml2json.js +6 -25
- package/lib/data/converters/xml2json.js.map +1 -1
- package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts +2 -0
- package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts.map +1 -0
- package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js +13 -0
- package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js.map +1 -0
- package/lib/index.d.ts +6 -0
- package/lib/index.d.ts.map +1 -0
- package/lib/index.js +23 -8
- package/lib/index.js.map +1 -1
- package/lib/package.json +28 -45
- package/lib/src/anchore-grype-mapper.d.ts +1 -0
- package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
- package/lib/src/anchore-grype-mapper.js +7 -1
- package/lib/src/anchore-grype-mapper.js.map +1 -1
- package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
- package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
- package/lib/src/asff-mapper/asff-mapper.js +276 -242
- package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
- package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
- package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
- package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
- package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
- package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
- package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
- package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
- package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-guardduty.js +18 -9
- package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
- package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
- package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-inspector.js +18 -9
- package/lib/src/asff-mapper/case-inspector.js.map +1 -1
- package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
- package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-previously-hdf.js +28 -15
- package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
- package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
- package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-prowler.js +19 -9
- package/lib/src/asff-mapper/case-prowler.js.map +1 -1
- package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
- package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-security-hub.js +24 -9
- package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
- package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
- package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
- package/lib/src/asff-mapper/case-trivy.js +18 -9
- package/lib/src/asff-mapper/case-trivy.js.map +1 -1
- package/lib/src/aws-config-mapper.d.ts +1 -0
- package/lib/src/aws-config-mapper.d.ts.map +1 -0
- package/lib/src/aws-config-mapper.js +38 -22
- package/lib/src/aws-config-mapper.js.map +1 -1
- package/lib/src/base-converter.d.ts +2 -1
- package/lib/src/base-converter.d.ts.map +1 -0
- package/lib/src/base-converter.js +51 -33
- package/lib/src/base-converter.js.map +1 -1
- package/lib/src/burpsuite-mapper.d.ts +7 -0
- package/lib/src/burpsuite-mapper.d.ts.map +1 -0
- package/lib/src/burpsuite-mapper.js +115 -88
- package/lib/src/burpsuite-mapper.js.map +1 -1
- package/lib/src/checkov-mapper.d.ts +67 -0
- package/lib/src/checkov-mapper.d.ts.map +1 -0
- package/lib/src/checkov-mapper.js +240 -0
- package/lib/src/checkov-mapper.js.map +1 -0
- package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
- package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
- package/lib/src/ckl-mapper/checklist-jsonix-converter.js +59 -25
- package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
- package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
- package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
- package/lib/src/ckl-mapper/checklist-mapper.js +264 -155
- package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
- package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
- package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
- package/lib/src/ckl-mapper/checklist-metadata-utils.js +38 -16
- package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
- package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
- package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
- package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
- package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
- package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
- package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
- package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
- package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
- package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
- package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
- package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
- package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
- package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
- package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/asff/transformers.js +82 -55
- package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
- package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
- package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +65 -38
- package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
- package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
- package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
- package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
- package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
- package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/html/html-types.js +1 -0
- package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
- package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
- package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +151 -107
- package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
- package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
- package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
- package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
- package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
- package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
- package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +40 -16
- package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
- package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
- package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
- package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +33 -12
- package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
- package/lib/src/conveyor-mapper.d.ts +1 -0
- package/lib/src/conveyor-mapper.d.ts.map +1 -0
- package/lib/src/conveyor-mapper.js +85 -40
- package/lib/src/conveyor-mapper.js.map +1 -1
- package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
- package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
- package/lib/src/cyclonedx-sbom-mapper.js +377 -309
- package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
- package/lib/src/dbprotect-mapper.d.ts +1 -0
- package/lib/src/dbprotect-mapper.d.ts.map +1 -0
- package/lib/src/dbprotect-mapper.js +74 -63
- package/lib/src/dbprotect-mapper.js.map +1 -1
- package/lib/src/dependency-track-mapper.d.ts +1 -0
- package/lib/src/dependency-track-mapper.d.ts.map +1 -0
- package/lib/src/dependency-track-mapper.js +144 -130
- package/lib/src/dependency-track-mapper.js.map +1 -1
- package/lib/src/fortify-mapper.d.ts +7 -0
- package/lib/src/fortify-mapper.d.ts.map +1 -0
- package/lib/src/fortify-mapper.js +118 -92
- package/lib/src/fortify-mapper.js.map +1 -1
- package/lib/src/gosec-mapper.d.ts +1 -0
- package/lib/src/gosec-mapper.d.ts.map +1 -0
- package/lib/src/gosec-mapper.js +90 -72
- package/lib/src/gosec-mapper.js.map +1 -1
- package/lib/src/ionchannel-mapper.d.ts +1 -0
- package/lib/src/ionchannel-mapper.d.ts.map +1 -0
- package/lib/src/ionchannel-mapper.js +130 -110
- package/lib/src/ionchannel-mapper.js.map +1 -1
- package/lib/src/jfrog-xray-mapper.d.ts +1 -0
- package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
- package/lib/src/jfrog-xray-mapper.js +92 -78
- package/lib/src/jfrog-xray-mapper.js.map +1 -1
- package/lib/src/jsonix-converter.d.ts +1 -0
- package/lib/src/jsonix-converter.d.ts.map +1 -0
- package/lib/src/jsonix-converter.js +1 -0
- package/lib/src/jsonix-converter.js.map +1 -1
- package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
- package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
- package/lib/src/jsonix-intermediate-converter.js.map +1 -1
- package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
- package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
- package/lib/src/mappings/AwsConfigMapping.js +19 -9
- package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
- package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
- package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
- package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
- package/lib/src/mappings/CciNistMapping.d.ts +1 -0
- package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/CciNistMapping.js +6 -2
- package/lib/src/mappings/CciNistMapping.js.map +1 -1
- package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
- package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/CciNistMappingData.js.map +1 -1
- package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/CciNistMappingItem.js +2 -0
- package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
- package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
- package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
- package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
- package/lib/src/mappings/CweNistMapping.d.ts +1 -0
- package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/CweNistMapping.js +1 -0
- package/lib/src/mappings/CweNistMapping.js.map +1 -1
- package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
- package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/CweNistMappingData.js.map +1 -1
- package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/CweNistMappingItem.js +5 -0
- package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
- package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
- package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
- package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
- package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
- package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
- package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
- package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
- package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
- package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
- package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
- package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
- package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
- package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
- package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
- package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
- package/lib/src/mappings/NistCciMappingData.js.map +1 -1
- package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
- package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/OwaspNistMapping.js +19 -8
- package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
- package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
- package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
- package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
- package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
- package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
- package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
- package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
- package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
- package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
- package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
- package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
- package/lib/src/msft-secure-score-mapper.d.ts +1 -0
- package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
- package/lib/src/msft-secure-score-mapper.js +202 -185
- package/lib/src/msft-secure-score-mapper.js.map +1 -1
- package/lib/src/nessus-mapper.d.ts +2 -1
- package/lib/src/nessus-mapper.d.ts.map +1 -0
- package/lib/src/nessus-mapper.js +122 -105
- package/lib/src/nessus-mapper.js.map +1 -1
- package/lib/src/netsparker-mapper.d.ts +7 -0
- package/lib/src/netsparker-mapper.d.ts.map +1 -0
- package/lib/src/netsparker-mapper.js +34 -9
- package/lib/src/netsparker-mapper.js.map +1 -1
- package/lib/src/neuvector-mapper.d.ts +1 -0
- package/lib/src/neuvector-mapper.d.ts.map +1 -0
- package/lib/src/neuvector-mapper.js +123 -124
- package/lib/src/neuvector-mapper.js.map +1 -1
- package/lib/src/nikto-mapper.d.ts +1 -0
- package/lib/src/nikto-mapper.d.ts.map +1 -0
- package/lib/src/nikto-mapper.js +85 -74
- package/lib/src/nikto-mapper.js.map +1 -1
- package/lib/src/prisma-mapper.d.ts +1 -0
- package/lib/src/prisma-mapper.d.ts.map +1 -0
- package/lib/src/prisma-mapper.js +138 -128
- package/lib/src/prisma-mapper.js.map +1 -1
- package/lib/src/sarif-mapper.d.ts +1 -0
- package/lib/src/sarif-mapper.d.ts.map +1 -0
- package/lib/src/sarif-mapper.js +116 -105
- package/lib/src/sarif-mapper.js.map +1 -1
- package/lib/src/scoutsuite-mapper.d.ts +1 -0
- package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
- package/lib/src/scoutsuite-mapper.js +174 -163
- package/lib/src/scoutsuite-mapper.js.map +1 -1
- package/lib/src/snyk-mapper.d.ts +1 -0
- package/lib/src/snyk-mapper.d.ts.map +1 -0
- package/lib/src/snyk-mapper.js +112 -100
- package/lib/src/snyk-mapper.js.map +1 -1
- package/lib/src/sonarqube-mapper.d.ts +18 -5
- package/lib/src/sonarqube-mapper.d.ts.map +1 -0
- package/lib/src/sonarqube-mapper.js +526 -278
- package/lib/src/sonarqube-mapper.js.map +1 -1
- package/lib/src/splunk-mapper.d.ts +3 -2
- package/lib/src/splunk-mapper.d.ts.map +1 -0
- package/lib/src/splunk-mapper.js +72 -16
- package/lib/src/splunk-mapper.js.map +1 -1
- package/lib/src/trufflehog-mapper.d.ts +1 -0
- package/lib/src/trufflehog-mapper.d.ts.map +1 -0
- package/lib/src/trufflehog-mapper.js +72 -69
- package/lib/src/trufflehog-mapper.js.map +1 -1
- package/lib/src/twistlock-mapper.d.ts +1 -0
- package/lib/src/twistlock-mapper.d.ts.map +1 -0
- package/lib/src/twistlock-mapper.js +140 -126
- package/lib/src/twistlock-mapper.js.map +1 -1
- package/lib/src/utils/CCI_List.d.ts +1 -0
- package/lib/src/utils/CCI_List.d.ts.map +1 -0
- package/lib/src/utils/CCI_List.js.map +1 -1
- package/lib/src/utils/attestations.d.ts +1 -0
- package/lib/src/utils/attestations.d.ts.map +1 -0
- package/lib/src/utils/attestations.js +28 -13
- package/lib/src/utils/attestations.js.map +1 -1
- package/lib/src/utils/compliance.d.ts +1 -0
- package/lib/src/utils/compliance.d.ts.map +1 -0
- package/lib/src/utils/compliance.js +11 -3
- package/lib/src/utils/compliance.js.map +1 -1
- package/lib/src/utils/fingerprinting.d.ts +2 -0
- package/lib/src/utils/fingerprinting.d.ts.map +1 -0
- package/lib/src/utils/fingerprinting.js +28 -11
- package/lib/src/utils/fingerprinting.js.map +1 -1
- package/lib/src/utils/global.d.ts +3 -1
- package/lib/src/utils/global.d.ts.map +1 -0
- package/lib/src/utils/global.js +35 -17
- package/lib/src/utils/global.js.map +1 -1
- package/lib/src/utils/parseJson.d.ts +1 -0
- package/lib/src/utils/parseJson.d.ts.map +1 -0
- package/lib/src/utils/parseJson.js +7 -3
- package/lib/src/utils/parseJson.js.map +1 -1
- package/lib/src/utils/result.d.ts +1 -0
- package/lib/src/utils/result.d.ts.map +1 -0
- package/lib/src/utils/result.js.map +1 -1
- package/lib/src/utils/splunk-tools.d.ts +2 -1
- package/lib/src/utils/splunk-tools.d.ts.map +1 -0
- package/lib/src/utils/splunk-tools.js +52 -32
- package/lib/src/utils/splunk-tools.js.map +1 -1
- package/lib/src/veracode-mapper.d.ts +1 -0
- package/lib/src/veracode-mapper.d.ts.map +1 -0
- package/lib/src/veracode-mapper.js +50 -7
- package/lib/src/veracode-mapper.js.map +1 -1
- package/lib/src/xccdf-results-mapper.d.ts +7 -0
- package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
- package/lib/src/xccdf-results-mapper.js +336 -301
- package/lib/src/xccdf-results-mapper.js.map +1 -1
- package/lib/src/zap-mapper.d.ts +8 -0
- package/lib/src/zap-mapper.d.ts.map +1 -0
- package/lib/src/zap-mapper.js +119 -90
- package/lib/src/zap-mapper.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -0
- package/lib/types/neuvector-types.d.ts +1 -0
- package/lib/types/neuvector-types.d.ts.map +1 -0
- package/lib/types/neuvector-types.js +80 -0
- package/lib/types/neuvector-types.js.map +1 -1
- package/lib/types/splunk-config-types.d.ts +1 -0
- package/lib/types/splunk-config-types.d.ts.map +1 -0
- package/lib/types/splunk-config-types.js.map +1 -1
- package/lib/types/splunk-control-types.d.ts +1 -0
- package/lib/types/splunk-control-types.d.ts.map +1 -0
- package/lib/types/splunk-control-types.js.map +1 -1
- package/lib/types/splunk-profile-types.d.ts +1 -0
- package/lib/types/splunk-profile-types.d.ts.map +1 -0
- package/lib/types/splunk-profile-types.js.map +1 -1
- package/lib/types/splunk-report-types.d.ts +1 -0
- package/lib/types/splunk-report-types.d.ts.map +1 -0
- package/lib/types/splunk-report-types.js.map +1 -1
- package/package.json +29 -46
- package/lib/data/converters/csv2json.ts +0 -36
- package/lib/data/converters/xml2json.ts +0 -57
|
@@ -15,18 +15,55 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
39
|
+
exports.getRunTime = getRunTime;
|
|
40
|
+
exports.createProfileInfoFinding = createProfileInfoFinding;
|
|
41
|
+
exports.statusCount = statusCount;
|
|
42
|
+
exports.createDescription = createDescription;
|
|
43
|
+
exports.createAssumeRolePolicyDocument = createAssumeRolePolicyDocument;
|
|
44
|
+
exports.cleanText = cleanText;
|
|
45
|
+
exports.getAllLayers = getAllLayers;
|
|
46
|
+
exports.createNote = createNote;
|
|
47
|
+
exports.createCode = createCode;
|
|
48
|
+
exports.setupId = setupId;
|
|
49
|
+
exports.setupProductARN = setupProductARN;
|
|
50
|
+
exports.setupAwsAcct = setupAwsAcct;
|
|
51
|
+
exports.setupCreated = setupCreated;
|
|
52
|
+
exports.setupRegion = setupRegion;
|
|
53
|
+
exports.setupUpdated = setupUpdated;
|
|
54
|
+
exports.setupGeneratorId = setupGeneratorId;
|
|
55
|
+
exports.setupTitle = setupTitle;
|
|
56
|
+
exports.setupDescr = setupDescr;
|
|
57
|
+
exports.setupSevLabel = setupSevLabel;
|
|
58
|
+
exports.setupSevOriginal = setupSevOriginal;
|
|
59
|
+
exports.setupFindingType = setupFindingType;
|
|
60
|
+
exports.getFixForControl = getFixForControl;
|
|
61
|
+
exports.setupRemRec = setupRemRec;
|
|
62
|
+
exports.setupProdFieldCheck = setupProdFieldCheck;
|
|
63
|
+
exports.setupResourcesID = setupResourcesID;
|
|
64
|
+
exports.setupResourcesID2 = setupResourcesID2;
|
|
65
|
+
exports.setupDetailsAssume = setupDetailsAssume;
|
|
66
|
+
exports.setupControlStatus = setupControlStatus;
|
|
30
67
|
const crypto_1 = require("crypto");
|
|
31
68
|
const inspecjs_1 = require("inspecjs");
|
|
32
69
|
const _ = __importStar(require("lodash"));
|
|
@@ -50,22 +87,26 @@ function getRunTime(hdf) {
|
|
|
50
87
|
});
|
|
51
88
|
return time;
|
|
52
89
|
}
|
|
53
|
-
|
|
90
|
+
/** Trivial overlay filter that just takes the version of the control that has results from amongst all identical ids */
|
|
54
91
|
function filter_overlays(controls) {
|
|
55
92
|
const idHash = {};
|
|
56
93
|
controls.forEach((c) => {
|
|
57
94
|
const id = c.hdf.wraps.id;
|
|
58
95
|
const old = idHash[id];
|
|
96
|
+
// If old, gotta check if our new status list is "better than" old
|
|
59
97
|
if (old) {
|
|
60
98
|
const newSignificant = c.hdf.status_list && c.hdf.status_list.length > 0;
|
|
61
99
|
if (newSignificant) {
|
|
100
|
+
// Overwrite
|
|
62
101
|
idHash[id] = c;
|
|
63
102
|
}
|
|
64
103
|
}
|
|
65
104
|
else {
|
|
105
|
+
// First time seeing this id
|
|
66
106
|
idHash[id] = c;
|
|
67
107
|
}
|
|
68
108
|
});
|
|
109
|
+
// Return the set of keys
|
|
69
110
|
return Array.from(Object.values(idHash));
|
|
70
111
|
}
|
|
71
112
|
function createProfileInfoFinding(hdf, options) {
|
|
@@ -104,11 +145,12 @@ function createProfileInfoFinding(hdf, options) {
|
|
|
104
145
|
}
|
|
105
146
|
]
|
|
106
147
|
};
|
|
148
|
+
// need the intermediate caste to tell typescript that this cast is intentional
|
|
107
149
|
return profileInfo;
|
|
108
150
|
}
|
|
109
|
-
exports.createProfileInfoFinding = createProfileInfoFinding;
|
|
110
151
|
function statusCount(evaluation) {
|
|
111
152
|
let controls = [];
|
|
153
|
+
// Get all controls
|
|
112
154
|
evaluation.contains.forEach((p) => controls.push(...p.contains));
|
|
113
155
|
controls = filter_overlays(controls);
|
|
114
156
|
const statusCounts = {
|
|
@@ -139,17 +181,15 @@ function statusCount(evaluation) {
|
|
|
139
181
|
});
|
|
140
182
|
return statusCounts;
|
|
141
183
|
}
|
|
142
|
-
exports.statusCount = statusCount;
|
|
143
184
|
function createDescription(counts) {
|
|
144
185
|
return `Result Set Status Summary -- Passed: ${counts.Passed} (${counts.PassedTests} individual checks passed) --- Failed: ${counts.Failed} (${counts.PassingTestsFailedControl} individual checks failed out of ${counts.PassingTestsFailedControl + counts.FailedTests} total checks) --- Not Applicable: ${counts.NotApplicable} (System exception or absent component) --- Not Reviewed: ${counts.NotReviewed} (Can only be tested manually at this time)`;
|
|
145
186
|
}
|
|
146
|
-
exports.createDescription = createDescription;
|
|
147
187
|
function createAssumeRolePolicyDocument(layersOfControl, segment) {
|
|
148
188
|
const segmentOverview = createNote(segment);
|
|
149
189
|
const code = layersOfControl.map((layer) => createCode(layer)).join('\n\n');
|
|
150
190
|
return `${code}\n\n${segmentOverview}`;
|
|
151
191
|
}
|
|
152
|
-
|
|
192
|
+
// Gets rid of extra spacing + newlines as these aren't shown in Security Hub
|
|
153
193
|
function cleanText(text) {
|
|
154
194
|
if (text) {
|
|
155
195
|
return text.replace(/ +/g, ' ');
|
|
@@ -158,7 +198,7 @@ function cleanText(text) {
|
|
|
158
198
|
return undefined;
|
|
159
199
|
}
|
|
160
200
|
}
|
|
161
|
-
|
|
201
|
+
// Gets all layers of a control across overlaid profiles given the ID
|
|
162
202
|
function getAllLayers(hdf, knownControl) {
|
|
163
203
|
if (hdf.profiles.length === 1) {
|
|
164
204
|
return [
|
|
@@ -172,6 +212,7 @@ function getAllLayers(hdf, knownControl) {
|
|
|
172
212
|
}
|
|
173
213
|
else {
|
|
174
214
|
const foundControls = [];
|
|
215
|
+
// For each control in each profile
|
|
175
216
|
hdf.profiles.forEach((profile) => {
|
|
176
217
|
profile.controls.forEach((control) => {
|
|
177
218
|
if (control.id === knownControl.id) {
|
|
@@ -185,7 +226,7 @@ function getAllLayers(hdf, knownControl) {
|
|
|
185
226
|
return foundControls;
|
|
186
227
|
}
|
|
187
228
|
}
|
|
188
|
-
|
|
229
|
+
// Creates Note field containing control status
|
|
189
230
|
function createNote(segment) {
|
|
190
231
|
if (segment.message) {
|
|
191
232
|
return `Test Description: ${segment.code_desc} --- Test Result: ${segment.message}`;
|
|
@@ -197,7 +238,6 @@ function createNote(segment) {
|
|
|
197
238
|
return `Test Description: ${segment.code_desc}`;
|
|
198
239
|
}
|
|
199
240
|
}
|
|
200
|
-
exports.createNote = createNote;
|
|
201
241
|
function cleanObjectValues(value) {
|
|
202
242
|
if (Array.isArray(value)) {
|
|
203
243
|
return value.length < 0;
|
|
@@ -205,7 +245,6 @@ function cleanObjectValues(value) {
|
|
|
205
245
|
return !Boolean(value);
|
|
206
246
|
}
|
|
207
247
|
function createCode(control) {
|
|
208
|
-
var _a, _b;
|
|
209
248
|
const noCodeValue = (_.get(control, 'profileInfo.depends') || [])
|
|
210
249
|
.length > 0
|
|
211
250
|
? ''
|
|
@@ -213,25 +252,21 @@ function createCode(control) {
|
|
|
213
252
|
if (!control.code && noCodeValue === '') {
|
|
214
253
|
return '';
|
|
215
254
|
}
|
|
216
|
-
return `=========================================================\n# Profile name: ${
|
|
255
|
+
return `=========================================================\n# Profile name: ${control.profileInfo?.name}\n=========================================================\n\n${control.code ? control.code?.replace(/\\\"/g, '"') : noCodeValue}`;
|
|
217
256
|
}
|
|
218
|
-
exports.createCode = createCode;
|
|
219
257
|
function setupId(control, context) {
|
|
220
|
-
const target = context
|
|
221
|
-
const name = context
|
|
258
|
+
const target = context?.ioptions.target;
|
|
259
|
+
const name = context?.data.profiles[0].name;
|
|
222
260
|
return `${target}/${name}/${control.id}/finding/${(0, crypto_1.createHash)('sha256')
|
|
223
261
|
.update(control.id + control.result.code_desc)
|
|
224
262
|
.digest('hex')}`;
|
|
225
263
|
}
|
|
226
|
-
exports.setupId = setupId;
|
|
227
264
|
function setupProductARN(_val, context) {
|
|
228
|
-
return `arn:aws:securityhub:${context
|
|
265
|
+
return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:product/${context?.ioptions.awsAccountId}/default`;
|
|
229
266
|
}
|
|
230
|
-
exports.setupProductARN = setupProductARN;
|
|
231
267
|
function setupAwsAcct(_val, context) {
|
|
232
|
-
return context
|
|
268
|
+
return context?.ioptions.awsAccountId;
|
|
233
269
|
}
|
|
234
|
-
exports.setupAwsAcct = setupAwsAcct;
|
|
235
270
|
function setupCreated(control) {
|
|
236
271
|
try {
|
|
237
272
|
return (new Date(control.result.start_time).toISOString() ||
|
|
@@ -241,27 +276,24 @@ function setupCreated(control) {
|
|
|
241
276
|
return new Date().toISOString();
|
|
242
277
|
}
|
|
243
278
|
}
|
|
244
|
-
exports.setupCreated = setupCreated;
|
|
245
279
|
function setupRegion(_val, context) {
|
|
246
|
-
return context
|
|
280
|
+
return context?.ioptions.region;
|
|
247
281
|
}
|
|
248
|
-
exports.setupRegion = setupRegion;
|
|
249
282
|
function setupUpdated(_control, context) {
|
|
283
|
+
// Add one millisecond to the time by control index so the order is correct in security hub
|
|
250
284
|
const time = new Date();
|
|
251
|
-
time.setMilliseconds(time.getMilliseconds() + (
|
|
285
|
+
time.setMilliseconds(time.getMilliseconds() + (context?.index || 0));
|
|
252
286
|
return time.toISOString();
|
|
253
287
|
}
|
|
254
|
-
exports.setupUpdated = setupUpdated;
|
|
255
288
|
function setupGeneratorId(control, context) {
|
|
256
|
-
return `arn:aws:securityhub:${context
|
|
289
|
+
return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:ruleset/set/${context?.data.profiles[0].name}/rule/${control.id}`;
|
|
257
290
|
}
|
|
258
|
-
exports.setupGeneratorId = setupGeneratorId;
|
|
259
291
|
function setupTitle(control) {
|
|
260
292
|
const nistTags = control.tags.nist ? `[${control.tags.nist.join(', ')}]` : '';
|
|
261
293
|
return _.truncate(`${control.id} | ${nistTags} | ${cleanText(control.title)}`, { length: 256 });
|
|
262
294
|
}
|
|
263
|
-
exports.setupTitle = setupTitle;
|
|
264
295
|
function setupDescr(control) {
|
|
296
|
+
// Check text can either be a description or a tag
|
|
265
297
|
const checkText = (0, global_1.getDescription)(control.descriptions || [], 'check') ||
|
|
266
298
|
control.tags.check ||
|
|
267
299
|
'Check not available';
|
|
@@ -272,15 +304,12 @@ function setupDescr(control) {
|
|
|
272
304
|
}
|
|
273
305
|
return currentVal;
|
|
274
306
|
}
|
|
275
|
-
exports.setupDescr = setupDescr;
|
|
276
307
|
function setupSevLabel(control, context) {
|
|
277
|
-
return
|
|
308
|
+
return context?.impactMapping.get(control.impact) || 'INFORMATIONAL';
|
|
278
309
|
}
|
|
279
|
-
exports.setupSevLabel = setupSevLabel;
|
|
280
310
|
function setupSevOriginal(control) {
|
|
281
311
|
return `${control.impact}`;
|
|
282
312
|
}
|
|
283
|
-
exports.setupSevOriginal = setupSevOriginal;
|
|
284
313
|
function createControlMetadata(control) {
|
|
285
314
|
const types = [
|
|
286
315
|
`Control/ID/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(control.id)}`,
|
|
@@ -308,9 +337,8 @@ function createControlMetadata(control) {
|
|
|
308
337
|
return types;
|
|
309
338
|
}
|
|
310
339
|
function getFilename(options) {
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
return (_a = slashSplit === null || slashSplit === void 0 ? void 0 : slashSplit.split('/')[slashSplit.split('/').length - 1]) !== null && _a !== void 0 ? _a : '';
|
|
340
|
+
const slashSplit = options?.input.split('\\')[options?.input.split('\\').length - 1];
|
|
341
|
+
return slashSplit?.split('/')[slashSplit.split('/').length - 1] ?? '';
|
|
314
342
|
}
|
|
315
343
|
function createProfileInfoFindingFields(hdf, options) {
|
|
316
344
|
const typesArr = [
|
|
@@ -400,10 +428,9 @@ function createTagInfo(control) {
|
|
|
400
428
|
return typesArr;
|
|
401
429
|
}
|
|
402
430
|
function createDescriptionInfo(control) {
|
|
403
|
-
var _a;
|
|
404
431
|
const typesArr = [];
|
|
405
432
|
if (Array.isArray(control.descriptions)) {
|
|
406
|
-
|
|
433
|
+
control.descriptions?.forEach((description) => {
|
|
407
434
|
if (description.data && cleanText(description.data)) {
|
|
408
435
|
typesArr.push(`Descriptions/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(description.label)}/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(cleanText(description.data))}`);
|
|
409
436
|
}
|
|
@@ -419,57 +446,58 @@ function createDescriptionInfo(control) {
|
|
|
419
446
|
return typesArr;
|
|
420
447
|
}
|
|
421
448
|
function setupFindingType(control, context) {
|
|
449
|
+
// typesArr needs to be ordered so that attributes that are likely to be bloated and/or contain less necessary information end up at the bottom so that they don't expand and push more attributes outside of the list which is capped at 50 items
|
|
422
450
|
const typesArr = [
|
|
423
451
|
`MITRE/SAF/${package_json_1.version}-hdf2asff`,
|
|
424
|
-
`File/Input/${getFilename(context
|
|
452
|
+
`File/Input/${getFilename(context?.ioptions)}`
|
|
425
453
|
];
|
|
454
|
+
// Add control metadata to the Finding Provider Fields
|
|
426
455
|
typesArr.push(...createControlMetadata(control));
|
|
456
|
+
// Add segment/result information to Finding Provider Fields
|
|
427
457
|
typesArr.push(...createSegmentInfo(control.result));
|
|
458
|
+
// Add Tags to Finding Provider Fields
|
|
428
459
|
typesArr.push(...createTagInfo(control));
|
|
460
|
+
// nist tag, then subdescriptions, then remaining tags
|
|
429
461
|
const nistTagIndex = typesArr.findIndex((typeString) => typeString.startsWith('Tags/nist/'));
|
|
430
462
|
const tagsIndex = typesArr.findIndex((typeString) => typeString.startsWith('Tags/'));
|
|
431
463
|
if (nistTagIndex !== -1) {
|
|
432
464
|
typesArr.splice(tagsIndex, 0, typesArr.splice(nistTagIndex, 1)[0]);
|
|
433
465
|
}
|
|
434
|
-
typesArr.splice(tagsIndex === -1 ? typesArr.length : tagsIndex + 1, 0,
|
|
466
|
+
typesArr.splice(tagsIndex === -1 ? typesArr.length : tagsIndex + 1, 0,
|
|
467
|
+
// Add Descriptions to FindingProviderFields
|
|
468
|
+
...createDescriptionInfo(control));
|
|
469
|
+
// description, then code, then code_desc
|
|
435
470
|
const desc = typesArr.splice(typesArr.findIndex((typeString) => typeString.startsWith('Control/Desc/')), 1)[0];
|
|
436
471
|
const code = `Control/Code/${(0, reverse_asff_mapper_1.escapeForwardSlashes)(control.layersOfControl
|
|
437
472
|
.map((layer) => createCode(layer))
|
|
438
473
|
.join('\n\n'))}`;
|
|
439
474
|
const codeDesc = typesArr.splice(typesArr.findIndex((typeString) => typeString.startsWith('Segment/code_desc/')), 1)[0];
|
|
440
|
-
typesArr.push(..._.compact([desc, code, codeDesc]));
|
|
475
|
+
typesArr.push(..._.compact([desc, code, codeDesc])); // [][0] can return undefined so use compact to deal with them
|
|
441
476
|
return typesArr;
|
|
442
477
|
}
|
|
443
|
-
exports.setupFindingType = setupFindingType;
|
|
444
478
|
function getFixForControl(control) {
|
|
445
479
|
return ((0, global_1.getDescription)(control.descriptions || [], 'fix') ||
|
|
446
480
|
control.tags.fix ||
|
|
447
481
|
'Fix not available');
|
|
448
482
|
}
|
|
449
|
-
exports.getFixForControl = getFixForControl;
|
|
450
483
|
function setupRemRec(control) {
|
|
451
484
|
return _.truncate(cleanText(`${createNote(control.result)} --- Fix: ${getFixForControl(control)}`), { length: 512, omission: '... [SEE FULL TEXT IN AssumeRolePolicyDocument]' });
|
|
452
485
|
}
|
|
453
|
-
exports.setupRemRec = setupRemRec;
|
|
454
486
|
function setupProdFieldCheck(control) {
|
|
455
487
|
const checkText = (0, global_1.getDescription)(control.descriptions || [], 'check') ||
|
|
456
488
|
control.tags.check ||
|
|
457
489
|
'Check not available';
|
|
458
490
|
return _.truncate(checkText, { length: 2048, omission: '' });
|
|
459
491
|
}
|
|
460
|
-
exports.setupProdFieldCheck = setupProdFieldCheck;
|
|
461
492
|
function setupResourcesID(_val, context) {
|
|
462
|
-
return `AWS::::Account:${context
|
|
493
|
+
return `AWS::::Account:${context?.ioptions.awsAccountId}`;
|
|
463
494
|
}
|
|
464
|
-
exports.setupResourcesID = setupResourcesID;
|
|
465
495
|
function setupResourcesID2(control) {
|
|
466
496
|
return `${control.id} Validation Code`;
|
|
467
497
|
}
|
|
468
|
-
exports.setupResourcesID2 = setupResourcesID2;
|
|
469
498
|
function setupDetailsAssume(control) {
|
|
470
499
|
return createAssumeRolePolicyDocument(control.layersOfControl, control.result);
|
|
471
500
|
}
|
|
472
|
-
exports.setupDetailsAssume = setupDetailsAssume;
|
|
473
501
|
function setupControlStatus(control) {
|
|
474
502
|
if (control.results.some((result) => 'backtrace' in result)) {
|
|
475
503
|
return 'NOT_AVAILABLE';
|
|
@@ -482,5 +510,4 @@ function setupControlStatus(control) {
|
|
|
482
510
|
}
|
|
483
511
|
return status;
|
|
484
512
|
}
|
|
485
|
-
exports.setupControlStatus = setupControlStatus;
|
|
486
513
|
//# sourceMappingURL=transformers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformers.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":"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","sourcesContent":["import {createHash} from 'crypto';\nimport {\n ContextualizedControl,\n ContextualizedEvaluation,\n contextualizeEvaluation,\n convertFile,\n ExecJSON\n} from 'inspecjs';\nimport * as _ from 'lodash';\nimport moment from 'moment';\nimport {version as HeimdallToolsVersion} from '../../../package.json';\nimport {getDescription} from '../../utils/global';\nimport {IFindingASFF, IOptions} from './asff-types';\nimport {\n escapeForwardSlashes,\n FromHdfToAsffMapper,\n SegmentedControl\n} from './reverse-asff-mapper';\n\n//FromHdfToAsff mapper transformers\ntype Counts = {\n Passed: number;\n PassedTests: number;\n Failed: number;\n FailedTests: number;\n PassingTestsFailedControl: number;\n NotApplicable: number;\n NotReviewed: number;\n};\n\nexport function getRunTime(hdf: ExecJSON.Execution): string {\n let time = new Date().toISOString();\n hdf.profiles.forEach((profile) => {\n if (\n profile.controls[0] &&\n profile.controls[0].results.length &&\n profile.controls[0].results[0].start_time\n ) {\n try {\n time = new Date(\n profile.controls[0].results[0].start_time\n ).toISOString();\n } catch {\n time = new Date().toISOString();\n }\n }\n });\n return time;\n}\n\n/** Trivial overlay filter that just takes the version of the control that has results from amongst all identical ids */\nfunction filter_overlays(\n controls: ContextualizedControl[]\n): ContextualizedControl[] {\n const idHash: {[key: string]: ContextualizedControl} = {};\n controls.forEach((c) => {\n const id = c.hdf.wraps.id;\n const old: ContextualizedControl | undefined = idHash[id];\n // If old, gotta check if our new status list is \"better than\" old\n if (old) {\n const newSignificant = c.hdf.status_list && c.hdf.status_list.length > 0;\n if (newSignificant) {\n // Overwrite\n idHash[id] = c;\n }\n } else {\n // First time seeing this id\n idHash[id] = c;\n }\n });\n\n // Return the set of keys\n return Array.from(Object.values(idHash));\n}\n\nexport function createProfileInfoFinding(\n hdf: ExecJSON.Execution,\n options: IOptions\n): IFindingASFF {\n const runTime = getRunTime(hdf);\n const inspecJSJson = convertFile(JSON.stringify(hdf));\n const contextualizedEvaluation = contextualizeEvaluation(\n inspecJSJson['1_0_ExecJson'] as any\n );\n const counts = statusCount(contextualizedEvaluation);\n const updatedAt = new Date();\n updatedAt.setMilliseconds(\n updatedAt.getMilliseconds() +\n (contextualizedEvaluation.contains[0].contains.length || 0)\n );\n const profileInfo: Record<string, unknown> = {\n SchemaVersion: '2018-10-08',\n Id: `${options.target}/${hdf.profiles[0].name}`,\n ProductArn: `arn:aws:securityhub:${options.region}:${options.awsAccountId}:product/${options.awsAccountId}/default`,\n GeneratorId: `arn:aws:securityhub:us-east-2:${options.awsAccountId}:ruleset/set/${hdf.profiles[0].name}`,\n AwsAccountId: options.awsAccountId,\n CreatedAt: runTime,\n UpdatedAt: updatedAt,\n Title: `${options.target} | ${hdf.profiles[0].name} | ${moment().format(\n 'YYYY-MM-DD hh:mm:ss [GMT]ZZ'\n )}`,\n Description: createDescription(counts),\n Severity: {\n Label: 'INFORMATIONAL'\n },\n FindingProviderFields: {\n Severity: {\n Label: 'INFORMATIONAL'\n },\n Types: createProfileInfoFindingFields(hdf, options)\n },\n Resources: [\n {\n Type: 'AwsAccount',\n Id: `AWS::::Account:${options.awsAccountId}`,\n Partition: 'aws',\n Region: options.region\n }\n ]\n };\n\n // need the intermediate caste to tell typescript that this cast is intentional\n return profileInfo as unknown as IFindingASFF;\n}\n\nexport function statusCount(evaluation: ContextualizedEvaluation): Counts {\n let controls: ContextualizedControl[] = [];\n // Get all controls\n evaluation.contains.forEach((p) => controls.push(...p.contains));\n controls = filter_overlays(controls);\n const statusCounts: Counts = {\n Passed: 0,\n PassedTests: 0,\n PassingTestsFailedControl: 0,\n Failed: 0,\n FailedTests: 0,\n NotApplicable: 0,\n NotReviewed: 0\n };\n controls.forEach((control) => {\n if (control.hdf.status === 'Passed') {\n statusCounts.Passed += 1;\n statusCounts.PassedTests += (control.hdf.segments || []).length;\n } else if (control.hdf.status === 'Failed') {\n statusCounts.PassingTestsFailedControl += (\n control.hdf.segments || []\n ).filter((s) => s.status === 'passed').length;\n statusCounts.FailedTests += (control.hdf.segments || []).filter(\n (s) => s.status === 'failed'\n ).length;\n statusCounts.Failed += 1;\n } else if (control.hdf.status === 'Not Applicable') {\n statusCounts.NotApplicable += 1;\n } else if (control.hdf.status === 'Not Reviewed') {\n statusCounts.NotReviewed += 1;\n }\n });\n return statusCounts;\n}\n\nexport function createDescription(counts: Counts): string {\n return `Result Set Status Summary -- Passed: ${counts.Passed} (${\n counts.PassedTests\n } individual checks passed) --- Failed: ${counts.Failed} (${\n counts.PassingTestsFailedControl\n } individual checks failed out of ${\n counts.PassingTestsFailedControl + counts.FailedTests\n } total checks) --- Not Applicable: ${\n counts.NotApplicable\n } (System exception or absent component) --- Not Reviewed: ${\n counts.NotReviewed\n } (Can only be tested manually at this time)`;\n}\n\nexport function createAssumeRolePolicyDocument(\n layersOfControl: ExecJSON.Control[],\n segment: ExecJSON.ControlResult\n): string {\n const segmentOverview = createNote(segment);\n const code = layersOfControl.map((layer) => createCode(layer)).join('\\n\\n');\n return `${code}\\n\\n${segmentOverview}`;\n}\n\n// Gets rid of extra spacing + newlines as these aren't shown in Security Hub\nexport function cleanText(text?: string | null): string | undefined {\n if (text) {\n return text.replace(/ +/g, ' ');\n } else {\n return undefined;\n }\n}\n\n// Gets all layers of a control across overlaid profiles given the ID\nexport function getAllLayers(\n hdf: ExecJSON.Execution,\n knownControl: ExecJSON.Control\n): (ExecJSON.Control & Record<string, unknown>)[] {\n if (hdf.profiles.length === 1) {\n return [\n {\n ...knownControl,\n profileInfo: {\n ..._.omit(hdf.profiles[0], 'controls')\n }\n }\n ];\n } else {\n const foundControls: (ExecJSON.Control & Record<string, unknown>)[] = [];\n // For each control in each profile\n hdf.profiles.forEach((profile) => {\n profile.controls.forEach((control) => {\n if (control.id === knownControl.id) {\n foundControls.push({\n ...control,\n profileInfo: {..._.omit(profile, 'controls')}\n });\n }\n });\n });\n return foundControls;\n }\n}\n\n// Creates Note field containing control status\nexport function createNote(segment: ExecJSON.ControlResult) {\n if (segment.message) {\n return `Test Description: ${segment.code_desc} --- Test Result: ${segment.message}`;\n } else if (segment.skip_message) {\n return `Test Description: ${segment.code_desc} --- Skip Message: ${segment.skip_message}`;\n } else {\n return `Test Description: ${segment.code_desc}`;\n }\n}\n\nfunction cleanObjectValues<T>(value: T): boolean {\n if (Array.isArray(value)) {\n return value.length < 0;\n }\n return !Boolean(value);\n}\n\nexport function createCode(\n control: ExecJSON.Control & {profileInfo?: Record<string, unknown>}\n) {\n const noCodeValue =\n ((_.get(control, 'profileInfo.depends') || []) as Record<string, unknown>[])\n .length > 0\n ? ''\n : JSON.stringify(\n _.omitBy(\n _.omit(control, ['results', 'profileInfo']),\n cleanObjectValues\n )\n );\n if (!control.code && noCodeValue === '') {\n return '';\n }\n return `=========================================================\\n# Profile name: ${\n control.profileInfo?.name\n }\\n=========================================================\\n\\n${\n control.code ? control.code?.replace(/\\\\\\\"/g, '\"') : noCodeValue\n }`;\n}\n\nexport function setupId(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n const target = context?.ioptions.target;\n const name = context?.data.profiles[0].name;\n\n return `${target}/${name}/${control.id}/finding/${createHash('sha256')\n .update(control.id + control.result.code_desc)\n .digest('hex')}`;\n}\n\nexport function setupProductARN(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:product/${context?.ioptions.awsAccountId}/default`;\n}\n\nexport function setupAwsAcct(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.ioptions.awsAccountId;\n}\n\nexport function setupCreated(control: SegmentedControl) {\n try {\n return (\n new Date(control.result.start_time).toISOString() ||\n new Date().toISOString()\n );\n } catch {\n return new Date().toISOString();\n }\n}\n\nexport function setupRegion(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.ioptions.region;\n}\nexport function setupUpdated(\n _control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n // Add one millisecond to the time by control index so the order is correct in security hub\n const time = new Date();\n time.setMilliseconds(time.getMilliseconds() + (context?.index || 0));\n return time.toISOString();\n}\n\nexport function setupGeneratorId(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `arn:aws:securityhub:${context?.ioptions.region}:${context?.ioptions.awsAccountId}:ruleset/set/${context?.data.profiles[0].name}/rule/${control.id}`;\n}\n\nexport function setupTitle(control: SegmentedControl) {\n const nistTags = control.tags.nist ? `[${control.tags.nist.join(', ')}]` : '';\n return _.truncate(\n `${control.id} | ${nistTags} | ${cleanText(control.title)}`,\n {length: 256}\n );\n}\n\nexport function setupDescr(control: SegmentedControl) {\n // Check text can either be a description or a tag\n const checkText: string =\n getDescription(control.descriptions || [], 'check') ||\n (control.tags.check as string) ||\n 'Check not available';\n\n const currentVal = _.truncate(\n cleanText(`${control.desc} -- Check Text: ${checkText}`),\n {length: 1024, omission: '[SEE FULL TEXT IN AssumeRolePolicyDocument]'}\n );\n\n const caveat = getDescription(control.descriptions || [], 'caveat');\n\n if (caveat) {\n return _.truncate(\n `Caveat: ${cleanText(caveat)} --- Description: ${currentVal}`,\n {length: 1024, omission: ''}\n );\n }\n return currentVal;\n}\n\nexport function setupSevLabel(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return context?.impactMapping.get(control.impact) || 'INFORMATIONAL';\n}\n\nexport function setupSevOriginal(control: SegmentedControl) {\n return `${control.impact}`;\n}\n\nfunction createControlMetadata(control: SegmentedControl) {\n const types = [\n `Control/ID/${escapeForwardSlashes(control.id)}`,\n `Control/Impact/${control.impact}`\n ];\n if (control.title) {\n types.push(`Control/Title/${escapeForwardSlashes(control.title)}`);\n }\n if (control.desc) {\n types.push(`Control/Desc/${escapeForwardSlashes(control.desc)}`);\n }\n if (control.waiver_data && Object.keys(control.waiver_data).length > 0) {\n types.push(\n `Control/Waiver_Data/${escapeForwardSlashes(\n JSON.stringify(control.waiver_data)\n )}`\n );\n }\n if (control.attestation_data) {\n types.push(\n `Control/Attestation_Data/${escapeForwardSlashes(\n JSON.stringify(control.attestation_data)\n )}`\n );\n }\n if (control.refs && control.refs.length > 0) {\n types.push(\n `Control/Refs/${escapeForwardSlashes(JSON.stringify(control.refs))}`\n );\n }\n if (\n control.source_location &&\n Object.keys(control.source_location).length > 0\n ) {\n types.push(\n `Control/Source_Location/${escapeForwardSlashes(\n JSON.stringify(control.source_location)\n )}`\n );\n }\n return types;\n}\n\nfunction getFilename(options?: IOptions): string {\n const slashSplit =\n options?.input.split('\\\\')[options?.input.split('\\\\').length - 1];\n return slashSplit?.split('/')[slashSplit.split('/').length - 1] ?? '';\n}\n\nfunction createProfileInfoFindingFields(\n hdf: ExecJSON.Execution,\n options: IOptions\n): string[] {\n const typesArr = [\n `MITRE/SAF/${HeimdallToolsVersion}-hdf2asff`,\n `File/Input/${getFilename(options)}`\n ];\n const executionTargets = ['platform', 'statistics', 'version'];\n executionTargets.forEach((target) => {\n const value = _.get(hdf, target);\n if (_.isString(value) && value.trim()) {\n typesArr.push(\n `Execution/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n value\n )}`\n );\n } else {\n typesArr.push(\n `Execution/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n JSON.stringify(value)\n )}`\n );\n }\n });\n hdf.profiles.forEach((profile) => {\n const targets = [\n 'version',\n 'sha256',\n 'maintainer',\n 'summary',\n 'license',\n 'copyright',\n 'copyright_email',\n 'name',\n 'title',\n 'depends',\n 'supports',\n 'attributes',\n 'description',\n 'inspec_version',\n 'parent_profile',\n 'skip_message',\n 'status',\n 'status_message'\n ];\n targets.forEach((target) => {\n const value = _.get(profile, target);\n if (typeof value === 'string' && value) {\n typesArr.push(\n `${escapeForwardSlashes(profile.name)}/${escapeForwardSlashes(\n target\n )}/${escapeForwardSlashes(value)}`\n );\n } else if (typeof value === 'object') {\n typesArr.push(\n `${escapeForwardSlashes(profile.name)}/${escapeForwardSlashes(\n target\n )}/${escapeForwardSlashes(JSON.stringify(value))}`\n );\n }\n });\n });\n const passthrough = _.get(hdf, 'passthrough');\n if (_.isString(passthrough) && (passthrough as string).trim()) {\n typesArr.push(`Execution/passthrough/${escapeForwardSlashes(passthrough)}`);\n } else if (passthrough !== undefined) {\n typesArr.push(\n `Execution/passthrough/${escapeForwardSlashes(\n JSON.stringify(passthrough)\n )}`\n );\n }\n return typesArr;\n}\n\nfunction createSegmentInfo(segment: ExecJSON.ControlResult): string[] {\n const typesArr: string[] = [];\n const targets = [\n 'backtrace',\n 'exception',\n 'code_desc',\n 'message',\n 'resource',\n 'run_time',\n 'start_time',\n 'skip_message',\n 'status'\n ];\n targets.forEach((target) => {\n if (_.has(segment, target) && _.get(segment, target) !== undefined) {\n if (_.get(segment, target) === '') {\n typesArr.push(`Segment/${escapeForwardSlashes(target)}/''`);\n } else {\n typesArr.push(\n `Segment/${escapeForwardSlashes(target)}/${escapeForwardSlashes(\n _.get(segment, target)\n )}`\n );\n }\n }\n });\n return typesArr;\n}\n\nfunction createTagInfo(control: {tags: Record<string, unknown>}): string[] {\n const typesArr: string[] = [];\n for (const tag in control.tags) {\n typesArr.push(\n `Tags/${escapeForwardSlashes(tag)}/${escapeForwardSlashes(\n JSON.stringify(control.tags[tag])\n )}`\n );\n }\n return typesArr;\n}\n\nfunction createDescriptionInfo(control: ExecJSON.Control): string[] {\n const typesArr: string[] = [];\n if (Array.isArray(control.descriptions)) {\n control.descriptions?.forEach((description) => {\n if (description.data && cleanText(description.data)) {\n typesArr.push(\n `Descriptions/${escapeForwardSlashes(\n description.label\n )}/${escapeForwardSlashes(cleanText(description.data))}`\n );\n }\n });\n } else {\n Object.entries(control.descriptions || {}).forEach(([key, value]) => {\n if (value && cleanText(value as string)) {\n typesArr.push(\n `Descriptions/${escapeForwardSlashes(key)}/${escapeForwardSlashes(\n cleanText(value as string)\n )}`\n );\n }\n });\n }\n\n return typesArr;\n}\n\nexport function setupFindingType(\n control: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n // typesArr needs to be ordered so that attributes that are likely to be bloated and/or contain less necessary information end up at the bottom so that they don't expand and push more attributes outside of the list which is capped at 50 items\n const typesArr = [\n `MITRE/SAF/${HeimdallToolsVersion}-hdf2asff`,\n `File/Input/${getFilename(context?.ioptions)}`\n ];\n\n // Add control metadata to the Finding Provider Fields\n typesArr.push(...createControlMetadata(control));\n // Add segment/result information to Finding Provider Fields\n typesArr.push(...createSegmentInfo(control.result));\n // Add Tags to Finding Provider Fields\n typesArr.push(...createTagInfo(control));\n\n // nist tag, then subdescriptions, then remaining tags\n const nistTagIndex = typesArr.findIndex((typeString) =>\n typeString.startsWith('Tags/nist/')\n );\n const tagsIndex = typesArr.findIndex((typeString) =>\n typeString.startsWith('Tags/')\n );\n if (nistTagIndex !== -1) {\n typesArr.splice(tagsIndex, 0, typesArr.splice(nistTagIndex, 1)[0]);\n }\n typesArr.splice(\n tagsIndex === -1 ? typesArr.length : tagsIndex + 1,\n 0,\n // Add Descriptions to FindingProviderFields\n ...createDescriptionInfo(control)\n );\n\n // description, then code, then code_desc\n const desc = typesArr.splice(\n typesArr.findIndex((typeString) => typeString.startsWith('Control/Desc/')),\n 1\n )[0];\n const code = `Control/Code/${escapeForwardSlashes(\n control.layersOfControl\n .map(\n (layer: ExecJSON.Control & {profileInfo?: Record<string, unknown>}) =>\n createCode(layer)\n )\n .join('\\n\\n')\n )}`;\n const codeDesc = typesArr.splice(\n typesArr.findIndex((typeString) =>\n typeString.startsWith('Segment/code_desc/')\n ),\n 1\n )[0];\n typesArr.push(..._.compact([desc, code, codeDesc])); // [][0] can return undefined so use compact to deal with them\n\n return typesArr;\n}\n\nexport function getFixForControl(control: SegmentedControl) {\n return (\n getDescription(control.descriptions || [], 'fix') ||\n control.tags.fix ||\n 'Fix not available'\n );\n}\n\nexport function setupRemRec(control: SegmentedControl) {\n return _.truncate(\n cleanText(\n `${createNote(control.result)} --- Fix: ${getFixForControl(control)}`\n ),\n {length: 512, omission: '... [SEE FULL TEXT IN AssumeRolePolicyDocument]'}\n );\n}\n\nexport function setupProdFieldCheck(control: SegmentedControl) {\n const checkText: string =\n getDescription(control.descriptions || [], 'check') ||\n (control.tags.check as string) ||\n 'Check not available';\n\n return _.truncate(checkText, {length: 2048, omission: ''});\n}\n\nexport function setupResourcesID(\n _val: SegmentedControl,\n context?: FromHdfToAsffMapper\n) {\n return `AWS::::Account:${context?.ioptions.awsAccountId}`;\n}\n\nexport function setupResourcesID2(control: SegmentedControl) {\n return `${control.id} Validation Code`;\n}\n\nexport function setupDetailsAssume(control: SegmentedControl) {\n return createAssumeRolePolicyDocument(\n control.layersOfControl,\n control.result\n );\n}\n\nexport function setupControlStatus(control: SegmentedControl) {\n if (control.results.some((result) => 'backtrace' in result)) {\n return 'NOT_AVAILABLE';\n }\n const status: string | boolean =\n control.result.status === 'skipped'\n ? 'WARNING'\n : control.result.status === 'passed';\n if (typeof status === 'boolean') {\n return status ? 'PASSED' : 'FAILED';\n }\n return status;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reverse-caat-mapper.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/caat/reverse-caat-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EACL,kBAAkB,EAClB,qBAAqB,EACrB,wBAAwB,EAExB,QAAQ,EACR,UAAU,EAEX,MAAM,UAAU,CAAC;AAIlB,MAAM,MAAM,SAAS,GAAG;IACtB,IAAI,EAAE,MAAM,GAAG,QAAQ,CAAC,SAAS,GAAG,wBAAwB,CAAC;IAC7D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACpC,CAAC;AAEF,KAAK,IAAI,GAAG,SAAS,GAAG;IAAC,IAAI,EAAE,wBAAwB,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,CAAC;AAE3E,eAAO,MAAM,WAAW,ibAqBd,CAAC;AAEX,MAAM,MAAM,OAAO,GAAG,OAAO,CAC3B,MAAM,CAAC,CAAC,OAAO,WAAW,CAAC,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CACzD,CAAC;AAEF,qBAAa,mBAAmB;IAC9B,MAAM,CAAC,QAAQ,CAAC,WAAW,SAAS;IACpC,MAAM,CAAC,QAAQ,CAAC,kBAAkB,MAAM;IAExC,MAAM,CAAC,QAAQ,CAAC,sBAAsB,EAAE,kBAAkB,CAKxD;IAEF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,UAAU,CAK3C;IAEF,MAAM,CAAC,QAAQ,CAAC,YAAY,EAAE,IAAI,CAAC,cAAc,CAE/C;IAEF,MAAM,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM;IAWxD,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM;IAMvC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAGD,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE;IA6BzC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAOlC,wBAAwB,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAiBjD,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAItC,SAAS,CAAC,GAAG,EAAE,UAAU,GAAG,MAAM;IAQlC,MAAM,CAAC,OAAO,EAAE,qBAAqB,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,EAAE;IAkDnE,MAAM,CACJ,cAAc,UAAQ,EACtB,OAAO,GAAE,IAAI,CAAC,cAAmD;CAkEpE"}
|