@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
package/lib/src/prisma-mapper.js
CHANGED
|
@@ -15,15 +15,26 @@ 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.PrismaMapper = exports.PrismaControlMapper =
|
|
36
|
+
exports.PrismaMapper = exports.PrismaControlMapper = void 0;
|
|
37
|
+
exports.nistTag = nistTag;
|
|
27
38
|
const inspecjs_1 = require("inspecjs");
|
|
28
39
|
const _ = __importStar(require("lodash"));
|
|
29
40
|
const package_json_1 = require("../package.json");
|
|
@@ -44,139 +55,139 @@ function nistTag(cveTag) {
|
|
|
44
55
|
return global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS;
|
|
45
56
|
}
|
|
46
57
|
}
|
|
47
|
-
exports.nistTag = nistTag;
|
|
48
58
|
class PrismaControlMapper extends base_converter_1.BaseConverter {
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
path: 'CVE ID',
|
|
84
|
-
transformer: (cve) => (0, global_1.getCCIsForNISTTags)(nistTag(cve))
|
|
85
|
-
},
|
|
86
|
-
nist: {
|
|
87
|
-
path: 'CVE ID',
|
|
88
|
-
transformer: nistTag
|
|
89
|
-
},
|
|
90
|
-
cve: { path: 'CVE ID' },
|
|
91
|
-
cvss: { path: 'cssv' }
|
|
59
|
+
mappings = {
|
|
60
|
+
platform: {
|
|
61
|
+
name: 'Heimdall Tools',
|
|
62
|
+
release: package_json_1.version,
|
|
63
|
+
target_id: 'Prisma Cloud Scan Report'
|
|
64
|
+
},
|
|
65
|
+
version: package_json_1.version,
|
|
66
|
+
statistics: {
|
|
67
|
+
duration: null
|
|
68
|
+
},
|
|
69
|
+
profiles: [
|
|
70
|
+
{
|
|
71
|
+
name: 'Palo Alto Prisma Cloud Tool',
|
|
72
|
+
version: '',
|
|
73
|
+
title: 'Prisma Cloud Scan Report',
|
|
74
|
+
maintainer: null,
|
|
75
|
+
summary: '',
|
|
76
|
+
license: null,
|
|
77
|
+
copyright: null,
|
|
78
|
+
copyright_email: null,
|
|
79
|
+
supports: [],
|
|
80
|
+
attributes: [],
|
|
81
|
+
depends: [],
|
|
82
|
+
groups: [],
|
|
83
|
+
status: 'loaded',
|
|
84
|
+
controls: [
|
|
85
|
+
{
|
|
86
|
+
path: 'records',
|
|
87
|
+
key: 'id',
|
|
88
|
+
desc: { path: 'Description' },
|
|
89
|
+
tags: {
|
|
90
|
+
cci: {
|
|
91
|
+
path: 'CVE ID',
|
|
92
|
+
transformer: (cve) => (0, global_1.getCCIsForNISTTags)(nistTag(cve))
|
|
92
93
|
},
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
id: {
|
|
97
|
-
transformer: (item) => {
|
|
98
|
-
if (item['CVE ID']) {
|
|
99
|
-
return `${item['Compliance ID']}-${item['CVE ID']}`;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
},
|
|
106
|
-
title: {
|
|
107
|
-
transformer: (item) => `${item.Hostname}-${item.Distro}-${item.Type}`
|
|
94
|
+
nist: {
|
|
95
|
+
path: 'CVE ID',
|
|
96
|
+
transformer: nistTag
|
|
108
97
|
},
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
98
|
+
cve: { path: 'CVE ID' },
|
|
99
|
+
cvss: { path: 'cssv' }
|
|
100
|
+
},
|
|
101
|
+
descriptions: [],
|
|
102
|
+
refs: [{ url: { path: 'Vulnerability Link' } }],
|
|
103
|
+
source_location: { path: 'Hostname' },
|
|
104
|
+
id: {
|
|
105
|
+
transformer: (item) => {
|
|
106
|
+
if (item['CVE ID']) {
|
|
107
|
+
return `${item['Compliance ID']}-${item['CVE ID']}`;
|
|
118
108
|
}
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
109
|
+
else {
|
|
110
|
+
return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
title: {
|
|
115
|
+
transformer: (item) => `${item.Hostname}-${item.Distro}-${item.Type}`
|
|
116
|
+
},
|
|
117
|
+
impact: {
|
|
118
|
+
path: 'Severity',
|
|
119
|
+
transformer: (severity) => {
|
|
120
|
+
if (severity) {
|
|
121
|
+
return SEVERITY_LOOKUP[severity];
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
return 0.5;
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
},
|
|
128
|
+
code: {
|
|
129
|
+
transformer: (obj) => JSON.stringify(obj, null, 2)
|
|
130
|
+
},
|
|
131
|
+
results: [
|
|
132
|
+
{
|
|
133
|
+
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
134
|
+
code_desc: {
|
|
135
|
+
transformer: (obj) => {
|
|
136
|
+
let result = '';
|
|
137
|
+
if (obj.Type === 'image') {
|
|
138
|
+
if (obj['Packages'] !== '') {
|
|
139
|
+
result += `Version check of package: ${obj['Packages']}`;
|
|
144
140
|
}
|
|
145
|
-
result += `\n\n${obj.Description}`;
|
|
146
|
-
return result;
|
|
147
141
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
let result = '';
|
|
152
|
-
if (obj['Fix Status'] !== '' && obj.Cause !== '') {
|
|
153
|
-
result += `Fix Status: ${obj['Fix Status']}\n\n${obj.Cause}`;
|
|
154
|
-
}
|
|
155
|
-
else if (obj['Fix Status'] !== '') {
|
|
156
|
-
result += `Fix Status: ${obj['Fix Status']}`;
|
|
157
|
-
}
|
|
158
|
-
else if (obj.Cause !== '') {
|
|
159
|
-
result += `Cause: ${obj.Cause}`;
|
|
142
|
+
else if (obj.Type === 'linux') {
|
|
143
|
+
if (obj.Distro !== '') {
|
|
144
|
+
result += `Configuration check for ${obj.Distro}`;
|
|
160
145
|
}
|
|
161
146
|
else {
|
|
162
|
-
result +=
|
|
147
|
+
result += ``;
|
|
163
148
|
}
|
|
164
|
-
return result;
|
|
165
149
|
}
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
150
|
+
else {
|
|
151
|
+
result += `${obj.Type} check for ${obj.Hostname}`;
|
|
152
|
+
}
|
|
153
|
+
result += `\n\n${obj.Description}`;
|
|
154
|
+
return result;
|
|
155
|
+
}
|
|
156
|
+
},
|
|
157
|
+
message: {
|
|
158
|
+
transformer: (obj) => {
|
|
159
|
+
let result = '';
|
|
160
|
+
if (obj['Fix Status'] !== '' && obj.Cause !== '') {
|
|
161
|
+
result += `Fix Status: ${obj['Fix Status']}\n\n${obj.Cause}`;
|
|
162
|
+
}
|
|
163
|
+
else if (obj['Fix Status'] !== '') {
|
|
164
|
+
result += `Fix Status: ${obj['Fix Status']}`;
|
|
165
|
+
}
|
|
166
|
+
else if (obj.Cause !== '') {
|
|
167
|
+
result += `Cause: ${obj.Cause}`;
|
|
168
|
+
}
|
|
169
|
+
else {
|
|
170
|
+
result += 'Unknown';
|
|
171
|
+
}
|
|
172
|
+
return result;
|
|
173
|
+
}
|
|
174
|
+
},
|
|
175
|
+
start_time: { path: 'Published' }
|
|
176
|
+
}
|
|
177
|
+
]
|
|
178
|
+
}
|
|
179
|
+
],
|
|
180
|
+
sha256: ''
|
|
181
|
+
}
|
|
182
|
+
]
|
|
183
|
+
};
|
|
184
|
+
constructor(prismaControls) {
|
|
185
|
+
super({ records: prismaControls });
|
|
176
186
|
}
|
|
177
187
|
}
|
|
178
188
|
exports.PrismaControlMapper = PrismaControlMapper;
|
|
179
189
|
class PrismaMapper {
|
|
190
|
+
data = [];
|
|
180
191
|
toHdf() {
|
|
181
192
|
const executions = [];
|
|
182
193
|
const hostnameToControls = {};
|
|
@@ -193,7 +204,6 @@ class PrismaMapper {
|
|
|
193
204
|
return executions;
|
|
194
205
|
}
|
|
195
206
|
constructor(prismaCsv) {
|
|
196
|
-
this.data = [];
|
|
197
207
|
this.data = (0, base_converter_1.parseCsv)(prismaCsv);
|
|
198
208
|
}
|
|
199
209
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prisma-mapper.js","sourceRoot":"","sources":["../../src/prisma-mapper.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"prisma-mapper.js","sourceRoot":"","sources":["../../src/prisma-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 MappedTransform,\n parseCsv\n} from './base-converter';\nimport {\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS,\n DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nexport type PrismaControl = {\n Packages: string;\n Description: string;\n Distro: string;\n Type: string;\n Hostname: string;\n 'Compliance ID': string;\n 'Fix Status'?: string;\n 'CVE ID': string;\n Severity: string;\n Cause?: string;\n};\n\nconst SEVERITY_LOOKUP: Record<string, number> = {\n low: 0.3,\n moderate: 0.5,\n high: 0.7,\n important: 0.9,\n critical: 1\n};\n\nexport function nistTag(cveTag: string | undefined) {\n if (!cveTag) {\n return DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS;\n } else {\n return DEFAULT_UPDATE_REMEDIATION_NIST_TAGS;\n }\n}\n\nexport class PrismaControlMapper extends BaseConverter {\n mappings: MappedTransform<ExecJSON.Execution, ILookupPath> = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: 'Prisma Cloud Scan Report'\n },\n version: HeimdallToolsVersion,\n statistics: {\n duration: null\n },\n profiles: [\n {\n name: 'Palo Alto Prisma Cloud Tool',\n version: '',\n title: 'Prisma Cloud Scan Report',\n maintainer: null,\n summary: '',\n license: null,\n copyright: null,\n copyright_email: null,\n supports: [],\n attributes: [],\n depends: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'records',\n key: 'id',\n desc: {path: 'Description'},\n tags: {\n cci: {\n path: 'CVE ID',\n transformer: (cve: string) => getCCIsForNISTTags(nistTag(cve))\n },\n nist: {\n path: 'CVE ID',\n transformer: nistTag\n },\n cve: {path: 'CVE ID'},\n cvss: {path: 'cssv'}\n },\n descriptions: [],\n refs: [{url: {path: 'Vulnerability Link'}}],\n source_location: {path: 'Hostname'},\n id: {\n transformer: (item: PrismaControl) => {\n if (item['CVE ID']) {\n return `${item['Compliance ID']}-${item['CVE ID']}`;\n } else {\n return `${item['Compliance ID']}-${item.Distro}-${item.Severity}`;\n }\n }\n },\n title: {\n transformer: (item: PrismaControl) =>\n `${item.Hostname}-${item.Distro}-${item.Type}`\n },\n impact: {\n path: 'Severity',\n transformer: (severity: string) => {\n if (severity) {\n return SEVERITY_LOOKUP[severity];\n } else {\n return 0.5;\n }\n }\n },\n code: {\n transformer: (obj: PrismaControl) => JSON.stringify(obj, null, 2)\n },\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (obj: PrismaControl) => {\n let result = '';\n if (obj.Type === 'image') {\n if (obj['Packages'] !== '') {\n result += `Version check of package: ${obj['Packages']}`;\n }\n } else if (obj.Type === 'linux') {\n if (obj.Distro !== '') {\n result += `Configuration check for ${obj.Distro}`;\n } else {\n result += ``;\n }\n } else {\n result += `${obj.Type} check for ${obj.Hostname}`;\n }\n result += `\\n\\n${obj.Description}`;\n return result;\n }\n },\n message: {\n transformer: (obj: PrismaControl) => {\n let result = '';\n if (obj['Fix Status'] !== '' && obj.Cause !== '') {\n result += `Fix Status: ${obj['Fix Status']}\\n\\n${obj.Cause}`;\n } else if (obj['Fix Status'] !== '') {\n result += `Fix Status: ${obj['Fix Status']}`;\n } else if (obj.Cause !== '') {\n result += `Cause: ${obj.Cause}`;\n } else {\n result += 'Unknown';\n }\n return result;\n }\n },\n start_time: {path: 'Published'}\n }\n ]\n }\n ],\n sha256: ''\n }\n ]\n };\n\n constructor(prismaControls: PrismaControl[]) {\n super({records: prismaControls});\n }\n}\n\nexport class PrismaMapper {\n data: PrismaControl[] = [];\n\n toHdf(): ExecJSON.Execution[] {\n const executions: ExecJSON.Execution[] = [];\n const hostnameToControls: Record<string, PrismaControl[]> = {};\n this.data.forEach((record: PrismaControl) => {\n hostnameToControls[record['Hostname']] =\n hostnameToControls[record['Hostname']] || [];\n hostnameToControls[record['Hostname']].push(record);\n });\n Object.entries(hostnameToControls).forEach(([hostname, controls]) => {\n const converted = new PrismaControlMapper(controls).toHdf();\n _.set(converted, 'platform.target_id', hostname);\n executions.push(converted);\n });\n return executions;\n }\n\n constructor(prismaCsv: string) {\n this.data = parseCsv(prismaCsv) as PrismaControl[];\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sarif-mapper.d.ts","sourceRoot":"","sources":["../../src/sarif-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AA6C7E,qBAAa,WAAY,SAAQ,aAAa;IAC5C,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAmHC;gBACU,SAAS,EAAE,MAAM,EAAE,OAAO,UAAQ;CAI/C"}
|
package/lib/src/sarif-mapper.js
CHANGED
|
@@ -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.SarifMapper = void 0;
|
|
27
37
|
const inspecjs_1 = require("inspecjs");
|
|
@@ -65,113 +75,114 @@ function nistTag(text) {
|
|
|
65
75
|
return CWE_NIST_MAPPING.nistFilter(identifiers, global_1.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS);
|
|
66
76
|
}
|
|
67
77
|
class SarifMapper extends base_converter_1.BaseConverter {
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
transformer: (data) => (0, global_1.getCCIsForNISTTags)(nistTag(data))
|
|
96
|
-
},
|
|
97
|
-
nist: { path: MESSAGE_TEXT, transformer: nistTag },
|
|
98
|
-
cwe: {
|
|
99
|
-
path: MESSAGE_TEXT,
|
|
100
|
-
transformer: extractCwe
|
|
101
|
-
}
|
|
102
|
-
},
|
|
103
|
-
refs: [],
|
|
104
|
-
source_location: {
|
|
105
|
-
transformer: (control) => {
|
|
106
|
-
return _.omitBy({
|
|
107
|
-
ref: _.get(control, 'locations[0].physicalLocation.artifactLocation.uri'),
|
|
108
|
-
line: _.get(control, 'locations[0].physicalLocation.region.startLine')
|
|
109
|
-
}, (value) => value === '');
|
|
110
|
-
}
|
|
78
|
+
withRaw;
|
|
79
|
+
mappings = {
|
|
80
|
+
platform: {
|
|
81
|
+
name: 'Heimdall Tools',
|
|
82
|
+
release: package_json_1.version,
|
|
83
|
+
target_id: 'Static Analysis Results Interchange Format'
|
|
84
|
+
},
|
|
85
|
+
version: package_json_1.version,
|
|
86
|
+
statistics: {},
|
|
87
|
+
profiles: [
|
|
88
|
+
{
|
|
89
|
+
path: 'runs',
|
|
90
|
+
name: 'SARIF',
|
|
91
|
+
version: { path: '$.version' },
|
|
92
|
+
title: 'Static Analysis Results Interchange Format',
|
|
93
|
+
supports: [],
|
|
94
|
+
attributes: [],
|
|
95
|
+
groups: [],
|
|
96
|
+
status: 'loaded',
|
|
97
|
+
controls: [
|
|
98
|
+
{
|
|
99
|
+
path: 'results',
|
|
100
|
+
key: 'id',
|
|
101
|
+
tags: {
|
|
102
|
+
cci: {
|
|
103
|
+
path: 'vulnerabilityClassifications',
|
|
104
|
+
transformer: (data) => (0, global_1.getCCIsForNISTTags)(nistTag(data))
|
|
111
105
|
},
|
|
112
|
-
|
|
106
|
+
nist: { path: MESSAGE_TEXT, transformer: nistTag },
|
|
107
|
+
cwe: {
|
|
113
108
|
path: MESSAGE_TEXT,
|
|
114
|
-
transformer:
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
109
|
+
transformer: extractCwe
|
|
110
|
+
}
|
|
111
|
+
},
|
|
112
|
+
refs: [],
|
|
113
|
+
source_location: {
|
|
114
|
+
transformer: (control) => {
|
|
115
|
+
return _.omitBy({
|
|
116
|
+
ref: _.get(control, 'locations[0].physicalLocation.artifactLocation.uri'),
|
|
117
|
+
line: _.get(control, 'locations[0].physicalLocation.region.startLine')
|
|
118
|
+
}, (value) => value === '');
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
title: {
|
|
122
|
+
path: MESSAGE_TEXT,
|
|
123
|
+
transformer: (text) => {
|
|
124
|
+
if (typeof text === 'string') {
|
|
125
|
+
return text.split(': ')[0];
|
|
121
126
|
}
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
desc: {
|
|
125
|
-
path: MESSAGE_TEXT,
|
|
126
|
-
transformer: (text) => {
|
|
127
|
-
if (typeof text === 'string') {
|
|
128
|
-
return text.split(': ')[1];
|
|
129
|
-
}
|
|
130
|
-
else {
|
|
131
|
-
return '';
|
|
132
|
-
}
|
|
127
|
+
else {
|
|
128
|
+
return '';
|
|
133
129
|
}
|
|
134
|
-
}
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
{
|
|
141
|
-
|
|
142
|
-
code_desc: {
|
|
143
|
-
path: 'locations[0].physicalLocation',
|
|
144
|
-
transformer: formatCodeDesc
|
|
145
|
-
},
|
|
146
|
-
start_time: ''
|
|
130
|
+
}
|
|
131
|
+
},
|
|
132
|
+
id: { path: 'ruleId' },
|
|
133
|
+
desc: {
|
|
134
|
+
path: MESSAGE_TEXT,
|
|
135
|
+
transformer: (text) => {
|
|
136
|
+
if (typeof text === 'string') {
|
|
137
|
+
return text.split(': ')[1];
|
|
147
138
|
}
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
],
|
|
151
|
-
sha256: ''
|
|
152
|
-
}
|
|
153
|
-
],
|
|
154
|
-
passthrough: {
|
|
155
|
-
transformer: (data) => {
|
|
156
|
-
let runsData = _.get(data, 'runs');
|
|
157
|
-
if (Array.isArray(runsData)) {
|
|
158
|
-
runsData = runsData.map((run) => _.omit(run, ['results']));
|
|
159
|
-
}
|
|
160
|
-
return {
|
|
161
|
-
auxiliary_data: [
|
|
162
|
-
{
|
|
163
|
-
name: 'SARIF',
|
|
164
|
-
data: {
|
|
165
|
-
$schema: _.get(data, '$schema'),
|
|
166
|
-
runs: runsData
|
|
139
|
+
else {
|
|
140
|
+
return '';
|
|
167
141
|
}
|
|
168
142
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
143
|
+
},
|
|
144
|
+
impact: { path: 'level', transformer: impactMapping },
|
|
145
|
+
code: {
|
|
146
|
+
transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
|
|
147
|
+
},
|
|
148
|
+
results: [
|
|
149
|
+
{
|
|
150
|
+
status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
|
|
151
|
+
code_desc: {
|
|
152
|
+
path: 'locations[0].physicalLocation',
|
|
153
|
+
transformer: formatCodeDesc
|
|
154
|
+
},
|
|
155
|
+
start_time: ''
|
|
156
|
+
}
|
|
157
|
+
]
|
|
158
|
+
}
|
|
159
|
+
],
|
|
160
|
+
sha256: ''
|
|
161
|
+
}
|
|
162
|
+
],
|
|
163
|
+
passthrough: {
|
|
164
|
+
transformer: (data) => {
|
|
165
|
+
let runsData = _.get(data, 'runs');
|
|
166
|
+
if (Array.isArray(runsData)) {
|
|
167
|
+
runsData = runsData.map((run) => _.omit(run, ['results']));
|
|
172
168
|
}
|
|
169
|
+
return {
|
|
170
|
+
auxiliary_data: [
|
|
171
|
+
{
|
|
172
|
+
name: 'SARIF',
|
|
173
|
+
data: {
|
|
174
|
+
$schema: _.get(data, '$schema'),
|
|
175
|
+
runs: runsData
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
],
|
|
179
|
+
...(this.withRaw && { raw: data })
|
|
180
|
+
};
|
|
173
181
|
}
|
|
174
|
-
}
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
constructor(sarifJson, withRaw = false) {
|
|
185
|
+
super(JSON.parse(sarifJson));
|
|
175
186
|
this.withRaw = withRaw;
|
|
176
187
|
}
|
|
177
188
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sarif-mapper.js","sourceRoot":"","sources":["../../src/sarif-mapper.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"sarif-mapper.js","sourceRoot":"","sources":["../../src/sarif-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 {BaseConverter, ILookupPath, MappedTransform} from './base-converter';\nimport {CweNistMapping} from './mappings/CweNistMapping';\nimport {\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nconst IMPACT_MAPPING: Map<string, number> = new Map([\n ['error', 0.7],\n ['warning', 0.5],\n ['note', 0.3]\n]);\nconst MESSAGE_TEXT = 'message.text';\nconst CWE_NIST_MAPPING = new CweNistMapping();\n\nfunction extractCwe(text: string): string[] {\n let output = text.split('(').slice(-1)[0].slice(0, -2).split(', ');\n if (output.length === 1) {\n output = text.split('(').slice(-1)[0].slice(0, -2).split('!/');\n }\n return output;\n}\nfunction impactMapping(severity: unknown): number {\n if (typeof severity === 'string' || typeof severity === 'number') {\n return IMPACT_MAPPING.get(severity.toString().toLowerCase()) || 0.1;\n } else {\n return 0.1;\n }\n}\nfunction formatCodeDesc(input: unknown): string {\n const output = [];\n output.push(`URL : ${_.get(input, 'artifactLocation.uri')}`);\n output.push(`LINE : ${_.get(input, 'region.startLine')}`);\n output.push(`COLUMN : ${_.get(input, 'region.startColumn')}`);\n return output.join(' ');\n}\nfunction nistTag(text: string): string[] {\n let identifiers = extractCwe(text);\n identifiers = identifiers.map((element) => element.split('-')[1]);\n return CWE_NIST_MAPPING.nistFilter(\n identifiers,\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS\n );\n}\n\nexport class SarifMapper 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: 'Static Analysis Results Interchange Format'\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n path: 'runs',\n name: 'SARIF',\n version: {path: '$.version'},\n title: 'Static Analysis Results Interchange Format',\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'results',\n key: 'id',\n tags: {\n cci: {\n path: 'vulnerabilityClassifications',\n transformer: (data: string) => getCCIsForNISTTags(nistTag(data))\n },\n nist: {path: MESSAGE_TEXT, transformer: nistTag},\n cwe: {\n path: MESSAGE_TEXT,\n transformer: extractCwe\n }\n },\n refs: [],\n source_location: {\n transformer: (control: unknown) => {\n return _.omitBy(\n {\n ref: _.get(\n control,\n 'locations[0].physicalLocation.artifactLocation.uri'\n ),\n line: _.get(\n control,\n 'locations[0].physicalLocation.region.startLine'\n )\n },\n (value) => value === ''\n );\n }\n },\n title: {\n path: MESSAGE_TEXT,\n transformer: (text: unknown): string => {\n if (typeof text === 'string') {\n return text.split(': ')[0];\n } else {\n return '';\n }\n }\n },\n id: {path: 'ruleId'},\n desc: {\n path: MESSAGE_TEXT,\n transformer: (text: unknown): string => {\n if (typeof text === 'string') {\n return text.split(': ')[1];\n } else {\n return '';\n }\n }\n },\n impact: {path: 'level', transformer: impactMapping},\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 path: 'locations[0].physicalLocation',\n transformer: formatCodeDesc\n },\n\n start_time: ''\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, unknown>): Record<string, unknown> => {\n let runsData = _.get(data, 'runs');\n if (Array.isArray(runsData)) {\n runsData = runsData.map((run: Record<string, unknown>) =>\n _.omit(run, ['results'])\n );\n }\n return {\n auxiliary_data: [\n {\n name: 'SARIF',\n data: {\n $schema: _.get(data, '$schema'),\n runs: runsData\n }\n }\n ],\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(sarifJson: string, withRaw = false) {\n super(JSON.parse(sarifJson));\n this.withRaw = withRaw;\n }\n}\n"]}
|