@mitre/hdf-converters 2.12.6 → 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 +19 -40
- 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 +274 -237
- 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 +21 -10
- 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 +29 -7
- 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 +46 -26
- 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 +38 -4
- 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 +262 -151
- 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 +32 -15
- 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 +68 -38
- 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 +54 -28
- 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 +39 -14
- 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 +32 -10
- 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 +368 -294
- 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 +4 -0
- 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 +18 -7
- 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 +120 -117
- 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 +525 -271
- 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 +69 -12
- 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 +34 -15
- 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 -31
- 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 +19 -40
- package/lib/data/converters/csv2json.ts +0 -36
- package/lib/data/converters/xml2json.ts +0 -57
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"splunk-mapper.js","sourceRoot":"","sources":["../../src/splunk-mapper.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,kDAA0D;AAE1D,0CAA4B;AAI5B,2CAAmD;AACnD,uDAI8B;AAqB9B,MAAM,WAAW,GAAG,YAAY,CAAC;AAEjC,IAAI,MAAM,GAAG,IAAA,4BAAmB,EAAC,YAAY,CAAC,CAAC;AAG/C,SAAgB,OAAO,CACrB,KAAe,EACf,SAA2B;IAE3B,MAAM,MAAM,GAAmB,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,KAAK,EAAE;QAErB,MAAM,GAAG,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;QAGzB,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC7B,IAAI,QAAQ,EAAE;YAEZ,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;SAClB;aAAM;YAEL,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;SACnB;KACF;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AApBD,0BAoBC;AAGD,SAAgB,OAAO,CAAO,GAAY,EAAE,WAAwB;IAClE,MAAM,MAAM,GAAY,EAAE,CAAC;IAC3B,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE;QACrB,MAAM,CAAC,GAAG,CAAC,GAAG,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;KACrC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAND,0BAMC;AAED,SAAgB,mBAAmB,CACjC,QAAwB;IAGxB,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAExD,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC;IACxD,OAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAC9B,CAAC;AARD,kDAQC;AAED,SAAgB,2BAA2B,CACzC,QAGM;IAEN,OAAO,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE;QAC9B,IAAI,OAAO,CAAC,YAAY,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;YAChE,MAAM,qBAAqB,GAAkC,EAAE,CAAC;YAChE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE;gBAC/D,qBAAqB,CAAC,IAAI,CAAC,EAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAe,EAAC,CAAC,CAAC;aACjE;YACD,OAAO,CAAC,YAAY,GAAG,qBAAqB,CAAC;SAC9C;QACD,OAAO,OAAO,CAAC;IACjB,CAAC,CAAC,CAAC;AACL,CAAC;AAhBD,kEAgBC;AAED,SAAS,uBAAuB,CAC9B,YAA4B;IAI5B,MAAM,QAAQ,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtE,MAAM,UAAU,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC;QACpC,EAAE,CAAkC,CAAC;IACvC,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxC,EAAE,CAAiE,CAAC;IACtE,MAAM,aAAa,GAAG,CAAC,QAAQ,CAAC,SAAS,CAAC;QACxC,EAAE,CAAiE,CAAC;IAEtE,MAAM,CAAC,KAAK,CAAC,QAAQ,UAAU,CAAC,MAAM,mBAAmB,CAAC,CAAC;IAC3D,MAAM,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAC5D,MAAM,CAAC,KAAK,CAAC,QAAQ,aAAa,CAAC,MAAM,iBAAiB,CAAC,CAAC;IAG5D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE;QAC3B,MAAM,IAAI,KAAK,CACb,qDAAqD,UAAU,CAAC,MAAM,EAAE,CACzE,CAAC;KACH;IAGD,MAAM,IAAI,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;IAG3B,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;IAGtC,MAAM,kBAAkB,GAAG,OAAO,CAChC,aAAa,EACb,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CACnC,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,aAAa,EAAE;QACnC,OAAO,CAAC,QAAQ,GAAG,EAAE,CAAC;QAEtB,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC;QACxC,MAAM,CAAC,KAAK,CAAC,4CAA4C,GAAG,EAAE,CAAC,CAAC;QAChE,MAAM,YAAY,GAAG,kBAAkB,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;QACnD,OAAO,CAAC,QAAQ,CAAC,IAAI,CACnB,GAAG,2BAA2B,CAC5B,YAKM,CACP,CACF,CAAC;QACF,MAAM,CAAC,KAAK,CACV,SAAS,OAAO,CAAC,QAAQ,CAAC,MAAM,oCAAoC,GAAG,EAAE,CAC1E,CAAC;KACH;IAED,OAAO,IAAqC,CAAC;AAC/C,CAAC;AAED,SAAS,cAAc,CAAC,QAAgB;IAEtC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,CAAC;AAC/C,CAAC;AAED,MAAa,YAAY;IAKvB,YACE,MAAoB,EACpB,UAAmB,EACnB,YAAqB;QAErB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,aAAa,GAAG,eAAK,CAAC,MAAM,CAAC,EAAC,MAAM,EAAE,EAAC,WAAW,EAAE,MAAM,EAAC,EAAC,CAAC,CAAC;QACnE,IAAI,CAAC,QAAQ,GAAG,IAAA,+BAAgB,EAAC,MAAM,CAAC,CAAC;QACzC,IAAI,UAAU,EAAE;YACd,MAAM,GAAG,UAAU,CAAC;SACrB;aAAM;YACL,MAAM,GAAG,IAAA,4BAAmB,EAAC,WAAW,EAAE,YAAY,IAAI,OAAO,CAAC,CAAC;SACpE;QACD,MAAM,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,WAAW,CAAC,IAAI,eAAe,CAAC,CAAC;IACpE,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,MAAM,CAAC,KAAK,CAAC,2BAA2B,KAAK,EAAE,CAAC,CAAC;QAEjD,IAAI,MAAqB,CAAC;QAC1B,IAAI;YACF,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,IAAI,CACpC,GAAG,IAAI,CAAC,QAAQ,uBAAuB,EACvC,6BAA6B,KAAK,EAAE,CACrC,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,SAAS,GAAG,IAAA,wCAAyB,EAAC,KAAK,CAAC,CAAC;YACnD,MAAM,IAAI,KAAK,CAAC,iCAAiC,SAAS,EAAE,CAAC,CAAC;SAC/D;QAGD,IAAI,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,EAAE;YAClC,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC;SACxB;aAAM;YACL,MAAM,IAAI,KAAK,CACb,+EAA+E,CAChF,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,GAAW;QAGxB,MAAM,QAAQ,GAAG,IAAI,GAAG,CAAC;YACvB,OAAO;YACP,iBAAiB;YACjB,aAAa;YACb,kBAAkB;YAClB,MAAM;YACN,QAAQ;SACT,CAAC,CAAC;QAGH,MAAM,gBAAgB,GAAG,MAAM,CAAC;QAEhC,MAAM,aAAa,GAAG,EAAE,CAAC;QACzB,IAAI,WAA0B,CAAC;QAC/B,IAAI,YAAY,GAAG,IAAI,CAAC;QAIxB,MAAM,UAAU,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,YAAY,GAAG,KAAK,CAAC;YACrB,YAAY,CAAC,UAAU,CAAC,CAAC;YACzB,MAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACrE,CAAC,EAAE,gBAAgB,CAAC,CAAC;QAGrB,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,IAAI,EAAE;YACtC,IAAI;gBACF,WAAW,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CACxC,GAAG,IAAI,CAAC,QAAQ,yBAAyB,GAAG,EAAE,CAC/C,CAAC;aACH;YAAC,OAAO,KAAK,EAAE;gBACd,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAA,wCAAyB,EAAC,KAAK,CAAC,EAAE,CAC1D,CAAC;aACH;YAGD,IAAI,CAAC,CAAC,GAAG,CAAC,WAAW,EAAE,uBAAuB,CAAC,EAAE;gBAC/C,IAAI,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;oBACvC,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM,IAAI,KAAK,CACb,6DAA6D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAC7F,CAAC;iBACH;gBAGD,IACE,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,KAAK,MAAM;oBAC1D,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,MAAM,EACxC;oBACA,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;iBACzB;qBAAM,IACL,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,EAC7D;oBAEA,YAAY,CAAC,UAAU,CAAC,CAAC;oBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;oBACxB,MAAM,IAAI,KAAK,CACb,+CAA+C,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,aAAa,EAAE,CACjG,CAAC;iBACH;aACF;iBAAM;gBACL,YAAY,CAAC,UAAU,CAAC,CAAC;gBACzB,aAAa,CAAC,QAAQ,CAAC,CAAC;gBACxB,MAAM,IAAI,KAAK,CACb,4DAA4D,CAC7D,CAAC;aACH;YAGD,IAAI,CAAC,YAAY,EAAE;gBACjB,aAAa,CAAC,QAAQ,CAAC,CAAC;aACzB;QACH,CAAC,EAAE,aAAa,CAAC,CAAC;IACpB,CAAC;IAED,mBAAmB,CACjB,KAAa,EACb,OAA2C;QAE3C,MAAM,CAAC,IAAI,CAAC,0BAA0B,KAAK,EAAE,CAAC,CAAC;QAG/C,MAAM,OAAO,GAAmB,EAAE,CAAC;QAEnC,IAAI,YAAY,GAAG,OAAO,EAAE,MAAM,CAAC,SAAS,CAC1C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,MAAM,CAC1C,CAAC;QAEF,IAAI,YAAY,KAAK,CAAC,CAAC,EAAE;YACvB,MAAM,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAC;YAC5D,YAAY,GAAG,CAAC,CAAC;SAClB;QAED,MAAM,CAAC,KAAK,CAAC,2BAA2B,YAAY,EAAE,CAAC,CAAC;QAGxD,IAAI,cAAc,GAAG,OAAO,EAAE,MAAM,CAAC,SAAS,CAC5C,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,YAAY,CAChD,CAAC;QAEF,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;YACzB,MAAM,CAAC,KAAK,CAAC,mDAAmD,CAAC,CAAC;YAClE,cAAc,GAAG,CAAC,CAAC;SACpB;QAED,MAAM,CAAC,KAAK,CAAC,iCAAiC,cAAc,EAAE,CAAC,CAAC;QAChE,MAAM,CAAC,OAAO,CAAC,0DAA0D,CAAC,CAAC;QAC3E,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,IAAI,EAAE;YAChC,IAAI,MAAM,CAAC;YACX,IAAI;gBACF,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC;aAC1C;YAAC,MAAM;gBACN,MAAM,IAAI,KAAK,CACb,qHAAqH,CACtH,CAAC;aACH;YAGD,IAAI;gBACF,CAAC,CAAC,GAAG,CACH,MAAM,EACN,iBAAiB,EACjB,cAAc,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,WAAW,EAAE,CACpD,CAAC;aACH;YAAC,MAAM;gBAEN,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC;aAC5D;YAED,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;SACtB;QACD,MAAM,CAAC,KAAK,CAAC,0CAA0C,CAAC,CAAC;QACzD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAa;QAC3B,IAAI,QAAuB,CAAC;QAG5B,MAAM,SAAS,GAAG,MAAM,IAAA,qCAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC,eAAe,CAAC;YACzD,UAAU,SAAS,EAAE,CAAC;QAGxB,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;QAGxC,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;QAGzB,IAAI;YAGF,MAAM,WAAW,GAAG,CAAC,CAAC;YAEtB,QAAQ,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,GAAG,CACrC,GAAG,IAAI,CAAC,QAAQ,4BAA4B,GAAG,UAAU,EACzD;gBACE,MAAM,EAAE,EAAC,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,EAAC;aACvD,CACF,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CACb,uBAAuB,IAAA,wCAAyB,EAAC,KAAK,CAAC,EAAE,CAC1D,CAAC;SACH;QAGD,IAAI,CAAC,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,EAAE;YAC7B,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;SACvD;aAAM;YACL,MAAM,IAAI,KAAK,CACb,oEAAoE,CACrE,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,KAAK,CAAC,IAAY;QACtB,MAAM,CAAC,IAAI,CAAC,+BAA+B,IAAI,EAAE,CAAC,CAAC;QAGnD,MAAM,IAAA,qCAAsB,EAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC1C,MAAM,CAAC,IAAI,CAAC,wCAAwC,IAAI,EAAE,CAAC,CAAC;QAG5D,MAAM,aAAa,GAAG,MAAM,IAAI,CAAC,SAAS,CACxC,+BAA+B,IAAI,GAAG,CACvC,CAAC;QACF,MAAM,CAAC,IAAI,CACT,6CAA6C,aAAa,CAAC,MAAM,QAAQ,CAC1E,CAAC;QACF,OAAO,mBAAmB,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;CACF;AAtPD,oCAsPC"}
|
|
1
|
+
{"version":3,"file":"splunk-mapper.js","sourceRoot":"","sources":["../../src/splunk-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, {AxiosInstance, AxiosResponse} from 'axios';\nimport {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {Logger} from 'winston';\nimport {SplunkConfig} from '../types/splunk-config-types';\nimport {SplunkReport} from '../types/splunk-report-types';\nimport {createWinstonLogger} from './utils/global';\nimport {\n checkSplunkCredentials,\n generateHostname,\n handleSplunkErrorResponse\n} from './utils/splunk-tools';\n\nexport type Hash<T> = {[key: string]: T};\n\nexport type SplunkConfigNoIndex = Omit<SplunkConfig, 'index'>;\n\nexport type GenericPayloadWithMetaData = {\n meta: FileMetaData;\n [key: string]: never[] | Record<string, unknown>;\n};\n\nexport type FileMetaData = {\n guid: string;\n subtype: string;\n hdf_splunk_schema: string;\n filetype: string;\n filename: string;\n profile_sha256: string;\n [key: string]: never[] | unknown;\n};\n\nconst MAPPER_NAME = 'Splunk2HDF';\n\nlet logger = createWinstonLogger('Splunk2HDF');\n\n// Groups items by using the provided key function\nexport function groupBy<T>(\n items: Array<T>,\n keyGetter: (v: T) => string\n): Hash<Array<T>> {\n const result: Hash<Array<T>> = {};\n for (const i of items) {\n // Get the items key\n const key = keyGetter(i);\n\n // Get the list it should go in\n const corrList = result[key];\n if (corrList) {\n // If list exists, place\n corrList.push(i);\n } else {\n // List does not exist; create and put\n result[key] = [i];\n }\n }\n return result;\n}\n\n// Maps a hash to a new hash, with the same keys but each value replaced with a new (mapped) value\nexport function mapHash<T, G>(old: Hash<T>, mapFunction: (v: T) => G): Hash<G> {\n const result: Hash<G> = {};\n for (const key in old) {\n result[key] = mapFunction(old[key]);\n }\n return result;\n}\n\nexport function consolidatePayloads(\n payloads: SplunkReport[]\n): ExecJSON.Execution[] {\n // Group by exec id\n const grouped = groupBy(payloads, (pl) => pl.meta.guid);\n\n const built = mapHash(grouped, consolidateFilePayloads);\n return Object.values(built);\n}\n\nexport function replaceKeyValueDescriptions(\n controls: (ExecJSON.Control &\n GenericPayloadWithMetaData & {\n descriptions?: {[key: string]: string} | ExecJSON.ControlDescription[];\n })[]\n) {\n return controls.map((control) => {\n if (control.descriptions && !Array.isArray(control.descriptions)) {\n const extractedDescriptions: ExecJSON.ControlDescription[] = [];\n for (const [key, value] of Object.entries(control.descriptions)) {\n extractedDescriptions.push({label: key, data: value as string});\n }\n control.descriptions = extractedDescriptions;\n }\n return control;\n });\n}\n\nfunction consolidateFilePayloads(\n filePayloads: SplunkReport[]\n): ExecJSON.Execution {\n // In the end we wish to produce a single evaluation EventPayload which in fact contains all data for the guid\n // Group by subtype\n const subtypes = groupBy(filePayloads, (event) => event.meta.subtype);\n const execEvents = (subtypes['header'] ||\n []) as Partial<ExecJSON.Execution>[];\n const profileEvents = (subtypes['profile'] ||\n []) as unknown as (ExecJSON.Profile & GenericPayloadWithMetaData)[];\n const controlEvents = (subtypes['control'] ||\n []) as unknown as (ExecJSON.Control & GenericPayloadWithMetaData)[];\n\n logger.debug(`Have ${execEvents.length} execution events`);\n logger.debug(`Have ${profileEvents.length} profile events`);\n logger.debug(`Have ${controlEvents.length} control events`);\n\n // Verify we only have one exec event\n if (execEvents.length !== 1) {\n throw new Error(\n `Incorrect # of Evaluation events. Expected 1, got ${execEvents.length}`\n );\n }\n\n // Pull out the first (and only) execution event\n const exec = execEvents[0];\n\n // Put all the profiles into the exec\n exec.profiles?.push(...profileEvents);\n\n // Group controls, and then put them into the profiles\n const shaGroupedControls = groupBy(\n controlEvents,\n (ctrl) => ctrl.meta.profile_sha256\n );\n for (const profile of profileEvents) {\n profile.controls = [];\n // Get the corresponding controls, and put them into the profile\n const sha = profile.meta.profile_sha256;\n logger.debug(`Adding controls for profile with SHA256: ${sha}`);\n const corrControls = shaGroupedControls[sha] || [];\n profile.controls.push(\n ...replaceKeyValueDescriptions(\n corrControls as unknown as (ExecJSON.Control &\n GenericPayloadWithMetaData & {\n descriptions?:\n | {[key: string]: string}\n | ExecJSON.ControlDescription[];\n })[]\n )\n );\n logger.debug(\n `Added ${profile.controls.length} controls to profile with SHA256 ${sha}`\n );\n }\n\n return exec as unknown as ExecJSON.Execution;\n}\n\nfunction unixTimeToDate(unixTime: string): Date {\n // Splunk only currently returns ints but this could be a decimal for more precision\n return new Date(parseFloat(unixTime) * 1000);\n}\n\nexport class SplunkMapper {\n config: SplunkConfig;\n axiosInstance: AxiosInstance;\n hostname: string;\n\n constructor(\n config: SplunkConfig,\n logService?: Logger,\n loggingLevel?: string\n ) {\n this.config = config;\n this.axiosInstance = axios.create({params: {output_mode: 'json'}});\n this.hostname = generateHostname(config);\n if (logService) {\n logger = logService;\n } else {\n logger = createWinstonLogger(MAPPER_NAME, loggingLevel || 'debug');\n }\n logger.debug(`Initialized ${this.constructor.name} successfully`);\n }\n\n async createJob(query: string): Promise<string> {\n logger.debug(`Creating job for query: ${query}`);\n // Post to {host}/services/search/jobs endpoint to queue search job for given query\n let jobSID: AxiosResponse;\n try {\n jobSID = await this.axiosInstance.post(\n `${this.hostname}/services/search/jobs`,\n `exec_mode=blocking&search=${query}`\n );\n } catch (error) {\n const errorCode = handleSplunkErrorResponse(error);\n throw new Error(`Failed to create search job - ${errorCode}`);\n }\n\n // Return unique search ID (SID) assigned to that search job for future reference\n if (_.has(jobSID, ['data', 'sid'])) {\n return jobSID.data.sid;\n } else {\n throw new Error(\n 'Failed to create search job - Malformed search job creation response received'\n );\n }\n }\n\n async trackJob(job: string): Promise<void> {\n // All documented potential error states for a search job\n // Per https://docs.splunk.com/Documentation/Splunk/latest/RESTTUT/RESTsearches#Tips_on_accessing_searches\n const badState = new Set([\n 'PAUSE',\n 'INTERNAL_CANCEL',\n 'USER_CANCEL',\n 'BAD_INPUT_CANCEL',\n 'QUIT',\n 'FAILED'\n ]);\n // Arbitrary time values for waiting (in ms), change as necessary\n // Time to wait until killing search job\n const searchJobTimeout = 120000;\n // Time interval between checking on status of search job\n const searchJobPing = 50;\n let queryStatus: AxiosResponse;\n let continuePing = true;\n\n // Kill query after 2 minute of waiting\n // Arbitrary time used, change as needed\n const queryTimer = setTimeout(() => {\n continuePing = false;\n clearTimeout(queryTimer);\n throw new Error('Search job timed out - Unable to retrieve query');\n }, searchJobTimeout);\n\n // Ping Splunk instance every 50 ms on status of search job\n const awaitJob = setInterval(async () => {\n try {\n queryStatus = await this.axiosInstance.get(\n `${this.hostname}/services/search/jobs/${job}`\n );\n } catch (error) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - ${handleSplunkErrorResponse(error)}`\n );\n }\n\n // Check if response schema is malformed\n if (_.has(queryStatus, 'data.entry[0].content')) {\n if (queryStatus.data.entry.length !== 1) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - Detected malformed entry field length ${queryStatus.data.entry.length}`\n );\n }\n\n // If search job is complete, kill interval loop and exit\n if (\n queryStatus.data.entry[0].content.dispatchState === 'DONE' &&\n queryStatus.data.entry[0].content.isDone\n ) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n } else if (\n badState.has(queryStatus.data.entry[0].content.dispatchState)\n ) {\n // If search job returns a bad state result, kill interval loop and fail the query\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - Detected dispatch state ${queryStatus.data.entry[0].content.dispatchState}`\n );\n }\n } else {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n 'Failed search job - Malformed search job response received'\n );\n }\n\n // Kill loop if search job times out\n if (!continuePing) {\n clearInterval(awaitJob);\n }\n }, searchJobPing);\n }\n\n parseSplunkResponse(\n query: string,\n results: {fields: string[]; rows: string[]}\n ): SplunkReport[] {\n logger.info(`Got results for query: ${query}`);\n\n // Our data parsed as Key/Value pairs\n const objects: SplunkReport[] = [];\n // Find _raw field, this contains our data\n let rawDataIndex = results?.fields.findIndex(\n (field) => field.toLowerCase() === '_raw'\n );\n\n if (rawDataIndex === -1) {\n logger.error(`Field _raw not found, using default index 3`);\n rawDataIndex = 3;\n }\n\n logger.debug(`Got field _raw at index ${rawDataIndex}`);\n\n // Find _indextime, this is when the data was imported into splunk\n let indexTimeIndex = results?.fields.findIndex(\n (field) => field.toLowerCase() === '_indextime'\n );\n\n if (indexTimeIndex === -1) {\n logger.error(`Field _indextime not found, using default index 2`);\n indexTimeIndex = 2;\n }\n\n logger.debug(`Got field _indextime at index ${indexTimeIndex}`);\n logger.verbose(`Parsing data returned by Splunk and appending timestamps`);\n for (const value of results.rows) {\n let object;\n try {\n object = JSON.parse(value[rawDataIndex]);\n } catch {\n throw new Error(\n 'Unable to parse file. Have you configured EVENT_BREAKER? See https://github.com/mitre/saf/wiki/Splunk-Configuration'\n );\n }\n\n // Set the date from the _indextime\n try {\n _.set(\n object,\n 'meta.parse_time',\n unixTimeToDate(value[indexTimeIndex]).toISOString()\n );\n } catch {\n // Parsing dates can be tricky sometimes\n _.set(object, 'meta.parse_time', new Date().toISOString());\n }\n\n objects.push(object);\n }\n logger.debug('Successfully parsed and added timestamps');\n return objects;\n }\n\n async queryData(query: string): Promise<SplunkReport[]> {\n let queryJob: AxiosResponse;\n\n // Request session key for Axios instance\n const authToken = await checkSplunkCredentials(this.config);\n this.axiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${authToken}`;\n\n // Create new search job from given query\n const job = await this.createJob(query);\n\n // Track status of search job\n await this.trackJob(job);\n\n // Ping Splunk for search job results\n try {\n // returnCount specifies the number of found results to return, if set to 0 returns all\n // Per https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTREF/RESTsearch#search.2Fv2.2Fjobs.2F.7Bsearch_id.7D.2Fresults\n const returnCount = 0;\n\n queryJob = await this.axiosInstance.get(\n `${this.hostname}/services/search/v2/jobs/${job}/results`,\n {\n params: {count: returnCount, output_mode: 'json_rows'}\n }\n );\n } catch (error) {\n throw new Error(\n `Failed search job - ${handleSplunkErrorResponse(error)}`\n );\n }\n\n // Return search job results\n if (_.has(queryJob, ['data'])) {\n return this.parseSplunkResponse(query, queryJob.data);\n } else {\n throw new Error(\n 'Failed search job - Malformed search job results response received'\n );\n }\n }\n\n async toHdf(guid: string): Promise<ExecJSON.Execution> {\n logger.info(`Starting conversion of GUID ${guid}`);\n // Preliminary check of credentials\n // Not used for later logins\n await checkSplunkCredentials(this.config);\n logger.info(`Credentials valid, querying data for ${guid}`);\n\n // Start search job for query\n const executionData = await this.queryData(\n `search index=\"*\" meta.guid=\"${guid}\"`\n );\n logger.info(\n `Data received, consolidating payloads for ${executionData.length} items`\n );\n return consolidatePayloads(executionData)[0];\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"trufflehog-mapper.d.ts","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAE7E,qBAAa,iBAAiB;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;gBACL,cAAc,EAAE,MAAM,EAAE,OAAO,UAAQ;IAkBnD,KAAK,IAAI,QAAQ,CAAC,SAAS;CAG5B;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAgFC;gBACU,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAQ;CAIrE"}
|
|
@@ -9,6 +9,8 @@ const lodash_1 = __importDefault(require("lodash"));
|
|
|
9
9
|
const package_json_1 = require("../package.json");
|
|
10
10
|
const base_converter_1 = require("./base-converter");
|
|
11
11
|
class TrufflehogResults {
|
|
12
|
+
data;
|
|
13
|
+
withRaw;
|
|
12
14
|
constructor(trufflehogJson, withRaw = false) {
|
|
13
15
|
let parsedData = {};
|
|
14
16
|
try {
|
|
@@ -34,77 +36,78 @@ class TrufflehogResults {
|
|
|
34
36
|
}
|
|
35
37
|
exports.TrufflehogResults = TrufflehogResults;
|
|
36
38
|
class TrufflehogMapper extends base_converter_1.BaseConverter {
|
|
39
|
+
withRaw;
|
|
40
|
+
mappings = {
|
|
41
|
+
platform: {
|
|
42
|
+
name: 'Heimdall Tools',
|
|
43
|
+
release: package_json_1.version
|
|
44
|
+
},
|
|
45
|
+
version: package_json_1.version,
|
|
46
|
+
statistics: {},
|
|
47
|
+
profiles: [
|
|
48
|
+
{
|
|
49
|
+
name: {
|
|
50
|
+
path: 'wrapper[0]',
|
|
51
|
+
transformer: (data) => `Source ID: ${lodash_1.default.get(data, 'SourceID')}, Source Name: ${lodash_1.default.get(data, 'SourceName')}`
|
|
52
|
+
},
|
|
53
|
+
title: { path: 'wrapper[0].SourceName' },
|
|
54
|
+
supports: [],
|
|
55
|
+
attributes: [],
|
|
56
|
+
groups: [],
|
|
57
|
+
status: 'loaded',
|
|
58
|
+
controls: [
|
|
59
|
+
{
|
|
60
|
+
key: 'id',
|
|
61
|
+
path: 'wrapper',
|
|
62
|
+
tags: {
|
|
63
|
+
nist: ['IA-5(7)'],
|
|
64
|
+
cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],
|
|
65
|
+
severity: 'medium'
|
|
66
|
+
},
|
|
67
|
+
refs: [],
|
|
68
|
+
source_location: {},
|
|
69
|
+
title: {
|
|
70
|
+
transformer: (data) => `Found ${lodash_1.default.get(data, 'DetectorName')} secret using ${lodash_1.default.get(data, 'DecoderName')} decoder`
|
|
71
|
+
},
|
|
72
|
+
id: {
|
|
73
|
+
transformer: (data) => `${lodash_1.default.get(data, 'DetectorName')} ${lodash_1.default.get(data, 'DecoderName')}`
|
|
74
|
+
},
|
|
75
|
+
impact: 0.5,
|
|
76
|
+
results: [
|
|
77
|
+
{
|
|
78
|
+
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
79
|
+
code_desc: {
|
|
80
|
+
transformer: (data) => `${JSON.stringify(lodash_1.default.get(data, 'SourceMetadata'), null, 2)}`
|
|
81
|
+
},
|
|
82
|
+
message: {
|
|
83
|
+
transformer: (data) => `${JSON.stringify(lodash_1.default.omitBy(lodash_1.default.pick(data, [
|
|
84
|
+
'Verified',
|
|
85
|
+
'VerificationError',
|
|
86
|
+
'Raw',
|
|
87
|
+
'RawV2',
|
|
88
|
+
'Redacted',
|
|
89
|
+
'ExtraData',
|
|
90
|
+
'StructuredData'
|
|
91
|
+
]), (value) => value === null || value === ''), null, 2)}`
|
|
92
|
+
},
|
|
93
|
+
start_time: ''
|
|
94
|
+
}
|
|
95
|
+
]
|
|
96
|
+
}
|
|
97
|
+
],
|
|
98
|
+
sha256: ''
|
|
99
|
+
}
|
|
100
|
+
],
|
|
101
|
+
passthrough: {
|
|
102
|
+
transformer: (data) => {
|
|
103
|
+
return {
|
|
104
|
+
...(this.withRaw && { raw: data })
|
|
105
|
+
};
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
};
|
|
37
109
|
constructor(trufflehogJson, withRaw = false) {
|
|
38
110
|
super(trufflehogJson, true);
|
|
39
|
-
this.mappings = {
|
|
40
|
-
platform: {
|
|
41
|
-
name: 'Heimdall Tools',
|
|
42
|
-
release: package_json_1.version
|
|
43
|
-
},
|
|
44
|
-
version: package_json_1.version,
|
|
45
|
-
statistics: {},
|
|
46
|
-
profiles: [
|
|
47
|
-
{
|
|
48
|
-
name: {
|
|
49
|
-
path: 'wrapper[0]',
|
|
50
|
-
transformer: (data) => `Source ID: ${lodash_1.default.get(data, 'SourceID')}, Source Name: ${lodash_1.default.get(data, 'SourceName')}`
|
|
51
|
-
},
|
|
52
|
-
title: { path: 'wrapper[0].SourceName' },
|
|
53
|
-
supports: [],
|
|
54
|
-
attributes: [],
|
|
55
|
-
groups: [],
|
|
56
|
-
status: 'loaded',
|
|
57
|
-
controls: [
|
|
58
|
-
{
|
|
59
|
-
key: 'id',
|
|
60
|
-
path: 'wrapper',
|
|
61
|
-
tags: {
|
|
62
|
-
nist: ['IA-5(7)'],
|
|
63
|
-
cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],
|
|
64
|
-
severity: 'medium'
|
|
65
|
-
},
|
|
66
|
-
refs: [],
|
|
67
|
-
source_location: {},
|
|
68
|
-
title: {
|
|
69
|
-
transformer: (data) => `Found ${lodash_1.default.get(data, 'DetectorName')} secret using ${lodash_1.default.get(data, 'DecoderName')} decoder`
|
|
70
|
-
},
|
|
71
|
-
id: {
|
|
72
|
-
transformer: (data) => `${lodash_1.default.get(data, 'DetectorName')} ${lodash_1.default.get(data, 'DecoderName')}`
|
|
73
|
-
},
|
|
74
|
-
impact: 0.5,
|
|
75
|
-
results: [
|
|
76
|
-
{
|
|
77
|
-
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
78
|
-
code_desc: {
|
|
79
|
-
transformer: (data) => `${JSON.stringify(lodash_1.default.get(data, 'SourceMetadata'), null, 2)}`
|
|
80
|
-
},
|
|
81
|
-
message: {
|
|
82
|
-
transformer: (data) => `${JSON.stringify(lodash_1.default.omitBy(lodash_1.default.pick(data, [
|
|
83
|
-
'Verified',
|
|
84
|
-
'VerificationError',
|
|
85
|
-
'Raw',
|
|
86
|
-
'RawV2',
|
|
87
|
-
'Redacted',
|
|
88
|
-
'ExtraData',
|
|
89
|
-
'StructuredData'
|
|
90
|
-
]), (value) => value === null || value === ''), null, 2)}`
|
|
91
|
-
},
|
|
92
|
-
start_time: ''
|
|
93
|
-
}
|
|
94
|
-
]
|
|
95
|
-
}
|
|
96
|
-
],
|
|
97
|
-
sha256: ''
|
|
98
|
-
}
|
|
99
|
-
],
|
|
100
|
-
passthrough: {
|
|
101
|
-
transformer: (data) => {
|
|
102
|
-
return {
|
|
103
|
-
...(this.withRaw && { raw: data })
|
|
104
|
-
};
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
};
|
|
108
111
|
this.withRaw = withRaw;
|
|
109
112
|
}
|
|
110
113
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trufflehog-mapper.js","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":";;;;;;AAAA,uCAAkC;AAClC,oDAAuB;AACvB,kDAAgE;AAChE,qDAA6E;AAE7E,MAAa,iBAAiB;
|
|
1
|
+
{"version":3,"file":"trufflehog-mapper.js","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {BaseConverter, ILookupPath, MappedTransform} from './base-converter';\n\nexport class TrufflehogResults {\n data: Record<string, unknown>;\n withRaw: boolean;\n constructor(trufflehogJson: string, withRaw = false) {\n let parsedData = {};\n try {\n parsedData = JSON.parse(trufflehogJson.trim());\n } catch (e) {\n parsedData = trufflehogJson\n .trim()\n .split('\\n')\n .map((line) => JSON.parse(line.trim()));\n }\n this.withRaw = withRaw;\n if (_.isArray(parsedData)) {\n this.data = {wrapper: parsedData};\n } else {\n this.data = {wrapper: [parsedData]};\n }\n }\n\n toHdf(): ExecJSON.Execution {\n return new TrufflehogMapper(this.data, this.withRaw).toHdf();\n }\n}\n\nexport class TrufflehogMapper extends BaseConverter {\n withRaw: boolean;\n\n mappings: MappedTransform<\n ExecJSON.Execution & {passthrough: unknown},\n ILookupPath\n > = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n name: {\n path: 'wrapper[0]',\n transformer: (data: Record<string, unknown>): string =>\n `Source ID: ${_.get(data, 'SourceID')}, Source Name: ${_.get(data, 'SourceName')}`\n },\n title: {path: 'wrapper[0].SourceName'},\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n key: 'id',\n path: 'wrapper',\n tags: {\n nist: ['IA-5(7)'],\n cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],\n severity: 'medium'\n },\n refs: [],\n source_location: {},\n title: {\n transformer: (data: Record<string, unknown>): string =>\n `Found ${_.get(data, 'DetectorName')} secret using ${_.get(data, 'DecoderName')} decoder`\n },\n id: {\n transformer: (data: Record<string, unknown>): string =>\n `${_.get(data, 'DetectorName')} ${_.get(data, 'DecoderName')}`\n },\n impact: 0.5,\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (data: Record<string, unknown>): string =>\n `${JSON.stringify(_.get(data, 'SourceMetadata'), null, 2)}`\n },\n message: {\n transformer: (data: Record<string, unknown>): string =>\n `${JSON.stringify(\n _.omitBy(\n _.pick(data, [\n 'Verified',\n 'VerificationError',\n 'Raw',\n 'RawV2',\n 'Redacted',\n 'ExtraData',\n 'StructuredData'\n ]),\n (value) => value === null || value === ''\n ),\n null,\n 2\n )}`\n },\n start_time: ''\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, any>): Record<string, unknown> => {\n return {\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(trufflehogJson: Record<string, unknown>, withRaw = false) {\n super(trufflehogJson, true);\n this.withRaw = withRaw;\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"twistlock-mapper.d.ts","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,aAAa,EACb,WAAW,EAEX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAe1B,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;gBACL,aAAa,EAAE,MAAM,EAAE,OAAO,UAAQ;IAUlD,KAAK,IAAI,QAAQ,CAAC,SAAS;CAG5B;AAED,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAgIC;gBACU,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAQ;CAIpE"}
|
|
@@ -15,13 +15,23 @@ 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
36
|
exports.TwistlockMapper = exports.TwistlockResults = void 0;
|
|
27
37
|
const inspecjs_1 = require("inspecjs");
|
|
@@ -38,9 +48,12 @@ const IMPACT_MAPPING = new Map([
|
|
|
38
48
|
['low', 0.3]
|
|
39
49
|
]);
|
|
40
50
|
class TwistlockResults {
|
|
51
|
+
data;
|
|
52
|
+
withRaw;
|
|
41
53
|
constructor(twistlockJson, withRaw = false) {
|
|
42
54
|
this.data = JSON.parse(twistlockJson);
|
|
43
55
|
this.withRaw = withRaw;
|
|
56
|
+
// Add a wrapper to the data for the repository scan case which doesn't include the `results` key
|
|
44
57
|
if (!_.has(this.data, 'results')) {
|
|
45
58
|
this.data = { results: [this.data] };
|
|
46
59
|
}
|
|
@@ -51,132 +64,133 @@ class TwistlockResults {
|
|
|
51
64
|
}
|
|
52
65
|
exports.TwistlockResults = TwistlockResults;
|
|
53
66
|
class TwistlockMapper extends base_converter_1.BaseConverter {
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
projectArr = _.get(data, 'collections');
|
|
73
|
-
}
|
|
74
|
-
if (_.has(data, 'repository')) {
|
|
75
|
-
projectArr = _.get(data, 'repository');
|
|
76
|
-
}
|
|
77
|
-
const projectName = Array.isArray(projectArr)
|
|
78
|
-
? projectArr.join(' / ')
|
|
79
|
-
: projectArr;
|
|
80
|
-
return `Twistlock Project: ${projectName}`;
|
|
67
|
+
withRaw;
|
|
68
|
+
mappings = {
|
|
69
|
+
platform: {
|
|
70
|
+
name: 'Heimdall Tools',
|
|
71
|
+
release: package_json_1.version,
|
|
72
|
+
target_id: { path: ['results[0].name', 'results[0].repository'] }
|
|
73
|
+
},
|
|
74
|
+
version: package_json_1.version,
|
|
75
|
+
statistics: {},
|
|
76
|
+
profiles: [
|
|
77
|
+
{
|
|
78
|
+
path: 'results',
|
|
79
|
+
name: 'Twistlock Scan',
|
|
80
|
+
title: {
|
|
81
|
+
transformer: (data) => {
|
|
82
|
+
let projectArr = 'N/A';
|
|
83
|
+
if (_.has(data, 'collections')) {
|
|
84
|
+
projectArr = _.get(data, 'collections');
|
|
81
85
|
}
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
transformer: (data) => {
|
|
85
|
-
const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')
|
|
86
|
-
? `${JSON.stringify(_.get(data, 'vulnerabilityDistribution.total'))}`
|
|
87
|
-
: 'N/A';
|
|
88
|
-
const complianceTotal = _.has(data, 'complianceDistribution')
|
|
89
|
-
? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`
|
|
90
|
-
: 'N/A';
|
|
91
|
-
return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;
|
|
86
|
+
if (_.has(data, 'repository')) {
|
|
87
|
+
projectArr = _.get(data, 'repository');
|
|
92
88
|
}
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
refs: [],
|
|
109
|
-
source_location: {},
|
|
110
|
-
title: { path: 'id' },
|
|
111
|
-
id: { path: 'id' },
|
|
112
|
-
desc: { path: 'description' },
|
|
113
|
-
impact: {
|
|
114
|
-
path: 'severity',
|
|
115
|
-
transformer: (0, base_converter_1.impactMapping)(IMPACT_MAPPING)
|
|
116
|
-
},
|
|
117
|
-
code: {
|
|
118
|
-
transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
|
|
119
|
-
},
|
|
120
|
-
results: [
|
|
121
|
-
{
|
|
122
|
-
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
123
|
-
code_desc: {
|
|
124
|
-
transformer: (data) => {
|
|
125
|
-
const packageName = _.has(data, 'packageName')
|
|
126
|
-
? `${JSON.stringify(_.get(data, 'packageName'))}`
|
|
127
|
-
: 'N/A';
|
|
128
|
-
const impactedVersions = _.has(data, 'impactedVersions')
|
|
129
|
-
? `${JSON.stringify(_.get(data, 'impactedVersions'))}`
|
|
130
|
-
: 'N/A';
|
|
131
|
-
return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;
|
|
132
|
-
}
|
|
133
|
-
},
|
|
134
|
-
message: {
|
|
135
|
-
transformer: (data) => {
|
|
136
|
-
const packageName = _.has(data, 'packageName')
|
|
137
|
-
? `${JSON.stringify(_.get(data, 'packageName'))}`
|
|
138
|
-
: 'N/A';
|
|
139
|
-
const packageVersion = _.has(data, 'packageVersion')
|
|
140
|
-
? `${JSON.stringify(_.get(data, 'packageVersion'))}`
|
|
141
|
-
: 'N/A';
|
|
142
|
-
return `Expected latest version of ${packageName}\nDetected vulnerable version ${packageVersion} of ${packageName}`;
|
|
143
|
-
}
|
|
144
|
-
},
|
|
145
|
-
start_time: { path: 'discoveredDate' }
|
|
146
|
-
}
|
|
147
|
-
]
|
|
148
|
-
}
|
|
149
|
-
],
|
|
150
|
-
sha256: ''
|
|
151
|
-
}
|
|
152
|
-
],
|
|
153
|
-
passthrough: {
|
|
154
|
-
transformer: (data) => {
|
|
155
|
-
let resultsData = _.get(data, 'results');
|
|
156
|
-
if (Array.isArray(resultsData)) {
|
|
157
|
-
resultsData = resultsData.map((result) => _.omit(result, [
|
|
158
|
-
'name',
|
|
159
|
-
'collections',
|
|
160
|
-
'complianceDistribution',
|
|
161
|
-
'vulnerabilities',
|
|
162
|
-
'vulnerabilityDistribution'
|
|
163
|
-
]));
|
|
89
|
+
const projectName = Array.isArray(projectArr)
|
|
90
|
+
? projectArr.join(' / ')
|
|
91
|
+
: projectArr;
|
|
92
|
+
return `Twistlock Project: ${projectName}`;
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
summary: {
|
|
96
|
+
transformer: (data) => {
|
|
97
|
+
const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')
|
|
98
|
+
? `${JSON.stringify(_.get(data, 'vulnerabilityDistribution.total'))}`
|
|
99
|
+
: 'N/A';
|
|
100
|
+
const complianceTotal = _.has(data, 'complianceDistribution')
|
|
101
|
+
? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`
|
|
102
|
+
: 'N/A';
|
|
103
|
+
return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;
|
|
164
104
|
}
|
|
165
|
-
|
|
166
|
-
|
|
105
|
+
},
|
|
106
|
+
supports: [],
|
|
107
|
+
attributes: [],
|
|
108
|
+
groups: [],
|
|
109
|
+
status: 'loaded',
|
|
110
|
+
controls: [
|
|
111
|
+
{
|
|
112
|
+
path: 'vulnerabilities',
|
|
113
|
+
key: 'id',
|
|
114
|
+
pathTransform: (value) => (Array.isArray(value) ? value : []),
|
|
115
|
+
tags: {
|
|
116
|
+
nist: global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,
|
|
117
|
+
cci: (0, global_1.getCCIsForNISTTags)(global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS),
|
|
118
|
+
cveid: { path: 'id' }
|
|
119
|
+
},
|
|
120
|
+
refs: [],
|
|
121
|
+
source_location: {},
|
|
122
|
+
title: { path: 'id' },
|
|
123
|
+
id: { path: 'id' },
|
|
124
|
+
desc: { path: 'description' },
|
|
125
|
+
impact: {
|
|
126
|
+
path: 'severity',
|
|
127
|
+
transformer: (0, base_converter_1.impactMapping)(IMPACT_MAPPING)
|
|
128
|
+
},
|
|
129
|
+
code: {
|
|
130
|
+
transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
|
|
131
|
+
},
|
|
132
|
+
results: [
|
|
167
133
|
{
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
134
|
+
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
135
|
+
code_desc: {
|
|
136
|
+
transformer: (data) => {
|
|
137
|
+
const packageName = _.has(data, 'packageName')
|
|
138
|
+
? `${JSON.stringify(_.get(data, 'packageName'))}`
|
|
139
|
+
: 'N/A';
|
|
140
|
+
const impactedVersions = _.has(data, 'impactedVersions')
|
|
141
|
+
? `${JSON.stringify(_.get(data, 'impactedVersions'))}`
|
|
142
|
+
: 'N/A';
|
|
143
|
+
return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;
|
|
144
|
+
}
|
|
145
|
+
},
|
|
146
|
+
message: {
|
|
147
|
+
transformer: (data) => {
|
|
148
|
+
const packageName = _.has(data, 'packageName')
|
|
149
|
+
? `${JSON.stringify(_.get(data, 'packageName'))}`
|
|
150
|
+
: 'N/A';
|
|
151
|
+
const packageVersion = _.has(data, 'packageVersion')
|
|
152
|
+
? `${JSON.stringify(_.get(data, 'packageVersion'))}`
|
|
153
|
+
: 'N/A';
|
|
154
|
+
return `Expected latest version of ${packageName}\nDetected vulnerable version ${packageVersion} of ${packageName}`;
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
start_time: { path: 'discoveredDate' }
|
|
173
158
|
}
|
|
174
|
-
]
|
|
175
|
-
|
|
176
|
-
|
|
159
|
+
]
|
|
160
|
+
}
|
|
161
|
+
],
|
|
162
|
+
sha256: ''
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
passthrough: {
|
|
166
|
+
transformer: (data) => {
|
|
167
|
+
let resultsData = _.get(data, 'results');
|
|
168
|
+
if (Array.isArray(resultsData)) {
|
|
169
|
+
resultsData = resultsData.map((result) => _.omit(result, [
|
|
170
|
+
'name',
|
|
171
|
+
'collections',
|
|
172
|
+
'complianceDistribution',
|
|
173
|
+
'vulnerabilities',
|
|
174
|
+
'vulnerabilityDistribution'
|
|
175
|
+
]));
|
|
177
176
|
}
|
|
177
|
+
return {
|
|
178
|
+
auxiliary_data: [
|
|
179
|
+
{
|
|
180
|
+
name: 'Twistlock',
|
|
181
|
+
data: {
|
|
182
|
+
results: resultsData,
|
|
183
|
+
consoleURL: _.get(data, 'consoleURL')
|
|
184
|
+
}
|
|
185
|
+
}
|
|
186
|
+
],
|
|
187
|
+
...(this.withRaw && { raw: data })
|
|
188
|
+
};
|
|
178
189
|
}
|
|
179
|
-
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
constructor(twistlockJson, withRaw = false) {
|
|
193
|
+
super(twistlockJson, true);
|
|
180
194
|
this.withRaw = withRaw;
|
|
181
195
|
}
|
|
182
196
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"twistlock-mapper.js","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"twistlock-mapper.js","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {\n BaseConverter,\n ILookupPath,\n impactMapping,\n MappedTransform\n} from './base-converter';\nimport {\n DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nconst IMPACT_MAPPING: Map<string, number> = new Map([\n ['critical', 0.9],\n ['important', 0.9],\n ['high', 0.7],\n ['medium', 0.5],\n ['moderate', 0.5],\n ['low', 0.3]\n]);\n\nexport class TwistlockResults {\n data: Record<string, unknown>;\n withRaw: boolean;\n constructor(twistlockJson: string, withRaw = false) {\n this.data = JSON.parse(twistlockJson);\n this.withRaw = withRaw;\n\n // Add a wrapper to the data for the repository scan case which doesn't include the `results` key\n if (!_.has(this.data, 'results')) {\n this.data = {results: [this.data]};\n }\n }\n\n toHdf(): ExecJSON.Execution {\n return new TwistlockMapper(this.data, this.withRaw).toHdf();\n }\n}\n\nexport class TwistlockMapper extends BaseConverter {\n withRaw: boolean;\n\n mappings: MappedTransform<\n ExecJSON.Execution & {passthrough: unknown},\n ILookupPath\n > = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: {path: ['results[0].name', 'results[0].repository']}\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n path: 'results',\n name: 'Twistlock Scan',\n title: {\n transformer: (data: Record<string, unknown>): string => {\n let projectArr: unknown = 'N/A';\n if (_.has(data, 'collections')) {\n projectArr = _.get(data, 'collections');\n }\n if (_.has(data, 'repository')) {\n projectArr = _.get(data, 'repository');\n }\n const projectName = Array.isArray(projectArr)\n ? projectArr.join(' / ')\n : projectArr;\n return `Twistlock Project: ${projectName}`;\n }\n },\n summary: {\n transformer: (data: Record<string, unknown>): string => {\n const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')\n ? `${JSON.stringify(\n _.get(data, 'vulnerabilityDistribution.total')\n )}`\n : 'N/A';\n const complianceTotal = _.has(data, 'complianceDistribution')\n ? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`\n : 'N/A';\n return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;\n }\n },\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'vulnerabilities',\n key: 'id',\n pathTransform: (value) => (Array.isArray(value) ? value : []),\n tags: {\n nist: DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n cci: getCCIsForNISTTags(DEFAULT_UPDATE_REMEDIATION_NIST_TAGS),\n cveid: {path: 'id'}\n },\n refs: [],\n source_location: {},\n title: {path: 'id'},\n id: {path: 'id'},\n desc: {path: 'description'},\n impact: {\n path: 'severity',\n transformer: impactMapping(IMPACT_MAPPING)\n },\n code: {\n transformer: (vulnerability: Record<string, unknown>): string =>\n JSON.stringify(vulnerability, null, 2)\n },\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (data: Record<string, unknown>): string => {\n const packageName = _.has(data, 'packageName')\n ? `${JSON.stringify(_.get(data, 'packageName'))}`\n : 'N/A';\n const impactedVersions = _.has(data, 'impactedVersions')\n ? `${JSON.stringify(_.get(data, 'impactedVersions'))}`\n : 'N/A';\n return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;\n }\n },\n message: {\n transformer: (data: Record<string, unknown>): string => {\n const packageName = _.has(data, 'packageName')\n ? `${JSON.stringify(_.get(data, 'packageName'))}`\n : 'N/A';\n const packageVersion = _.has(data, 'packageVersion')\n ? `${JSON.stringify(_.get(data, 'packageVersion'))}`\n : 'N/A';\n return `Expected latest version of ${packageName}\\nDetected vulnerable version ${packageVersion} of ${packageName}`;\n }\n },\n start_time: {path: 'discoveredDate'}\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, unknown>): Record<string, unknown> => {\n let resultsData = _.get(data, 'results');\n if (Array.isArray(resultsData)) {\n resultsData = resultsData.map((result: Record<string, unknown>) =>\n _.omit(result, [\n 'name',\n 'collections',\n 'complianceDistribution',\n 'vulnerabilities',\n 'vulnerabilityDistribution'\n ])\n );\n }\n return {\n auxiliary_data: [\n {\n name: 'Twistlock',\n data: {\n results: resultsData,\n consoleURL: _.get(data, 'consoleURL')\n }\n }\n ],\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(twistlockJson: Record<string, unknown>, withRaw = false) {\n super(twistlockJson, true);\n this.withRaw = withRaw;\n }\n}\n"]}
|