@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
|
@@ -9,3 +9,4 @@ export declare function createAttestationMessage(attestation: Attestation, expir
|
|
|
9
9
|
export declare function convertAttestationToSegment(attestation: Attestation): ExecJSON.ControlResult;
|
|
10
10
|
export declare function addAttestationToHDF(hdf: ExecJSON.Execution, attestations: Attestation[]): ExecJSON.Execution;
|
|
11
11
|
export declare function parseXLSXAttestations(attestationXLSX: Uint8Array): Promise<Attestation[]>;
|
|
12
|
+
//# sourceMappingURL=attestations.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"attestations.d.ts","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAClC,OAAO,EACL,eAAe,EAEf,wBAAwB,EACzB,MAAM,gDAAgD,CAAC;AAExD,OAAO,MAAM,MAAM,QAAQ,CAAC;AAG5B,MAAM,MAAM,WAAW,GAAG,IAAI,CAAC,eAAe,EAAE,QAAQ,CAAC,GAAG;IAC1D,MAAM,EAAE,GAAG,wBAAwB,EAAE,CAAC;CACvC,CAAC;AAEF,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EACnB,SAAS,EAAE,MAAM,GAChB,MAAM,CAAC,MAAM,CAgEf;AAED,wBAAgB,wBAAwB,CACtC,WAAW,EAAE,WAAW,EACxB,OAAO,EAAE,OAAO,UAmBjB;AAED,wBAAgB,2BAA2B,CACzC,WAAW,EAAE,WAAW,GACvB,QAAQ,CAAC,aAAa,CA2BxB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,QAAQ,CAAC,SAAS,EACvB,YAAY,EAAE,WAAW,EAAE,GAC1B,QAAQ,CAAC,SAAS,CA0BpB;AAED,wBAAsB,qBAAqB,CACzC,eAAe,EAAE,UAAU,GAC1B,OAAO,CAAC,WAAW,EAAE,CAAC,CA2BxB"}
|
|
@@ -15,18 +15,32 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
|
|
|
15
15
|
}) : function(o, v) {
|
|
16
16
|
o["default"] = v;
|
|
17
17
|
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || function (
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
};
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
25
35
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
26
36
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
27
37
|
};
|
|
28
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
-
exports.
|
|
39
|
+
exports.advanceDate = advanceDate;
|
|
40
|
+
exports.createAttestationMessage = createAttestationMessage;
|
|
41
|
+
exports.convertAttestationToSegment = convertAttestationToSegment;
|
|
42
|
+
exports.addAttestationToHDF = addAttestationToHDF;
|
|
43
|
+
exports.parseXLSXAttestations = parseXLSXAttestations;
|
|
30
44
|
const XLSX = __importStar(require("@e965/xlsx"));
|
|
31
45
|
const inspecjs_1 = require("inspecjs");
|
|
32
46
|
const _ = __importStar(require("lodash"));
|
|
@@ -61,6 +75,8 @@ function advanceDate(date, frequency) {
|
|
|
61
75
|
date.add(1, 'day');
|
|
62
76
|
break;
|
|
63
77
|
default: {
|
|
78
|
+
// a number followed by d/w/m/y, with or without spaces in between
|
|
79
|
+
// 10 character limit on number of digits and characters to prevent security issues with regex
|
|
64
80
|
const re = /(\d{1,10}(?:.\d{0,10})?)(\s{0,10})([a-z])/;
|
|
65
81
|
const match = re.exec(frequency);
|
|
66
82
|
if (!match) {
|
|
@@ -70,6 +86,7 @@ function advanceDate(date, frequency) {
|
|
|
70
86
|
}
|
|
71
87
|
const number = match[1];
|
|
72
88
|
const unit = match[3];
|
|
89
|
+
// add inputted amount of time
|
|
73
90
|
switch (unit) {
|
|
74
91
|
case 'd':
|
|
75
92
|
date.add(number, 'days');
|
|
@@ -89,7 +106,6 @@ function advanceDate(date, frequency) {
|
|
|
89
106
|
}
|
|
90
107
|
return date;
|
|
91
108
|
}
|
|
92
|
-
exports.advanceDate = advanceDate;
|
|
93
109
|
function createAttestationMessage(attestation, expired) {
|
|
94
110
|
let message = '';
|
|
95
111
|
if (expired) {
|
|
@@ -107,7 +123,6 @@ function createAttestationMessage(attestation, expired) {
|
|
|
107
123
|
message += `Frequency: ${attestation.frequency}`;
|
|
108
124
|
return message;
|
|
109
125
|
}
|
|
110
|
-
exports.createAttestationMessage = createAttestationMessage;
|
|
111
126
|
function convertAttestationToSegment(attestation) {
|
|
112
127
|
const expirationDate = advanceDate((0, moment_1.default)(attestation.updated), attestation.frequency);
|
|
113
128
|
if (expirationDate.isBefore(new Date())) {
|
|
@@ -128,7 +143,6 @@ function convertAttestationToSegment(attestation) {
|
|
|
128
143
|
};
|
|
129
144
|
}
|
|
130
145
|
}
|
|
131
|
-
exports.convertAttestationToSegment = convertAttestationToSegment;
|
|
132
146
|
function addAttestationToHDF(hdf, attestations) {
|
|
133
147
|
for (const attestation of attestations) {
|
|
134
148
|
let found_control = false;
|
|
@@ -153,7 +167,6 @@ function addAttestationToHDF(hdf, attestations) {
|
|
|
153
167
|
}
|
|
154
168
|
return hdf;
|
|
155
169
|
}
|
|
156
|
-
exports.addAttestationToHDF = addAttestationToHDF;
|
|
157
170
|
async function parseXLSXAttestations(attestationXLSX) {
|
|
158
171
|
return new Promise((resolve) => {
|
|
159
172
|
const workbook = XLSX.read(attestationXLSX, {
|
|
@@ -181,15 +194,17 @@ async function parseXLSXAttestations(attestationXLSX) {
|
|
|
181
194
|
resolve(attestations);
|
|
182
195
|
});
|
|
183
196
|
}
|
|
184
|
-
exports.parseXLSXAttestations = parseXLSXAttestations;
|
|
185
197
|
function attestationCanBeAdded(attestation, control) {
|
|
186
198
|
if (attestation.control_id.toLowerCase() !== control.id.toLowerCase()) {
|
|
199
|
+
// An attestation cannot be added if it's not the same control.
|
|
187
200
|
return false;
|
|
188
201
|
}
|
|
189
202
|
if (control.results.length === 0) {
|
|
203
|
+
// There are no results for this control. It may be part of an overlay file.
|
|
190
204
|
return false;
|
|
191
205
|
}
|
|
192
206
|
if (control.results[0].status === 'skipped') {
|
|
207
|
+
// The attestation can be added if the control results show 'skipped', meaning it needs Manual Review.
|
|
193
208
|
return true;
|
|
194
209
|
}
|
|
195
210
|
console.error('Invalid control selected: The control must have "skipped" status to be attested');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"attestations.js","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"attestations.js","sourceRoot":"","sources":["../../../src/utils/attestations.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,kCAmEC;AAED,4DAqBC;AAED,kEA6BC;AAED,kDA6BC;AAED,sDA6BC;AAtMD,iDAAmC;AACnC,uCAAkC;AAMlC,0CAA4B;AAC5B,oDAA4B;AAO5B,SAAgB,WAAW,CACzB,IAAmB,EACnB,SAAiB;IAEjB,QAAQ,SAAS,EAAE,CAAC;QAClB,KAAK,UAAU;YACb,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,cAAc;YACjB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,WAAW;YACd,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAC;YACtB,MAAM;QACR,KAAK,SAAS;YACZ,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,aAAa;YAChB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,aAAa;YAChB,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,YAAY;YACf,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,OAAO;YACV,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;YACnB,MAAM;QACR,OAAO,CAAC,CAAC,CAAC;YACR,kEAAkE;YAClE,8FAA8F;YAC9F,MAAM,EAAE,GAAG,2CAA2C,CAAC;YACvD,MAAM,KAAK,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;YAEjC,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CACb,uBAAuB;oBACrB,SAAS;oBACT,+GAA+G,CAClH,CAAC;YACJ,CAAC;YAED,MAAM,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACxB,MAAM,IAAI,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;YACtB,8BAA8B;YAC9B,QAAQ,IAAI,EAAE,CAAC;gBACb,KAAK,GAAG;oBACN,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;oBACzB,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC1B,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;oBAC3B,MAAM;gBACR,KAAK,GAAG;oBACN,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;oBAC1B,MAAM;YACV,CAAC;YACD,MAAM;QACR,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,wBAAwB,CACtC,WAAwB,EACxB,OAAgB;IAEhB,IAAI,OAAO,GAAG,EAAE,CAAC;IAEjB,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,IAAI,wBAAwB,CAAC;QACpC,OAAO,IAAI,mBAAmB,WAAW,CAAC,MAAM,IAAI,CAAC;QACrD,OAAO,IAAI,wBAAwB,WAAW,CAAC,WAAW,MAAM,CAAC;IACnE,CAAC;SAAM,CAAC;QACN,OAAO,IAAI,gBAAgB,CAAC;QAC5B,OAAO,IAAI,WAAW,WAAW,CAAC,MAAM,IAAI,CAAC;QAC7C,OAAO,IAAI,gBAAgB,WAAW,CAAC,WAAW,MAAM,CAAC;IAC3D,CAAC;IAED,OAAO,IAAI,YAAY,WAAW,CAAC,OAAO,IAAI,CAAC;IAC/C,OAAO,IAAI,eAAe,WAAW,CAAC,UAAU,IAAI,CAAC;IACrD,OAAO,IAAI,cAAc,WAAW,CAAC,SAAS,EAAE,CAAC;IAEjD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAgB,2BAA2B,CACzC,WAAwB;IAExB,MAAM,cAAc,GAAG,WAAW,CAChC,IAAA,gBAAM,EAAC,WAAW,CAAC,OAAO,CAAC,EAC3B,WAAW,CAAC,SAAS,CACtB,CAAC;IAEF,IAAI,cAAc,CAAC,QAAQ,CAAC,IAAI,IAAI,EAAE,CAAC,EAAE,CAAC;QACxC,OAAO,CAAC,GAAG,CACT,iCACE,WAAW,CAAC,UACd,gBAAgB,cAAc,CAAC,QAAQ,EAAE,GAAG,CAC7C,CAAC;QACF,OAAO;YACL,SAAS,EACP,qEAAqE;YACvE,MAAM,EAAE,mBAAQ,CAAC,mBAAmB,CAAC,OAAO;YAC5C,OAAO,EAAE,wBAAwB,CAAC,WAAW,EAAE,IAAI,CAAC;YACpD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;SAAM,CAAC;QACN,OAAO;YACL,SAAS,EAAE,uDAAuD;YAClE,MAAM,EAAE,WAAW,CAAC,MAA6B;YACjD,OAAO,EAAE,wBAAwB,CAAC,WAAW,EAAE,KAAK,CAAC;YACrD,UAAU,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACrC,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAgB,mBAAmB,CACjC,GAAuB,EACvB,YAA2B;IAE3B,KAAK,MAAM,WAAW,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,aAAa,GAAG,KAAK,CAAC;QAC1B,KAAK,MAAM,OAAO,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACnC,KAAK,MAAM,OAAO,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;gBACvC,IAAI,qBAAqB,CAAC,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC;oBAChD,aAAa,GAAG,IAAI,CAAC;oBACrB,IAAI,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;wBACtD,OAAO,CAAC,gBAAgB;4BACtB,WAAyC,CAAC;wBAC5C,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,2BAA2B,CAAC,WAAW,CAAC,CAAC,CAAC;oBACjE,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,KAAK,CACX,0CAA0C,OAAO,CAAC,EAAE,KAAK,WAAW,CAAC,MAAM,0FAA0F,CACtK,CAAC;oBACJ,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QACD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,CAAC,KAAK,CACX,2CAA2C,WAAW,CAAC,UAAU,yBAAyB,CAC3F,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC;AAEM,KAAK,UAAU,qBAAqB,CACzC,eAA2B;IAE3B,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE;YAC1C,SAAS,EAAE,IAAI;SAChB,CAAC,CAAC;QACH,MAAM,KAAK,GAAG,QAAQ,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC9C,MAAM,IAAI,GACR,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAClC,MAAM,YAAY,GAAkB,IAAI,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE;YAC3D,MAAM,gBAAgB,GAAG,CAAC,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE;gBACxD,OAAO,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;YAC7C,CAAC,CAAC,CAAC;YACH,OAAO;gBACL,UAAU,EAAE,YAAY,CAAC,gBAAgB,EAAE;oBACzC,YAAY;oBACZ,IAAI;oBACJ,SAAS;iBACV,CAAC;gBACF,WAAW,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;gBACvE,SAAS,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,WAAW,CAAC,CAAC;gBACxD,MAAM,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAC;gBAClD,OAAO,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;gBAClE,UAAU,EAAE,YAAY,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,CAAC;aAC5C,CAAC;QACnB,CAAC,CAAC,CAAC;QACH,OAAO,CAAC,YAAY,CAAC,CAAC;IACxB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAC5B,WAAwB,EACxB,OAAyB;IAEzB,IAAI,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC;QACtE,+DAA+D;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,4EAA4E;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,KAAK,SAAS,EAAE,CAAC;QAC5C,sGAAsG;QACtG,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAK,CACX,iFAAiF,CAClF,CAAC;IACF,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,YAAY,CACnB,MAAqC,EACrC,KAAe;IAEf,MAAM,KAAK,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC;IAE5D,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CACb,8CAA8C,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACjE,CAAC;IACJ,CAAC;IACD,MAAM,YAAY,GAAG,CAAC,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IACjD,IAAI,CAAC,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;QAC7B,OAAO,YAAY,CAAC;IACtB,CAAC;IACD,OAAO,GAAG,YAAY,CAAC,WAAW,EAAE,IAAI,MAAM,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AACpJ,CAAC;AAED,SAAS,OAAO,CACd,IAA6B,EAC7B,IAAuB;IAEvB,IAAI,SAAS,CAAC;IACd,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,SAAS,GAAG,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,SAAS,GAAG,IAAI,CAAC;IACnB,CAAC;IAED,OAAO,CAAC,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAClD,CAAC","sourcesContent":["import * as XLSX from '@e965/xlsx';\nimport {ExecJSON} from 'inspecjs';\nimport {\n AttestationData,\n ControlResultStatus,\n ControlAttestationStatus\n} from 'inspecjs/src/generated_parsers/v_1_0/exec-json';\nimport * as _ from 'lodash';\nimport moment from 'moment';\n\n// Convert from using enum type to enum values\nexport type Attestation = Omit<AttestationData, 'status'> & {\n status: `${ControlAttestationStatus}`;\n};\n\nexport function advanceDate(\n date: moment.Moment,\n frequency: string\n): moment.Moment {\n switch (frequency) {\n case 'annually':\n date.add(1, 'year');\n break;\n case 'semiannually':\n date.add(6, 'months');\n break;\n case 'quarterly':\n date.add(3, 'months');\n break;\n case 'monthly':\n date.add(1, 'month');\n break;\n case 'every2weeks':\n date.add(2, 'weeks');\n break;\n case 'fortnightly':\n date.add(2, 'weeks');\n break;\n case 'weekly':\n date.add(1, 'week');\n break;\n case 'every3days':\n date.add(3, 'day');\n break;\n case 'daily':\n date.add(1, 'day');\n break;\n default: {\n // a number followed by d/w/m/y, with or without spaces in between\n // 10 character limit on number of digits and characters to prevent security issues with regex\n const re = /(\\d{1,10}(?:.\\d{0,10})?)(\\s{0,10})([a-z])/;\n const match = re.exec(frequency);\n\n if (!match) {\n throw new Error(\n 'Unknown date format: ' +\n frequency +\n '. Please use a number followed by d/w/m/y to indicate days, weeks, months, or years, e.g. 1d/2w/3m/1y/custom.'\n );\n }\n\n const number = match[1];\n const unit = match[3];\n // add inputted amount of time\n switch (unit) {\n case 'd':\n date.add(number, 'days');\n break;\n case 'w':\n date.add(number, 'weeks');\n break;\n case 'm':\n date.add(number, 'months');\n break;\n case 'y':\n date.add(number, 'years');\n break;\n }\n break;\n }\n }\n return date;\n}\n\nexport function createAttestationMessage(\n attestation: Attestation,\n expired: boolean\n) {\n let message = '';\n\n if (expired) {\n message += 'Expired Attestation:\\n';\n message += `Expired Status: ${attestation.status}\\n`;\n message += `Expired Explanation: ${attestation.explanation}\\n\\n`;\n } else {\n message += 'Attestation:\\n';\n message += `Status: ${attestation.status}\\n`;\n message += `Explanation: ${attestation.explanation}\\n\\n`;\n }\n\n message += `Updated: ${attestation.updated}\\n`;\n message += `Updated By: ${attestation.updated_by}\\n`;\n message += `Frequency: ${attestation.frequency}`;\n\n return message;\n}\n\nexport function convertAttestationToSegment(\n attestation: Attestation\n): ExecJSON.ControlResult {\n const expirationDate = advanceDate(\n moment(attestation.updated),\n attestation.frequency\n );\n\n if (expirationDate.isBefore(new Date())) {\n console.log(\n `Warning: Attestation Expired: ${\n attestation.control_id\n } (Expired at ${expirationDate.toString()})`\n );\n return {\n code_desc:\n 'Manual verification status provided through attestation has expired',\n status: ExecJSON.ControlResultStatus.Skipped,\n message: createAttestationMessage(attestation, true),\n start_time: new Date().toISOString()\n };\n } else {\n return {\n code_desc: 'Manually verified status provided through attestation',\n status: attestation.status as ControlResultStatus,\n message: createAttestationMessage(attestation, false),\n start_time: new Date().toISOString()\n };\n }\n}\n\nexport function addAttestationToHDF(\n hdf: ExecJSON.Execution,\n attestations: Attestation[]\n): ExecJSON.Execution {\n for (const attestation of attestations) {\n let found_control = false;\n for (const profile of hdf.profiles) {\n for (const control of profile.controls) {\n if (attestationCanBeAdded(attestation, control)) {\n found_control = true;\n if (['passed', 'failed'].includes(attestation.status)) {\n control.attestation_data =\n attestation as unknown as AttestationData;\n control.results.push(convertAttestationToSegment(attestation));\n } else {\n console.error(\n `Invalid attestation status for Control ${control.id}: ${attestation.status} - Status must be passed or failed. To make this control 'not applicable', use a waiver.`\n );\n }\n }\n }\n }\n if (!found_control) {\n console.error(\n `Attestation cannot be added for control ${attestation.control_id}. Skipping attestation.`\n );\n }\n }\n return hdf;\n}\n\nexport async function parseXLSXAttestations(\n attestationXLSX: Uint8Array\n): Promise<Attestation[]> {\n return new Promise((resolve) => {\n const workbook = XLSX.read(attestationXLSX, {\n cellDates: true\n });\n const sheet = workbook.Sheets['attestations'];\n const data: Record<string, Date | string>[] =\n XLSX.utils.sheet_to_json(sheet);\n const attestations: Attestation[] = data.map((attestation) => {\n const lowerAttestation = _.mapKeys(attestation, (_v, k) => {\n return k.toLowerCase().replace(/\\s/g, '_');\n });\n return {\n control_id: getFirstPath(lowerAttestation, [\n 'control_id',\n 'id',\n 'control'\n ]),\n explanation: getFirstPath(lowerAttestation, ['explanation', 'explain']),\n frequency: getFirstPath(lowerAttestation, ['frequency']),\n status: getFirstPath(lowerAttestation, ['status']),\n updated: getFirstPath(lowerAttestation, ['updated', 'updated_at']),\n updated_by: getFirstPath(lowerAttestation, ['updated_by'])\n } as Attestation;\n });\n resolve(attestations);\n });\n}\n\nfunction attestationCanBeAdded(\n attestation: Attestation,\n control: ExecJSON.Control\n) {\n if (attestation.control_id.toLowerCase() !== control.id.toLowerCase()) {\n // An attestation cannot be added if it's not the same control.\n return false;\n }\n\n if (control.results.length === 0) {\n // There are no results for this control. It may be part of an overlay file.\n return false;\n }\n\n if (control.results[0].status === 'skipped') {\n // The attestation can be added if the control results show 'skipped', meaning it needs Manual Review.\n return true;\n }\n\n console.error(\n 'Invalid control selected: The control must have \"skipped\" status to be attested'\n );\n return false;\n}\n\nfunction getFirstPath(\n object: Record<string, string | Date>,\n paths: string[]\n): string {\n const index = _.findIndex(paths, (p) => hasPath(object, p));\n\n if (index === -1) {\n throw new Error(\n `Attestation is missing one of these paths: ${paths.join(', ')}`\n );\n }\n const stringOrDate = _.get(object, paths[index]);\n if (_.isString(stringOrDate)) {\n return stringOrDate;\n }\n return `${stringOrDate.getFullYear()}-${String(stringOrDate.getMonth() + 1).padStart(2, '0')}-${String(stringOrDate.getDate()).padStart(2, '0')}`;\n}\n\nfunction hasPath(\n file: Record<string, unknown>,\n path: string | string[]\n): boolean {\n let pathArray;\n if (typeof path === 'string') {\n pathArray = [path];\n } else {\n pathArray = path;\n }\n\n return _.some(pathArray, (p) => _.has(file, p));\n}\n"]}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
1
|
export declare const MAX_DECIMAL_PRECISION = 2;
|
|
2
2
|
export declare function formatCompliance(rawCompliance: number, showAsPercentage?: boolean, maxDisplayPrecision?: number): string;
|
|
3
3
|
export declare function translateCompliance(rawCompliance: string): string;
|
|
4
|
+
//# sourceMappingURL=compliance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"compliance.d.ts","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,qBAAqB,IAAI,CAAC;AAIvC,wBAAgB,gBAAgB,CAC9B,aAAa,EAAE,MAAM,EACrB,gBAAgB,UAAO,EACvB,mBAAmB,SAAwB,GAC1C,MAAM,CAYR;AAKD,wBAAgB,mBAAmB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAUjE"}
|
|
@@ -1,16 +1,25 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
/* Provides unified compliance formatting function for compliance summaries used across both Results.vue and ExportHTMLModal.vue */
|
|
2
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
+
exports.MAX_DECIMAL_PRECISION = void 0;
|
|
5
|
+
exports.formatCompliance = formatCompliance;
|
|
6
|
+
exports.translateCompliance = translateCompliance;
|
|
4
7
|
exports.MAX_DECIMAL_PRECISION = 2;
|
|
8
|
+
// Format all final compliance level results to (by default) hundredths place percentage of compliance level
|
|
9
|
+
// Returns string typed compliance level
|
|
5
10
|
function formatCompliance(rawCompliance, showAsPercentage = true, maxDisplayPrecision = exports.MAX_DECIMAL_PRECISION) {
|
|
6
11
|
let truncatedCompliance = Math.trunc(Math.pow(10, exports.MAX_DECIMAL_PRECISION) * rawCompliance) /
|
|
7
12
|
Math.pow(10, exports.MAX_DECIMAL_PRECISION);
|
|
13
|
+
// Check if calculated compliance is valid
|
|
8
14
|
if (truncatedCompliance < 0) {
|
|
9
15
|
truncatedCompliance = 0;
|
|
10
16
|
}
|
|
17
|
+
// Return as string representation of compliance level percentage
|
|
11
18
|
return `${truncatedCompliance.toFixed(maxDisplayPrecision)}${showAsPercentage ? '%' : ''}`;
|
|
12
19
|
}
|
|
13
|
-
|
|
20
|
+
// Takes formatted compliance level and determines human language equivalent of compliance
|
|
21
|
+
// >=90 is high compliance, >= 60 is medium compliance, <60 is low compliance
|
|
22
|
+
// Mainly for HTML export
|
|
14
23
|
function translateCompliance(rawCompliance) {
|
|
15
24
|
const compliance = Number.parseFloat(rawCompliance.slice(0, -1));
|
|
16
25
|
if (compliance >= 90) {
|
|
@@ -23,5 +32,4 @@ function translateCompliance(rawCompliance) {
|
|
|
23
32
|
return 'low';
|
|
24
33
|
}
|
|
25
34
|
}
|
|
26
|
-
exports.translateCompliance = translateCompliance;
|
|
27
35
|
//# sourceMappingURL=compliance.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"compliance.js","sourceRoot":"","sources":["../../../src/utils/compliance.ts"],"names":[],"mappings":";AAAA,oIAAoI;;;AAMpI,4CAgBC;AAKD,kDAUC;AAnCY,QAAA,qBAAqB,GAAG,CAAC,CAAC;AAEvC,4GAA4G;AAC5G,wCAAwC;AACxC,SAAgB,gBAAgB,CAC9B,aAAqB,EACrB,gBAAgB,GAAG,IAAI,EACvB,mBAAmB,GAAG,6BAAqB;IAE3C,IAAI,mBAAmB,GACrB,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,GAAG,aAAa,CAAC;QAC/D,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,6BAAqB,CAAC,CAAC;IAEtC,0CAA0C;IAC1C,IAAI,mBAAmB,GAAG,CAAC,EAAE,CAAC;QAC5B,mBAAmB,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,iEAAiE;IACjE,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,mBAAmB,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;AAC7F,CAAC;AAED,0FAA0F;AAC1F,6EAA6E;AAC7E,yBAAyB;AACzB,SAAgB,mBAAmB,CAAC,aAAqB;IACvD,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IAEjE,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QACrB,OAAO,MAAM,CAAC;IAChB,CAAC;SAAM,IAAI,UAAU,IAAI,EAAE,EAAE,CAAC;QAC5B,OAAO,QAAQ,CAAC;IAClB,CAAC;SAAM,CAAC;QACN,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC","sourcesContent":["/* Provides unified compliance formatting function for compliance summaries used across both Results.vue and ExportHTMLModal.vue */\n\nexport const MAX_DECIMAL_PRECISION = 2;\n\n// Format all final compliance level results to (by default) hundredths place percentage of compliance level\n// Returns string typed compliance level\nexport function formatCompliance(\n rawCompliance: number,\n showAsPercentage = true,\n maxDisplayPrecision = MAX_DECIMAL_PRECISION\n): string {\n let truncatedCompliance =\n Math.trunc(Math.pow(10, MAX_DECIMAL_PRECISION) * rawCompliance) /\n Math.pow(10, MAX_DECIMAL_PRECISION);\n\n // Check if calculated compliance is valid\n if (truncatedCompliance < 0) {\n truncatedCompliance = 0;\n }\n\n // Return as string representation of compliance level percentage\n return `${truncatedCompliance.toFixed(maxDisplayPrecision)}${showAsPercentage ? '%' : ''}`;\n}\n\n// Takes formatted compliance level and determines human language equivalent of compliance\n// >=90 is high compliance, >= 60 is medium compliance, <60 is low compliance\n// Mainly for HTML export\nexport function translateCompliance(rawCompliance: string): string {\n const compliance = Number.parseFloat(rawCompliance.slice(0, -1));\n\n if (compliance >= 90) {\n return 'high';\n } else if (compliance >= 60) {\n return 'medium';\n } else {\n return 'low';\n }\n}\n"]}
|
|
@@ -2,6 +2,7 @@ export declare enum INPUT_TYPES {
|
|
|
2
2
|
ASFF = "asff",
|
|
3
3
|
BURP = "burp",
|
|
4
4
|
CHECKLIST = "checklist",
|
|
5
|
+
CHECKOV = "checkov",
|
|
5
6
|
CONVEYOR = "conveyor",
|
|
6
7
|
DEPENDENCY_TRACK = "dependencyTrack",
|
|
7
8
|
FORTIFY = "fortify",
|
|
@@ -31,3 +32,4 @@ export declare function fingerprint(guessOptions: {
|
|
|
31
32
|
data: string;
|
|
32
33
|
filename: string;
|
|
33
34
|
}): INPUT_TYPES;
|
|
35
|
+
//# sourceMappingURL=fingerprinting.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fingerprinting.d.ts","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"AAEA,oBAAY,WAAW;IACrB,IAAI,SAAS;IACb,IAAI,SAAS;IACb,SAAS,cAAc;IACvB,OAAO,YAAY;IACnB,QAAQ,aAAa;IACrB,gBAAgB,oBAAoB;IACpC,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,KAAK,UAAU;IACf,cAAc,sBAAsB;IACpC,KAAK,UAAU;IACf,KAAK,UAAU;IACf,cAAc,mBAAmB;IACjC,IAAI,SAAS;IACb,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,GAAG,QAAQ;IACX,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,UAAU,eAAe;IACzB,UAAU,cAAc;IACxB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,SAAS,KAAK;CACf;AA4ED,wBAAgB,WAAW,CAAC,YAAY,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;CAClB,GAAG,WAAW,CAmFd"}
|
|
@@ -15,21 +15,33 @@ 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.
|
|
36
|
+
exports.INPUT_TYPES = void 0;
|
|
37
|
+
exports.fingerprint = fingerprint;
|
|
27
38
|
const _ = __importStar(require("lodash"));
|
|
28
39
|
var INPUT_TYPES;
|
|
29
40
|
(function (INPUT_TYPES) {
|
|
30
41
|
INPUT_TYPES["ASFF"] = "asff";
|
|
31
42
|
INPUT_TYPES["BURP"] = "burp";
|
|
32
43
|
INPUT_TYPES["CHECKLIST"] = "checklist";
|
|
44
|
+
INPUT_TYPES["CHECKOV"] = "checkov";
|
|
33
45
|
INPUT_TYPES["CONVEYOR"] = "conveyor";
|
|
34
46
|
INPUT_TYPES["DEPENDENCY_TRACK"] = "dependencyTrack";
|
|
35
47
|
INPUT_TYPES["FORTIFY"] = "fortify";
|
|
@@ -54,9 +66,13 @@ var INPUT_TYPES;
|
|
|
54
66
|
INPUT_TYPES["PRISMA"] = "prisma";
|
|
55
67
|
INPUT_TYPES["VERACODE"] = "veracode";
|
|
56
68
|
INPUT_TYPES["NOT_FOUND"] = "";
|
|
57
|
-
})(INPUT_TYPES
|
|
69
|
+
})(INPUT_TYPES || (exports.INPUT_TYPES = INPUT_TYPES = {}));
|
|
70
|
+
// Fields to look for inside of JSON structures to determine type before passing to hdf-converters
|
|
58
71
|
const fileTypeFingerprints = {
|
|
59
72
|
[INPUT_TYPES.ASFF]: ['Findings', 'AwsAccountId', 'ProductArn'],
|
|
73
|
+
[INPUT_TYPES.CHECKOV]: ["check_type", "results", "results.passed_checks",
|
|
74
|
+
"results.failed_checks", "results.skipped_checks", "results.parsing_errors",
|
|
75
|
+
"summary", "url"],
|
|
60
76
|
[INPUT_TYPES.CONVEYOR]: ['api_error_message', 'api_response'],
|
|
61
77
|
[INPUT_TYPES.CYCLONEDX_SBOM]: ['bomFormat', 'metadata', 'specVersion'],
|
|
62
78
|
[INPUT_TYPES.DEPENDENCY_TRACK]: ['version', 'meta', 'project', 'findings'],
|
|
@@ -127,6 +143,7 @@ function fingerprint(guessOptions) {
|
|
|
127
143
|
try {
|
|
128
144
|
const parsed = JSON.parse(guessOptions.data);
|
|
129
145
|
const object = Array.isArray(parsed) ? parsed[0] : parsed;
|
|
146
|
+
// Find the fingerprints that have the most matches
|
|
130
147
|
const fingerprinted = Object.entries(fileTypeFingerprints).reduce((a, b) => {
|
|
131
148
|
return a[1].filter((value) => _.get(object, value)).length >
|
|
132
149
|
b[1].filter((value) => _.get(object, value)).length
|
|
@@ -143,10 +160,11 @@ function fingerprint(guessOptions) {
|
|
|
143
160
|
}
|
|
144
161
|
catch {
|
|
145
162
|
const splitLines = guessOptions.data.trim().split('\n');
|
|
163
|
+
// If we don't have valid json, look for known strings inside the file text
|
|
146
164
|
if (guessOptions.filename.toLowerCase().endsWith('.nessus')) {
|
|
147
165
|
return INPUT_TYPES.NESSUS;
|
|
148
166
|
}
|
|
149
|
-
else if (guessOptions.data.match(/xmlns.*http.*\/xccdf/) ||
|
|
167
|
+
else if (guessOptions.data.match(/xmlns.*http.*\/xccdf/) || // Keys matching (hopefully) all xccdf formats
|
|
150
168
|
guessOptions.filename.toLowerCase().indexOf('xccdf') !== -1) {
|
|
151
169
|
return INPUT_TYPES.XCCDF;
|
|
152
170
|
}
|
|
@@ -199,5 +217,4 @@ function fingerprint(guessOptions) {
|
|
|
199
217
|
}
|
|
200
218
|
return INPUT_TYPES.NOT_FOUND;
|
|
201
219
|
}
|
|
202
|
-
exports.fingerprint = fingerprint;
|
|
203
220
|
//# sourceMappingURL=fingerprinting.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"fingerprinting.js","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"fingerprinting.js","sourceRoot":"","sources":["../../../src/utils/fingerprinting.ts"],"names":[],"mappings":"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","sourcesContent":["import * as _ from 'lodash';\n\nexport enum INPUT_TYPES {\n ASFF = 'asff',\n BURP = 'burp',\n CHECKLIST = 'checklist',\n CHECKOV = 'checkov',\n CONVEYOR = 'conveyor',\n DEPENDENCY_TRACK = 'dependencyTrack',\n FORTIFY = 'fortify',\n GOSEC = 'gosec',\n GRYPE = 'grype',\n IONCHANNEL = 'ionchannel',\n JFROG = 'jfrog',\n MSFT_SEC_SCORE = 'msft_secure_score',\n NIKTO = 'nikto',\n SARIF = 'sarif',\n CYCLONEDX_SBOM = 'cyclonedx_sbom',\n SNYK = 'snyk',\n TRUFFLEHOG = 'trufflehog',\n TWISTLOCK = 'twistlock',\n ZAP = 'zap',\n NESSUS = 'nessus',\n NEUVECTOR = 'neuvector',\n XCCDF = 'xccdf',\n NETSPARKER = 'netsparker',\n SCOUTSUITE = 'scoutsuite',\n DB_PROTECT = 'dbProtect',\n PRISMA = 'prisma',\n VERACODE = 'veracode',\n NOT_FOUND = ''\n}\n\n// Fields to look for inside of JSON structures to determine type before passing to hdf-converters\nconst fileTypeFingerprints: Record<INPUT_TYPES, string[]> = {\n [INPUT_TYPES.ASFF]: ['Findings', 'AwsAccountId', 'ProductArn'],\n [INPUT_TYPES.CHECKOV]: [\"check_type\", \"results\", \"results.passed_checks\",\n \"results.failed_checks\", \"results.skipped_checks\", \"results.parsing_errors\",\n \"summary\", \"url\"],\n [INPUT_TYPES.CONVEYOR]: ['api_error_message', 'api_response'],\n [INPUT_TYPES.CYCLONEDX_SBOM]: ['bomFormat', 'metadata', 'specVersion'],\n [INPUT_TYPES.DEPENDENCY_TRACK]: ['version', 'meta', 'project', 'findings'],\n [INPUT_TYPES.FORTIFY]: ['FVDL', 'FVDL.EngineData.EngineVersion', 'FVDL.UUID'],\n [INPUT_TYPES.GOSEC]: ['Golang errors', 'Issues'],\n [INPUT_TYPES.GRYPE]: [\n 'matches.vulnerability',\n 'matches.relatedVulnerabilities',\n 'matches.matchDetails',\n 'matches.artifact',\n 'distro',\n 'descriptor'\n ],\n [INPUT_TYPES.IONCHANNEL]: [\n 'analysis_id',\n 'team_id',\n 'source',\n 'trigger_hash'\n ],\n [INPUT_TYPES.JFROG]: ['total_count', 'data'],\n [INPUT_TYPES.MSFT_SEC_SCORE]: ['secureScore', 'profiles'],\n [INPUT_TYPES.NEUVECTOR]: [\n 'report.base_os',\n 'report.cvedb_create_time',\n 'report.cvedb_version',\n 'report.modules',\n 'report.repository',\n 'report.signature_data',\n 'report.vulnerabilities'\n ],\n [INPUT_TYPES.NIKTO]: ['banner', 'host', 'ip', 'port', 'vulnerabilities'],\n [INPUT_TYPES.SARIF]: ['$schema', 'version', 'runs'],\n [INPUT_TYPES.SNYK]: [\n 'projectName',\n 'policy',\n 'summary',\n 'vulnerabilities',\n 'vulnerabilities[0].identifiers'\n ],\n [INPUT_TYPES.TRUFFLEHOG]: [\n 'SourceName',\n 'DetectorType',\n 'DetectorName',\n 'DecoderName'\n ],\n [INPUT_TYPES.TWISTLOCK]: [\n 'results[0].complianceDistribution',\n 'results[0].vulnerabilityDistribution',\n 'results[0].collections',\n 'results[0].digest',\n 'packages',\n 'complianceDistribution',\n 'vulnerabilityDistribution'\n ],\n [INPUT_TYPES.ZAP]: ['@generated', '@version', 'site'],\n\n [INPUT_TYPES.BURP]: [],\n [INPUT_TYPES.CHECKLIST]: [],\n [INPUT_TYPES.DB_PROTECT]: [],\n [INPUT_TYPES.NESSUS]: [],\n [INPUT_TYPES.NETSPARKER]: [],\n [INPUT_TYPES.PRISMA]: [],\n [INPUT_TYPES.SCOUTSUITE]: [],\n [INPUT_TYPES.VERACODE]: [],\n [INPUT_TYPES.XCCDF]: [],\n [INPUT_TYPES.NOT_FOUND]: []\n};\n\nexport function fingerprint(guessOptions: {\n data: string;\n filename: string;\n}): INPUT_TYPES {\n try {\n const parsed = JSON.parse(guessOptions.data);\n const object = Array.isArray(parsed) ? parsed[0] : parsed;\n // Find the fingerprints that have the most matches\n const fingerprinted = Object.entries(fileTypeFingerprints).reduce(\n (a, b) => {\n return a[1].filter((value) => _.get(object, value)).length >\n b[1].filter((value) => _.get(object, value)).length\n ? {...a, count: a[1].filter((value) => _.get(object, value)).length}\n : {\n ...b,\n count: b[1].filter((value) => _.get(object, value)).length\n };\n }\n ) as unknown as INPUT_TYPES[] & {count: number};\n const result = fingerprinted[0];\n if (fingerprinted.count !== 0) {\n return result;\n }\n } catch {\n const splitLines = guessOptions.data.trim().split('\\n');\n // If we don't have valid json, look for known strings inside the file text\n if (guessOptions.filename.toLowerCase().endsWith('.nessus')) {\n return INPUT_TYPES.NESSUS;\n } else if (\n guessOptions.data.match(/xmlns.*http.*\\/xccdf/) || // Keys matching (hopefully) all xccdf formats\n guessOptions.filename.toLowerCase().indexOf('xccdf') !== -1\n ) {\n return INPUT_TYPES.XCCDF;\n } else if (\n guessOptions.data.match(/<netsparker-.*generated.*>/) ||\n guessOptions.data.match(/<invicti-.*generated.*>/)\n ) {\n return INPUT_TYPES.NETSPARKER;\n } else if (guessOptions.filename.toLowerCase().endsWith('.fvdl')) {\n return INPUT_TYPES.FORTIFY;\n } else if (\n guessOptions.data.indexOf('\"AwsAccountId\"') !== -1 &&\n guessOptions.data.indexOf('\"SchemaVersion\"') !== -1\n ) {\n return INPUT_TYPES.ASFF;\n } else if (guessOptions.data.indexOf('issues burpVersion') !== -1) {\n return INPUT_TYPES.BURP;\n } else if (guessOptions.data.indexOf('scoutsuite_results') !== -1) {\n return INPUT_TYPES.SCOUTSUITE;\n } else if (\n guessOptions.data.indexOf('Policy') !== -1 &&\n guessOptions.data.indexOf('Job Name') !== -1 &&\n guessOptions.data.indexOf('Check ID') !== -1 &&\n guessOptions.data.indexOf('Result Status')\n ) {\n return INPUT_TYPES.DB_PROTECT;\n } else if (\n splitLines[0].includes('Hostname') &&\n splitLines[0].includes('Distro') &&\n splitLines[0].includes('CVE ID') &&\n splitLines[0].includes('Compliance ID') &&\n splitLines[0].includes('Type') &&\n splitLines[0].includes('Severity')\n ) {\n return INPUT_TYPES.PRISMA;\n } else if (\n splitLines[0].includes('SourceName') &&\n splitLines[0].includes('DetectorType') &&\n splitLines[0].includes('DetectorName') &&\n splitLines[0].includes('DecoderName')\n ) {\n return INPUT_TYPES.TRUFFLEHOG;\n } else if (\n guessOptions.data.indexOf('veracode') !== -1 &&\n guessOptions.data.indexOf('detailedreport') !== -1\n ) {\n return INPUT_TYPES.VERACODE;\n } else if (\n guessOptions.data.indexOf('<CHECKLIST>') !== -1 &&\n guessOptions.data.indexOf('<STIGS>') !== -1 &&\n guessOptions.data.indexOf('<STIG_INFO>') !== -1\n ) {\n return INPUT_TYPES.CHECKLIST;\n }\n }\n return INPUT_TYPES.NOT_FOUND;\n}\n"]}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import { ContextualizedEvaluation, ExecJSON } from 'inspecjs';
|
|
2
2
|
export declare const DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS: string[];
|
|
3
|
-
export declare const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS: string[]
|
|
3
|
+
export declare const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS: string[];
|
|
4
4
|
export declare const DEFAULT_UPDATE_REMEDIATION_NIST_TAGS: string[];
|
|
5
5
|
export declare const DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS: string[];
|
|
6
6
|
export declare const FROM_ASFF_TYPES_SLASH_REPLACEMENT: RegExp;
|
|
7
7
|
export declare function createWinstonLogger(mapperName: string, level?: string): import("winston").Logger;
|
|
8
|
+
/** Get description from Array of descriptions or Key/Value pairs */
|
|
8
9
|
export declare function getDescription(descriptions: {
|
|
9
10
|
[key: string]: string;
|
|
10
11
|
} | ExecJSON.ControlDescription[], key: string): string | undefined;
|
|
@@ -12,3 +13,4 @@ export declare function getCCIsForNISTTags(nistTags: string[]): string[];
|
|
|
12
13
|
export declare function conditionallyProvideAttribute(attributeName: string, attribute: unknown, condition: boolean): Record<string, unknown> | undefined;
|
|
13
14
|
export declare function ensureContextualizedEvaluation(data: ExecJSON.Execution | ContextualizedEvaluation): ContextualizedEvaluation;
|
|
14
15
|
export declare function filterString(input: string): string | undefined;
|
|
16
|
+
//# sourceMappingURL=global.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"global.d.ts","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,wBAAwB,EAExB,QAAQ,EACT,MAAM,UAAU,CAAC;AAOlB,eAAO,MAAM,sCAAsC,UAAoB,CAAC;AAExE,eAAO,MAAM,qCAAqC,UACgC,CAAC;AAInF,eAAO,MAAM,oCAAoC,UAAmB,CAAC;AAGrE,eAAO,MAAM,yDAAyD,UAErE,CAAC;AAGF,eAAO,MAAM,iCAAiC,QAAkB,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,UAAU,EAAE,MAAM,EAAE,KAAK,SAAU,4BAatE;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAC5B,YAAY,EACR;IACE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;CACvB,GACD,QAAQ,CAAC,kBAAkB,EAAE,EACjC,GAAG,EAAE,MAAM,GACV,MAAM,GAAG,SAAS,CAYpB;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE,CAa/D;AAGD,wBAAgB,6BAA6B,CAC3C,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,OAAO,EAClB,SAAS,EAAE,OAAO,GACjB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAKrC;AAED,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,QAAQ,CAAC,SAAS,GAAG,wBAAwB,4BAOpD;AAGD,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAE9D"}
|
package/lib/src/utils/global.js
CHANGED
|
@@ -15,25 +15,47 @@ 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.
|
|
36
|
+
exports.FROM_ASFF_TYPES_SLASH_REPLACEMENT = exports.DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = exports.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = void 0;
|
|
37
|
+
exports.createWinstonLogger = createWinstonLogger;
|
|
38
|
+
exports.getDescription = getDescription;
|
|
39
|
+
exports.getCCIsForNISTTags = getCCIsForNISTTags;
|
|
40
|
+
exports.conditionallyProvideAttribute = conditionallyProvideAttribute;
|
|
41
|
+
exports.ensureContextualizedEvaluation = ensureContextualizedEvaluation;
|
|
42
|
+
exports.filterString = filterString;
|
|
27
43
|
const inspecjs_1 = require("inspecjs");
|
|
28
44
|
const _ = __importStar(require("lodash"));
|
|
29
45
|
const winston_1 = require("winston");
|
|
30
46
|
const NistCciMappingData_1 = require("../mappings/NistCciMappingData");
|
|
47
|
+
// DEFAULT_NIST_TAG is applicable to all automated configuration tests.
|
|
48
|
+
// SA-11 (DEVELOPER SECURITY TESTING AND EVALUATION) - RA-5 (VULNERABILITY SCANNING)
|
|
31
49
|
exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = ['SA-11', 'RA-5'];
|
|
32
|
-
exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.
|
|
50
|
+
exports.DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS = exports.DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.flatMap((tag) => NistCciMappingData_1.data[tag]);
|
|
51
|
+
// REMEDIATION_NIST_TAG the set of default applicable NIST 800-53 controls for ensuring up-to-date packages.
|
|
52
|
+
// SI-2 (FLAW REMEDIATION) - RA-5 (VULNERABILITY SCANNING)
|
|
33
53
|
exports.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = ['SI-2', 'RA-5'];
|
|
54
|
+
// Applicable to dependency management
|
|
34
55
|
exports.DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = [
|
|
35
56
|
'CM-8'
|
|
36
57
|
];
|
|
58
|
+
// The "Types" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding
|
|
37
59
|
exports.FROM_ASFF_TYPES_SLASH_REPLACEMENT = /{{{SLASH}}}/gi;
|
|
38
60
|
function createWinstonLogger(mapperName, level = 'debug') {
|
|
39
61
|
return (0, winston_1.createLogger)({
|
|
@@ -44,19 +66,17 @@ function createWinstonLogger(mapperName, level = 'debug') {
|
|
|
44
66
|
}), winston_1.format.printf((info) => `[${[info.timestamp]}] ${mapperName} ${info.message}`))
|
|
45
67
|
});
|
|
46
68
|
}
|
|
47
|
-
|
|
69
|
+
/** Get description from Array of descriptions or Key/Value pairs */
|
|
48
70
|
function getDescription(descriptions, key) {
|
|
49
|
-
var _a;
|
|
50
71
|
let found;
|
|
51
72
|
if (Array.isArray(descriptions)) {
|
|
52
|
-
found =
|
|
73
|
+
found = descriptions.find((description) => description.label.toLowerCase() === key)?.data;
|
|
53
74
|
}
|
|
54
75
|
else {
|
|
55
76
|
found = _.get(descriptions, key);
|
|
56
77
|
}
|
|
57
78
|
return found;
|
|
58
79
|
}
|
|
59
|
-
exports.getDescription = getDescription;
|
|
60
80
|
function getCCIsForNISTTags(nistTags) {
|
|
61
81
|
const cciTags = [];
|
|
62
82
|
for (const nistTag of nistTags) {
|
|
@@ -69,14 +89,13 @@ function getCCIsForNISTTags(nistTags) {
|
|
|
69
89
|
}
|
|
70
90
|
return cciTags;
|
|
71
91
|
}
|
|
72
|
-
|
|
92
|
+
// Using the spread operator on a falsy value within an object does nothing. It is possible to use that syntactic behavior to conditionally add attributes to an object by writing something as follows: {...(condition && {attributeName: attribute})} which returns {} if condition is falsy and {attributeName: attribute} otherwise. Use this function to replace the stuff in the parentheses to save cognitive complexity marks when sonarqube complains.
|
|
73
93
|
function conditionallyProvideAttribute(attributeName, attribute, condition) {
|
|
74
94
|
if (!condition) {
|
|
75
95
|
return undefined;
|
|
76
96
|
}
|
|
77
97
|
return { [attributeName]: attribute };
|
|
78
98
|
}
|
|
79
|
-
exports.conditionallyProvideAttribute = conditionallyProvideAttribute;
|
|
80
99
|
function ensureContextualizedEvaluation(data) {
|
|
81
100
|
if ('contains' in data) {
|
|
82
101
|
return data;
|
|
@@ -85,9 +104,8 @@ function ensureContextualizedEvaluation(data) {
|
|
|
85
104
|
return (0, inspecjs_1.contextualizeEvaluation)(data);
|
|
86
105
|
}
|
|
87
106
|
}
|
|
88
|
-
|
|
107
|
+
// Return original string if it exists, else return undefined
|
|
89
108
|
function filterString(input) {
|
|
90
109
|
return input || undefined;
|
|
91
110
|
}
|
|
92
|
-
exports.filterString = filterString;
|
|
93
111
|
//# sourceMappingURL=global.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"global.js","sourceRoot":"","sources":["../../../src/utils/global.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4BA,kDAaC;AAGD,wCAmBC;AAED,gDAaC;AAGD,sEASC;AAED,wEAQC;AAGD,oCAEC;AAzGD,uCAIkB;AAClB,0CAA4B;AAC5B,qCAAyD;AACzD,uEAA0E;AAE1E,uEAAuE;AACvE,oFAAoF;AACvE,QAAA,sCAAsC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAE3D,QAAA,qCAAqC,GAChD,8CAAsC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,yBAAkB,CAAC,GAAG,CAAC,CAAC,CAAC;AAEnF,4GAA4G;AAC5G,2DAA2D;AAC9C,QAAA,oCAAoC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAErE,sCAAsC;AACzB,QAAA,yDAAyD,GAAG;IACvE,MAAM;CACP,CAAC;AAEF,qKAAqK;AACxJ,QAAA,iCAAiC,GAAG,eAAe,CAAC;AAEjE,SAAgB,mBAAmB,CAAC,UAAkB,EAAE,KAAK,GAAG,OAAO;IACrE,OAAO,IAAA,sBAAY,EAAC;QAClB,UAAU,EAAE,CAAC,IAAI,oBAAU,CAAC,OAAO,EAAE,CAAC;QACtC,KAAK,EAAE,KAAK;QACZ,MAAM,EAAE,gBAAM,CAAC,OAAO,CACpB,gBAAM,CAAC,SAAS,CAAC;YACf,MAAM,EAAE,wBAAwB;SACjC,CAAC,EACF,gBAAM,CAAC,MAAM,CACX,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,UAAU,IAAI,IAAI,CAAC,OAAO,EAAE,CAChE,CACF;KACF,CAAC,CAAC;AACL,CAAC;AAED,oEAAoE;AACpE,SAAgB,cAAc,CAC5B,YAIiC,EACjC,GAAW;IAEX,IAAI,KAAyB,CAAC;IAC9B,IAAI,KAAK,CAAC,OAAO,CAAC,YAAY,CAAC,EAAE,CAAC;QAChC,KAAK,GAAG,YAAY,CAAC,IAAI,CACvB,CAAC,WAAwC,EAAE,EAAE,CAC3C,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,GAAG,CAC1C,EAAE,IAAI,CAAC;IACV,CAAC;SAAM,CAAC;QACN,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,YAAY,EAAE,GAAG,CAAC,CAAC;IACnC,CAAC;IAED,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,kBAAkB,CAAC,QAAkB;IACnD,MAAM,OAAO,GAAa,EAAE,CAAC;IAC7B,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,MAAM,OAAO,GAAG,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC/C,IACE,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC;YACtB,OAAO,CAAC,MAAM,GAAG,CAAC;YAClB,OAAO,CAAC,CAAC,CAAC,IAAI,yBAAkB,EAChC,CAAC;YACD,OAAO,CAAC,IAAI,CAAC,GAAG,yBAAkB,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,icAAic;AACjc,SAAgB,6BAA6B,CAC3C,aAAqB,EACrB,SAAkB,EAClB,SAAkB;IAElB,IAAI,CAAC,SAAS,EAAE,CAAC;QACf,OAAO,SAAS,CAAC;IACnB,CAAC;IACD,OAAO,EAAC,CAAC,aAAa,CAAC,EAAE,SAAS,EAAC,CAAC;AACtC,CAAC;AAED,SAAgB,8BAA8B,CAC5C,IAAmD;IAEnD,IAAI,UAAU,IAAI,IAAI,EAAE,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;SAAM,CAAC;QACN,OAAO,IAAA,kCAAuB,EAAC,IAAI,CAAC,CAAC;IACvC,CAAC;AACH,CAAC;AAED,6DAA6D;AAC7D,SAAgB,YAAY,CAAC,KAAa;IACxC,OAAO,KAAK,IAAI,SAAS,CAAC;AAC5B,CAAC","sourcesContent":["import {\n ContextualizedEvaluation,\n contextualizeEvaluation,\n ExecJSON\n} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {createLogger, format, transports} from 'winston';\nimport {data as NistCciMappingData} from '../mappings/NistCciMappingData';\n\n// DEFAULT_NIST_TAG is applicable to all automated configuration tests.\n// SA-11 (DEVELOPER SECURITY TESTING AND EVALUATION) - RA-5 (VULNERABILITY SCANNING)\nexport const DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS = ['SA-11', 'RA-5'];\n\nexport const DEFAULT_STATIC_CODE_ANALYSIS_CCI_TAGS =\n DEFAULT_STATIC_CODE_ANALYSIS_NIST_TAGS.flatMap((tag) => NistCciMappingData[tag]);\n\n// REMEDIATION_NIST_TAG the set of default applicable NIST 800-53 controls for ensuring up-to-date packages.\n// SI-2 (FLAW REMEDIATION) - \tRA-5 (VULNERABILITY SCANNING)\nexport const DEFAULT_UPDATE_REMEDIATION_NIST_TAGS = ['SI-2', 'RA-5'];\n\n// Applicable to dependency management\nexport const DEFAULT_INFORMATION_SYSTEM_COMPONENT_MANAGEMENT_NIST_TAGS = [\n 'CM-8'\n];\n\n// The \"Types\" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding\nexport const FROM_ASFF_TYPES_SLASH_REPLACEMENT = /{{{SLASH}}}/gi;\n\nexport function createWinstonLogger(mapperName: string, level = 'debug') {\n return createLogger({\n transports: [new transports.Console()],\n level: level,\n format: format.combine(\n format.timestamp({\n format: 'MMM-DD-YYYY HH:mm:ss Z'\n }),\n format.printf(\n (info) => `[${[info.timestamp]}] ${mapperName} ${info.message}`\n )\n )\n });\n}\n\n/** Get description from Array of descriptions or Key/Value pairs */\nexport function getDescription(\n descriptions:\n | {\n [key: string]: string;\n }\n | ExecJSON.ControlDescription[],\n key: string\n): string | undefined {\n let found: string | undefined;\n if (Array.isArray(descriptions)) {\n found = descriptions.find(\n (description: ExecJSON.ControlDescription) =>\n description.label.toLowerCase() === key\n )?.data;\n } else {\n found = _.get(descriptions, key);\n }\n\n return found;\n}\n\nexport function getCCIsForNISTTags(nistTags: string[]): string[] {\n const cciTags: string[] = [];\n for (const nistTag of nistTags) {\n const baseTag = /\\w\\w-\\d\\d?\\d?/g.exec(nistTag);\n if (\n Array.isArray(baseTag) &&\n baseTag.length > 0 &&\n baseTag[0] in NistCciMappingData\n ) {\n cciTags.push(...NistCciMappingData[baseTag[0]]);\n }\n }\n return cciTags;\n}\n\n// Using the spread operator on a falsy value within an object does nothing. It is possible to use that syntactic behavior to conditionally add attributes to an object by writing something as follows: {...(condition && {attributeName: attribute})} which returns {} if condition is falsy and {attributeName: attribute} otherwise. Use this function to replace the stuff in the parentheses to save cognitive complexity marks when sonarqube complains.\nexport function conditionallyProvideAttribute(\n attributeName: string,\n attribute: unknown,\n condition: boolean\n): Record<string, unknown> | undefined {\n if (!condition) {\n return undefined;\n }\n return {[attributeName]: attribute};\n}\n\nexport function ensureContextualizedEvaluation(\n data: ExecJSON.Execution | ContextualizedEvaluation\n) {\n if ('contains' in data) {\n return data;\n } else {\n return contextualizeEvaluation(data);\n }\n}\n\n// Return original string if it exists, else return undefined\nexport function filterString(input: string): string | undefined {\n return input || undefined;\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"parseJson.d.ts","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,MAAM,EAAC,MAAM,UAAU,CAAC;AAEhC,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,MAAM,GACN,OAAO,GACP,IAAI,GACJ,SAAS,EAAE,GACX;IAAC,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAA;CAAC,CAAC;AAE/B,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,CAU/D"}
|
|
@@ -1,13 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.parseJson =
|
|
3
|
+
exports.parseJson = parseJson;
|
|
4
4
|
function parseJson(str) {
|
|
5
5
|
try {
|
|
6
6
|
return { ok: true, value: JSON.parse(str) };
|
|
7
7
|
}
|
|
8
8
|
catch (e) {
|
|
9
|
-
|
|
9
|
+
if (e instanceof Error) {
|
|
10
|
+
return { ok: false, error: e };
|
|
11
|
+
}
|
|
12
|
+
else {
|
|
13
|
+
return { ok: false, error: new Error(String(e)) };
|
|
14
|
+
}
|
|
10
15
|
}
|
|
11
16
|
}
|
|
12
|
-
exports.parseJson = parseJson;
|
|
13
17
|
//# sourceMappingURL=parseJson.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"parseJson.js","sourceRoot":"","sources":["../../../src/utils/parseJson.ts"],"names":[],"mappings":";;AAUA,8BAUC;AAVD,SAAgB,SAAS,CAAC,GAAW;IACnC,IAAI,CAAC;QACH,OAAO,EAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,EAAC,CAAC;IAC5C,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,IAAI,CAAC,YAAY,KAAK,EAAE,CAAC;YACzB,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,EAAC,CAAC;QAC7B,CAAC;aAAM,CAAC;YACR,OAAO,EAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC;QAChD,CAAC;IACH,CAAC;AACH,CAAC","sourcesContent":["import {Result} from './result';\n\nexport type JSONValue =\n | string\n | number\n | boolean\n | null\n | JSONValue[]\n | {[key: string]: JSONValue};\n\nexport function parseJson(str: string): Result<JSONValue, Error> {\n try {\n return {ok: true, value: JSON.parse(str)};\n } catch (e) {\n if (e instanceof Error) {\n return {ok: false, error: e};\n } else {\n return {ok: false, error: new Error(String(e))};\n }\n }\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"result.d.ts","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,MAAM,CAAC,CAAC,EAAE,CAAC,GAAG,KAAK,IAAI;IAAC,EAAE,EAAE,IAAI,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAC,GAAG;IAAC,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,CAAC,CAAA;CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"result.js","sourceRoot":"","sources":["../../../src/utils/result.ts"],"names":[],"mappings":"","sourcesContent":["export type Result<T, E = Error> = {ok: true; value: T} | {ok: false; error: E};\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { AxiosResponse } from 'axios';
|
|
2
2
|
import { SplunkConfig } from '../../types/splunk-config-types';
|
|
3
3
|
export declare function generateHostname(config: SplunkConfig): string;
|
|
4
|
-
export declare function handleSplunkErrorResponse(error: AxiosResponse): string;
|
|
4
|
+
export declare function handleSplunkErrorResponse(error: AxiosResponse | unknown): string;
|
|
5
5
|
export declare function checkSplunkCredentials(config: SplunkConfig): Promise<string>;
|
|
6
|
+
//# sourceMappingURL=splunk-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"splunk-tools.d.ts","sourceRoot":"","sources":["../../../src/utils/splunk-tools.ts"],"names":[],"mappings":"AAAA,OAAc,EAAC,aAAa,EAAC,MAAM,OAAO,CAAC;AAE3C,OAAO,EAAC,YAAY,EAAC,MAAM,iCAAiC,CAAC;AAG7D,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAI7D;AAID,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,GAAG,MAAM,CAqBhF;AAGD,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE,YAAY,GACnB,OAAO,CAAC,MAAM,CAAC,CAuDjB"}
|