@mitre/hdf-converters 2.12.6 → 2.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 +19 -40
  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 +274 -237
  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 +21 -10
  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 +29 -7
  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 +46 -26
  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 +38 -4
  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 +262 -151
  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 +32 -15
  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 +68 -38
  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 +54 -28
  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 +39 -14
  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 +32 -10
  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 +368 -294
  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 +4 -0
  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 +18 -7
  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 +120 -117
  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 +525 -271
  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 +69 -12
  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 +34 -15
  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 -31
  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 +19 -40
  369. package/lib/data/converters/csv2json.ts +0 -36
  370. package/lib/data/converters/xml2json.ts +0 -57
@@ -1 +1 @@
1
- {"version":3,"file":"case-prowler.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-prowler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAqC;AACrC,0CAA4B;AAE5B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AAEvB,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,IAAA,sBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAsB,CAAC;IACvE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,IAAA,sBAAM,EAAC,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAClB,QAA6D;IAE7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,OAAO,IAAA,sBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,CAAW,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,QAAQ,CACf,WAAiE;IAEjE,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,SAAS,IAAI;IACX,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAC,CAAC;AACtD,CAAC;AAGD,SAAgB,UAAU;IACxB,OAAO;QACL,mBAAmB;QACnB,SAAS;QACT,WAAW;QACX,IAAI;QACJ,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC;AATD,gCASC"}
1
+ {"version":3,"file":"case-prowler.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-prowler.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiCA,gCASC;AA1CD,iDAAqC;AACrC,0CAA4B;AAE5B,MAAM,IAAI,GAAG,GAAG,EAAE,CAAC,GAAG,CAAC;AAEvB,SAAS,mBAAmB,CAAC,OAAgB;IAC3C,OAAO,IAAA,sBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAsB,CAAC;IACvE,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC7C,OAAO,IAAA,sBAAM,EAAC,WAAW,CAAC,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED,SAAS,WAAW,CAClB,QAA6D;IAE7D,MAAM,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACjE,OAAO,IAAA,sBAAM,EAAC,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,4BAA4B,CAAW,CAAC,CAAC;AACxE,CAAC;AAED,SAAS,QAAQ,CACf,WAAiE;IAEjE,OAAO,GAAG,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC;AAC/C,CAAC;AAED,SAAS,IAAI;IACX,OAAO,EAAC,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,kBAAkB,EAAC,CAAC;AACtD,CAAC;AAED,wDAAwD;AACxD,SAAgB,UAAU;IACxB,OAAO;QACL,mBAAmB;QACnB,SAAS;QACT,WAAW;QACX,IAAI;QACJ,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC","sourcesContent":["import {encode} from 'html-entities';\nimport * as _ from 'lodash';\n\nconst desc = () => ' ';\n\nfunction subfindingsCodeDesc(finding: unknown) {\n return encode(_.get(finding, 'Description'));\n}\n\nfunction findingId(finding: unknown) {\n const generatorId = _.get(finding, 'GeneratorId') as unknown as string;\n const hyphenIndex = generatorId.indexOf('-');\n return encode(generatorId.slice(hyphenIndex + 1));\n}\n\nfunction productName(\n findings: Record<string, unknown> | Record<string, unknown>[]\n) {\n const finding = Array.isArray(findings) ? findings[0] : findings;\n return encode(_.get(finding, 'ProductFields.ProviderName') as string);\n}\n\nfunction filename(\n findingInfo: [Record<string, unknown>, Record<string, unknown>[]]\n) {\n return `${productName(findingInfo[1])}.json`;\n}\n\nfunction meta(): Record<string, string> {\n return {name: 'Prowler', title: 'Prowler Findings'};\n}\n\n// eslint-disable-next-line @typescript-eslint/ban-types\nexport function getProwler(): Record<string, (...inputs: any) => any> {\n return {\n subfindingsCodeDesc,\n findingId,\n productName,\n desc,\n filename,\n meta\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export declare function getSecurityHub(): Record<string, (...inputs: any) => any>;
2
+ //# sourceMappingURL=case-security-hub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-security-hub.d.ts","sourceRoot":"","sources":["../../../src/asff-mapper/case-security-hub.ts"],"names":[],"mappings":"AAsKA,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAUxE"}
@@ -15,15 +15,25 @@ 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.getSecurityHub = void 0;
36
+ exports.getSecurityHub = getSecurityHub;
27
37
  const html_entities_1 = require("html-entities");
28
38
  const _ = __importStar(require("lodash"));
29
39
  const AwsConfigMapping_1 = require("../mappings/AwsConfigMapping");
@@ -60,9 +70,11 @@ function findingId(finding, { controls = null }) {
60
70
  return (0, html_entities_1.encode)(_.get(control, 'ControlId'));
61
71
  }
62
72
  else if (_.has(finding, 'ProductFields.ControlId')) {
73
+ // AWS Standards
63
74
  return _.get(finding, 'ProductFields.ControlId');
64
75
  }
65
76
  else if (_.has(finding, 'ProductFields.RuleId')) {
77
+ // CIS
66
78
  return (0, html_entities_1.encode)(_.get(finding, 'ProductFields.RuleId'));
67
79
  }
68
80
  else {
@@ -79,9 +91,11 @@ function findingImpact(finding, { controls = null }) {
79
91
  impact = _.get(control, 'SeverityRating');
80
92
  }
81
93
  else {
94
+ // severity is required, but must include either 'label' or 'normalized' internally with 'label' being preferred. other values can be in here too such as the original severity rating.
82
95
  impact =
83
96
  _.get(finding, 'Severity.Label') ||
84
97
  _.get(finding, 'Severity.Normalized') / 100.0;
98
+ // securityhub asff file does not contain accurate severity information by setting things that shouldn't be informational to informational: when additional context, i.e. standards, is not provided, set informational to medium.
85
99
  if (typeof impact === 'string' && impact === 'INFORMATIONAL') {
86
100
  impact = 'MEDIUM';
87
101
  }
@@ -109,6 +123,8 @@ function findingTitle(finding, { controls = null }) {
109
123
  }
110
124
  function productName(findings) {
111
125
  const finding = Array.isArray(findings) ? findings[0] : findings;
126
+ // `${_.get(findings[0], 'ProductFields.aws/securityhub/CompanyName')} ${_.get(findings[0], 'ProductFields.aws/securityhub/ProductName')}`
127
+ // not using above due to wanting to provide the standard's name instead
112
128
  let standardName;
113
129
  if (_.get(finding, 'Types[0]')
114
130
  .split('/')
@@ -154,5 +170,4 @@ function getSecurityHub() {
154
170
  filename
155
171
  };
156
172
  }
157
- exports.getSecurityHub = getSecurityHub;
158
173
  //# sourceMappingURL=case-security-hub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"case-security-hub.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-security-hub.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"case-security-hub.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-security-hub.ts"],"names":[],"mappings":"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","sourcesContent":["import {encode} from 'html-entities';\nimport * as _ from 'lodash';\nimport {AwsConfigMapping} from '../mappings/AwsConfigMapping';\nconst FINDING_STANDARDS_CONTROL_ARN = 'ProductFields.StandardsControlArn';\n\nfunction correspondingControl(controls: unknown[], finding: unknown) {\n return controls.find(\n (control) =>\n _.get(control, 'StandardsControlArn') ===\n _.get(finding, FINDING_STANDARDS_CONTROL_ARN)\n );\n}\n\nfunction securityhubSupportingDocs(standards: string[] | undefined) {\n let controls: null | unknown[];\n try {\n if (Array.isArray(standards)) {\n controls = standards\n .map((standard) => _.get(JSON.parse(standard), 'Controls'))\n .flat();\n } else {\n controls = null;\n }\n } catch (error) {\n throw new Error(\n `Invalid supporting docs for Security Hub:\\nException: ${error}`\n );\n }\n const AWS_CONFIG_MAPPING = new AwsConfigMapping();\n return {\n controls,\n awsConfigMapping: AWS_CONFIG_MAPPING\n };\n}\n\nfunction findingId(\n finding: unknown,\n {controls = null}: {controls: unknown[] | null}\n) {\n let control;\n if (\n controls !== null &&\n (control = correspondingControl(controls, finding)) !== null\n ) {\n return encode(_.get(control, 'ControlId'));\n } else if (_.has(finding, 'ProductFields.ControlId')) {\n // AWS Standards\n return _.get(finding, 'ProductFields.ControlId');\n } else if (_.has(finding, 'ProductFields.RuleId')) {\n // CIS\n return encode(_.get(finding, 'ProductFields.RuleId'));\n } else {\n return encode(\n (_.get(finding, 'GeneratorId') as unknown as string)\n .split('/')\n .slice(-1)[0]\n );\n }\n}\n\nfunction findingImpact(\n finding: unknown,\n {controls = null}: {controls: unknown[] | null}\n) {\n let impact: string | number;\n let control;\n if (\n controls !== null &&\n (control = correspondingControl(controls, finding)) !== null\n ) {\n impact = _.get(control, 'SeverityRating') as unknown as string;\n } else {\n // severity is required, but must include either 'label' or 'normalized' internally with 'label' being preferred. other values can be in here too such as the original severity rating.\n impact =\n _.get(finding, 'Severity.Label') ||\n (_.get(finding, 'Severity.Normalized') as unknown as number) / 100.0;\n // securityhub asff file does not contain accurate severity information by setting things that shouldn't be informational to informational: when additional context, i.e. standards, is not provided, set informational to medium.\n if (typeof impact === 'string' && impact === 'INFORMATIONAL') {\n impact = 'MEDIUM';\n }\n }\n return impact;\n}\n\nfunction findingNistTag(\n finding: unknown,\n {awsConfigMapping}: {awsConfigMapping: AwsConfigMapping}\n) {\n if (\n _.get(finding, 'ProductFields.RelatedAWSResources:0/type') !==\n 'AWS::Config::ConfigRule'\n ) {\n return [];\n }\n return awsConfigMapping.searchNIST([\n _.get(\n finding,\n 'ProductFields.RelatedAWSResources:0/name'\n ) as unknown as string\n ]);\n}\n\nfunction findingTitle(\n finding: unknown,\n {controls = null}: {controls: unknown[] | null}\n) {\n let control;\n if (\n controls !== null &&\n (control = correspondingControl(controls, finding)) !== null\n ) {\n return encode(_.get(control, 'Title'));\n } else {\n return encode(_.get(finding, 'Title'));\n }\n}\n\nfunction productName(\n findings: Record<string, unknown> | Record<string, unknown>[]\n) {\n const finding = Array.isArray(findings) ? findings[0] : findings;\n // `${_.get(findings[0], 'ProductFields.aws/securityhub/CompanyName')} ${_.get(findings[0], 'ProductFields.aws/securityhub/ProductName')}`\n // not using above due to wanting to provide the standard's name instead\n let standardName: string;\n if (\n (_.get(finding, 'Types[0]') as string)\n .split('/')\n .slice(-1)[0]\n .replace(/-/gi, ' ')\n .toLowerCase() ===\n (_.get(finding, FINDING_STANDARDS_CONTROL_ARN) as string)\n .split('/')\n .slice(-4)[0]\n .replace(/-/gi, ' ')\n .toLowerCase()\n ) {\n standardName = (_.get(finding, 'Types[0]') as string)\n .split('/')\n .slice(-1)[0]\n .replace(/-/gi, ' ');\n } else {\n standardName = (_.get(finding, FINDING_STANDARDS_CONTROL_ARN) as string)\n .split('/')\n .slice(-4)[0]\n .replace(/-/gi, ' ')\n .split(/\\s+/)\n .map((element: string) => {\n return element.charAt(0).toUpperCase() + element.slice(1);\n })\n .join(' ');\n }\n return encode(\n `${standardName} v${\n (_.get(finding, FINDING_STANDARDS_CONTROL_ARN) as string)\n .split('/')\n .slice(-2)[0]\n }`\n );\n}\n\nfunction filename(\n findingInfo: [Record<string, unknown>, Record<string, unknown>[]]\n) {\n return `${productName(findingInfo[0])}.json`;\n}\n\nexport function getSecurityHub(): Record<string, (...inputs: any) => any> {\n return {\n securityhubSupportingDocs,\n findingId,\n findingImpact,\n findingNistTag,\n findingTitle,\n productName,\n filename\n };\n}\n"]}
@@ -1 +1,2 @@
1
1
  export declare function getTrivy(): Record<string, (...inputs: any) => any>;
2
+ //# sourceMappingURL=case-trivy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"case-trivy.d.ts","sourceRoot":"","sources":["../../../src/asff-mapper/case-trivy.ts"],"names":[],"mappings":"AAoEA,wBAAgB,QAAQ,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,MAAM,EAAE,GAAG,KAAK,GAAG,CAAC,CAWlE"}
@@ -15,15 +15,25 @@ 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.getTrivy = void 0;
36
+ exports.getTrivy = getTrivy;
27
37
  const html_entities_1 = require("html-entities");
28
38
  const inspecjs_1 = require("inspecjs");
29
39
  const _ = __importStar(require("lodash"));
@@ -88,5 +98,4 @@ function getTrivy() {
88
98
  meta
89
99
  };
90
100
  }
91
- exports.getTrivy = getTrivy;
92
101
  //# sourceMappingURL=case-trivy.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"case-trivy.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-trivy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,iDAAqC;AACrC,uCAAkC;AAClC,0CAA4B;AAC5B,4CAAqE;AAErE,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,IAAA,sBAAM,EAAC,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC;KAC1C;SAAM;QACL,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAA,sBAAM,EAAC,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;KACvC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,OAAO,6CAAoC,CAAC;KAC7C;SAAM;QACL,OAAO,EAAE,CAAC;KACX;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,mBAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QAC7B,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAC1B,OAAO,EACP,4CAA4C,CACxB,CAAC;QACvB,MAAM,qBAAqB,GACzB,cAAc,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,kDAAkD,cAAc,GAAG,CAAC;QAC1E,OAAO,eAAe,CAAC,CAAC,GAAG,CACzB,OAAO,EACP,oCAAoC,CACrC,8CAA8C,CAAC,CAAC,GAAG,CAClD,OAAO,EACP,8CAA8C,CAC/C,MAAM,qBAAqB,EAAE,CAAC;KAChC;SAAM;QACL,OAAO,SAAS,CAAC;KAClB;AACH,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,IAAI;IACX,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAAC;AAClD,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO;QACL,SAAS;QACT,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC;AAXD,4BAWC"}
1
+ {"version":3,"file":"case-trivy.js","sourceRoot":"","sources":["../../../src/asff-mapper/case-trivy.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAoEA,4BAWC;AA/ED,iDAAqC;AACrC,uCAAkC;AAClC,0CAA4B;AAC5B,4CAAqE;AAErE,SAAS,SAAS,CAAC,OAAgB;IACjC,MAAM,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IAClD,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,IAAA,sBAAM,EAAC,GAAG,WAAW,IAAI,KAAK,EAAE,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;QAChC,OAAO,IAAA,sBAAM,EAAC,GAAG,WAAW,IAAI,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;AACH,CAAC;AAED,SAAS,cAAc,CAAC,OAAgB;IACtC,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,6CAAoC,CAAC;IAC9C,CAAC;SAAM,CAAC;QACN,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,iBAAiB;IACxB,OAAO,mBAAQ,CAAC,mBAAmB,CAAC,MAAM,CAAC;AAC7C,CAAC;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,GAAG,CAAC,OAAO,EAAE,mCAAmC,CAAC,CAAC;IAClE,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,cAAc,GAAG,CAAC,CAAC,GAAG,CAC1B,OAAO,EACP,4CAA4C,CACxB,CAAC;QACvB,MAAM,qBAAqB,GACzB,cAAc,CAAC,MAAM,KAAK,CAAC;YACzB,CAAC,CAAC,6CAA6C;YAC/C,CAAC,CAAC,kDAAkD,cAAc,GAAG,CAAC;QAC1E,OAAO,eAAe,CAAC,CAAC,GAAG,CACzB,OAAO,EACP,oCAAoC,CACrC,8CAA8C,CAAC,CAAC,GAAG,CAClD,OAAO,EACP,8CAA8C,CAC/C,MAAM,qBAAqB,EAAE,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,OAAO,SAAS,CAAC;IACnB,CAAC;AACH,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,uBAAuB,CAAC;AACjC,CAAC;AAED,SAAS,WAAW;IAClB,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,SAAS,QAAQ;IACf,OAAO,GAAG,WAAW,EAAE,OAAO,CAAC;AACjC,CAAC;AAED,SAAS,IAAI;IACX,OAAO,EAAC,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,gBAAgB,EAAC,CAAC;AAClD,CAAC;AAED,SAAgB,QAAQ;IACtB,OAAO;QACL,SAAS;QACT,cAAc;QACd,iBAAiB;QACjB,kBAAkB;QAClB,WAAW;QACX,WAAW;QACX,QAAQ;QACR,IAAI;KACL,CAAC;AACJ,CAAC","sourcesContent":["import {encode} from 'html-entities';\nimport {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {DEFAULT_UPDATE_REMEDIATION_NIST_TAGS} from '../utils/global';\n\nfunction findingId(finding: unknown): string {\n const generatorId = _.get(finding, 'GeneratorId');\n const cveId = _.get(finding, 'Resources[0].Details.Other.CVE ID');\n if (typeof cveId === 'string') {\n return encode(`${generatorId}/${cveId}`);\n } else {\n const id = _.get(finding, 'Id');\n return encode(`${generatorId}/${id}`);\n }\n}\n\nfunction findingNistTag(finding: unknown): string[] {\n const cveId = _.get(finding, 'Resources[0].Details.Other.CVE ID');\n if (typeof cveId === 'string') {\n return DEFAULT_UPDATE_REMEDIATION_NIST_TAGS;\n } else {\n return [];\n }\n}\n\nfunction subfindingsStatus(): ExecJSON.ControlResultStatus {\n return ExecJSON.ControlResultStatus.Failed;\n}\n\nfunction subfindingsMessage(finding: unknown): string | undefined {\n const cveId = _.get(finding, 'Resources[0].Details.Other.CVE ID');\n if (typeof cveId === 'string') {\n const patchedPackage = _.get(\n finding,\n 'Resources[0].Details.Other.Patched Package'\n ) as unknown as string;\n const patchedVersionMessage =\n patchedPackage.length === 0\n ? 'There is no patched version of the package.'\n : `The package has been patched since version(s): ${patchedPackage}.`;\n return `For package ${_.get(\n finding,\n 'Resources[0].Details.Other.PkgName'\n )}, the current version that is installed is ${_.get(\n finding,\n 'Resources[0].Details.Other.Installed Package'\n )}. ${patchedVersionMessage}`;\n } else {\n return undefined;\n }\n}\n\nfunction productName() {\n return 'Aqua Security - Trivy';\n}\n\nfunction titlePrefix() {\n return '';\n}\n\nfunction filename() {\n return `${productName()}.json`;\n}\n\nfunction meta() {\n return {name: 'Trivy', title: 'Trivy Findings'};\n}\n\nexport function getTrivy(): Record<string, (...inputs: any) => any> {\n return {\n findingId,\n findingNistTag,\n subfindingsStatus,\n subfindingsMessage,\n titlePrefix,\n productName,\n filename,\n meta\n };\n}\n"]}
@@ -24,3 +24,4 @@ export declare class AwsConfigMapper {
24
24
  private getImpact;
25
25
  toHdf(): Promise<ExecJSON.Execution>;
26
26
  }
27
+ //# sourceMappingURL=aws-config-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aws-config-mapper.d.ts","sourceRoot":"","sources":["../../src/aws-config-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,UAAU,EACV,aAAa,EACb,yBAAyB,EAK1B,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAalC,qBAAa,eAAe;IAC1B,aAAa,EAAE,aAAa,CAAC;IAC7B,MAAM,EAAE,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;IAC9B,OAAO,EAAE,QAAQ,CAAC,aAAa,EAAE,EAAE,CAAC;gBAElC,OAAO,EAAE,yBAAyB,EAClC,qBAAqB,UAAO,EAC5B,WAAW,CAAC,EAAE,MAAM;IAkBtB,OAAO,CAAC,KAAK;YAIC,iBAAiB;YA0BjB,iBAAiB;YAOjB,UAAU;YAkFV,4BAA4B;YA0B5B,2BAA2B;IAmDzC,OAAO,CAAC,WAAW;IAgBnB,OAAO,CAAC,UAAU;IAclB,OAAO,CAAC,SAAS;IAUjB,OAAO,CAAC,UAAU;YAcJ,sBAAsB;IAuBpC,OAAO,CAAC,OAAO;IAkBf,OAAO,CAAC,SAAS;IAqBjB,OAAO,CAAC,eAAe;IASvB,OAAO,CAAC,YAAY;YASN,WAAW;IAwBzB,OAAO,CAAC,SAAS;IAQJ,KAAK,IAAI,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAC;CAkClD"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (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
  var __importDefault = (this && this.__importDefault) || function (mod) {
26
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
27
37
  };
@@ -39,12 +49,17 @@ const INSUFFICIENT_DATA_MSG = 'Not enough data has been collected to determine c
39
49
  const NAME = 'AWS Config';
40
50
  const AWS_CONFIG_MAPPING = new AwsConfigMapping_1.AwsConfigMapping();
41
51
  class AwsConfigMapper {
52
+ configService;
53
+ issues;
54
+ results;
42
55
  constructor(options, verifySSLCertificates = true, certificate) {
43
56
  const clientOptions = {
44
57
  ...options,
45
58
  requestHandler: new node_http_handler_1.NodeHttpHandler({
46
59
  httpsAgent: new https_1.default.Agent({
60
+ // Disable HTTPS verification if requested
47
61
  rejectUnauthorized: verifySSLCertificates,
62
+ // Pass an SSL certificate to trust
48
63
  ca: certificate
49
64
  })
50
65
  })
@@ -169,8 +184,11 @@ class AwsConfigMapper {
169
184
  }));
170
185
  }
171
186
  async extractResourceNamesFromIds(evaluationResults) {
187
+ // Map of resource types to resource IDs {resourceType: ResourceId[]}
172
188
  const resourceMap = {};
189
+ // Map of resource IDs to resource names
173
190
  const resolvedResourcesMap = {};
191
+ // Extract resource Ids
174
192
  evaluationResults.forEach((result) => {
175
193
  const resourceType = client_config_service_1.ResourceType[_.get(result, 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceType')];
176
194
  const resourceId = _.get(result, 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId');
@@ -184,6 +202,7 @@ class AwsConfigMapper {
184
202
  resourceMap[resourceType] = [resourceId];
185
203
  }
186
204
  });
205
+ // Resolve resource names from AWS
187
206
  let resourceType;
188
207
  for (resourceType in resourceMap) {
189
208
  const resourceIDSlices = _.chunk(resourceMap[resourceType], 20);
@@ -245,6 +264,7 @@ class AwsConfigMapper {
245
264
  }
246
265
  async fetchAllComplianceInfo(configRules) {
247
266
  const complianceResults = [];
267
+ // Should slice config rules into arrays of max size: 25 and make one request for each slice
248
268
  const configRuleSlices = _.chunk(configRules, 25);
249
269
  for (const slice of configRuleSlices) {
250
270
  await this.delay(150);
@@ -260,6 +280,7 @@ class AwsConfigMapper {
260
280
  }
261
281
  return complianceResults;
262
282
  }
283
+ // eslint-disable-next-line @typescript-eslint/ban-types
263
284
  hdfTags(configRule) {
264
285
  let result = {};
265
286
  const sourceIdentifier = configRule.Source?.SourceIdentifier;
@@ -344,6 +365,7 @@ class AwsConfigMapper {
344
365
  },
345
366
  version: package_json_1.version,
346
367
  statistics: {
368
+ //aws_config_sdk_version: ConfigService., // How do i get the sdk version?
347
369
  duration: null
348
370
  },
349
371
  profiles: [
@@ -1 +1 @@
1
- {"version":3,"file":"aws-config-mapper.js","sourceRoot":"","sources":["../../src/aws-config-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"aws-config-mapper.js","sourceRoot":"","sources":["../../src/aws-config-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ComplianceByConfigRule,\n ConfigRule,\n ConfigService,\n ConfigServiceClientConfig,\n DescribeConfigRulesCommandInput,\n DescribeConfigRulesResponse,\n EvaluationResult,\n ResourceType\n} from '@aws-sdk/client-config-service';\nimport {NodeHttpHandler} from '@smithy/node-http-handler';\nimport https from 'https';\nimport {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {AwsConfigMapping} from './mappings/AwsConfigMapping';\n\nconst NOT_APPLICABLE_MSG =\n 'No AWS resources found to evaluate compliance for this rule';\nconst INSUFFICIENT_DATA_MSG =\n 'Not enough data has been collected to determine compliance yet.';\nconst NAME = 'AWS Config';\n\nconst AWS_CONFIG_MAPPING = new AwsConfigMapping();\n\nexport class AwsConfigMapper {\n configService: ConfigService;\n issues: Promise<ConfigRule[]>;\n results: ExecJSON.ControlResult[][];\n constructor(\n options: ConfigServiceClientConfig,\n verifySSLCertificates = true,\n certificate?: string\n ) {\n const clientOptions: ConfigServiceClientConfig = {\n ...options,\n requestHandler: new NodeHttpHandler({\n httpsAgent: new https.Agent({\n // Disable HTTPS verification if requested\n rejectUnauthorized: verifySSLCertificates,\n // Pass an SSL certificate to trust\n ca: certificate\n })\n })\n };\n this.configService = new ConfigService(clientOptions);\n this.results = [];\n this.issues = this.getAllConfigRules();\n }\n\n private delay(ms: number): Promise<void> {\n return new Promise((resolve) => setTimeout(resolve, ms));\n }\n\n private async getAllConfigRules(): Promise<ConfigRule[]> {\n let params: DescribeConfigRulesCommandInput = {\n ConfigRuleNames: [],\n NextToken: ''\n };\n const configRules: ConfigRule[] = [];\n let response = await this.getConfigRulePage(params);\n if (response.ConfigRules === undefined) {\n throw new Error('No data was returned');\n } else {\n while (response !== undefined && response.ConfigRules !== undefined) {\n response.ConfigRules.forEach((rule) => {\n configRules.push(rule);\n });\n if (response.NextToken) {\n params = _.set(params, 'NextToken', response.NextToken);\n } else {\n break;\n }\n response = await this.getConfigRulePage(params);\n }\n }\n this.results = await this.getResults(configRules);\n return configRules;\n }\n\n private async getConfigRulePage(\n params: DescribeConfigRulesCommandInput\n ): Promise<DescribeConfigRulesResponse> {\n await this.delay(150);\n return this.configService.describeConfigRules(params);\n }\n\n private async getResults(\n configRules: ConfigRule[]\n ): Promise<ExecJSON.ControlResult[][]> {\n const complianceResults: ComplianceByConfigRule[] =\n await this.fetchAllComplianceInfo(configRules);\n const ruleData: ExecJSON.ControlResult[][] = [];\n const allRulesResolved: EvaluationResult[] = [];\n for (const configRule of configRules) {\n const result: ExecJSON.ControlResult[] = [];\n let params = {\n ConfigRuleName: configRule.ConfigRuleName || '',\n Limit: 100\n };\n await this.delay(150);\n let response =\n await this.configService.getComplianceDetailsByConfigRule(params);\n let ruleResults = response.EvaluationResults || [];\n allRulesResolved.push(...ruleResults);\n while (response.NextToken !== undefined) {\n params = _.set(params, 'NextToken', response.NextToken);\n await this.delay(150);\n response =\n await this.configService.getComplianceDetailsByConfigRule(params);\n ruleResults = ruleResults?.concat(response.EvaluationResults || []);\n allRulesResolved.push(...ruleResults);\n }\n ruleResults.forEach((evaluation) => {\n const hdfResult: ExecJSON.ControlResult = {\n code_desc: this.getCodeDesc(evaluation),\n start_time: evaluation.ConfigRuleInvokedTime?.toISOString() || '',\n run_time: this.getRunTime(evaluation),\n status: this.getStatus(evaluation),\n message: this.getMessage(\n evaluation,\n this.getCodeDesc(evaluation),\n this.getStatus(evaluation)\n )\n };\n result.push(hdfResult);\n const currentDate: string = new Date().toISOString();\n if (result.length === 0) {\n switch (\n complianceResults.find(\n (complianceResult) =>\n complianceResult.ConfigRuleName === configRule.ConfigRuleName\n )?.Compliance?.ComplianceType\n ) {\n case 'NOT_APPLICABLE':\n return [\n {\n run_time: 0,\n code_desc: NOT_APPLICABLE_MSG,\n skip_message: NOT_APPLICABLE_MSG,\n start_time: currentDate,\n status: ExecJSON.ControlResultStatus.Skipped\n }\n ];\n case 'INSUFFICIENT_DATA':\n return [\n {\n run_time: 0,\n code_desc: INSUFFICIENT_DATA_MSG,\n skip_message: INSUFFICIENT_DATA_MSG,\n start_time: currentDate,\n status: ExecJSON.ControlResultStatus.Skipped\n }\n ];\n default:\n return [];\n }\n } else {\n return ruleData.push(result);\n }\n });\n }\n\n return this.appendResourceNamesToResults(\n await Promise.all(ruleData),\n await this.extractResourceNamesFromIds(allRulesResolved)\n );\n }\n\n private async appendResourceNamesToResults(\n completedControlResults: ExecJSON.ControlResult[][],\n extractedResourceNames: Record<string, string>\n ) {\n return completedControlResults.map((completedControlResult) =>\n completedControlResult.map((completedControl) => {\n for (const extractedResourceName in extractedResourceNames) {\n if (\n completedControl.code_desc.indexOf(\n JSON.stringify(extractedResourceName)\n .replace(/\\\"/gi, '')\n .replace(/{/gi, '')\n .replace(/}/gi, '')\n ) !== -1\n ) {\n return {\n ...completedControl,\n code_desc: `${completedControl.code_desc}, resource_name: ${extractedResourceNames[extractedResourceName]}`\n };\n }\n }\n return completedControl;\n })\n );\n }\n\n private async extractResourceNamesFromIds(\n evaluationResults: EvaluationResult[]\n ) {\n // Map of resource types to resource IDs {resourceType: ResourceId[]}\n const resourceMap: Partial<Record<ResourceType, string[]>> = {};\n // Map of resource IDs to resource names\n const resolvedResourcesMap: Record<string, string> = {};\n // Extract resource Ids\n evaluationResults.forEach((result) => {\n const resourceType: ResourceType =\n ResourceType[\n _.get(\n result,\n 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceType'\n ) as keyof typeof ResourceType\n ];\n const resourceId: string = _.get(\n result,\n 'EvaluationResultIdentifier.EvaluationResultQualifier.ResourceId'\n ) as unknown as string;\n if (resourceType in resourceMap) {\n if (\n !resourceMap[resourceType]?.includes(resourceId) &&\n typeof resourceId === 'string'\n ) {\n resourceMap[resourceType]?.push(resourceId);\n }\n } else {\n resourceMap[resourceType] = [resourceId];\n }\n });\n // Resolve resource names from AWS\n let resourceType: ResourceType;\n for (resourceType in resourceMap) {\n const resourceIDSlices = _.chunk(resourceMap[resourceType], 20);\n for (const slice of resourceIDSlices) {\n await this.delay(150);\n const resources = await this.configService.listDiscoveredResources({\n resourceType: resourceType,\n resourceIds: slice\n });\n resources.resourceIdentifiers?.forEach((resource) => {\n if (resource.resourceId && resource.resourceName) {\n resolvedResourcesMap[resource.resourceId] = resource.resourceName;\n }\n });\n }\n }\n return resolvedResourcesMap;\n }\n\n private getCodeDesc(result: EvaluationResult): string {\n let output = '';\n if (\n result.EvaluationResultIdentifier !== undefined &&\n result.EvaluationResultIdentifier.EvaluationResultQualifier !== undefined\n ) {\n output = JSON.stringify(\n result.EvaluationResultIdentifier.EvaluationResultQualifier\n )\n .replace(/\\\"/gi, '')\n .replace(/{/gi, '')\n .replace(/}/gi, '');\n }\n return output;\n }\n\n private getRunTime(result: EvaluationResult): number {\n let diff = 0;\n if (\n result.ResultRecordedTime !== undefined &&\n result.ConfigRuleInvokedTime !== undefined\n ) {\n diff =\n (result.ResultRecordedTime.getTime() -\n result.ConfigRuleInvokedTime.getTime()) /\n 1000;\n }\n return diff;\n }\n\n private getStatus(result: EvaluationResult): ExecJSON.ControlResultStatus {\n if (result.ComplianceType === 'COMPLIANT') {\n return ExecJSON.ControlResultStatus.Passed;\n } else if (result.ComplianceType === 'NON_COMPLIANT') {\n return ExecJSON.ControlResultStatus.Failed;\n } else {\n return ExecJSON.ControlResultStatus.Skipped;\n }\n }\n\n private getMessage(\n result: EvaluationResult,\n codeDesc: string,\n status: ExecJSON.ControlResultStatus\n ): string | undefined {\n if (status === ExecJSON.ControlResultStatus.Failed) {\n return `${codeDesc}: ${\n result.Annotation || 'Rule does not pass rule compliance'\n }`;\n } else {\n return undefined;\n }\n }\n\n private async fetchAllComplianceInfo(\n configRules: ConfigRule[]\n ): Promise<ComplianceByConfigRule[]> {\n const complianceResults: ComplianceByConfigRule[] = [];\n // Should slice config rules into arrays of max size: 25 and make one request for each slice\n const configRuleSlices = _.chunk(configRules, 25);\n for (const slice of configRuleSlices) {\n await this.delay(150);\n const response = await this.configService.describeComplianceByConfigRule({\n ConfigRuleNames: slice.map((rule) => rule.ConfigRuleName || '')\n });\n if (response.ComplianceByConfigRules === undefined) {\n throw new Error('No compliance data was returned');\n } else {\n response.ComplianceByConfigRules?.forEach((compliance) =>\n complianceResults.push(compliance)\n );\n }\n }\n return complianceResults;\n }\n\n // eslint-disable-next-line @typescript-eslint/ban-types\n private hdfTags(configRule: ConfigRule): Record<string, unknown> {\n let result = {};\n const sourceIdentifier = configRule.Source?.SourceIdentifier;\n result = _.set(result, 'nist', []);\n let defaultMatch: string[] | null = [];\n if (sourceIdentifier !== undefined) {\n defaultMatch = AWS_CONFIG_MAPPING.searchNIST([sourceIdentifier]);\n }\n if (Array.isArray(defaultMatch) && defaultMatch.length !== 0) {\n result = _.set(\n result,\n 'nist',\n (_.get(result, 'nist') as unknown as string[]).concat(defaultMatch)\n );\n }\n return result;\n }\n\n private checkText(configRule: ConfigRule): string {\n let params: any[] = [];\n if (\n configRule.InputParameters !== undefined &&\n configRule.InputParameters !== '{}'\n ) {\n params = configRule.InputParameters.replace(/{/gi, '')\n .replace(/}/gi, '')\n .split(',');\n }\n const checkText = [];\n checkText.push(`ARN: ${configRule.ConfigRuleArn || 'N/A'}`);\n checkText.push(\n `Source Identifier: ${configRule.Source?.SourceIdentifier || 'N/A'}`\n );\n if (params.length !== 0) {\n checkText.push(`${params.join('<br/>').replace(/\\\"/gi, '')}`);\n }\n return checkText.join('<br/>');\n }\n\n private hdfDescriptions(configRule: ConfigRule) {\n return [\n {\n data: this.checkText(configRule),\n label: 'check'\n }\n ];\n }\n\n private getAccountId(arn: string): string {\n const matches = arn.match(/:(\\d{12}):config-rule/);\n if (matches === null) {\n return 'no-account-id';\n } else {\n return matches[0];\n }\n }\n\n private async getControls(): Promise<ExecJSON.Control[]> {\n let index = 0;\n return (await this.issues).map((issue: ConfigRule) => {\n const control: ExecJSON.Control = {\n id: issue.ConfigRuleId || '',\n title: `${this.getAccountId(issue.ConfigRuleArn || '')} - ${\n issue.ConfigRuleName\n }`\n .replace(/:/gi, '')\n .replace(/config-rule/gi, ''),\n desc: issue.Description || null,\n impact: this.getImpact(issue),\n tags: this.hdfTags(issue),\n descriptions: this.hdfDescriptions(issue),\n refs: [],\n source_location: {ref: issue.ConfigRuleArn, line: 1},\n code: '',\n results: this.results[index]\n };\n index++;\n return control;\n });\n }\n\n private getImpact(issue: ConfigRule): number {\n if (_.get(issue, 'compliance') === 'NOT_APPLICABLE') {\n return 0;\n } else {\n return 0.5;\n }\n }\n\n public async toHdf(): Promise<ExecJSON.Execution> {\n const hdf: ExecJSON.Execution = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: ''\n },\n version: HeimdallToolsVersion,\n statistics: {\n //aws_config_sdk_version: ConfigService., // How do i get the sdk version?\n duration: null\n },\n profiles: [\n {\n name: NAME,\n version: '',\n title: NAME,\n maintainer: null,\n summary: NAME,\n license: null,\n copyright: null,\n copyright_email: null,\n supports: [],\n attributes: [],\n depends: [],\n groups: [],\n status: 'loaded',\n controls: await this.getControls(),\n sha256: ''\n }\n ]\n };\n return hdf;\n }\n}\n"]}
@@ -17,7 +17,7 @@ export type MappedReform<T, U> = {
17
17
  [K in keyof T]: Exclude<T[K], undefined | null> extends Array<any> ? MappedReform<T[K], U> : T[K] extends object ? MappedReform<T[K] & U, U> : Exclude<T[K], U>;
18
18
  };
19
19
  export declare function generateHash(data: string, algorithm?: string): string;
20
- export declare function parseHtml(input: unknown): string;
20
+ export declare function buildParseHtmlFunc(): Promise<(input: unknown) => string>;
21
21
  export declare function parseXml(xml: string, additionalOptions?: Record<string, unknown>): Record<string, unknown>;
22
22
  export declare function parseCsv(csv: string): unknown[];
23
23
  export declare function impactMapping(mapping: Map<string, number>): (severity: unknown) => number;
@@ -37,3 +37,4 @@ export declare class BaseConverter<D = Record<string, unknown>> {
37
37
  handlePath(file: Record<string, unknown>, path: string | string[]): unknown;
38
38
  hasPath(file: Record<string, unknown>, path: string | string[]): boolean;
39
39
  }
40
+ //# sourceMappingURL=base-converter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-converter.d.ts","sourceRoot":"","sources":["../../src/base-converter.ts"],"names":[],"mappings":"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"}
@@ -15,42 +15,60 @@ 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
  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.BaseConverter = exports.impactMapping = exports.parseCsv = exports.parseXml = exports.parseHtml = exports.generateHash = void 0;
39
+ exports.BaseConverter = void 0;
40
+ exports.generateHash = generateHash;
41
+ exports.buildParseHtmlFunc = buildParseHtmlFunc;
42
+ exports.parseXml = parseXml;
43
+ exports.parseCsv = parseCsv;
44
+ exports.impactMapping = impactMapping;
30
45
  const crypto_1 = require("crypto");
31
46
  const fast_xml_parser_1 = require("fast-xml-parser");
32
- const htmlparser = __importStar(require("htmlparser2"));
33
47
  const _ = __importStar(require("lodash"));
34
48
  const papaparse_1 = __importDefault(require("papaparse"));
49
+ /* eslint-enable @typescript-eslint/ban-types */
50
+ // Hashing Function
35
51
  function generateHash(data, algorithm = 'sha256') {
36
52
  const hash = (0, crypto_1.createHash)(algorithm);
37
53
  return hash.update(data).digest('hex');
38
54
  }
39
- exports.generateHash = generateHash;
40
- function parseHtml(input) {
41
- const textData = [];
42
- const myParser = new htmlparser.Parser({
43
- ontext(text) {
44
- textData.push(text);
55
+ async function buildParseHtmlFunc() {
56
+ const htmlparser = await import('htmlparser2');
57
+ return (input) => {
58
+ if (!_.isString(input)) {
59
+ return '';
45
60
  }
46
- });
47
- if (typeof input === 'string') {
48
- myParser.write(input);
49
- myParser.end();
50
- }
51
- return textData.join('');
61
+ const data = [];
62
+ const parser = new htmlparser.Parser({
63
+ ontext(text) {
64
+ data.push(text);
65
+ }
66
+ });
67
+ parser.write(String(input));
68
+ parser.end();
69
+ return data.join('');
70
+ };
52
71
  }
53
- exports.parseHtml = parseHtml;
54
72
  function parseXml(xml, additionalOptions) {
55
73
  const options = {
56
74
  attributeNamePrefix: '',
@@ -65,7 +83,6 @@ function parseXml(xml, additionalOptions) {
65
83
  const parser = new fast_xml_parser_1.XMLParser(options);
66
84
  return parser.parse(xml);
67
85
  }
68
- exports.parseXml = parseXml;
69
86
  function parseCsv(csv) {
70
87
  const result = papaparse_1.default.parse(csv.trim(), { header: true });
71
88
  if (result.errors.length) {
@@ -73,7 +90,6 @@ function parseCsv(csv) {
73
90
  }
74
91
  return result.data;
75
92
  }
76
- exports.parseCsv = parseCsv;
77
93
  function impactMapping(mapping) {
78
94
  return (severity) => {
79
95
  if (typeof severity === 'string' || typeof severity === 'number') {
@@ -84,7 +100,7 @@ function impactMapping(mapping) {
84
100
  }
85
101
  };
86
102
  }
87
- exports.impactMapping = impactMapping;
103
+ // eslint-disable-next-line @typescript-eslint/ban-types
88
104
  function collapseDuplicates(array, key, collapseResults) {
89
105
  const seen = new Map();
90
106
  const newArray = [];
@@ -115,6 +131,9 @@ function collapseDuplicates(array, key, collapseResults) {
115
131
  return newArray;
116
132
  }
117
133
  class BaseConverter {
134
+ data;
135
+ mappings;
136
+ collapseResults;
118
137
  constructor(data, collapseResults = false) {
119
138
  this.data = data;
120
139
  this.collapseResults = collapseResults;
@@ -284,10 +303,11 @@ class BaseConverter {
284
303
  }
285
304
  const index = _.findIndex(pathArray, (p) => this.hasPath(file, p));
286
305
  if (index === -1) {
306
+ // should probably throw error here, but instead are providing a default value to match current behavior
287
307
  return '';
288
308
  }
289
309
  else if (pathArray[index].startsWith('$.')) {
290
- return _.get(this.data, pathArray[index].slice(2)) || '';
310
+ return _.get(this.data, pathArray[index].slice(2)) || ''; // having default values implemented like this also prevents 'null' from being passed through
291
311
  }
292
312
  else {
293
313
  return _.get(file, pathArray[index]) ?? '';