@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.
Files changed (370) hide show
  1. package/README.md +25 -24
  2. package/lib/data/converters/csv2json.d.ts +1 -0
  3. package/lib/data/converters/csv2json.d.ts.map +1 -0
  4. package/lib/data/converters/csv2json.js +1 -1
  5. package/lib/data/converters/csv2json.js.map +1 -1
  6. package/lib/data/converters/xml2json.d.ts +1 -0
  7. package/lib/data/converters/xml2json.d.ts.map +1 -0
  8. package/lib/data/converters/xml2json.js +6 -25
  9. package/lib/data/converters/xml2json.js.map +1 -1
  10. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts +2 -0
  11. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.d.ts.map +1 -0
  12. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js +13 -0
  13. package/lib/data/reverse-html-mapper/convert-to-embedded-strings.js.map +1 -0
  14. package/lib/index.d.ts +6 -0
  15. package/lib/index.d.ts.map +1 -0
  16. package/lib/index.js +23 -8
  17. package/lib/index.js.map +1 -1
  18. package/lib/package.json +28 -45
  19. package/lib/src/anchore-grype-mapper.d.ts +1 -0
  20. package/lib/src/anchore-grype-mapper.d.ts.map +1 -0
  21. package/lib/src/anchore-grype-mapper.js +7 -1
  22. package/lib/src/anchore-grype-mapper.js.map +1 -1
  23. package/lib/src/asff-mapper/asff-mapper.d.ts +1 -0
  24. package/lib/src/asff-mapper/asff-mapper.d.ts.map +1 -0
  25. package/lib/src/asff-mapper/asff-mapper.js +276 -242
  26. package/lib/src/asff-mapper/asff-mapper.js.map +1 -1
  27. package/lib/src/asff-mapper/case-cms-inspec.d.ts +1 -0
  28. package/lib/src/asff-mapper/case-cms-inspec.d.ts.map +1 -0
  29. package/lib/src/asff-mapper/case-cms-inspec.js +18 -9
  30. package/lib/src/asff-mapper/case-cms-inspec.js.map +1 -1
  31. package/lib/src/asff-mapper/case-firewall-manager.d.ts +1 -0
  32. package/lib/src/asff-mapper/case-firewall-manager.d.ts.map +1 -0
  33. package/lib/src/asff-mapper/case-firewall-manager.js +18 -9
  34. package/lib/src/asff-mapper/case-firewall-manager.js.map +1 -1
  35. package/lib/src/asff-mapper/case-guardduty.d.ts +1 -0
  36. package/lib/src/asff-mapper/case-guardduty.d.ts.map +1 -0
  37. package/lib/src/asff-mapper/case-guardduty.js +18 -9
  38. package/lib/src/asff-mapper/case-guardduty.js.map +1 -1
  39. package/lib/src/asff-mapper/case-inspector.d.ts +1 -0
  40. package/lib/src/asff-mapper/case-inspector.d.ts.map +1 -0
  41. package/lib/src/asff-mapper/case-inspector.js +18 -9
  42. package/lib/src/asff-mapper/case-inspector.js.map +1 -1
  43. package/lib/src/asff-mapper/case-previously-hdf.d.ts +1 -0
  44. package/lib/src/asff-mapper/case-previously-hdf.d.ts.map +1 -0
  45. package/lib/src/asff-mapper/case-previously-hdf.js +28 -15
  46. package/lib/src/asff-mapper/case-previously-hdf.js.map +1 -1
  47. package/lib/src/asff-mapper/case-prowler.d.ts +1 -0
  48. package/lib/src/asff-mapper/case-prowler.d.ts.map +1 -0
  49. package/lib/src/asff-mapper/case-prowler.js +19 -9
  50. package/lib/src/asff-mapper/case-prowler.js.map +1 -1
  51. package/lib/src/asff-mapper/case-security-hub.d.ts +1 -0
  52. package/lib/src/asff-mapper/case-security-hub.d.ts.map +1 -0
  53. package/lib/src/asff-mapper/case-security-hub.js +24 -9
  54. package/lib/src/asff-mapper/case-security-hub.js.map +1 -1
  55. package/lib/src/asff-mapper/case-trivy.d.ts +1 -0
  56. package/lib/src/asff-mapper/case-trivy.d.ts.map +1 -0
  57. package/lib/src/asff-mapper/case-trivy.js +18 -9
  58. package/lib/src/asff-mapper/case-trivy.js.map +1 -1
  59. package/lib/src/aws-config-mapper.d.ts +1 -0
  60. package/lib/src/aws-config-mapper.d.ts.map +1 -0
  61. package/lib/src/aws-config-mapper.js +38 -22
  62. package/lib/src/aws-config-mapper.js.map +1 -1
  63. package/lib/src/base-converter.d.ts +2 -1
  64. package/lib/src/base-converter.d.ts.map +1 -0
  65. package/lib/src/base-converter.js +51 -33
  66. package/lib/src/base-converter.js.map +1 -1
  67. package/lib/src/burpsuite-mapper.d.ts +7 -0
  68. package/lib/src/burpsuite-mapper.d.ts.map +1 -0
  69. package/lib/src/burpsuite-mapper.js +115 -88
  70. package/lib/src/burpsuite-mapper.js.map +1 -1
  71. package/lib/src/checkov-mapper.d.ts +67 -0
  72. package/lib/src/checkov-mapper.d.ts.map +1 -0
  73. package/lib/src/checkov-mapper.js +240 -0
  74. package/lib/src/checkov-mapper.js.map +1 -0
  75. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts +17 -0
  76. package/lib/src/ckl-mapper/checklist-jsonix-converter.d.ts.map +1 -0
  77. package/lib/src/ckl-mapper/checklist-jsonix-converter.js +59 -25
  78. package/lib/src/ckl-mapper/checklist-jsonix-converter.js.map +1 -1
  79. package/lib/src/ckl-mapper/checklist-mapper.d.ts +35 -0
  80. package/lib/src/ckl-mapper/checklist-mapper.d.ts.map +1 -0
  81. package/lib/src/ckl-mapper/checklist-mapper.js +264 -155
  82. package/lib/src/ckl-mapper/checklist-mapper.js.map +1 -1
  83. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts +1 -0
  84. package/lib/src/ckl-mapper/checklist-metadata-utils.d.ts.map +1 -0
  85. package/lib/src/ckl-mapper/checklist-metadata-utils.js +38 -16
  86. package/lib/src/ckl-mapper/checklist-metadata-utils.js.map +1 -1
  87. package/lib/src/ckl-mapper/checklistJsonix.d.ts +6 -0
  88. package/lib/src/ckl-mapper/checklistJsonix.d.ts.map +1 -0
  89. package/lib/src/ckl-mapper/checklistJsonix.js +8 -8
  90. package/lib/src/ckl-mapper/checklistJsonix.js.map +1 -1
  91. package/lib/src/ckl-mapper/jsonixMapping.d.ts +5 -0
  92. package/lib/src/ckl-mapper/jsonixMapping.d.ts.map +1 -0
  93. package/lib/src/ckl-mapper/jsonixMapping.js +4 -0
  94. package/lib/src/ckl-mapper/jsonixMapping.js.map +1 -1
  95. package/lib/src/converters-from-hdf/asff/asff-types.d.ts +1 -0
  96. package/lib/src/converters-from-hdf/asff/asff-types.d.ts.map +1 -0
  97. package/lib/src/converters-from-hdf/asff/asff-types.js +1 -0
  98. package/lib/src/converters-from-hdf/asff/asff-types.js.map +1 -1
  99. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts +1 -0
  100. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.d.ts.map +1 -0
  101. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js +110 -84
  102. package/lib/src/converters-from-hdf/asff/reverse-asff-mapper.js.map +1 -1
  103. package/lib/src/converters-from-hdf/asff/transformers.d.ts +1 -0
  104. package/lib/src/converters-from-hdf/asff/transformers.d.ts.map +1 -0
  105. package/lib/src/converters-from-hdf/asff/transformers.js +82 -55
  106. package/lib/src/converters-from-hdf/asff/transformers.js.map +1 -1
  107. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts +1 -0
  108. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.d.ts.map +1 -0
  109. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js +65 -38
  110. package/lib/src/converters-from-hdf/caat/reverse-caat-mapper.js.map +1 -1
  111. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts +4 -0
  112. package/lib/src/converters-from-hdf/html/embedded-assets.d.ts.map +1 -0
  113. package/lib/src/converters-from-hdf/html/embedded-assets.js +8 -0
  114. package/lib/src/converters-from-hdf/html/embedded-assets.js.map +1 -0
  115. package/lib/src/converters-from-hdf/html/html-types.d.ts +1 -0
  116. package/lib/src/converters-from-hdf/html/html-types.d.ts.map +1 -0
  117. package/lib/src/converters-from-hdf/html/html-types.js +1 -0
  118. package/lib/src/converters-from-hdf/html/html-types.js.map +1 -1
  119. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts +3 -2
  120. package/lib/src/converters-from-hdf/html/reverse-html-mapper.d.ts.map +1 -0
  121. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js +151 -107
  122. package/lib/src/converters-from-hdf/html/reverse-html-mapper.js.map +1 -1
  123. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts +1 -0
  124. package/lib/src/converters-from-hdf/reverse-any-base-converter.d.ts.map +1 -0
  125. package/lib/src/converters-from-hdf/reverse-any-base-converter.js +3 -0
  126. package/lib/src/converters-from-hdf/reverse-any-base-converter.js.map +1 -1
  127. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts +1 -0
  128. package/lib/src/converters-from-hdf/reverse-base-converter.d.ts.map +1 -0
  129. package/lib/src/converters-from-hdf/reverse-base-converter.js +29 -9
  130. package/lib/src/converters-from-hdf/reverse-base-converter.js.map +1 -1
  131. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts +1 -0
  132. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.d.ts.map +1 -0
  133. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js +40 -16
  134. package/lib/src/converters-from-hdf/splunk/reverse-splunk-mapper.js.map +1 -1
  135. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts +1 -0
  136. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.d.ts.map +1 -0
  137. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js +33 -12
  138. package/lib/src/converters-from-hdf/xccdf/reverse-xccdf-mapper.js.map +1 -1
  139. package/lib/src/conveyor-mapper.d.ts +1 -0
  140. package/lib/src/conveyor-mapper.d.ts.map +1 -0
  141. package/lib/src/conveyor-mapper.js +85 -40
  142. package/lib/src/conveyor-mapper.js.map +1 -1
  143. package/lib/src/cyclonedx-sbom-mapper.d.ts +1 -0
  144. package/lib/src/cyclonedx-sbom-mapper.d.ts.map +1 -0
  145. package/lib/src/cyclonedx-sbom-mapper.js +377 -309
  146. package/lib/src/cyclonedx-sbom-mapper.js.map +1 -1
  147. package/lib/src/dbprotect-mapper.d.ts +1 -0
  148. package/lib/src/dbprotect-mapper.d.ts.map +1 -0
  149. package/lib/src/dbprotect-mapper.js +74 -63
  150. package/lib/src/dbprotect-mapper.js.map +1 -1
  151. package/lib/src/dependency-track-mapper.d.ts +1 -0
  152. package/lib/src/dependency-track-mapper.d.ts.map +1 -0
  153. package/lib/src/dependency-track-mapper.js +144 -130
  154. package/lib/src/dependency-track-mapper.js.map +1 -1
  155. package/lib/src/fortify-mapper.d.ts +7 -0
  156. package/lib/src/fortify-mapper.d.ts.map +1 -0
  157. package/lib/src/fortify-mapper.js +118 -92
  158. package/lib/src/fortify-mapper.js.map +1 -1
  159. package/lib/src/gosec-mapper.d.ts +1 -0
  160. package/lib/src/gosec-mapper.d.ts.map +1 -0
  161. package/lib/src/gosec-mapper.js +90 -72
  162. package/lib/src/gosec-mapper.js.map +1 -1
  163. package/lib/src/ionchannel-mapper.d.ts +1 -0
  164. package/lib/src/ionchannel-mapper.d.ts.map +1 -0
  165. package/lib/src/ionchannel-mapper.js +130 -110
  166. package/lib/src/ionchannel-mapper.js.map +1 -1
  167. package/lib/src/jfrog-xray-mapper.d.ts +1 -0
  168. package/lib/src/jfrog-xray-mapper.d.ts.map +1 -0
  169. package/lib/src/jfrog-xray-mapper.js +92 -78
  170. package/lib/src/jfrog-xray-mapper.js.map +1 -1
  171. package/lib/src/jsonix-converter.d.ts +1 -0
  172. package/lib/src/jsonix-converter.d.ts.map +1 -0
  173. package/lib/src/jsonix-converter.js +1 -0
  174. package/lib/src/jsonix-converter.js.map +1 -1
  175. package/lib/src/jsonix-intermediate-converter.d.ts +1 -0
  176. package/lib/src/jsonix-intermediate-converter.d.ts.map +1 -0
  177. package/lib/src/jsonix-intermediate-converter.js.map +1 -1
  178. package/lib/src/mappings/AwsConfigMapping.d.ts +1 -0
  179. package/lib/src/mappings/AwsConfigMapping.d.ts.map +1 -0
  180. package/lib/src/mappings/AwsConfigMapping.js +19 -9
  181. package/lib/src/mappings/AwsConfigMapping.js.map +1 -1
  182. package/lib/src/mappings/AwsConfigMappingData.d.ts +1 -0
  183. package/lib/src/mappings/AwsConfigMappingData.d.ts.map +1 -0
  184. package/lib/src/mappings/AwsConfigMappingData.js.map +1 -1
  185. package/lib/src/mappings/CciNistMapping.d.ts +1 -0
  186. package/lib/src/mappings/CciNistMapping.d.ts.map +1 -0
  187. package/lib/src/mappings/CciNistMapping.js +6 -2
  188. package/lib/src/mappings/CciNistMapping.js.map +1 -1
  189. package/lib/src/mappings/CciNistMappingData.d.ts +1 -0
  190. package/lib/src/mappings/CciNistMappingData.d.ts.map +1 -0
  191. package/lib/src/mappings/CciNistMappingData.js.map +1 -1
  192. package/lib/src/mappings/CciNistMappingItem.d.ts +1 -0
  193. package/lib/src/mappings/CciNistMappingItem.d.ts.map +1 -0
  194. package/lib/src/mappings/CciNistMappingItem.js +2 -0
  195. package/lib/src/mappings/CciNistMappingItem.js.map +1 -1
  196. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts +5 -0
  197. package/lib/src/mappings/CheckovToCciAndNistMappingData.d.ts.map +1 -0
  198. package/lib/src/mappings/CheckovToCciAndNistMappingData.js +2695 -0
  199. package/lib/src/mappings/CheckovToCciAndNistMappingData.js.map +1 -0
  200. package/lib/src/mappings/CweNistMapping.d.ts +1 -0
  201. package/lib/src/mappings/CweNistMapping.d.ts.map +1 -0
  202. package/lib/src/mappings/CweNistMapping.js +1 -0
  203. package/lib/src/mappings/CweNistMapping.js.map +1 -1
  204. package/lib/src/mappings/CweNistMappingData.d.ts +1 -0
  205. package/lib/src/mappings/CweNistMappingData.d.ts.map +1 -0
  206. package/lib/src/mappings/CweNistMappingData.js.map +1 -1
  207. package/lib/src/mappings/CweNistMappingItem.d.ts +1 -0
  208. package/lib/src/mappings/CweNistMappingItem.d.ts.map +1 -0
  209. package/lib/src/mappings/CweNistMappingItem.js +5 -0
  210. package/lib/src/mappings/CweNistMappingItem.js.map +1 -1
  211. package/lib/src/mappings/NessusPluginNistMappingData.d.ts +1 -0
  212. package/lib/src/mappings/NessusPluginNistMappingData.d.ts.map +1 -0
  213. package/lib/src/mappings/NessusPluginNistMappingData.js.map +1 -1
  214. package/lib/src/mappings/NessusPluginsNistMapping.d.ts +1 -0
  215. package/lib/src/mappings/NessusPluginsNistMapping.d.ts.map +1 -0
  216. package/lib/src/mappings/NessusPluginsNistMapping.js +1 -0
  217. package/lib/src/mappings/NessusPluginsNistMapping.js.map +1 -1
  218. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts +1 -0
  219. package/lib/src/mappings/NessusPluginsNistMappingItem.d.ts.map +1 -0
  220. package/lib/src/mappings/NessusPluginsNistMappingItem.js +4 -0
  221. package/lib/src/mappings/NessusPluginsNistMappingItem.js.map +1 -1
  222. package/lib/src/mappings/NiktoNistMapping.d.ts +1 -0
  223. package/lib/src/mappings/NiktoNistMapping.d.ts.map +1 -0
  224. package/lib/src/mappings/NiktoNistMapping.js.map +1 -1
  225. package/lib/src/mappings/NiktoNistMappingData.d.ts +1 -0
  226. package/lib/src/mappings/NiktoNistMappingData.d.ts.map +1 -0
  227. package/lib/src/mappings/NiktoNistMappingData.js.map +1 -1
  228. package/lib/src/mappings/NiktoNistMappingItem.d.ts +1 -0
  229. package/lib/src/mappings/NiktoNistMappingItem.d.ts.map +1 -0
  230. package/lib/src/mappings/NiktoNistMappingItem.js +4 -0
  231. package/lib/src/mappings/NiktoNistMappingItem.js.map +1 -1
  232. package/lib/src/mappings/NistCciMappingData.d.ts +1 -0
  233. package/lib/src/mappings/NistCciMappingData.d.ts.map +1 -0
  234. package/lib/src/mappings/NistCciMappingData.js.map +1 -1
  235. package/lib/src/mappings/OwaspNistMapping.d.ts +1 -0
  236. package/lib/src/mappings/OwaspNistMapping.d.ts.map +1 -0
  237. package/lib/src/mappings/OwaspNistMapping.js +19 -8
  238. package/lib/src/mappings/OwaspNistMapping.js.map +1 -1
  239. package/lib/src/mappings/OwaspNistMappingData.d.ts +1 -0
  240. package/lib/src/mappings/OwaspNistMappingData.d.ts.map +1 -0
  241. package/lib/src/mappings/OwaspNistMappingData.js.map +1 -1
  242. package/lib/src/mappings/OwaspNistMappingItem.d.ts +1 -0
  243. package/lib/src/mappings/OwaspNistMappingItem.d.ts.map +1 -0
  244. package/lib/src/mappings/OwaspNistMappingItem.js +5 -0
  245. package/lib/src/mappings/OwaspNistMappingItem.js.map +1 -1
  246. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts +1 -0
  247. package/lib/src/mappings/ScoutsuiteNistMapping.d.ts.map +1 -0
  248. package/lib/src/mappings/ScoutsuiteNistMapping.js +1 -0
  249. package/lib/src/mappings/ScoutsuiteNistMapping.js.map +1 -1
  250. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts +1 -0
  251. package/lib/src/mappings/ScoutsuiteNistMappingData.d.ts.map +1 -0
  252. package/lib/src/mappings/ScoutsuiteNistMappingData.js.map +1 -1
  253. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts +1 -0
  254. package/lib/src/mappings/ScoutsuiteNistMappingItem.d.ts.map +1 -0
  255. package/lib/src/mappings/ScoutsuiteNistMappingItem.js +2 -0
  256. package/lib/src/mappings/ScoutsuiteNistMappingItem.js.map +1 -1
  257. package/lib/src/msft-secure-score-mapper.d.ts +1 -0
  258. package/lib/src/msft-secure-score-mapper.d.ts.map +1 -0
  259. package/lib/src/msft-secure-score-mapper.js +202 -185
  260. package/lib/src/msft-secure-score-mapper.js.map +1 -1
  261. package/lib/src/nessus-mapper.d.ts +2 -1
  262. package/lib/src/nessus-mapper.d.ts.map +1 -0
  263. package/lib/src/nessus-mapper.js +122 -105
  264. package/lib/src/nessus-mapper.js.map +1 -1
  265. package/lib/src/netsparker-mapper.d.ts +7 -0
  266. package/lib/src/netsparker-mapper.d.ts.map +1 -0
  267. package/lib/src/netsparker-mapper.js +34 -9
  268. package/lib/src/netsparker-mapper.js.map +1 -1
  269. package/lib/src/neuvector-mapper.d.ts +1 -0
  270. package/lib/src/neuvector-mapper.d.ts.map +1 -0
  271. package/lib/src/neuvector-mapper.js +123 -124
  272. package/lib/src/neuvector-mapper.js.map +1 -1
  273. package/lib/src/nikto-mapper.d.ts +1 -0
  274. package/lib/src/nikto-mapper.d.ts.map +1 -0
  275. package/lib/src/nikto-mapper.js +85 -74
  276. package/lib/src/nikto-mapper.js.map +1 -1
  277. package/lib/src/prisma-mapper.d.ts +1 -0
  278. package/lib/src/prisma-mapper.d.ts.map +1 -0
  279. package/lib/src/prisma-mapper.js +138 -128
  280. package/lib/src/prisma-mapper.js.map +1 -1
  281. package/lib/src/sarif-mapper.d.ts +1 -0
  282. package/lib/src/sarif-mapper.d.ts.map +1 -0
  283. package/lib/src/sarif-mapper.js +116 -105
  284. package/lib/src/sarif-mapper.js.map +1 -1
  285. package/lib/src/scoutsuite-mapper.d.ts +1 -0
  286. package/lib/src/scoutsuite-mapper.d.ts.map +1 -0
  287. package/lib/src/scoutsuite-mapper.js +174 -163
  288. package/lib/src/scoutsuite-mapper.js.map +1 -1
  289. package/lib/src/snyk-mapper.d.ts +1 -0
  290. package/lib/src/snyk-mapper.d.ts.map +1 -0
  291. package/lib/src/snyk-mapper.js +112 -100
  292. package/lib/src/snyk-mapper.js.map +1 -1
  293. package/lib/src/sonarqube-mapper.d.ts +18 -5
  294. package/lib/src/sonarqube-mapper.d.ts.map +1 -0
  295. package/lib/src/sonarqube-mapper.js +526 -278
  296. package/lib/src/sonarqube-mapper.js.map +1 -1
  297. package/lib/src/splunk-mapper.d.ts +3 -2
  298. package/lib/src/splunk-mapper.d.ts.map +1 -0
  299. package/lib/src/splunk-mapper.js +72 -16
  300. package/lib/src/splunk-mapper.js.map +1 -1
  301. package/lib/src/trufflehog-mapper.d.ts +1 -0
  302. package/lib/src/trufflehog-mapper.d.ts.map +1 -0
  303. package/lib/src/trufflehog-mapper.js +72 -69
  304. package/lib/src/trufflehog-mapper.js.map +1 -1
  305. package/lib/src/twistlock-mapper.d.ts +1 -0
  306. package/lib/src/twistlock-mapper.d.ts.map +1 -0
  307. package/lib/src/twistlock-mapper.js +140 -126
  308. package/lib/src/twistlock-mapper.js.map +1 -1
  309. package/lib/src/utils/CCI_List.d.ts +1 -0
  310. package/lib/src/utils/CCI_List.d.ts.map +1 -0
  311. package/lib/src/utils/CCI_List.js.map +1 -1
  312. package/lib/src/utils/attestations.d.ts +1 -0
  313. package/lib/src/utils/attestations.d.ts.map +1 -0
  314. package/lib/src/utils/attestations.js +28 -13
  315. package/lib/src/utils/attestations.js.map +1 -1
  316. package/lib/src/utils/compliance.d.ts +1 -0
  317. package/lib/src/utils/compliance.d.ts.map +1 -0
  318. package/lib/src/utils/compliance.js +11 -3
  319. package/lib/src/utils/compliance.js.map +1 -1
  320. package/lib/src/utils/fingerprinting.d.ts +2 -0
  321. package/lib/src/utils/fingerprinting.d.ts.map +1 -0
  322. package/lib/src/utils/fingerprinting.js +28 -11
  323. package/lib/src/utils/fingerprinting.js.map +1 -1
  324. package/lib/src/utils/global.d.ts +3 -1
  325. package/lib/src/utils/global.d.ts.map +1 -0
  326. package/lib/src/utils/global.js +35 -17
  327. package/lib/src/utils/global.js.map +1 -1
  328. package/lib/src/utils/parseJson.d.ts +1 -0
  329. package/lib/src/utils/parseJson.d.ts.map +1 -0
  330. package/lib/src/utils/parseJson.js +7 -3
  331. package/lib/src/utils/parseJson.js.map +1 -1
  332. package/lib/src/utils/result.d.ts +1 -0
  333. package/lib/src/utils/result.d.ts.map +1 -0
  334. package/lib/src/utils/result.js.map +1 -1
  335. package/lib/src/utils/splunk-tools.d.ts +2 -1
  336. package/lib/src/utils/splunk-tools.d.ts.map +1 -0
  337. package/lib/src/utils/splunk-tools.js +52 -32
  338. package/lib/src/utils/splunk-tools.js.map +1 -1
  339. package/lib/src/veracode-mapper.d.ts +1 -0
  340. package/lib/src/veracode-mapper.d.ts.map +1 -0
  341. package/lib/src/veracode-mapper.js +50 -7
  342. package/lib/src/veracode-mapper.js.map +1 -1
  343. package/lib/src/xccdf-results-mapper.d.ts +7 -0
  344. package/lib/src/xccdf-results-mapper.d.ts.map +1 -0
  345. package/lib/src/xccdf-results-mapper.js +336 -301
  346. package/lib/src/xccdf-results-mapper.js.map +1 -1
  347. package/lib/src/zap-mapper.d.ts +8 -0
  348. package/lib/src/zap-mapper.d.ts.map +1 -0
  349. package/lib/src/zap-mapper.js +119 -90
  350. package/lib/src/zap-mapper.js.map +1 -1
  351. package/lib/tsconfig.build.tsbuildinfo +1 -0
  352. package/lib/types/neuvector-types.d.ts +1 -0
  353. package/lib/types/neuvector-types.d.ts.map +1 -0
  354. package/lib/types/neuvector-types.js +80 -0
  355. package/lib/types/neuvector-types.js.map +1 -1
  356. package/lib/types/splunk-config-types.d.ts +1 -0
  357. package/lib/types/splunk-config-types.d.ts.map +1 -0
  358. package/lib/types/splunk-config-types.js.map +1 -1
  359. package/lib/types/splunk-control-types.d.ts +1 -0
  360. package/lib/types/splunk-control-types.d.ts.map +1 -0
  361. package/lib/types/splunk-control-types.js.map +1 -1
  362. package/lib/types/splunk-profile-types.d.ts +1 -0
  363. package/lib/types/splunk-profile-types.d.ts.map +1 -0
  364. package/lib/types/splunk-profile-types.js.map +1 -1
  365. package/lib/types/splunk-report-types.d.ts +1 -0
  366. package/lib/types/splunk-report-types.d.ts.map +1 -0
  367. package/lib/types/splunk-report-types.js.map +1 -1
  368. package/package.json +29 -46
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -15,108 +15,122 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (mod) {
19
- if (mod && mod.__esModule) return mod;
20
- var result = {};
21
- if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
22
- __setModuleDefault(result, mod);
23
- return result;
24
- };
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
25
35
  Object.defineProperty(exports, "__esModule", { value: true });
26
- exports.FromHdfToAsffMapper = exports.escapeForwardSlashes = exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = void 0;
36
+ exports.FromHdfToAsffMapper = exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = void 0;
37
+ exports.escapeForwardSlashes = escapeForwardSlashes;
27
38
  const inspecjs_1 = require("inspecjs");
28
39
  const _ = __importStar(require("lodash"));
29
40
  const reverse_base_converter_1 = require("../reverse-base-converter");
30
41
  const transformers_1 = require("./transformers");
31
- exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}';
42
+ exports.TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}'; // The "Types" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding
32
43
  function escapeForwardSlashes(s) {
33
44
  return _.isString(s)
34
45
  ? s.replace(/\//g, exports.TO_ASFF_TYPES_SLASH_REPLACEMENT)
35
46
  : JSON.stringify(s).replace(/\//g, exports.TO_ASFF_TYPES_SLASH_REPLACEMENT);
36
47
  }
37
- exports.escapeForwardSlashes = escapeForwardSlashes;
38
48
  class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter {
39
- constructor(hdfObj, options) {
40
- super(hdfObj);
41
- this.mappings = () => ({
42
- Findings: [
43
- {
44
- SchemaVersion: '2018-10-08',
45
- Id: { path: '', transformer: transformers_1.setupId, passParent: true },
46
- ProductArn: { path: '', transformer: transformers_1.setupProductARN, passParent: true },
47
- AwsAccountId: { path: '', transformer: transformers_1.setupAwsAcct, passParent: true },
48
- Types: {
49
- transformer: () => ['Software and Configuration Checks']
50
- },
51
- CreatedAt: { path: '', transformer: transformers_1.setupCreated },
52
- UpdatedAt: { path: '', transformer: transformers_1.setupUpdated, passParent: true },
53
- ...(this.ioptions.regionAttribute && {
54
- Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
55
- }),
56
- GeneratorId: {
57
- path: '',
58
- transformer: transformers_1.setupGeneratorId,
59
- passParent: true
60
- },
61
- Title: { path: '', transformer: transformers_1.setupTitle },
62
- Description: { path: '', transformer: transformers_1.setupDescr },
63
- FindingProviderFields: {
64
- Severity: {
65
- Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
66
- Original: { path: '', transformer: transformers_1.setupSevLabel, passParent: true }
67
- },
68
- Types: { path: '', transformer: transformers_1.setupFindingType, passParent: true }
69
- },
70
- Remediation: {
71
- Recommendation: {
72
- Text: { path: '', transformer: transformers_1.setupRemRec }
73
- }
74
- },
75
- ProductFields: {
76
- Check: { path: '', transformer: transformers_1.setupProdFieldCheck }
77
- },
49
+ mappings = () => ({
50
+ Findings: [
51
+ {
52
+ SchemaVersion: '2018-10-08',
53
+ Id: { path: '', transformer: transformers_1.setupId, passParent: true },
54
+ ProductArn: { path: '', transformer: transformers_1.setupProductARN, passParent: true },
55
+ AwsAccountId: { path: '', transformer: transformers_1.setupAwsAcct, passParent: true },
56
+ Types: {
57
+ transformer: () => ['Software and Configuration Checks']
58
+ },
59
+ CreatedAt: { path: '', transformer: transformers_1.setupCreated },
60
+ UpdatedAt: { path: '', transformer: transformers_1.setupUpdated, passParent: true },
61
+ ...(this.ioptions.regionAttribute && {
62
+ Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
63
+ }),
64
+ GeneratorId: {
65
+ path: '',
66
+ transformer: transformers_1.setupGeneratorId,
67
+ passParent: true
68
+ },
69
+ Title: { path: '', transformer: transformers_1.setupTitle },
70
+ Description: { path: '', transformer: transformers_1.setupDescr },
71
+ FindingProviderFields: {
78
72
  Severity: {
79
73
  Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
80
- Original: { path: '', transformer: transformers_1.setupSevOriginal }
74
+ Original: { path: '', transformer: transformers_1.setupSevLabel, passParent: true }
75
+ },
76
+ Types: { path: '', transformer: transformers_1.setupFindingType, passParent: true }
77
+ },
78
+ Remediation: {
79
+ Recommendation: {
80
+ Text: { path: '', transformer: transformers_1.setupRemRec }
81
+ }
82
+ },
83
+ ProductFields: {
84
+ Check: { path: '', transformer: transformers_1.setupProdFieldCheck }
85
+ },
86
+ Severity: {
87
+ Label: { path: '', transformer: transformers_1.setupSevLabel, passParent: true },
88
+ Original: { path: '', transformer: transformers_1.setupSevOriginal }
89
+ },
90
+ Resources: [
91
+ {
92
+ Type: 'AwsAccount',
93
+ Id: { path: '', transformer: transformers_1.setupResourcesID, passParent: true },
94
+ Partition: 'aws',
95
+ Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
81
96
  },
82
- Resources: [
83
- {
84
- Type: 'AwsAccount',
85
- Id: { path: '', transformer: transformers_1.setupResourcesID, passParent: true },
86
- Partition: 'aws',
87
- Region: { path: '', transformer: transformers_1.setupRegion, passParent: true }
88
- },
89
- {
90
- Id: { path: '', transformer: transformers_1.setupResourcesID2 },
91
- Type: 'AwsIamRole',
92
- Details: {
93
- AwsIamRole: {
94
- AssumeRolePolicyDocument: {
95
- path: '',
96
- transformer: transformers_1.setupDetailsAssume
97
- }
97
+ {
98
+ Id: { path: '', transformer: transformers_1.setupResourcesID2 },
99
+ Type: 'AwsIamRole',
100
+ Details: {
101
+ AwsIamRole: {
102
+ AssumeRolePolicyDocument: {
103
+ path: '',
104
+ transformer: transformers_1.setupDetailsAssume
98
105
  }
99
106
  }
100
107
  }
101
- ],
102
- Compliance: {
103
- RelatedRequirements: {
104
- transformer: () => [
105
- 'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'
106
- ]
107
- },
108
- Status: { path: '', transformer: transformers_1.setupControlStatus }
109
108
  }
109
+ ],
110
+ Compliance: {
111
+ RelatedRequirements: {
112
+ transformer: () => [
113
+ 'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'
114
+ ]
115
+ },
116
+ Status: { path: '', transformer: transformers_1.setupControlStatus }
110
117
  }
111
- ]
112
- });
113
- this.impactMapping = new Map([
114
- [0.9, 'CRITICAL'],
115
- [0.7, 'HIGH'],
116
- [0.5, 'MEDIUM'],
117
- [0.3, 'LOW'],
118
- [0.0, 'INFORMATIONAL']
119
- ]);
118
+ }
119
+ ]
120
+ });
121
+ contextProfiles;
122
+ counts;
123
+ ioptions;
124
+ index;
125
+ impactMapping = new Map([
126
+ [0.9, 'CRITICAL'],
127
+ [0.7, 'HIGH'],
128
+ [0.5, 'MEDIUM'],
129
+ [0.3, 'LOW'],
130
+ [0.0, 'INFORMATIONAL']
131
+ ]);
132
+ constructor(hdfObj, options) {
133
+ super(hdfObj);
120
134
  this.ioptions = options === undefined ? this.defaultOptions() : options;
121
135
  this.counts = (0, transformers_1.statusCount)((0, inspecjs_1.contextualizeEvaluation)(hdfObj));
122
136
  }
@@ -132,11 +146,13 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
132
146
  setMappings(customMappings) {
133
147
  super.setMappings(customMappings);
134
148
  }
149
+ // Security hub currently works at the sub-control level, meaning we need to create our mapped data based off control.results
135
150
  controlsToSegments() {
136
151
  const segments = [];
137
152
  this.data.profiles.forEach((profile) => {
138
153
  profile.controls.reverse().forEach((control) => {
139
154
  control.results.forEach((segment) => {
155
+ // Ensure that the UpdatedAt time is different across findings (to match the order in HDF)
140
156
  segments.push({
141
157
  ...control,
142
158
  result: segment,
@@ -147,10 +163,12 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
147
163
  });
148
164
  return segments;
149
165
  }
166
+ // Any ASFF value has to be less than 32768B - we're setting the max size to 30KB to have some buffer. Only enforcing this restriction in AssumeRolePolicyDocument and FindingProviderFields.Types for now.
150
167
  restrictionAttributesLessThan32KiB(finding) {
151
168
  const ATTRIBUTE_CHARACTER_LIMIT = 30000;
152
169
  if (finding.Resources.length > 1) {
153
170
  _.set(finding, 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument', _.get(finding, 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument', '').slice(0, ATTRIBUTE_CHARACTER_LIMIT));
171
+ // no need for truncation warning since AssumeRolePolicyDocument is only used to look nice in the GUI - FindingProviderFields.Types contains all the information
154
172
  }
155
173
  finding.FindingProviderFields.Types = finding.FindingProviderFields.Types
156
174
  .map((typeString) => {
@@ -159,11 +177,12 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
159
177
  }
160
178
  const [type, attribute, value] = typeString.split('/');
161
179
  return _.chunk(value, ATTRIBUTE_CHARACTER_LIMIT -
162
- (type.length + attribute.length + 2)).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);
180
+ (type.length + attribute.length + 2) /*the slashes*/).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);
163
181
  })
164
182
  .flat();
165
183
  return finding;
166
184
  }
185
+ // Findings have a maximum size of 240KB. To try to meet that requirement, SecHub automatically removes the Resource.Details object, but we don't put anything there so we gotta find space savings elsewhere: we can't remove anything from what'll show up nice in the GUI for the user since they need all that info to have a useable experience in SecHub, so instead we're going to remove the flattened HDF file that's in the FindingProviderFields.Types array starting from the least important stuff. We're setting the max size to 200KB since anything much more than that doesn't seem to actually show up in SecHub even if there are no errors reported on upload.
167
186
  restrictionFindingLessThan240KB(profileInfoFindingId, finding, numRemoved, numTruncated) {
168
187
  const SIZE_CAP = 200000;
169
188
  const originalSize = new TextEncoder().encode(JSON.stringify(finding)).length;
@@ -181,6 +200,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
181
200
  console.error('Warning: This was the informational entry that contains the scan/execution level information.');
182
201
  }
183
202
  if (finding.Id !== profileInfoFindingId) {
203
+ // metrics are only for non-profile info findings
184
204
  numRemoved++;
185
205
  }
186
206
  return [undefined, numRemoved, numTruncated];
@@ -195,6 +215,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
195
215
  }
196
216
  return [finding, numRemoved, numTruncated];
197
217
  }
218
+ // FindingProviderFields.Types has a maximum size of 50 attributes
198
219
  restrictionTypesArrayLengthLessThan50(profileInfoFindingId, finding, numTruncated) {
199
220
  const cutoff = finding.FindingProviderFields.Types.splice(50, finding.FindingProviderFields.Types.length - 50);
200
221
  if (cutoff.length > 0) {
@@ -207,6 +228,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
207
228
  }
208
229
  return [finding, numTruncated];
209
230
  }
231
+ // SecHub doesn't allow two types to have the same values; future iteration should find a way to work around this instead of just skipping it like we're going to do here (maybe add a number of {MAKE LINE DIFFERENT} block things at the end of an otherwise same line that'll get removed by the asff2hdf mapper similar to how we do the slash substitutions
210
232
  restrictionTypesArrayMustBeUnique(profileInfoFindingId, finding, numRemoved) {
211
233
  if (finding.FindingProviderFields.Types.length !==
212
234
  new Set(finding.FindingProviderFields.Types).size) {
@@ -222,6 +244,7 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
222
244
  }
223
245
  return [finding, numRemoved];
224
246
  }
247
+ // ASFF has several written and unwritten restrictions that cap how much information can be put into a finding
225
248
  restrictToSchemaSizes(resList) {
226
249
  const profileInfoFindingId = resList.slice(-1)[0].Id;
227
250
  let numRemoved = 0;
@@ -248,11 +271,14 @@ class FromHdfToAsffMapper extends reverse_base_converter_1.FromHdfBaseConverter
248
271
  }
249
272
  return restrictedResults;
250
273
  }
274
+ //Convert from HDF to ASFF
251
275
  toAsff() {
252
276
  if (this.mappings() === undefined) {
253
277
  throw new Error('Mappings must be provided');
254
278
  }
255
279
  else {
280
+ //Recursively transform the data into ASFF format
281
+ //Returns an array of the findings
256
282
  let resList = this.controlsToSegments().map((segment, index) => {
257
283
  this.index = index;
258
284
  return this.convertInternal(segment, this.mappings())['Findings'][0];
@@ -1 +1 @@
1
- {"version":3,"file":"reverse-asff-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/reverse-asff-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reverse-asff-mapper.js","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/reverse-asff-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {contextualizeEvaluation, ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {MappedTransform} from '../../base-converter';\nimport {FromHdfBaseConverter} from '../reverse-base-converter';\nimport {IExecJSONASFF, IFindingASFF, IOptions} from './asff-types';\nimport {\n createProfileInfoFinding,\n getAllLayers,\n setupAwsAcct,\n setupControlStatus,\n setupCreated,\n setupDescr,\n setupDetailsAssume,\n setupFindingType,\n setupGeneratorId,\n setupId,\n setupProdFieldCheck,\n setupProductARN,\n setupRegion,\n setupRemRec,\n setupResourcesID,\n setupResourcesID2,\n setupSevLabel,\n setupSevOriginal,\n setupTitle,\n setupUpdated,\n statusCount\n} from './transformers';\n\nexport const TO_ASFF_TYPES_SLASH_REPLACEMENT = '{{{SLASH}}}'; // The \"Types\" field of ASFF only supports a maximum of 2 slashes, and will get replaced with this text. Note that the default AWS CLI doesn't support UTF-8 encoding\n\nexport function escapeForwardSlashes<T>(s: T): T {\n return _.isString(s)\n ? (s.replace(/\\//g, TO_ASFF_TYPES_SLASH_REPLACEMENT) as unknown as T)\n : (JSON.stringify(s).replace(\n /\\//g,\n TO_ASFF_TYPES_SLASH_REPLACEMENT\n ) as unknown as T);\n}\n\nexport type SegmentedControl = ExecJSON.Control & {\n result: ExecJSON.ControlResult;\n layersOfControl: (ExecJSON.Control & {\n fix?: string;\n profileInfo?: Record<string, unknown>;\n })[];\n};\n\nexport interface ILookupPathASFF {\n path?: string;\n transformer?: (\n value: SegmentedControl,\n context?: FromHdfToAsffMapper\n ) => unknown;\n arrayTransformer?: (value: unknown[], file: ExecJSON.Execution) => unknown[];\n key?: string;\n passParent?: boolean;\n}\n\nexport class FromHdfToAsffMapper extends FromHdfBaseConverter {\n mappings: () => MappedTransform<IExecJSONASFF, ILookupPathASFF> = () => ({\n Findings: [\n {\n SchemaVersion: '2018-10-08',\n Id: {path: '', transformer: setupId, passParent: true},\n ProductArn: {path: '', transformer: setupProductARN, passParent: true},\n AwsAccountId: {path: '', transformer: setupAwsAcct, passParent: true},\n Types: {\n transformer: () => ['Software and Configuration Checks']\n },\n CreatedAt: {path: '', transformer: setupCreated},\n UpdatedAt: {path: '', transformer: setupUpdated, passParent: true},\n ...(this.ioptions.regionAttribute && {\n Region: {path: '', transformer: setupRegion, passParent: true}\n }),\n GeneratorId: {\n path: '',\n transformer: setupGeneratorId,\n passParent: true\n },\n Title: {path: '', transformer: setupTitle},\n Description: {path: '', transformer: setupDescr},\n FindingProviderFields: {\n Severity: {\n Label: {path: '', transformer: setupSevLabel, passParent: true},\n Original: {path: '', transformer: setupSevLabel, passParent: true}\n },\n Types: {path: '', transformer: setupFindingType, passParent: true}\n },\n Remediation: {\n Recommendation: {\n Text: {path: '', transformer: setupRemRec}\n }\n },\n ProductFields: {\n Check: {path: '', transformer: setupProdFieldCheck}\n },\n Severity: {\n Label: {path: '', transformer: setupSevLabel, passParent: true},\n Original: {path: '', transformer: setupSevOriginal}\n },\n Resources: [\n {\n Type: 'AwsAccount',\n Id: {path: '', transformer: setupResourcesID, passParent: true},\n Partition: 'aws',\n Region: {path: '', transformer: setupRegion, passParent: true}\n },\n {\n Id: {path: '', transformer: setupResourcesID2},\n Type: 'AwsIamRole',\n Details: {\n AwsIamRole: {\n AssumeRolePolicyDocument: {\n path: '',\n transformer: setupDetailsAssume\n }\n }\n }\n }\n ],\n Compliance: {\n RelatedRequirements: {\n transformer: () => [\n 'SEE REMEDIATION FIELD FOR RESULTS AND RECOMMENDED ACTION(S)'\n ]\n },\n Status: {path: '', transformer: setupControlStatus}\n }\n }\n ]\n });\n\n contextProfiles: any;\n counts: any;\n ioptions: IOptions;\n index?: number;\n\n impactMapping: Map<number, string> = new Map([\n [0.9, 'CRITICAL'],\n [0.7, 'HIGH'],\n [0.5, 'MEDIUM'],\n [0.3, 'LOW'],\n [0.0, 'INFORMATIONAL']\n ]);\n\n constructor(hdfObj: ExecJSON.Execution, options: IOptions | undefined) {\n super(hdfObj);\n this.ioptions = options === undefined ? this.defaultOptions() : options;\n this.counts = statusCount(contextualizeEvaluation(hdfObj));\n }\n\n defaultOptions(): IOptions {\n return {\n input: '',\n awsAccountId: '',\n target: 'default',\n region: '',\n regionAttribute: false\n };\n }\n\n setMappings(\n customMappings: MappedTransform<IExecJSONASFF, ILookupPathASFF>\n ): void {\n super.setMappings(customMappings);\n }\n\n // Security hub currently works at the sub-control level, meaning we need to create our mapped data based off control.results\n controlsToSegments() {\n const segments: SegmentedControl[] = [];\n this.data.profiles.forEach((profile) => {\n profile.controls.reverse().forEach((control) => {\n control.results.forEach((segment) => {\n // Ensure that the UpdatedAt time is different across findings (to match the order in HDF)\n segments.push({\n ...control,\n result: segment,\n layersOfControl: getAllLayers(this.data, control)\n });\n });\n });\n });\n\n return segments;\n }\n\n // Any ASFF value has to be less than 32768B - we're setting the max size to 30KB to have some buffer. Only enforcing this restriction in AssumeRolePolicyDocument and FindingProviderFields.Types for now.\n restrictionAttributesLessThan32KiB(finding: IFindingASFF): IFindingASFF {\n const ATTRIBUTE_CHARACTER_LIMIT = 30000;\n if (finding.Resources.length > 1) {\n _.set(\n finding,\n 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument',\n (\n _.get(\n finding,\n 'Resources[1].Details.AwsIamRole.AssumeRolePolicyDocument',\n ''\n ) as unknown as string\n ).slice(0, ATTRIBUTE_CHARACTER_LIMIT)\n );\n // no need for truncation warning since AssumeRolePolicyDocument is only used to look nice in the GUI - FindingProviderFields.Types contains all the information\n }\n finding.FindingProviderFields.Types = (\n finding.FindingProviderFields.Types as string[]\n )\n .map((typeString) => {\n if (typeString.length <= ATTRIBUTE_CHARACTER_LIMIT) {\n return typeString;\n }\n const [type, attribute, value] = typeString.split('/');\n return _.chunk(\n value,\n ATTRIBUTE_CHARACTER_LIMIT -\n (type.length + attribute.length + 2) /*the slashes*/\n ).map((chunk) => `${type}/${attribute}/${chunk.join('')}`);\n })\n .flat();\n return finding;\n }\n\n // Findings have a maximum size of 240KB. To try to meet that requirement, SecHub automatically removes the Resource.Details object, but we don't put anything there so we gotta find space savings elsewhere: we can't remove anything from what'll show up nice in the GUI for the user since they need all that info to have a useable experience in SecHub, so instead we're going to remove the flattened HDF file that's in the FindingProviderFields.Types array starting from the least important stuff. We're setting the max size to 200KB since anything much more than that doesn't seem to actually show up in SecHub even if there are no errors reported on upload.\n restrictionFindingLessThan240KB(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numRemoved: number,\n numTruncated: number\n ): [IFindingASFF | undefined, number, number] {\n const SIZE_CAP = 200000;\n const originalSize = new TextEncoder().encode(\n JSON.stringify(finding)\n ).length;\n let size = originalSize;\n let popped;\n while (\n size > SIZE_CAP &&\n (finding.FindingProviderFields.Types as string[]).length > 0\n ) {\n popped = (finding.FindingProviderFields.Types as string[]).pop();\n size = new TextEncoder().encode(JSON.stringify(finding)).length;\n }\n if (size > SIZE_CAP) {\n console.error(\n `Warning: Normalized entry could not be sufficiently reduced in size to meet AWS Security Hub requirements and so will not be provided in the results set. Entry could not be minimized more than as follows:\n ${finding}`\n );\n if (finding.Id === profileInfoFindingId) {\n console.error(\n 'Warning: This was the informational entry that contains the scan/execution level information.'\n );\n }\n if (finding.Id !== profileInfoFindingId) {\n // metrics are only for non-profile info findings\n numRemoved++;\n }\n return [undefined, numRemoved, numTruncated];\n }\n if (originalSize !== size) {\n (finding.FindingProviderFields.Types as string[]).push(\n new TextDecoder().decode(\n new TextEncoder().encode(popped).subarray(0, SIZE_CAP - size)\n )\n );\n (finding.FindingProviderFields.Types as string[]).push(\n 'HDF2ASFF-converter/warning/Not all information was captured in this entry. Please consult the original file for all of the information.'\n );\n console.error(\n `Warning: Normalized entry was truncated in size to meet AWS Security Hub requirements. Entry id: ${finding.Id}`\n );\n if (finding.Id !== profileInfoFindingId) {\n numTruncated++;\n }\n }\n return [finding, numRemoved, numTruncated];\n }\n\n // FindingProviderFields.Types has a maximum size of 50 attributes\n restrictionTypesArrayLengthLessThan50(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numTruncated: number\n ): [IFindingASFF, number] {\n const cutoff = (finding.FindingProviderFields.Types as string[]).splice(\n 50,\n (finding.FindingProviderFields.Types as string[]).length - 50\n );\n if (cutoff.length > 0) {\n (finding.FindingProviderFields.Types as string[]).pop();\n (finding.FindingProviderFields.Types as string[]).push(\n `HDF2ASFF-converter/warning/Not all information was captured in this entry. Please consult the original file for all of the information.`\n );\n console.error(\n `Warning: Normalized entry was truncated in size to meet AWS Security Hub requirements. Entry id: ${finding.Id}`\n );\n if (finding.Id !== profileInfoFindingId) {\n numTruncated++;\n }\n }\n return [finding, numTruncated];\n }\n\n // SecHub doesn't allow two types to have the same values; future iteration should find a way to work around this instead of just skipping it like we're going to do here (maybe add a number of {MAKE LINE DIFFERENT} block things at the end of an otherwise same line that'll get removed by the asff2hdf mapper similar to how we do the slash substitutions\n restrictionTypesArrayMustBeUnique(\n profileInfoFindingId: string,\n finding: IFindingASFF,\n numRemoved: number\n ): [IFindingASFF | undefined, number] {\n if (\n (finding.FindingProviderFields.Types as string[]).length !==\n new Set(finding.FindingProviderFields.Types as string[]).size\n ) {\n console.error(\n `Warning: Normalized entry contained data that is duplicated (i.e. a subsection of a string by happenstance has the same values) which means this entry does not meet AWS Security Hub requirements and so will not be provided in the results set. Entry that contains duplicate data is as follows:\n ${finding}`\n );\n if (finding.Id === profileInfoFindingId) {\n console.error(\n 'Warning: This was the informational entry that contains the scan/execution level information.'\n );\n }\n if (finding.Id !== profileInfoFindingId) {\n numRemoved++;\n }\n return [undefined, numRemoved];\n }\n return [finding, numRemoved];\n }\n\n // ASFF has several written and unwritten restrictions that cap how much information can be put into a finding\n restrictToSchemaSizes(resList: IFindingASFF[]): IFindingASFF[] {\n const profileInfoFindingId = resList.slice(-1)[0].Id;\n let numRemoved = 0;\n let numTruncated = 0;\n const restrictedResults: IFindingASFF[] = [];\n for (const f of resList) {\n let finding: IFindingASFF | undefined = f;\n finding = this.restrictionAttributesLessThan32KiB(finding);\n [finding, numRemoved, numTruncated] =\n this.restrictionFindingLessThan240KB(\n profileInfoFindingId,\n finding,\n numRemoved,\n numTruncated\n );\n if (!finding) {\n continue;\n }\n [finding, numTruncated] = this.restrictionTypesArrayLengthLessThan50(\n profileInfoFindingId,\n finding,\n numTruncated\n );\n [finding, numRemoved] = this.restrictionTypesArrayMustBeUnique(\n profileInfoFindingId,\n finding,\n numRemoved\n );\n if (!finding) {\n continue;\n }\n restrictedResults.push(finding);\n }\n\n if (\n (numRemoved > 0 || numTruncated > 0) &&\n restrictedResults.slice(-1)[0].Id === profileInfoFindingId\n ) {\n restrictedResults.slice(-1)[0].Description = `${\n restrictedResults.slice(-1)[0].Description\n } ---- MITRE SAF HDF2ASFF converter warnings -- Entries truncated: ${numTruncated} (Truncated to fit AWS Security Hub restrictions) --- Entries removed: ${numRemoved} (Could not fit due to AWS Security Hub restrictions)`;\n }\n\n return restrictedResults;\n }\n\n //Convert from HDF to ASFF\n toAsff(): IFindingASFF[] {\n if (this.mappings() === undefined) {\n throw new Error('Mappings must be provided');\n } else {\n //Recursively transform the data into ASFF format\n //Returns an array of the findings\n let resList: IFindingASFF[] = this.controlsToSegments().map(\n (segment, index) => {\n this.index = index;\n return this.convertInternal(segment, this.mappings())[\n 'Findings'\n ][0] as IFindingASFF;\n }\n );\n resList.push(createProfileInfoFinding(this.data, this.ioptions));\n\n resList = this.restrictToSchemaSizes(resList);\n\n return resList;\n }\n }\n}\n"]}
@@ -41,3 +41,4 @@ export declare function setupResourcesID2(control: SegmentedControl): string;
41
41
  export declare function setupDetailsAssume(control: SegmentedControl): string;
42
42
  export declare function setupControlStatus(control: SegmentedControl): string;
43
43
  export {};
44
+ //# sourceMappingURL=transformers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transformers.d.ts","sourceRoot":"","sources":["../../../../src/converters-from-hdf/asff/transformers.ts"],"names":[],"mappings":"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"}