@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
@@ -1 +1 @@
1
- {"version":3,"file":"splunk-mapper.js","sourceRoot":"","sources":["../../src/splunk-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"splunk-mapper.js","sourceRoot":"","sources":["../../src/splunk-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import axios, {AxiosInstance, AxiosResponse} from 'axios';\nimport {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {Logger} from 'winston';\nimport {SplunkConfig} from '../types/splunk-config-types';\nimport {SplunkReport} from '../types/splunk-report-types';\nimport {createWinstonLogger} from './utils/global';\nimport {\n checkSplunkCredentials,\n generateHostname,\n handleSplunkErrorResponse\n} from './utils/splunk-tools';\n\nexport type Hash<T> = {[key: string]: T};\n\nexport type SplunkConfigNoIndex = Omit<SplunkConfig, 'index'>;\n\nexport type GenericPayloadWithMetaData = {\n meta: FileMetaData;\n [key: string]: never[] | Record<string, unknown>;\n};\n\nexport type FileMetaData = {\n guid: string;\n subtype: string;\n hdf_splunk_schema: string;\n filetype: string;\n filename: string;\n profile_sha256: string;\n [key: string]: never[] | unknown;\n};\n\nconst MAPPER_NAME = 'Splunk2HDF';\n\nlet logger = createWinstonLogger('Splunk2HDF');\n\n// Groups items by using the provided key function\nexport function groupBy<T>(\n items: Array<T>,\n keyGetter: (v: T) => string\n): Hash<Array<T>> {\n const result: Hash<Array<T>> = {};\n for (const i of items) {\n // Get the items key\n const key = keyGetter(i);\n\n // Get the list it should go in\n const corrList = result[key];\n if (corrList) {\n // If list exists, place\n corrList.push(i);\n } else {\n // List does not exist; create and put\n result[key] = [i];\n }\n }\n return result;\n}\n\n// Maps a hash to a new hash, with the same keys but each value replaced with a new (mapped) value\nexport function mapHash<T, G>(old: Hash<T>, mapFunction: (v: T) => G): Hash<G> {\n const result: Hash<G> = {};\n for (const key in old) {\n result[key] = mapFunction(old[key]);\n }\n return result;\n}\n\nexport function consolidatePayloads(\n payloads: SplunkReport[]\n): ExecJSON.Execution[] {\n // Group by exec id\n const grouped = groupBy(payloads, (pl) => pl.meta.guid);\n\n const built = mapHash(grouped, consolidateFilePayloads);\n return Object.values(built);\n}\n\nexport function replaceKeyValueDescriptions(\n controls: (ExecJSON.Control &\n GenericPayloadWithMetaData & {\n descriptions?: {[key: string]: string} | ExecJSON.ControlDescription[];\n })[]\n) {\n return controls.map((control) => {\n if (control.descriptions && !Array.isArray(control.descriptions)) {\n const extractedDescriptions: ExecJSON.ControlDescription[] = [];\n for (const [key, value] of Object.entries(control.descriptions)) {\n extractedDescriptions.push({label: key, data: value as string});\n }\n control.descriptions = extractedDescriptions;\n }\n return control;\n });\n}\n\nfunction consolidateFilePayloads(\n filePayloads: SplunkReport[]\n): ExecJSON.Execution {\n // In the end we wish to produce a single evaluation EventPayload which in fact contains all data for the guid\n // Group by subtype\n const subtypes = groupBy(filePayloads, (event) => event.meta.subtype);\n const execEvents = (subtypes['header'] ||\n []) as Partial<ExecJSON.Execution>[];\n const profileEvents = (subtypes['profile'] ||\n []) as unknown as (ExecJSON.Profile & GenericPayloadWithMetaData)[];\n const controlEvents = (subtypes['control'] ||\n []) as unknown as (ExecJSON.Control & GenericPayloadWithMetaData)[];\n\n logger.debug(`Have ${execEvents.length} execution events`);\n logger.debug(`Have ${profileEvents.length} profile events`);\n logger.debug(`Have ${controlEvents.length} control events`);\n\n // Verify we only have one exec event\n if (execEvents.length !== 1) {\n throw new Error(\n `Incorrect # of Evaluation events. Expected 1, got ${execEvents.length}`\n );\n }\n\n // Pull out the first (and only) execution event\n const exec = execEvents[0];\n\n // Put all the profiles into the exec\n exec.profiles?.push(...profileEvents);\n\n // Group controls, and then put them into the profiles\n const shaGroupedControls = groupBy(\n controlEvents,\n (ctrl) => ctrl.meta.profile_sha256\n );\n for (const profile of profileEvents) {\n profile.controls = [];\n // Get the corresponding controls, and put them into the profile\n const sha = profile.meta.profile_sha256;\n logger.debug(`Adding controls for profile with SHA256: ${sha}`);\n const corrControls = shaGroupedControls[sha] || [];\n profile.controls.push(\n ...replaceKeyValueDescriptions(\n corrControls as unknown as (ExecJSON.Control &\n GenericPayloadWithMetaData & {\n descriptions?:\n | {[key: string]: string}\n | ExecJSON.ControlDescription[];\n })[]\n )\n );\n logger.debug(\n `Added ${profile.controls.length} controls to profile with SHA256 ${sha}`\n );\n }\n\n return exec as unknown as ExecJSON.Execution;\n}\n\nfunction unixTimeToDate(unixTime: string): Date {\n // Splunk only currently returns ints but this could be a decimal for more precision\n return new Date(parseFloat(unixTime) * 1000);\n}\n\nexport class SplunkMapper {\n config: SplunkConfig;\n axiosInstance: AxiosInstance;\n hostname: string;\n\n constructor(\n config: SplunkConfig,\n logService?: Logger,\n loggingLevel?: string\n ) {\n this.config = config;\n this.axiosInstance = axios.create({params: {output_mode: 'json'}});\n this.hostname = generateHostname(config);\n if (logService) {\n logger = logService;\n } else {\n logger = createWinstonLogger(MAPPER_NAME, loggingLevel || 'debug');\n }\n logger.debug(`Initialized ${this.constructor.name} successfully`);\n }\n\n async createJob(query: string): Promise<string> {\n logger.debug(`Creating job for query: ${query}`);\n // Post to {host}/services/search/jobs endpoint to queue search job for given query\n let jobSID: AxiosResponse;\n try {\n jobSID = await this.axiosInstance.post(\n `${this.hostname}/services/search/jobs`,\n `exec_mode=blocking&search=${query}`\n );\n } catch (error) {\n const errorCode = handleSplunkErrorResponse(error);\n throw new Error(`Failed to create search job - ${errorCode}`);\n }\n\n // Return unique search ID (SID) assigned to that search job for future reference\n if (_.has(jobSID, ['data', 'sid'])) {\n return jobSID.data.sid;\n } else {\n throw new Error(\n 'Failed to create search job - Malformed search job creation response received'\n );\n }\n }\n\n async trackJob(job: string): Promise<void> {\n // All documented potential error states for a search job\n // Per https://docs.splunk.com/Documentation/Splunk/latest/RESTTUT/RESTsearches#Tips_on_accessing_searches\n const badState = new Set([\n 'PAUSE',\n 'INTERNAL_CANCEL',\n 'USER_CANCEL',\n 'BAD_INPUT_CANCEL',\n 'QUIT',\n 'FAILED'\n ]);\n // Arbitrary time values for waiting (in ms), change as necessary\n // Time to wait until killing search job\n const searchJobTimeout = 120000;\n // Time interval between checking on status of search job\n const searchJobPing = 50;\n let queryStatus: AxiosResponse;\n let continuePing = true;\n\n // Kill query after 2 minute of waiting\n // Arbitrary time used, change as needed\n const queryTimer = setTimeout(() => {\n continuePing = false;\n clearTimeout(queryTimer);\n throw new Error('Search job timed out - Unable to retrieve query');\n }, searchJobTimeout);\n\n // Ping Splunk instance every 50 ms on status of search job\n const awaitJob = setInterval(async () => {\n try {\n queryStatus = await this.axiosInstance.get(\n `${this.hostname}/services/search/jobs/${job}`\n );\n } catch (error) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - ${handleSplunkErrorResponse(error)}`\n );\n }\n\n // Check if response schema is malformed\n if (_.has(queryStatus, 'data.entry[0].content')) {\n if (queryStatus.data.entry.length !== 1) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - Detected malformed entry field length ${queryStatus.data.entry.length}`\n );\n }\n\n // If search job is complete, kill interval loop and exit\n if (\n queryStatus.data.entry[0].content.dispatchState === 'DONE' &&\n queryStatus.data.entry[0].content.isDone\n ) {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n } else if (\n badState.has(queryStatus.data.entry[0].content.dispatchState)\n ) {\n // If search job returns a bad state result, kill interval loop and fail the query\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n `Failed search job - Detected dispatch state ${queryStatus.data.entry[0].content.dispatchState}`\n );\n }\n } else {\n clearTimeout(queryTimer);\n clearInterval(awaitJob);\n throw new Error(\n 'Failed search job - Malformed search job response received'\n );\n }\n\n // Kill loop if search job times out\n if (!continuePing) {\n clearInterval(awaitJob);\n }\n }, searchJobPing);\n }\n\n parseSplunkResponse(\n query: string,\n results: {fields: string[]; rows: string[]}\n ): SplunkReport[] {\n logger.info(`Got results for query: ${query}`);\n\n // Our data parsed as Key/Value pairs\n const objects: SplunkReport[] = [];\n // Find _raw field, this contains our data\n let rawDataIndex = results?.fields.findIndex(\n (field) => field.toLowerCase() === '_raw'\n );\n\n if (rawDataIndex === -1) {\n logger.error(`Field _raw not found, using default index 3`);\n rawDataIndex = 3;\n }\n\n logger.debug(`Got field _raw at index ${rawDataIndex}`);\n\n // Find _indextime, this is when the data was imported into splunk\n let indexTimeIndex = results?.fields.findIndex(\n (field) => field.toLowerCase() === '_indextime'\n );\n\n if (indexTimeIndex === -1) {\n logger.error(`Field _indextime not found, using default index 2`);\n indexTimeIndex = 2;\n }\n\n logger.debug(`Got field _indextime at index ${indexTimeIndex}`);\n logger.verbose(`Parsing data returned by Splunk and appending timestamps`);\n for (const value of results.rows) {\n let object;\n try {\n object = JSON.parse(value[rawDataIndex]);\n } catch {\n throw new Error(\n 'Unable to parse file. Have you configured EVENT_BREAKER? See https://github.com/mitre/saf/wiki/Splunk-Configuration'\n );\n }\n\n // Set the date from the _indextime\n try {\n _.set(\n object,\n 'meta.parse_time',\n unixTimeToDate(value[indexTimeIndex]).toISOString()\n );\n } catch {\n // Parsing dates can be tricky sometimes\n _.set(object, 'meta.parse_time', new Date().toISOString());\n }\n\n objects.push(object);\n }\n logger.debug('Successfully parsed and added timestamps');\n return objects;\n }\n\n async queryData(query: string): Promise<SplunkReport[]> {\n let queryJob: AxiosResponse;\n\n // Request session key for Axios instance\n const authToken = await checkSplunkCredentials(this.config);\n this.axiosInstance.defaults.headers.common['Authorization'] =\n `Bearer ${authToken}`;\n\n // Create new search job from given query\n const job = await this.createJob(query);\n\n // Track status of search job\n await this.trackJob(job);\n\n // Ping Splunk for search job results\n try {\n // returnCount specifies the number of found results to return, if set to 0 returns all\n // Per https://docs.splunk.com/Documentation/Splunk/9.0.5/RESTREF/RESTsearch#search.2Fv2.2Fjobs.2F.7Bsearch_id.7D.2Fresults\n const returnCount = 0;\n\n queryJob = await this.axiosInstance.get(\n `${this.hostname}/services/search/v2/jobs/${job}/results`,\n {\n params: {count: returnCount, output_mode: 'json_rows'}\n }\n );\n } catch (error) {\n throw new Error(\n `Failed search job - ${handleSplunkErrorResponse(error)}`\n );\n }\n\n // Return search job results\n if (_.has(queryJob, ['data'])) {\n return this.parseSplunkResponse(query, queryJob.data);\n } else {\n throw new Error(\n 'Failed search job - Malformed search job results response received'\n );\n }\n }\n\n async toHdf(guid: string): Promise<ExecJSON.Execution> {\n logger.info(`Starting conversion of GUID ${guid}`);\n // Preliminary check of credentials\n // Not used for later logins\n await checkSplunkCredentials(this.config);\n logger.info(`Credentials valid, querying data for ${guid}`);\n\n // Start search job for query\n const executionData = await this.queryData(\n `search index=\"*\" meta.guid=\"${guid}\"`\n );\n logger.info(\n `Data received, consolidating payloads for ${executionData.length} items`\n );\n return consolidatePayloads(executionData)[0];\n }\n}\n"]}
@@ -13,3 +13,4 @@ export declare class TrufflehogMapper extends BaseConverter {
13
13
  }, ILookupPath>;
14
14
  constructor(trufflehogJson: Record<string, unknown>, withRaw?: boolean);
15
15
  }
16
+ //# sourceMappingURL=trufflehog-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"trufflehog-mapper.d.ts","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EAAC,aAAa,EAAE,WAAW,EAAE,eAAe,EAAC,MAAM,kBAAkB,CAAC;AAE7E,qBAAa,iBAAiB;IAC5B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;gBACL,cAAc,EAAE,MAAM,EAAE,OAAO,UAAQ;IAkBnD,KAAK,IAAI,QAAQ,CAAC,SAAS;CAG5B;AAED,qBAAa,gBAAiB,SAAQ,aAAa;IACjD,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAgFC;gBACU,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAQ;CAIrE"}
@@ -9,6 +9,8 @@ const lodash_1 = __importDefault(require("lodash"));
9
9
  const package_json_1 = require("../package.json");
10
10
  const base_converter_1 = require("./base-converter");
11
11
  class TrufflehogResults {
12
+ data;
13
+ withRaw;
12
14
  constructor(trufflehogJson, withRaw = false) {
13
15
  let parsedData = {};
14
16
  try {
@@ -34,77 +36,78 @@ class TrufflehogResults {
34
36
  }
35
37
  exports.TrufflehogResults = TrufflehogResults;
36
38
  class TrufflehogMapper extends base_converter_1.BaseConverter {
39
+ withRaw;
40
+ mappings = {
41
+ platform: {
42
+ name: 'Heimdall Tools',
43
+ release: package_json_1.version
44
+ },
45
+ version: package_json_1.version,
46
+ statistics: {},
47
+ profiles: [
48
+ {
49
+ name: {
50
+ path: 'wrapper[0]',
51
+ transformer: (data) => `Source ID: ${lodash_1.default.get(data, 'SourceID')}, Source Name: ${lodash_1.default.get(data, 'SourceName')}`
52
+ },
53
+ title: { path: 'wrapper[0].SourceName' },
54
+ supports: [],
55
+ attributes: [],
56
+ groups: [],
57
+ status: 'loaded',
58
+ controls: [
59
+ {
60
+ key: 'id',
61
+ path: 'wrapper',
62
+ tags: {
63
+ nist: ['IA-5(7)'],
64
+ cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],
65
+ severity: 'medium'
66
+ },
67
+ refs: [],
68
+ source_location: {},
69
+ title: {
70
+ transformer: (data) => `Found ${lodash_1.default.get(data, 'DetectorName')} secret using ${lodash_1.default.get(data, 'DecoderName')} decoder`
71
+ },
72
+ id: {
73
+ transformer: (data) => `${lodash_1.default.get(data, 'DetectorName')} ${lodash_1.default.get(data, 'DecoderName')}`
74
+ },
75
+ impact: 0.5,
76
+ results: [
77
+ {
78
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
79
+ code_desc: {
80
+ transformer: (data) => `${JSON.stringify(lodash_1.default.get(data, 'SourceMetadata'), null, 2)}`
81
+ },
82
+ message: {
83
+ transformer: (data) => `${JSON.stringify(lodash_1.default.omitBy(lodash_1.default.pick(data, [
84
+ 'Verified',
85
+ 'VerificationError',
86
+ 'Raw',
87
+ 'RawV2',
88
+ 'Redacted',
89
+ 'ExtraData',
90
+ 'StructuredData'
91
+ ]), (value) => value === null || value === ''), null, 2)}`
92
+ },
93
+ start_time: ''
94
+ }
95
+ ]
96
+ }
97
+ ],
98
+ sha256: ''
99
+ }
100
+ ],
101
+ passthrough: {
102
+ transformer: (data) => {
103
+ return {
104
+ ...(this.withRaw && { raw: data })
105
+ };
106
+ }
107
+ }
108
+ };
37
109
  constructor(trufflehogJson, withRaw = false) {
38
110
  super(trufflehogJson, true);
39
- this.mappings = {
40
- platform: {
41
- name: 'Heimdall Tools',
42
- release: package_json_1.version
43
- },
44
- version: package_json_1.version,
45
- statistics: {},
46
- profiles: [
47
- {
48
- name: {
49
- path: 'wrapper[0]',
50
- transformer: (data) => `Source ID: ${lodash_1.default.get(data, 'SourceID')}, Source Name: ${lodash_1.default.get(data, 'SourceName')}`
51
- },
52
- title: { path: 'wrapper[0].SourceName' },
53
- supports: [],
54
- attributes: [],
55
- groups: [],
56
- status: 'loaded',
57
- controls: [
58
- {
59
- key: 'id',
60
- path: 'wrapper',
61
- tags: {
62
- nist: ['IA-5(7)'],
63
- cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],
64
- severity: 'medium'
65
- },
66
- refs: [],
67
- source_location: {},
68
- title: {
69
- transformer: (data) => `Found ${lodash_1.default.get(data, 'DetectorName')} secret using ${lodash_1.default.get(data, 'DecoderName')} decoder`
70
- },
71
- id: {
72
- transformer: (data) => `${lodash_1.default.get(data, 'DetectorName')} ${lodash_1.default.get(data, 'DecoderName')}`
73
- },
74
- impact: 0.5,
75
- results: [
76
- {
77
- status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
78
- code_desc: {
79
- transformer: (data) => `${JSON.stringify(lodash_1.default.get(data, 'SourceMetadata'), null, 2)}`
80
- },
81
- message: {
82
- transformer: (data) => `${JSON.stringify(lodash_1.default.omitBy(lodash_1.default.pick(data, [
83
- 'Verified',
84
- 'VerificationError',
85
- 'Raw',
86
- 'RawV2',
87
- 'Redacted',
88
- 'ExtraData',
89
- 'StructuredData'
90
- ]), (value) => value === null || value === ''), null, 2)}`
91
- },
92
- start_time: ''
93
- }
94
- ]
95
- }
96
- ],
97
- sha256: ''
98
- }
99
- ],
100
- passthrough: {
101
- transformer: (data) => {
102
- return {
103
- ...(this.withRaw && { raw: data })
104
- };
105
- }
106
- }
107
- };
108
111
  this.withRaw = withRaw;
109
112
  }
110
113
  }
@@ -1 +1 @@
1
- {"version":3,"file":"trufflehog-mapper.js","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"trufflehog-mapper.js","sourceRoot":"","sources":["../../src/trufflehog-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {BaseConverter, ILookupPath, MappedTransform} from './base-converter';\n\nexport class TrufflehogResults {\n data: Record<string, unknown>;\n withRaw: boolean;\n constructor(trufflehogJson: string, withRaw = false) {\n let parsedData = {};\n try {\n parsedData = JSON.parse(trufflehogJson.trim());\n } catch (e) {\n parsedData = trufflehogJson\n .trim()\n .split('\\n')\n .map((line) => JSON.parse(line.trim()));\n }\n this.withRaw = withRaw;\n if (_.isArray(parsedData)) {\n this.data = {wrapper: parsedData};\n } else {\n this.data = {wrapper: [parsedData]};\n }\n }\n\n toHdf(): ExecJSON.Execution {\n return new TrufflehogMapper(this.data, this.withRaw).toHdf();\n }\n}\n\nexport class TrufflehogMapper extends BaseConverter {\n withRaw: boolean;\n\n mappings: MappedTransform<\n ExecJSON.Execution & {passthrough: unknown},\n ILookupPath\n > = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n name: {\n path: 'wrapper[0]',\n transformer: (data: Record<string, unknown>): string =>\n `Source ID: ${_.get(data, 'SourceID')}, Source Name: ${_.get(data, 'SourceName')}`\n },\n title: {path: 'wrapper[0].SourceName'},\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n key: 'id',\n path: 'wrapper',\n tags: {\n nist: ['IA-5(7)'],\n cci: ['CCI-004069', 'CCI-000202', 'CCI-000203', 'CCI-002367'],\n severity: 'medium'\n },\n refs: [],\n source_location: {},\n title: {\n transformer: (data: Record<string, unknown>): string =>\n `Found ${_.get(data, 'DetectorName')} secret using ${_.get(data, 'DecoderName')} decoder`\n },\n id: {\n transformer: (data: Record<string, unknown>): string =>\n `${_.get(data, 'DetectorName')} ${_.get(data, 'DecoderName')}`\n },\n impact: 0.5,\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (data: Record<string, unknown>): string =>\n `${JSON.stringify(_.get(data, 'SourceMetadata'), null, 2)}`\n },\n message: {\n transformer: (data: Record<string, unknown>): string =>\n `${JSON.stringify(\n _.omitBy(\n _.pick(data, [\n 'Verified',\n 'VerificationError',\n 'Raw',\n 'RawV2',\n 'Redacted',\n 'ExtraData',\n 'StructuredData'\n ]),\n (value) => value === null || value === ''\n ),\n null,\n 2\n )}`\n },\n start_time: ''\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, any>): Record<string, unknown> => {\n return {\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(trufflehogJson: Record<string, unknown>, withRaw = false) {\n super(trufflehogJson, true);\n this.withRaw = withRaw;\n }\n}\n"]}
@@ -13,3 +13,4 @@ export declare class TwistlockMapper extends BaseConverter {
13
13
  }, ILookupPath>;
14
14
  constructor(twistlockJson: Record<string, unknown>, withRaw?: boolean);
15
15
  }
16
+ //# sourceMappingURL=twistlock-mapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"twistlock-mapper.d.ts","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,QAAQ,EAAC,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,aAAa,EACb,WAAW,EAEX,eAAe,EAChB,MAAM,kBAAkB,CAAC;AAe1B,qBAAa,gBAAgB;IAC3B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,OAAO,EAAE,OAAO,CAAC;gBACL,aAAa,EAAE,MAAM,EAAE,OAAO,UAAQ;IAUlD,KAAK,IAAI,QAAQ,CAAC,SAAS;CAG5B;AAED,qBAAa,eAAgB,SAAQ,aAAa;IAChD,OAAO,EAAE,OAAO,CAAC;IAEjB,QAAQ,EAAE,eAAe,CACvB,QAAQ,CAAC,SAAS,GAAG;QAAC,WAAW,EAAE,OAAO,CAAA;KAAC,EAC3C,WAAW,CACZ,CAgIC;gBACU,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,OAAO,UAAQ;CAIpE"}
@@ -15,13 +15,23 @@ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (
15
15
  }) : function(o, v) {
16
16
  o["default"] = v;
17
17
  });
18
- var __importStar = (this && this.__importStar) || function (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
36
  exports.TwistlockMapper = exports.TwistlockResults = void 0;
27
37
  const inspecjs_1 = require("inspecjs");
@@ -38,9 +48,12 @@ const IMPACT_MAPPING = new Map([
38
48
  ['low', 0.3]
39
49
  ]);
40
50
  class TwistlockResults {
51
+ data;
52
+ withRaw;
41
53
  constructor(twistlockJson, withRaw = false) {
42
54
  this.data = JSON.parse(twistlockJson);
43
55
  this.withRaw = withRaw;
56
+ // Add a wrapper to the data for the repository scan case which doesn't include the `results` key
44
57
  if (!_.has(this.data, 'results')) {
45
58
  this.data = { results: [this.data] };
46
59
  }
@@ -51,132 +64,133 @@ class TwistlockResults {
51
64
  }
52
65
  exports.TwistlockResults = TwistlockResults;
53
66
  class TwistlockMapper extends base_converter_1.BaseConverter {
54
- constructor(twistlockJson, withRaw = false) {
55
- super(twistlockJson, true);
56
- this.mappings = {
57
- platform: {
58
- name: 'Heimdall Tools',
59
- release: package_json_1.version,
60
- target_id: { path: ['results[0].name', 'results[0].repository'] }
61
- },
62
- version: package_json_1.version,
63
- statistics: {},
64
- profiles: [
65
- {
66
- path: 'results',
67
- name: 'Twistlock Scan',
68
- title: {
69
- transformer: (data) => {
70
- let projectArr = 'N/A';
71
- if (_.has(data, 'collections')) {
72
- projectArr = _.get(data, 'collections');
73
- }
74
- if (_.has(data, 'repository')) {
75
- projectArr = _.get(data, 'repository');
76
- }
77
- const projectName = Array.isArray(projectArr)
78
- ? projectArr.join(' / ')
79
- : projectArr;
80
- return `Twistlock Project: ${projectName}`;
67
+ withRaw;
68
+ mappings = {
69
+ platform: {
70
+ name: 'Heimdall Tools',
71
+ release: package_json_1.version,
72
+ target_id: { path: ['results[0].name', 'results[0].repository'] }
73
+ },
74
+ version: package_json_1.version,
75
+ statistics: {},
76
+ profiles: [
77
+ {
78
+ path: 'results',
79
+ name: 'Twistlock Scan',
80
+ title: {
81
+ transformer: (data) => {
82
+ let projectArr = 'N/A';
83
+ if (_.has(data, 'collections')) {
84
+ projectArr = _.get(data, 'collections');
81
85
  }
82
- },
83
- summary: {
84
- transformer: (data) => {
85
- const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')
86
- ? `${JSON.stringify(_.get(data, 'vulnerabilityDistribution.total'))}`
87
- : 'N/A';
88
- const complianceTotal = _.has(data, 'complianceDistribution')
89
- ? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`
90
- : 'N/A';
91
- return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;
86
+ if (_.has(data, 'repository')) {
87
+ projectArr = _.get(data, 'repository');
92
88
  }
93
- },
94
- supports: [],
95
- attributes: [],
96
- groups: [],
97
- status: 'loaded',
98
- controls: [
99
- {
100
- path: 'vulnerabilities',
101
- key: 'id',
102
- pathTransform: (value) => (Array.isArray(value) ? value : []),
103
- tags: {
104
- nist: global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,
105
- cci: (0, global_1.getCCIsForNISTTags)(global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS),
106
- cveid: { path: 'id' }
107
- },
108
- refs: [],
109
- source_location: {},
110
- title: { path: 'id' },
111
- id: { path: 'id' },
112
- desc: { path: 'description' },
113
- impact: {
114
- path: 'severity',
115
- transformer: (0, base_converter_1.impactMapping)(IMPACT_MAPPING)
116
- },
117
- code: {
118
- transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
119
- },
120
- results: [
121
- {
122
- status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
123
- code_desc: {
124
- transformer: (data) => {
125
- const packageName = _.has(data, 'packageName')
126
- ? `${JSON.stringify(_.get(data, 'packageName'))}`
127
- : 'N/A';
128
- const impactedVersions = _.has(data, 'impactedVersions')
129
- ? `${JSON.stringify(_.get(data, 'impactedVersions'))}`
130
- : 'N/A';
131
- return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;
132
- }
133
- },
134
- message: {
135
- transformer: (data) => {
136
- const packageName = _.has(data, 'packageName')
137
- ? `${JSON.stringify(_.get(data, 'packageName'))}`
138
- : 'N/A';
139
- const packageVersion = _.has(data, 'packageVersion')
140
- ? `${JSON.stringify(_.get(data, 'packageVersion'))}`
141
- : 'N/A';
142
- return `Expected latest version of ${packageName}\nDetected vulnerable version ${packageVersion} of ${packageName}`;
143
- }
144
- },
145
- start_time: { path: 'discoveredDate' }
146
- }
147
- ]
148
- }
149
- ],
150
- sha256: ''
151
- }
152
- ],
153
- passthrough: {
154
- transformer: (data) => {
155
- let resultsData = _.get(data, 'results');
156
- if (Array.isArray(resultsData)) {
157
- resultsData = resultsData.map((result) => _.omit(result, [
158
- 'name',
159
- 'collections',
160
- 'complianceDistribution',
161
- 'vulnerabilities',
162
- 'vulnerabilityDistribution'
163
- ]));
89
+ const projectName = Array.isArray(projectArr)
90
+ ? projectArr.join(' / ')
91
+ : projectArr;
92
+ return `Twistlock Project: ${projectName}`;
93
+ }
94
+ },
95
+ summary: {
96
+ transformer: (data) => {
97
+ const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')
98
+ ? `${JSON.stringify(_.get(data, 'vulnerabilityDistribution.total'))}`
99
+ : 'N/A';
100
+ const complianceTotal = _.has(data, 'complianceDistribution')
101
+ ? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`
102
+ : 'N/A';
103
+ return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;
164
104
  }
165
- return {
166
- auxiliary_data: [
105
+ },
106
+ supports: [],
107
+ attributes: [],
108
+ groups: [],
109
+ status: 'loaded',
110
+ controls: [
111
+ {
112
+ path: 'vulnerabilities',
113
+ key: 'id',
114
+ pathTransform: (value) => (Array.isArray(value) ? value : []),
115
+ tags: {
116
+ nist: global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,
117
+ cci: (0, global_1.getCCIsForNISTTags)(global_1.DEFAULT_UPDATE_REMEDIATION_NIST_TAGS),
118
+ cveid: { path: 'id' }
119
+ },
120
+ refs: [],
121
+ source_location: {},
122
+ title: { path: 'id' },
123
+ id: { path: 'id' },
124
+ desc: { path: 'description' },
125
+ impact: {
126
+ path: 'severity',
127
+ transformer: (0, base_converter_1.impactMapping)(IMPACT_MAPPING)
128
+ },
129
+ code: {
130
+ transformer: (vulnerability) => JSON.stringify(vulnerability, null, 2)
131
+ },
132
+ results: [
167
133
  {
168
- name: 'Twistlock',
169
- data: {
170
- results: resultsData,
171
- consoleURL: _.get(data, 'consoleURL')
172
- }
134
+ status: inspecjs_1.ExecJSON.ControlResultStatus.Failed,
135
+ code_desc: {
136
+ transformer: (data) => {
137
+ const packageName = _.has(data, 'packageName')
138
+ ? `${JSON.stringify(_.get(data, 'packageName'))}`
139
+ : 'N/A';
140
+ const impactedVersions = _.has(data, 'impactedVersions')
141
+ ? `${JSON.stringify(_.get(data, 'impactedVersions'))}`
142
+ : 'N/A';
143
+ return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;
144
+ }
145
+ },
146
+ message: {
147
+ transformer: (data) => {
148
+ const packageName = _.has(data, 'packageName')
149
+ ? `${JSON.stringify(_.get(data, 'packageName'))}`
150
+ : 'N/A';
151
+ const packageVersion = _.has(data, 'packageVersion')
152
+ ? `${JSON.stringify(_.get(data, 'packageVersion'))}`
153
+ : 'N/A';
154
+ return `Expected latest version of ${packageName}\nDetected vulnerable version ${packageVersion} of ${packageName}`;
155
+ }
156
+ },
157
+ start_time: { path: 'discoveredDate' }
173
158
  }
174
- ],
175
- ...(this.withRaw && { raw: data })
176
- };
159
+ ]
160
+ }
161
+ ],
162
+ sha256: ''
163
+ }
164
+ ],
165
+ passthrough: {
166
+ transformer: (data) => {
167
+ let resultsData = _.get(data, 'results');
168
+ if (Array.isArray(resultsData)) {
169
+ resultsData = resultsData.map((result) => _.omit(result, [
170
+ 'name',
171
+ 'collections',
172
+ 'complianceDistribution',
173
+ 'vulnerabilities',
174
+ 'vulnerabilityDistribution'
175
+ ]));
177
176
  }
177
+ return {
178
+ auxiliary_data: [
179
+ {
180
+ name: 'Twistlock',
181
+ data: {
182
+ results: resultsData,
183
+ consoleURL: _.get(data, 'consoleURL')
184
+ }
185
+ }
186
+ ],
187
+ ...(this.withRaw && { raw: data })
188
+ };
178
189
  }
179
- };
190
+ }
191
+ };
192
+ constructor(twistlockJson, withRaw = false) {
193
+ super(twistlockJson, true);
180
194
  this.withRaw = withRaw;
181
195
  }
182
196
  }
@@ -1 +1 @@
1
- {"version":3,"file":"twistlock-mapper.js","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"twistlock-mapper.js","sourceRoot":"","sources":["../../src/twistlock-mapper.ts"],"names":[],"mappings":"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","sourcesContent":["import {ExecJSON} from 'inspecjs';\nimport * as _ from 'lodash';\nimport {version as HeimdallToolsVersion} from '../package.json';\nimport {\n BaseConverter,\n ILookupPath,\n impactMapping,\n MappedTransform\n} from './base-converter';\nimport {\n DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n getCCIsForNISTTags\n} from './utils/global';\n\nconst IMPACT_MAPPING: Map<string, number> = new Map([\n ['critical', 0.9],\n ['important', 0.9],\n ['high', 0.7],\n ['medium', 0.5],\n ['moderate', 0.5],\n ['low', 0.3]\n]);\n\nexport class TwistlockResults {\n data: Record<string, unknown>;\n withRaw: boolean;\n constructor(twistlockJson: string, withRaw = false) {\n this.data = JSON.parse(twistlockJson);\n this.withRaw = withRaw;\n\n // Add a wrapper to the data for the repository scan case which doesn't include the `results` key\n if (!_.has(this.data, 'results')) {\n this.data = {results: [this.data]};\n }\n }\n\n toHdf(): ExecJSON.Execution {\n return new TwistlockMapper(this.data, this.withRaw).toHdf();\n }\n}\n\nexport class TwistlockMapper extends BaseConverter {\n withRaw: boolean;\n\n mappings: MappedTransform<\n ExecJSON.Execution & {passthrough: unknown},\n ILookupPath\n > = {\n platform: {\n name: 'Heimdall Tools',\n release: HeimdallToolsVersion,\n target_id: {path: ['results[0].name', 'results[0].repository']}\n },\n version: HeimdallToolsVersion,\n statistics: {},\n profiles: [\n {\n path: 'results',\n name: 'Twistlock Scan',\n title: {\n transformer: (data: Record<string, unknown>): string => {\n let projectArr: unknown = 'N/A';\n if (_.has(data, 'collections')) {\n projectArr = _.get(data, 'collections');\n }\n if (_.has(data, 'repository')) {\n projectArr = _.get(data, 'repository');\n }\n const projectName = Array.isArray(projectArr)\n ? projectArr.join(' / ')\n : projectArr;\n return `Twistlock Project: ${projectName}`;\n }\n },\n summary: {\n transformer: (data: Record<string, unknown>): string => {\n const vulnerabilityTotal = _.has(data, 'vulnerabilityDistribution')\n ? `${JSON.stringify(\n _.get(data, 'vulnerabilityDistribution.total')\n )}`\n : 'N/A';\n const complianceTotal = _.has(data, 'complianceDistribution')\n ? `${JSON.stringify(_.get(data, 'complianceDistribution.total'))}`\n : 'N/A';\n return `Package Vulnerability Summary: ${vulnerabilityTotal} Application Compliance Issue Total: ${complianceTotal}`;\n }\n },\n supports: [],\n attributes: [],\n groups: [],\n status: 'loaded',\n controls: [\n {\n path: 'vulnerabilities',\n key: 'id',\n pathTransform: (value) => (Array.isArray(value) ? value : []),\n tags: {\n nist: DEFAULT_UPDATE_REMEDIATION_NIST_TAGS,\n cci: getCCIsForNISTTags(DEFAULT_UPDATE_REMEDIATION_NIST_TAGS),\n cveid: {path: 'id'}\n },\n refs: [],\n source_location: {},\n title: {path: 'id'},\n id: {path: 'id'},\n desc: {path: 'description'},\n impact: {\n path: 'severity',\n transformer: impactMapping(IMPACT_MAPPING)\n },\n code: {\n transformer: (vulnerability: Record<string, unknown>): string =>\n JSON.stringify(vulnerability, null, 2)\n },\n results: [\n {\n status: ExecJSON.ControlResultStatus.Failed,\n code_desc: {\n transformer: (data: Record<string, unknown>): string => {\n const packageName = _.has(data, 'packageName')\n ? `${JSON.stringify(_.get(data, 'packageName'))}`\n : 'N/A';\n const impactedVersions = _.has(data, 'impactedVersions')\n ? `${JSON.stringify(_.get(data, 'impactedVersions'))}`\n : 'N/A';\n return `Package ${packageName} should be updated to latest version above impacted versions ${impactedVersions}`;\n }\n },\n message: {\n transformer: (data: Record<string, unknown>): string => {\n const packageName = _.has(data, 'packageName')\n ? `${JSON.stringify(_.get(data, 'packageName'))}`\n : 'N/A';\n const packageVersion = _.has(data, 'packageVersion')\n ? `${JSON.stringify(_.get(data, 'packageVersion'))}`\n : 'N/A';\n return `Expected latest version of ${packageName}\\nDetected vulnerable version ${packageVersion} of ${packageName}`;\n }\n },\n start_time: {path: 'discoveredDate'}\n }\n ]\n }\n ],\n sha256: ''\n }\n ],\n passthrough: {\n transformer: (data: Record<string, unknown>): Record<string, unknown> => {\n let resultsData = _.get(data, 'results');\n if (Array.isArray(resultsData)) {\n resultsData = resultsData.map((result: Record<string, unknown>) =>\n _.omit(result, [\n 'name',\n 'collections',\n 'complianceDistribution',\n 'vulnerabilities',\n 'vulnerabilityDistribution'\n ])\n );\n }\n return {\n auxiliary_data: [\n {\n name: 'Twistlock',\n data: {\n results: resultsData,\n consoleURL: _.get(data, 'consoleURL')\n }\n }\n ],\n ...(this.withRaw && {raw: data})\n };\n }\n }\n };\n constructor(twistlockJson: Record<string, unknown>, withRaw = false) {\n super(twistlockJson, true);\n this.withRaw = withRaw;\n }\n}\n"]}