@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,108 +15,122 @@ 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
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
-
exports.FromHdfToAsffMapper = exports.
|
|
36
|
+
exports.FromHdfToAsffMapper = exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = void 0;
|
|
37
|
+
exports.escapeForwardSlashes = escapeForwardSlashes;
|
|
27
38
|
const inspecjs_1 = require("inspecjs");
|
|
28
39
|
const _ = __importStar(require("lodash"));
|
|
29
40
|
const reverse_base_converter_1 = require("../reverse-base-converter");
|
|
30
41
|
const transformers_1 = require("./transformers");
|
|
31
|
-
exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}';
|
|
42
|
+
exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}'; // The "Types" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding
|
|
32
43
|
function escapeForwardSlashes(s) {
|
|
33
44
|
return _.isString(s)
|
|
34
45
|
? s.replace(/\//g, exports.TO_ASFF_TYPES_SLASH_REPLACEMENT)
|
|
35
46
|
: JSON.stringify(s).replace(/\//g, exports.TO_ASFF_TYPES_SLASH_REPLACEMENT);
|
|
36
47
|
}
|
|
37
|
-
exports.escapeForwardSlashes = escapeForwardSlashes;
|
|
38
48
|
class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter {
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
{
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
Description: { path: '', transformer: transformers_1.setupDescr },
|
|
63
|
-
FindingProviderFields: {
|
|
64
|
-
Severity: {
|
|
65
|
-
Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
|
|
66
|
-
Original: { path: '', transformer: transformers_1.setupSevLabel, passParent: true }
|
|
67
|
-
},
|
|
68
|
-
Types: { path: '', transformer: transformers_1.setupFindingType, passParent: true }
|
|
69
|
-
},
|
|
70
|
-
Remediation: {
|
|
71
|
-
Recommendation: {
|
|
72
|
-
Text: { path: '', transformer: transformers_1.setupRemRec }
|
|
73
|
-
}
|
|
74
|
-
},
|
|
75
|
-
ProductFields: {
|
|
76
|
-
Check: { path: '', transformer: transformers_1.setupProdFieldCheck }
|
|
77
|
-
},
|
|
49
|
+
mappings = () => ({
|
|
50
|
+
Findings: [
|
|
51
|
+
{
|
|
52
|
+
SchemaVersion: '2018-10-08',
|
|
53
|
+
Id: { path: '', transformer: transformers_1.setupId, passParent: true },
|
|
54
|
+
ProductArn: { path: '', transformer: transformers_1.setupProductARN, passParent: true },
|
|
55
|
+
AwsAccountId: { path: '', transformer: transformers_1.setupAwsAcct, passParent: true },
|
|
56
|
+
Types: {
|
|
57
|
+
transformer: () => ['Software and Configuration Checks']
|
|
58
|
+
},
|
|
59
|
+
CreatedAt: { path: '', transformer: transformers_1.setupCreated },
|
|
60
|
+
UpdatedAt: { path: '', transformer: transformers_1.setupUpdated, passParent: true },
|
|
61
|
+
...(this.ioptions.regionAttribute && {
|
|
62
|
+
Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
|
|
63
|
+
}),
|
|
64
|
+
GeneratorId: {
|
|
65
|
+
path: '',
|
|
66
|
+
transformer: transformers_1.setupGeneratorId,
|
|
67
|
+
passParent: true
|
|
68
|
+
},
|
|
69
|
+
Title: { path: '', transformer: transformers_1.setupTitle },
|
|
70
|
+
Description: { path: '', transformer: transformers_1.setupDescr },
|
|
71
|
+
FindingProviderFields: {
|
|
78
72
|
Severity: {
|
|
79
73
|
Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
|
|
80
|
-
Original: { path: '', transformer: transformers_1.
|
|
74
|
+
Original: { path: '', transformer: transformers_1.setupSevLabel, passParent: true }
|
|
75
|
+
},
|
|
76
|
+
Types: { path: '', transformer: transformers_1.setupFindingType, passParent: true }
|
|
77
|
+
},
|
|
78
|
+
Remediation: {
|
|
79
|
+
Recommendation: {
|
|
80
|
+
Text: { path: '', transformer: transformers_1.setupRemRec }
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
ProductFields: {
|
|
84
|
+
Check: { path: '', transformer: transformers_1.setupProdFieldCheck }
|
|
85
|
+
},
|
|
86
|
+
Severity: {
|
|
87
|
+
Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
|
|
88
|
+
Original: { path: '', transformer: transformers_1.setupSevOriginal }
|
|
89
|
+
},
|
|
90
|
+
Resources: [
|
|
91
|
+
{
|
|
92
|
+
Type: 'AwsAccount',
|
|
93
|
+
Id: { path: '', transformer: transformers_1.setupResourcesID, passParent: true },
|
|
94
|
+
Partition: 'aws',
|
|
95
|
+
Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
|
|
81
96
|
},
|
|
82
|
-
|
|
83
|
-
{
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
Id: { path: '', transformer: transformers_1.setupResourcesID2 },
|
|
91
|
-
Type: 'AwsIamRole',
|
|
92
|
-
Details: {
|
|
93
|
-
AwsIamRole: {
|
|
94
|
-
AssumeRolePolicyDocument: {
|
|
95
|
-
path: '',
|
|
96
|
-
transformer: transformers_1.setupDetailsAssume
|
|
97
|
-
}
|
|
97
|
+
{
|
|
98
|
+
Id: { path: '', transformer: transformers_1.setupResourcesID2 },
|
|
99
|
+
Type: 'AwsIamRole',
|
|
100
|
+
Details: {
|
|
101
|
+
AwsIamRole: {
|
|
102
|
+
AssumeRolePolicyDocument: {
|
|
103
|
+
path: '',
|
|
104
|
+
transformer: transformers_1.setupDetailsAssume
|
|
98
105
|
}
|
|
99
106
|
}
|
|
100
107
|
}
|
|
101
|
-
],
|
|
102
|
-
Compliance: {
|
|
103
|
-
RelatedRequirements: {
|
|
104
|
-
transformer: () => [
|
|
105
|
-
'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'
|
|
106
|
-
]
|
|
107
|
-
},
|
|
108
|
-
Status: { path: '', transformer: transformers_1.setupControlStatus }
|
|
109
108
|
}
|
|
109
|
+
],
|
|
110
|
+
Compliance: {
|
|
111
|
+
RelatedRequirements: {
|
|
112
|
+
transformer: () => [
|
|
113
|
+
'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'
|
|
114
|
+
]
|
|
115
|
+
},
|
|
116
|
+
Status: { path: '', transformer: transformers_1.setupControlStatus }
|
|
110
117
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
]
|
|
118
|
+
}
|
|
119
|
+
]
|
|
120
|
+
});
|
|
121
|
+
contextProfiles;
|
|
122
|
+
counts;
|
|
123
|
+
ioptions;
|
|
124
|
+
index;
|
|
125
|
+
impactMapping = new Map([
|
|
126
|
+
[0.9, 'CRITICAL'],
|
|
127
|
+
[0.7, 'HIGH'],
|
|
128
|
+
[0.5, 'MEDIUM'],
|
|
129
|
+
[0.3, 'LOW'],
|
|
130
|
+
[0.0, 'INFORMATIONAL']
|
|
131
|
+
]);
|
|
132
|
+
constructor(hdfObj, options) {
|
|
133
|
+
super(hdfObj);
|
|
120
134
|
this.ioptions = options === undefined ? this.defaultOptions() : options;
|
|
121
135
|
this.counts = (0, transformers_1.statusCount)((0, inspecjs_1.contextualizeEvaluation)(hdfObj));
|
|
122
136
|
}
|
|
@@ -132,11 +146,13 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
132
146
|
setMappings(customMappings) {
|
|
133
147
|
super.setMappings(customMappings);
|
|
134
148
|
}
|
|
149
|
+
// Security hub currently works at the sub-control level, meaning we need to create our mapped data based off control.results
|
|
135
150
|
controlsToSegments() {
|
|
136
151
|
const segments = [];
|
|
137
152
|
this.data.profiles.forEach((profile) => {
|
|
138
153
|
profile.controls.reverse().forEach((control) => {
|
|
139
154
|
control.results.forEach((segment) => {
|
|
155
|
+
// Ensure that the UpdatedAt time is different across findings (to match the order in HDF)
|
|
140
156
|
segments.push({
|
|
141
157
|
...control,
|
|
142
158
|
result: segment,
|
|
@@ -147,10 +163,12 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
147
163
|
});
|
|
148
164
|
return segments;
|
|
149
165
|
}
|
|
166
|
+
// Any ASFF value has to be less than 32768B - we're setting the max size to 30KB to have some buffer. Only enforcing this restriction in AssumeRolePolicyDocument and FindingProviderFields.Types for now.
|
|
150
167
|
restrictionAttributesLessThan32KiB(finding) {
|
|
151
168
|
const ATTRIBUTE_CHARACTER_LIMIT = 30000;
|
|
152
169
|
if (finding.Resources.length > 1) {
|
|
153
170
|
_.set(finding, 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument', _.get(finding, 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument', '').slice(0, ATTRIBUTE_CHARACTER_LIMIT));
|
|
171
|
+
// no need for truncation warning since AssumeRolePolicyDocument is only used to look nice in the GUI - FindingProviderFields.Types contains all the information
|
|
154
172
|
}
|
|
155
173
|
finding.FindingProviderFields.Types = finding.FindingProviderFields.Types
|
|
156
174
|
.map((typeString) => {
|
|
@@ -159,11 +177,12 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
159
177
|
}
|
|
160
178
|
const [type, attribute, value] = typeString.split('/');
|
|
161
179
|
return _.chunk(value, ATTRIBUTE_CHARACTER_LIMIT -
|
|
162
|
-
(type.length + attribute.length + 2)).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);
|
|
180
|
+
(type.length + attribute.length + 2) /*the slashes*/).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);
|
|
163
181
|
})
|
|
164
182
|
.flat();
|
|
165
183
|
return finding;
|
|
166
184
|
}
|
|
185
|
+
// Findings have a maximum size of 240KB. To try to meet that requirement, SecHub automatically removes the Resource.Details object, but we don't put anything there so we gotta find space savings elsewhere: we can't remove anything from what'll show up nice in the GUI for the user since they need all that info to have a useable experience in SecHub, so instead we're going to remove the flattened HDF file that's in the FindingProviderFields.Types array starting from the least important stuff. We're setting the max size to 200KB since anything much more than that doesn't seem to actually show up in SecHub even if there are no errors reported on upload.
|
|
167
186
|
restrictionFindingLessThan240KB(profileInfoFindingId, finding, numRemoved, numTruncated) {
|
|
168
187
|
const SIZE_CAP = 200000;
|
|
169
188
|
const originalSize = new TextEncoder().encode(JSON.stringify(finding)).length;
|
|
@@ -181,6 +200,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
181
200
|
console.error('Warning: This was the informational entry that contains the scan/execution level information.');
|
|
182
201
|
}
|
|
183
202
|
if (finding.Id !== profileInfoFindingId) {
|
|
203
|
+
// metrics are only for non-profile info findings
|
|
184
204
|
numRemoved++;
|
|
185
205
|
}
|
|
186
206
|
return [undefined, numRemoved, numTruncated];
|
|
@@ -195,6 +215,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
195
215
|
}
|
|
196
216
|
return [finding, numRemoved, numTruncated];
|
|
197
217
|
}
|
|
218
|
+
// FindingProviderFields.Types has a maximum size of 50 attributes
|
|
198
219
|
restrictionTypesArrayLengthLessThan50(profileInfoFindingId, finding, numTruncated) {
|
|
199
220
|
const cutoff = finding.FindingProviderFields.Types.splice(50, finding.FindingProviderFields.Types.length - 50);
|
|
200
221
|
if (cutoff.length > 0) {
|
|
@@ -207,6 +228,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
207
228
|
}
|
|
208
229
|
return [finding, numTruncated];
|
|
209
230
|
}
|
|
231
|
+
// SecHub doesn't allow two types to have the same values; future iteration should find a way to work around this instead of just skipping it like we're going to do here (maybe add a number of {MAKE LINE DIFFERENT} block things at the end of an otherwise same line that'll get removed by the asff2hdf mapper similar to how we do the slash substitutions
|
|
210
232
|
restrictionTypesArrayMustBeUnique(profileInfoFindingId, finding, numRemoved) {
|
|
211
233
|
if (finding.FindingProviderFields.Types.length !==
|
|
212
234
|
new Set(finding.FindingProviderFields.Types).size) {
|
|
@@ -222,6 +244,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
222
244
|
}
|
|
223
245
|
return [finding, numRemoved];
|
|
224
246
|
}
|
|
247
|
+
// ASFF has several written and unwritten restrictions that cap how much information can be put into a finding
|
|
225
248
|
restrictToSchemaSizes(resList) {
|
|
226
249
|
const profileInfoFindingId = resList.slice(-1)[0].Id;
|
|
227
250
|
let numRemoved = 0;
|
|
@@ -248,11 +271,14 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
|
|
|
248
271
|
}
|
|
249
272
|
return restrictedResults;
|
|
250
273
|
}
|
|
274
|
+
//Convert from HDF to ASFF
|
|
251
275
|
toAsff() {
|
|
252
276
|
if (this.mappings() === undefined) {
|
|
253
277
|
throw new Error('Mappings must be provided');
|
|
254
278
|
}
|
|
255
279
|
else {
|
|
280
|
+
//Recursively transform the data into ASFF format
|
|
281
|
+
//Returns an array of the findings
|
|
256
282
|
let resList = this.controlsToSegments().map((segment, index) => {
|
|
257
283
|
this.index = index;
|
|
258
284
|
return this.convertInternal(segment, this.mappings())['Findings'][0];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reverse-asff-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/reverse-asff-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"reverse-asff-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/reverse-asff-mapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BA,oDAOC;AAtCD,uCAA2D;AAC3D,0CAA4B;AAE5B,sEAA+D;AAE/D,iDAsBwB;AAEX,QAAA,+BAA+B,GAAG,aAAa,CAAC,CAAC,qKAAqK;AAEnO,SAAgB,oBAAoB,CAAI,CAAI;IAC1C,OAAO,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC;QAClB,CAAC,CAAE,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,uCAA+B,CAAkB;QACrE,CAAC,CAAE,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,CACxB,KAAK,EACL,uCAA+B,CACf,CAAC;AACzB,CAAC;AAqBD,MAAa,mBAAoB,SAAQ,6CAAoB;IAC3D,QAAQ,GAA0D,GAAG,EAAE,CAAC,CAAC;QACvE,QAAQ,EAAE;YACR;gBACE,aAAa,EAAE,YAAY;gBAC3B,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,sBAAO,EAAE,UAAU,EAAE,IAAI,EAAC;gBACtD,UAAU,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,8BAAe,EAAE,UAAU,EAAE,IAAI,EAAC;gBACtE,YAAY,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,2BAAY,EAAE,UAAU,EAAE,IAAI,EAAC;gBACrE,KAAK,EAAE;oBACL,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,mCAAmC,CAAC;iBACzD;gBACD,SAAS,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,2BAAY,EAAC;gBAChD,SAAS,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,2BAAY,EAAE,UAAU,EAAE,IAAI,EAAC;gBAClE,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,IAAI;oBACnC,MAAM,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,0BAAW,EAAE,UAAU,EAAE,IAAI,EAAC;iBAC/D,CAAC;gBACF,WAAW,EAAE;oBACX,IAAI,EAAE,EAAE;oBACR,WAAW,EAAE,+BAAgB;oBAC7B,UAAU,EAAE,IAAI;iBACjB;gBACD,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,yBAAU,EAAC;gBAC1C,WAAW,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,yBAAU,EAAC;gBAChD,qBAAqB,EAAE;oBACrB,QAAQ,EAAE;wBACR,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,4BAAa,EAAE,UAAU,EAAE,IAAI,EAAC;wBAC/D,QAAQ,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,4BAAa,EAAE,UAAU,EAAE,IAAI,EAAC;qBACnE;oBACD,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,+BAAgB,EAAE,UAAU,EAAE,IAAI,EAAC;iBACnE;gBACD,WAAW,EAAE;oBACX,cAAc,EAAE;wBACd,IAAI,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,0BAAW,EAAC;qBAC3C;iBACF;gBACD,aAAa,EAAE;oBACb,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,kCAAmB,EAAC;iBACpD;gBACD,QAAQ,EAAE;oBACR,KAAK,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,4BAAa,EAAE,UAAU,EAAE,IAAI,EAAC;oBAC/D,QAAQ,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,+BAAgB,EAAC;iBACpD;gBACD,SAAS,EAAE;oBACT;wBACE,IAAI,EAAE,YAAY;wBAClB,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,+BAAgB,EAAE,UAAU,EAAE,IAAI,EAAC;wBAC/D,SAAS,EAAE,KAAK;wBAChB,MAAM,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,0BAAW,EAAE,UAAU,EAAE,IAAI,EAAC;qBAC/D;oBACD;wBACE,EAAE,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,gCAAiB,EAAC;wBAC9C,IAAI,EAAE,YAAY;wBAClB,OAAO,EAAE;4BACP,UAAU,EAAE;gCACV,wBAAwB,EAAE;oCACxB,IAAI,EAAE,EAAE;oCACR,WAAW,EAAE,iCAAkB;iCAChC;6BACF;yBACF;qBACF;iBACF;gBACD,UAAU,EAAE;oBACV,mBAAmB,EAAE;wBACnB,WAAW,EAAE,GAAG,EAAE,CAAC;4BACjB,6DAA6D;yBAC9D;qBACF;oBACD,MAAM,EAAE,EAAC,IAAI,EAAE,EAAE,EAAE,WAAW,EAAE,iCAAkB,EAAC;iBACpD;aACF;SACF;KACF,CAAC,CAAC;IAEH,eAAe,CAAM;IACrB,MAAM,CAAM;IACZ,QAAQ,CAAW;IACnB,KAAK,CAAU;IAEf,aAAa,GAAwB,IAAI,GAAG,CAAC;QAC3C,CAAC,GAAG,EAAE,UAAU,CAAC;QACjB,CAAC,GAAG,EAAE,MAAM,CAAC;QACb,CAAC,GAAG,EAAE,QAAQ,CAAC;QACf,CAAC,GAAG,EAAE,KAAK,CAAC;QACZ,CAAC,GAAG,EAAE,eAAe,CAAC;KACvB,CAAC,CAAC;IAEH,YAAY,MAA0B,EAAE,OAA6B;QACnE,KAAK,CAAC,MAAM,CAAC,CAAC;QACd,IAAI,CAAC,QAAQ,GAAG,OAAO,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC;QACxE,IAAI,CAAC,MAAM,GAAG,IAAA,0BAAW,EAAC,IAAA,kCAAuB,EAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED,cAAc;QACZ,OAAO;YACL,KAAK,EAAE,EAAE;YACT,YAAY,EAAE,EAAE;YAChB,MAAM,EAAE,SAAS;YACjB,MAAM,EAAE,EAAE;YACV,eAAe,EAAE,KAAK;SACvB,CAAC;IACJ,CAAC;IAED,WAAW,CACT,cAA+D;QAE/D,KAAK,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;IACpC,CAAC;IAED,6HAA6H;IAC7H,kBAAkB;QAChB,MAAM,QAAQ,GAAuB,EAAE,CAAC;QACxC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACrC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;gBAC7C,OAAO,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAClC,0FAA0F;oBAC1F,QAAQ,CAAC,IAAI,CAAC;wBACZ,GAAG,OAAO;wBACV,MAAM,EAAE,OAAO;wBACf,eAAe,EAAE,IAAA,2BAAY,EAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC;qBAClD,CAAC,CAAC;gBACL,CAAC,CAAC,CAAC;YACL,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QAEH,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED,4MAA4M;IAC5M,kCAAkC,CAAC,OAAqB;QACtD,MAAM,yBAAyB,GAAG,KAAK,CAAC;QACxC,IAAI,OAAO,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACjC,CAAC,CAAC,GAAG,CACH,OAAO,EACP,0DAA0D,EAExD,CAAC,CAAC,GAAG,CACH,OAAO,EACP,0DAA0D,EAC1D,EAAE,CAEL,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CACtC,CAAC;YACF,gKAAgK;QAClK,CAAC;QACD,OAAO,CAAC,qBAAqB,CAAC,KAAK,GACjC,OAAO,CAAC,qBAAqB,CAAC,KAC/B;aACE,GAAG,CAAC,CAAC,UAAU,EAAE,EAAE;YAClB,IAAI,UAAU,CAAC,MAAM,IAAI,yBAAyB,EAAE,CAAC;gBACnD,OAAO,UAAU,CAAC;YACpB,CAAC;YACD,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,KAAK,CAAC,GAAG,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACvD,OAAO,CAAC,CAAC,KAAK,CACZ,KAAK,EACL,yBAAyB;gBACvB,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,eAAe,CACvD,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,IAAI,IAAI,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;QAC7D,CAAC,CAAC;aACD,IAAI,EAAE,CAAC;QACV,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,opBAAopB;IACppB,+BAA+B,CAC7B,oBAA4B,EAC5B,OAAqB,EACrB,UAAkB,EAClB,YAAoB;QAEpB,MAAM,QAAQ,GAAG,MAAM,CAAC;QACxB,MAAM,YAAY,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAC3C,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CACxB,CAAC,MAAM,CAAC;QACT,IAAI,IAAI,GAAG,YAAY,CAAC;QACxB,IAAI,MAAM,CAAC;QACX,OACE,IAAI,GAAG,QAAQ;YACd,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,MAAM,GAAG,CAAC,EAC5D,CAAC;YACD,MAAM,GAAI,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,GAAG,EAAE,CAAC;YACjE,IAAI,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC;QAClE,CAAC;QACD,IAAI,IAAI,GAAG,QAAQ,EAAE,CAAC;YACpB,OAAO,CAAC,KAAK,CACX;cACM,OAAO,EAAE,CAChB,CAAC;YACF,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,iDAAiD;gBACjD,UAAU,EAAE,CAAC;YACf,CAAC;YACD,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;YACzB,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,IAAI,CACpD,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI,CAAC,CAC9D,CACF,CAAC;YACD,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,IAAI,CACpD,0IAA0I,CAC3I,CAAC;YACF,OAAO,CAAC,KAAK,CACX,qGAAqG,OAAO,CAAC,EAAE,EAAE,CAClH,CAAC;YACF,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED,kEAAkE;IAClE,qCAAqC,CACnC,oBAA4B,EAC5B,OAAqB,EACrB,YAAoB;QAEpB,MAAM,MAAM,GAAI,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,MAAM,CACrE,EAAE,EACD,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,MAAM,GAAG,EAAE,CAC9D,CAAC;QACF,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACrB,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,GAAG,EAAE,CAAC;YACvD,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,IAAI,CACpD,0IAA0I,CAC3I,CAAC;YACF,OAAO,CAAC,KAAK,CACX,qGAAqG,OAAO,CAAC,EAAE,EAAE,CAClH,CAAC;YACF,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,YAAY,EAAE,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACjC,CAAC;IAED,gWAAgW;IAChW,iCAAiC,CAC/B,oBAA4B,EAC5B,OAAqB,EACrB,UAAkB;QAElB,IACG,OAAO,CAAC,qBAAqB,CAAC,KAAkB,CAAC,MAAM;YACxD,IAAI,GAAG,CAAC,OAAO,CAAC,qBAAqB,CAAC,KAAiB,CAAC,CAAC,IAAI,EAC7D,CAAC;YACD,OAAO,CAAC,KAAK,CACX;cACM,OAAO,EAAE,CAChB,CAAC;YACF,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,OAAO,CAAC,KAAK,CACX,+FAA+F,CAChG,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,EAAE,KAAK,oBAAoB,EAAE,CAAC;gBACxC,UAAU,EAAE,CAAC;YACf,CAAC;YACD,OAAO,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;QACjC,CAAC;QACD,OAAO,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,8GAA8G;IAC9G,qBAAqB,CAAC,OAAuB;QAC3C,MAAM,oBAAoB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QACrD,IAAI,UAAU,GAAG,CAAC,CAAC;QACnB,IAAI,YAAY,GAAG,CAAC,CAAC;QACrB,MAAM,iBAAiB,GAAmB,EAAE,CAAC;QAC7C,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,IAAI,OAAO,GAA6B,CAAC,CAAC;YAC1C,OAAO,GAAG,IAAI,CAAC,kCAAkC,CAAC,OAAO,CAAC,CAAC;YAC3D,CAAC,OAAO,EAAE,UAAU,EAAE,YAAY,CAAC;gBACjC,IAAI,CAAC,+BAA+B,CAClC,oBAAoB,EACpB,OAAO,EACP,UAAU,EACV,YAAY,CACb,CAAC;YACJ,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,CAAC,OAAO,EAAE,YAAY,CAAC,GAAG,IAAI,CAAC,qCAAqC,CAClE,oBAAoB,EACpB,OAAO,EACP,YAAY,CACb,CAAC;YACF,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,IAAI,CAAC,iCAAiC,CAC5D,oBAAoB,EACpB,OAAO,EACP,UAAU,CACX,CAAC;YACF,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,SAAS;YACX,CAAC;YACD,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAClC,CAAC;QAED,IACE,CAAC,UAAU,GAAG,CAAC,IAAI,YAAY,GAAG,CAAC,CAAC;YACpC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,KAAK,oBAAoB,EAC1D,CAAC;YACD,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,GAC3C,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,WACjC,qEAAqE,YAAY,0EAA0E,UAAU,uDAAuD,CAAC;QAC/N,CAAC;QAED,OAAO,iBAAiB,CAAC;IAC3B,CAAC;IAED,0BAA0B;IAC1B,MAAM;QACJ,IAAI,IAAI,CAAC,QAAQ,EAAE,KAAK,SAAS,EAAE,CAAC;YAClC,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;aAAM,CAAC;YACN,iDAAiD;YACjD,kCAAkC;YAClC,IAAI,OAAO,GAAmB,IAAI,CAAC,kBAAkB,EAAE,CAAC,GAAG,CACzD,CAAC,OAAO,EAAE,KAAK,EAAE,EAAE;gBACjB,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;gBACnB,OAAO,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CACnD,UAAU,CACX,CAAC,CAAC,CAAiB,CAAC;YACvB,CAAC,CACF,CAAC;YACF,OAAO,CAAC,IAAI,CAAC,IAAA,uCAAwB,EAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;YAEjE,OAAO,GAAG,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC,CAAC;YAE9C,OAAO,OAAO,CAAC;QACjB,CAAC;IACH,CAAC;CACF;AAnVD,kDAmVC","sourcesContent":["import {contextualizeEvaluation, ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {MappedTransform} from '../../base-converter';\nimport {FromHdfBaseConverter} from '../reverse-base-converter';\nimport {IExecJSONASFF, IFindingASFF, IOptions} from './asff-types';\nimport {\n createProfileInfoFinding,\n getAllLayers,\n setupAwsAcct,\n setupControlStatus,\n setupCreated,\n setupDescr,\n setupDetailsAssume,\n setupFindingType,\n setupGeneratorId,\n setupId,\n setupProdFieldCheck,\n setupProductARN,\n setupRegion,\n setupRemRec,\n setupResourcesID,\n setupResourcesID2,\n setupSevLabel,\n setupSevOriginal,\n setupTitle,\n setupUpdated,\n statusCount\n} from './transformers';\n\nexport const TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}'; // The \"Types\" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding\n\nexport function escapeForwardSlashes<T>(s: T): T {\n return _.isString(s)\n ? (s.replace(/\\//g, TO_ASFF_TYPES_SLASH_REPLACEMENT) as unknown as T)\n : (JSON.stringify(s).replace(\n /\\//g,\n TO_ASFF_TYPES_SLASH_REPLACEMENT\n ) as unknown as T);\n}\n\nexport type SegmentedControl = ExecJSON.Control & {\n result: ExecJSON.ControlResult;\n layersOfControl: (ExecJSON.Control & {\n fix?: string;\n profileInfo?: Record<string, unknown>;\n })[];\n};\n\nexport interface ILookupPathASFF {\n path?: string;\n transformer?: (\n value: SegmentedControl,\n context?: FromHdfToAsffMapper\n ) => unknown;\n arrayTransformer?: (value: unknown[], file: ExecJSON.Execution) => unknown[];\n key?: string;\n passParent?: boolean;\n}\n\nexport class FromHdfToAsffMapper extends FromHdfBaseConverter {\n mappings: () => MappedTransform<IExecJSONASFF, ILookupPathASFF> = () => ({\n Findings: [\n {\n SchemaVersion: '2018-10-08',\n Id: {path: '', transformer: setupId, passParent: true},\n ProductArn: {path: '', transformer: setupProductARN, passParent: true},\n AwsAccountId: {path: '', transformer: setupAwsAcct, passParent: true},\n Types: {\n transformer: () => ['Software and Configuration Checks']\n },\n CreatedAt: {path: '', transformer: setupCreated},\n UpdatedAt: {path: '', transformer: setupUpdated, passParent: true},\n ...(this.ioptions.regionAttribute && {\n Region: {path: '', transformer: setupRegion, passParent: true}\n }),\n GeneratorId: {\n path: '',\n transformer: setupGeneratorId,\n passParent: true\n },\n Title: {path: '', transformer: setupTitle},\n Description: {path: '', transformer: setupDescr},\n FindingProviderFields: {\n Severity: {\n Label: {path: '', transformer: setupSevLabel, passParent: true},\n Original: {path: '', transformer: setupSevLabel, passParent: true}\n },\n Types: {path: '', transformer: setupFindingType, passParent: true}\n },\n Remediation: {\n Recommendation: {\n Text: {path: '', transformer: setupRemRec}\n }\n },\n ProductFields: {\n Check: {path: '', transformer: setupProdFieldCheck}\n },\n Severity: {\n Label: {path: '', transformer: setupSevLabel, passParent: true},\n Original: {path: '', transformer: setupSevOriginal}\n },\n Resources: [\n {\n Type: 'AwsAccount',\n Id: {path: '', transformer: setupResourcesID, passParent: true},\n Partition: 'aws',\n Region: {path: '', transformer: setupRegion, passParent: true}\n },\n {\n Id: {path: '', transformer: setupResourcesID2},\n Type: 'AwsIamRole',\n Details: {\n AwsIamRole: {\n AssumeRolePolicyDocument: {\n path: '',\n transformer: setupDetailsAssume\n }\n }\n }\n }\n ],\n Compliance: {\n RelatedRequirements: {\n transformer: () => [\n 'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'\n ]\n },\n Status: {path: '', transformer: setupControlStatus}\n }\n }\n ]\n });\n\n contextProfiles: any;\n counts: any;\n ioptions: IOptions;\n index?: number;\n\n impactMapping: Map<number, string> = new Map([\n [0.9, 'CRITICAL'],\n [0.7, 'HIGH'],\n [0.5, 'MEDIUM'],\n [0.3, 'LOW'],\n [0.0, 'INFORMATIONAL']\n ]);\n\n constructor(hdfObj: ExecJSON.Execution, options: IOptions | undefined) {\n super(hdfObj);\n this.ioptions = options === undefined ? this.defaultOptions() : options;\n this.counts = statusCount(contextualizeEvaluation(hdfObj));\n }\n\n defaultOptions(): IOptions {\n return {\n input: '',\n awsAccountId: '',\n target: 'default',\n region: '',\n regionAttribute: false\n };\n }\n\n setMappings(\n customMappings: MappedTransform<IExecJSONASFF, ILookupPathASFF>\n ): void {\n super.setMappings(customMappings);\n }\n\n // Security hub currently works at the sub-control level, meaning we need to create our mapped data based off control.results\n controlsToSegments() {\n const segments: SegmentedControl[] = [];\n this.data.profiles.forEach((profile) => {\n profile.controls.reverse().forEach((control) => {\n control.results.forEach((segment) => {\n // Ensure that the UpdatedAt time is different across findings (to match the order in HDF)\n segments.push({\n ...control,\n result: segment,\n layersOfControl: getAllLayers(this.data, control)\n });\n });\n });\n });\n\n return segments;\n }\n\n // Any ASFF value has to be less than 32768B - we're setting the max size to 30KB to have some buffer. Only enforcing this restriction in AssumeRolePolicyDocument and FindingProviderFields.Types for now.\n restrictionAttributesLessThan32KiB(finding: IFindingASFF): IFindingASFF {\n const ATTRIBUTE_CHARACTER_LIMIT = 30000;\n if (finding.Resources.length > 1) {\n _.set(\n finding,\n 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument',\n (\n _.get(\n finding,\n 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument',\n ''\n ) as unknown as string\n ).slice(0, ATTRIBUTE_CHARACTER_LIMIT)\n );\n // no need for truncation warning since AssumeRolePolicyDocument is only used to look nice in the GUI - FindingProviderFields.Types contains all the information\n }\n finding.FindingProviderFields.Types = (\n finding.FindingProviderFields.Types as string[]\n )\n .map((typeString) => {\n if (typeString.length <= ATTRIBUTE_CHARACTER_LIMIT) {\n return typeString;\n }\n const [type, attribute, value] = typeString.split('/');\n return _.chunk(\n value,\n ATTRIBUTE_CHARACTER_LIMIT -\n (type.length + attribute.length + 2) /*the slashes*/\n ).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);\n })\n .flat();\n return finding;\n }\n\n // Findings have a maximum size of 240KB. To try to meet that requirement, SecHub automatically removes the Resource.Details object, but we don't put anything there so we gotta find space savings elsewhere: we can't remove anything from what'll show up nice in the GUI for the user since they need all that info to have a useable experience in SecHub, so instead we're going to remove the flattened HDF file that's in the FindingProviderFields.Types array starting from the least important stuff. We're setting the max size to 200KB since anything much more than that doesn't seem to actually show up in SecHub even if there are no errors reported on upload.\n restrictionFindingLessThan240KB(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numRemoved: number,\n numTruncated: number\n ): [IFindingASFF | undefined, number, number] {\n const SIZE_CAP = 200000;\n const originalSize = new TextEncoder().encode(\n JSON.stringify(finding)\n ).length;\n let size = originalSize;\n let popped;\n while (\n size > SIZE_CAP &&\n (finding.FindingProviderFields.Types as string[]).length > 0\n ) {\n popped = (finding.FindingProviderFields.Types as string[]).pop();\n size = new TextEncoder().encode(JSON.stringify(finding)).length;\n }\n if (size > SIZE_CAP) {\n console.error(\n `Warning: Normalized entry could not be sufficiently reduced in size to meet AWS Security Hub requirements and so will not be provided in the results set. Entry could not be minimized more than as follows:\n ${finding}`\n );\n if (finding.Id === profileInfoFindingId) {\n console.error(\n 'Warning: This was the informational entry that contains the scan/execution level information.'\n );\n }\n if (finding.Id !== profileInfoFindingId) {\n // metrics are only for non-profile info findings\n numRemoved++;\n }\n return [undefined, numRemoved, numTruncated];\n }\n if (originalSize !== size) {\n (finding.FindingProviderFields.Types as string[]).push(\n new TextDecoder().decode(\n new TextEncoder().encode(popped).subarray(0, SIZE_CAP - size)\n )\n );\n (finding.FindingProviderFields.Types as string[]).push(\n 'HDF2ASFF-converter/warning/Not all information was captured in this entry. Please consult the original file for all of the information.'\n );\n console.error(\n `Warning: Normalized entry was truncated in size to meet AWS Security Hub requirements. Entry id: ${finding.Id}`\n );\n if (finding.Id !== profileInfoFindingId) {\n numTruncated++;\n }\n }\n return [finding, numRemoved, numTruncated];\n }\n\n // FindingProviderFields.Types has a maximum size of 50 attributes\n restrictionTypesArrayLengthLessThan50(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numTruncated: number\n ): [IFindingASFF, number] {\n const cutoff = (finding.FindingProviderFields.Types as string[]).splice(\n 50,\n (finding.FindingProviderFields.Types as string[]).length - 50\n );\n if (cutoff.length > 0) {\n (finding.FindingProviderFields.Types as string[]).pop();\n (finding.FindingProviderFields.Types as string[]).push(\n `HDF2ASFF-converter/warning/Not all information was captured in this entry. Please consult the original file for all of the information.`\n );\n console.error(\n `Warning: Normalized entry was truncated in size to meet AWS Security Hub requirements. Entry id: ${finding.Id}`\n );\n if (finding.Id !== profileInfoFindingId) {\n numTruncated++;\n }\n }\n return [finding, numTruncated];\n }\n\n // SecHub doesn't allow two types to have the same values; future iteration should find a way to work around this instead of just skipping it like we're going to do here (maybe add a number of {MAKE LINE DIFFERENT} block things at the end of an otherwise same line that'll get removed by the asff2hdf mapper similar to how we do the slash substitutions\n restrictionTypesArrayMustBeUnique(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numRemoved: number\n ): [IFindingASFF | undefined, number] {\n if (\n (finding.FindingProviderFields.Types as string[]).length !==\n new Set(finding.FindingProviderFields.Types as string[]).size\n ) {\n console.error(\n `Warning: Normalized entry contained data that is duplicated (i.e. a subsection of a string by happenstance has the same values) which means this entry does not meet AWS Security Hub requirements and so will not be provided in the results set. Entry that contains duplicate data is as follows:\n ${finding}`\n );\n if (finding.Id === profileInfoFindingId) {\n console.error(\n 'Warning: This was the informational entry that contains the scan/execution level information.'\n );\n }\n if (finding.Id !== profileInfoFindingId) {\n numRemoved++;\n }\n return [undefined, numRemoved];\n }\n return [finding, numRemoved];\n }\n\n // ASFF has several written and unwritten restrictions that cap how much information can be put into a finding\n restrictToSchemaSizes(resList: IFindingASFF[]): IFindingASFF[] {\n const profileInfoFindingId = resList.slice(-1)[0].Id;\n let numRemoved = 0;\n let numTruncated = 0;\n const restrictedResults: IFindingASFF[] = [];\n for (const f of resList) {\n let finding: IFindingASFF | undefined = f;\n finding = this.restrictionAttributesLessThan32KiB(finding);\n [finding, numRemoved, numTruncated] =\n this.restrictionFindingLessThan240KB(\n profileInfoFindingId,\n finding,\n numRemoved,\n numTruncated\n );\n if (!finding) {\n continue;\n }\n [finding, numTruncated] = this.restrictionTypesArrayLengthLessThan50(\n profileInfoFindingId,\n finding,\n numTruncated\n );\n [finding, numRemoved] = this.restrictionTypesArrayMustBeUnique(\n profileInfoFindingId,\n finding,\n numRemoved\n );\n if (!finding) {\n continue;\n }\n restrictedResults.push(finding);\n }\n\n if (\n (numRemoved > 0 || numTruncated > 0) &&\n restrictedResults.slice(-1)[0].Id === profileInfoFindingId\n ) {\n restrictedResults.slice(-1)[0].Description = `${\n restrictedResults.slice(-1)[0].Description\n } ---- MITRE SAF HDF2ASFF converter warnings -- Entries truncated: ${numTruncated} (Truncated to fit AWS Security Hub restrictions) --- Entries removed: ${numRemoved} (Could not fit due to AWS Security Hub restrictions)`;\n }\n\n return restrictedResults;\n }\n\n //Convert from HDF to ASFF\n toAsff(): IFindingASFF[] {\n if (this.mappings() === undefined) {\n throw new Error('Mappings must be provided');\n } else {\n //Recursively transform the data into ASFF format\n //Returns an array of the findings\n let resList: IFindingASFF[] = this.controlsToSegments().map(\n (segment, index) => {\n this.index = index;\n return this.convertInternal(segment, this.mappings())[\n 'Findings'\n ][0] as IFindingASFF;\n }\n );\n resList.push(createProfileInfoFinding(this.data, this.ioptions));\n\n resList = this.restrictToSchemaSizes(resList);\n\n return resList;\n }\n }\n}\n"]}
|
|
@@ -41,3 +41,4 @@ export declare function setupResourcesID2(control: SegmentedControl): string;
|
|
|
41
41
|
export declare function setupDetailsAssume(control: SegmentedControl): string;
|
|
42
42
|
export declare function setupControlStatus(control: SegmentedControl): string;
|
|
43
43
|
export {};
|
|
44
|
+
//# sourceMappingURL=transformers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":"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"}
|