secure-scan 1.2.2

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 (569) hide show
  1. package/README.md +564 -0
  2. package/dist/ai/aiAnalyzer.d.ts +99 -0
  3. package/dist/ai/aiAnalyzer.d.ts.map +1 -0
  4. package/dist/ai/aiAnalyzer.js +669 -0
  5. package/dist/ai/aiAnalyzer.js.map +1 -0
  6. package/dist/ai/index.d.ts +5 -0
  7. package/dist/ai/index.d.ts.map +1 -0
  8. package/dist/ai/index.js +21 -0
  9. package/dist/ai/index.js.map +1 -0
  10. package/dist/analyzers/base/baseAnalyzer.d.ts +44 -0
  11. package/dist/analyzers/base/baseAnalyzer.d.ts.map +1 -0
  12. package/dist/analyzers/base/baseAnalyzer.js +53 -0
  13. package/dist/analyzers/base/baseAnalyzer.js.map +1 -0
  14. package/dist/analyzers/base/index.d.ts +5 -0
  15. package/dist/analyzers/base/index.d.ts.map +1 -0
  16. package/dist/analyzers/base/index.js +21 -0
  17. package/dist/analyzers/base/index.js.map +1 -0
  18. package/dist/analyzers/c-cpp/cppAnalyzer.d.ts +60 -0
  19. package/dist/analyzers/c-cpp/cppAnalyzer.d.ts.map +1 -0
  20. package/dist/analyzers/c-cpp/cppAnalyzer.js +218 -0
  21. package/dist/analyzers/c-cpp/cppAnalyzer.js.map +1 -0
  22. package/dist/analyzers/c-cpp/index.d.ts +5 -0
  23. package/dist/analyzers/c-cpp/index.d.ts.map +1 -0
  24. package/dist/analyzers/c-cpp/index.js +21 -0
  25. package/dist/analyzers/c-cpp/index.js.map +1 -0
  26. package/dist/analyzers/core/engine/index.d.ts +5 -0
  27. package/dist/analyzers/core/engine/index.d.ts.map +1 -0
  28. package/dist/analyzers/core/engine/index.js +21 -0
  29. package/dist/analyzers/core/engine/index.js.map +1 -0
  30. package/dist/analyzers/core/engine/ruleEngine.d.ts +46 -0
  31. package/dist/analyzers/core/engine/ruleEngine.d.ts.map +1 -0
  32. package/dist/analyzers/core/engine/ruleEngine.js +173 -0
  33. package/dist/analyzers/core/engine/ruleEngine.js.map +1 -0
  34. package/dist/analyzers/core/index.d.ts +8 -0
  35. package/dist/analyzers/core/index.d.ts.map +1 -0
  36. package/dist/analyzers/core/index.js +24 -0
  37. package/dist/analyzers/core/index.js.map +1 -0
  38. package/dist/analyzers/core/scanner/fileScanner.d.ts +31 -0
  39. package/dist/analyzers/core/scanner/fileScanner.d.ts.map +1 -0
  40. package/dist/analyzers/core/scanner/fileScanner.js +199 -0
  41. package/dist/analyzers/core/scanner/fileScanner.js.map +1 -0
  42. package/dist/analyzers/core/scanner/index.d.ts +5 -0
  43. package/dist/analyzers/core/scanner/index.d.ts.map +1 -0
  44. package/dist/analyzers/core/scanner/index.js +21 -0
  45. package/dist/analyzers/core/scanner/index.js.map +1 -0
  46. package/dist/analyzers/core/scoring/index.d.ts +5 -0
  47. package/dist/analyzers/core/scoring/index.d.ts.map +1 -0
  48. package/dist/analyzers/core/scoring/index.js +21 -0
  49. package/dist/analyzers/core/scoring/index.js.map +1 -0
  50. package/dist/analyzers/core/scoring/riskScoring.d.ts +49 -0
  51. package/dist/analyzers/core/scoring/riskScoring.d.ts.map +1 -0
  52. package/dist/analyzers/core/scoring/riskScoring.js +180 -0
  53. package/dist/analyzers/core/scoring/riskScoring.js.map +1 -0
  54. package/dist/analyzers/core/securityScanner.d.ts +47 -0
  55. package/dist/analyzers/core/securityScanner.d.ts.map +1 -0
  56. package/dist/analyzers/core/securityScanner.js +298 -0
  57. package/dist/analyzers/core/securityScanner.js.map +1 -0
  58. package/dist/analyzers/csharp/csharpAnalyzer.d.ts +64 -0
  59. package/dist/analyzers/csharp/csharpAnalyzer.d.ts.map +1 -0
  60. package/dist/analyzers/csharp/csharpAnalyzer.js +232 -0
  61. package/dist/analyzers/csharp/csharpAnalyzer.js.map +1 -0
  62. package/dist/analyzers/csharp/index.d.ts +5 -0
  63. package/dist/analyzers/csharp/index.d.ts.map +1 -0
  64. package/dist/analyzers/csharp/index.js +21 -0
  65. package/dist/analyzers/csharp/index.js.map +1 -0
  66. package/dist/analyzers/iac/iacAnalyzer.d.ts +36 -0
  67. package/dist/analyzers/iac/iacAnalyzer.d.ts.map +1 -0
  68. package/dist/analyzers/iac/iacAnalyzer.js +182 -0
  69. package/dist/analyzers/iac/iacAnalyzer.js.map +1 -0
  70. package/dist/analyzers/iac/index.d.ts +5 -0
  71. package/dist/analyzers/iac/index.d.ts.map +1 -0
  72. package/dist/analyzers/iac/index.js +21 -0
  73. package/dist/analyzers/iac/index.js.map +1 -0
  74. package/dist/analyzers/index.d.ts +30 -0
  75. package/dist/analyzers/index.d.ts.map +1 -0
  76. package/dist/analyzers/index.js +80 -0
  77. package/dist/analyzers/index.js.map +1 -0
  78. package/dist/analyzers/java/index.d.ts +5 -0
  79. package/dist/analyzers/java/index.d.ts.map +1 -0
  80. package/dist/analyzers/java/index.js +21 -0
  81. package/dist/analyzers/java/index.js.map +1 -0
  82. package/dist/analyzers/java/javaAnalyzer.d.ts +64 -0
  83. package/dist/analyzers/java/javaAnalyzer.d.ts.map +1 -0
  84. package/dist/analyzers/java/javaAnalyzer.js +224 -0
  85. package/dist/analyzers/java/javaAnalyzer.js.map +1 -0
  86. package/dist/analyzers/javascript/astUtils.d.ts +170 -0
  87. package/dist/analyzers/javascript/astUtils.d.ts.map +1 -0
  88. package/dist/analyzers/javascript/astUtils.js +700 -0
  89. package/dist/analyzers/javascript/astUtils.js.map +1 -0
  90. package/dist/analyzers/javascript/index.d.ts +18 -0
  91. package/dist/analyzers/javascript/index.d.ts.map +1 -0
  92. package/dist/analyzers/javascript/index.js +50 -0
  93. package/dist/analyzers/javascript/index.js.map +1 -0
  94. package/dist/analyzers/javascript/javascriptAnalyzer.d.ts +111 -0
  95. package/dist/analyzers/javascript/javascriptAnalyzer.d.ts.map +1 -0
  96. package/dist/analyzers/javascript/javascriptAnalyzer.js +860 -0
  97. package/dist/analyzers/javascript/javascriptAnalyzer.js.map +1 -0
  98. package/dist/analyzers/javascript/malwareDetector.d.ts +102 -0
  99. package/dist/analyzers/javascript/malwareDetector.d.ts.map +1 -0
  100. package/dist/analyzers/javascript/malwareDetector.js +616 -0
  101. package/dist/analyzers/javascript/malwareDetector.js.map +1 -0
  102. package/dist/analyzers/javascript/packageJsonAnalyzer.d.ts +87 -0
  103. package/dist/analyzers/javascript/packageJsonAnalyzer.d.ts.map +1 -0
  104. package/dist/analyzers/javascript/packageJsonAnalyzer.js +553 -0
  105. package/dist/analyzers/javascript/packageJsonAnalyzer.js.map +1 -0
  106. package/dist/analyzers/javascript/taintAnalyzer.d.ts +120 -0
  107. package/dist/analyzers/javascript/taintAnalyzer.d.ts.map +1 -0
  108. package/dist/analyzers/javascript/taintAnalyzer.js +526 -0
  109. package/dist/analyzers/javascript/taintAnalyzer.js.map +1 -0
  110. package/dist/analyzers/php/index.d.ts +5 -0
  111. package/dist/analyzers/php/index.d.ts.map +1 -0
  112. package/dist/analyzers/php/index.js +21 -0
  113. package/dist/analyzers/php/index.js.map +1 -0
  114. package/dist/analyzers/php/phpAnalyzer.d.ts +56 -0
  115. package/dist/analyzers/php/phpAnalyzer.d.ts.map +1 -0
  116. package/dist/analyzers/php/phpAnalyzer.js +202 -0
  117. package/dist/analyzers/php/phpAnalyzer.js.map +1 -0
  118. package/dist/analyzers/python/index.d.ts +5 -0
  119. package/dist/analyzers/python/index.d.ts.map +1 -0
  120. package/dist/analyzers/python/index.js +21 -0
  121. package/dist/analyzers/python/index.js.map +1 -0
  122. package/dist/analyzers/python/pythonAnalyzer.d.ts +64 -0
  123. package/dist/analyzers/python/pythonAnalyzer.d.ts.map +1 -0
  124. package/dist/analyzers/python/pythonAnalyzer.js +226 -0
  125. package/dist/analyzers/python/pythonAnalyzer.js.map +1 -0
  126. package/dist/cli/index.d.ts +7 -0
  127. package/dist/cli/index.d.ts.map +1 -0
  128. package/dist/cli/index.js +281 -0
  129. package/dist/cli/index.js.map +1 -0
  130. package/dist/core/engine/index.d.ts +5 -0
  131. package/dist/core/engine/index.d.ts.map +1 -0
  132. package/dist/core/engine/index.js +21 -0
  133. package/dist/core/engine/index.js.map +1 -0
  134. package/dist/core/engine/ruleEngine.d.ts +46 -0
  135. package/dist/core/engine/ruleEngine.d.ts.map +1 -0
  136. package/dist/core/engine/ruleEngine.js +173 -0
  137. package/dist/core/engine/ruleEngine.js.map +1 -0
  138. package/dist/core/index.d.ts +8 -0
  139. package/dist/core/index.d.ts.map +1 -0
  140. package/dist/core/index.js +24 -0
  141. package/dist/core/index.js.map +1 -0
  142. package/dist/core/scanner/fileScanner.d.ts +31 -0
  143. package/dist/core/scanner/fileScanner.d.ts.map +1 -0
  144. package/dist/core/scanner/fileScanner.js +199 -0
  145. package/dist/core/scanner/fileScanner.js.map +1 -0
  146. package/dist/core/scanner/index.d.ts +5 -0
  147. package/dist/core/scanner/index.d.ts.map +1 -0
  148. package/dist/core/scanner/index.js +21 -0
  149. package/dist/core/scanner/index.js.map +1 -0
  150. package/dist/core/scoring/index.d.ts +5 -0
  151. package/dist/core/scoring/index.d.ts.map +1 -0
  152. package/dist/core/scoring/index.js +21 -0
  153. package/dist/core/scoring/index.js.map +1 -0
  154. package/dist/core/scoring/riskScoring.d.ts +49 -0
  155. package/dist/core/scoring/riskScoring.d.ts.map +1 -0
  156. package/dist/core/scoring/riskScoring.js +180 -0
  157. package/dist/core/scoring/riskScoring.js.map +1 -0
  158. package/dist/core/securityScanner.d.ts +47 -0
  159. package/dist/core/securityScanner.d.ts.map +1 -0
  160. package/dist/core/securityScanner.js +298 -0
  161. package/dist/core/securityScanner.js.map +1 -0
  162. package/dist/dependencies/aiDependencyAnalyzer.d.ts +96 -0
  163. package/dist/dependencies/aiDependencyAnalyzer.d.ts.map +1 -0
  164. package/dist/dependencies/aiDependencyAnalyzer.js +435 -0
  165. package/dist/dependencies/aiDependencyAnalyzer.js.map +1 -0
  166. package/dist/dependencies/database/cveDatabase.d.ts +32 -0
  167. package/dist/dependencies/database/cveDatabase.d.ts.map +1 -0
  168. package/dist/dependencies/database/cveDatabase.js +393 -0
  169. package/dist/dependencies/database/cveDatabase.js.map +1 -0
  170. package/dist/dependencies/database/index.d.ts +6 -0
  171. package/dist/dependencies/database/index.d.ts.map +1 -0
  172. package/dist/dependencies/database/index.js +22 -0
  173. package/dist/dependencies/database/index.js.map +1 -0
  174. package/dist/dependencies/database/maliciousPackages.d.ts +43 -0
  175. package/dist/dependencies/database/maliciousPackages.d.ts.map +1 -0
  176. package/dist/dependencies/database/maliciousPackages.js +279 -0
  177. package/dist/dependencies/database/maliciousPackages.js.map +1 -0
  178. package/dist/dependencies/dependencyAnalyzer.d.ts +74 -0
  179. package/dist/dependencies/dependencyAnalyzer.d.ts.map +1 -0
  180. package/dist/dependencies/dependencyAnalyzer.js +349 -0
  181. package/dist/dependencies/dependencyAnalyzer.js.map +1 -0
  182. package/dist/dependencies/detectors/index.d.ts +7 -0
  183. package/dist/dependencies/detectors/index.d.ts.map +1 -0
  184. package/dist/dependencies/detectors/index.js +28 -0
  185. package/dist/dependencies/detectors/index.js.map +1 -0
  186. package/dist/dependencies/detectors/securityStandards.d.ts +15 -0
  187. package/dist/dependencies/detectors/securityStandards.d.ts.map +1 -0
  188. package/dist/dependencies/detectors/securityStandards.js +178 -0
  189. package/dist/dependencies/detectors/securityStandards.js.map +1 -0
  190. package/dist/dependencies/detectors/vulnerabilityDetector.d.ts +53 -0
  191. package/dist/dependencies/detectors/vulnerabilityDetector.d.ts.map +1 -0
  192. package/dist/dependencies/detectors/vulnerabilityDetector.js +289 -0
  193. package/dist/dependencies/detectors/vulnerabilityDetector.js.map +1 -0
  194. package/dist/dependencies/index.d.ts +14 -0
  195. package/dist/dependencies/index.d.ts.map +1 -0
  196. package/dist/dependencies/index.js +43 -0
  197. package/dist/dependencies/index.js.map +1 -0
  198. package/dist/dependencies/installed/index.d.ts +8 -0
  199. package/dist/dependencies/installed/index.d.ts.map +1 -0
  200. package/dist/dependencies/installed/index.js +24 -0
  201. package/dist/dependencies/installed/index.js.map +1 -0
  202. package/dist/dependencies/installed/installedScanner.d.ts +91 -0
  203. package/dist/dependencies/installed/installedScanner.d.ts.map +1 -0
  204. package/dist/dependencies/installed/installedScanner.js +766 -0
  205. package/dist/dependencies/installed/installedScanner.js.map +1 -0
  206. package/dist/dependencies/installed/malwarePatterns.d.ts +32 -0
  207. package/dist/dependencies/installed/malwarePatterns.d.ts.map +1 -0
  208. package/dist/dependencies/installed/malwarePatterns.js +480 -0
  209. package/dist/dependencies/installed/malwarePatterns.js.map +1 -0
  210. package/dist/dependencies/installed/types.d.ts +274 -0
  211. package/dist/dependencies/installed/types.d.ts.map +1 -0
  212. package/dist/dependencies/installed/types.js +7 -0
  213. package/dist/dependencies/installed/types.js.map +1 -0
  214. package/dist/dependencies/parsers/base/baseParser.d.ts +44 -0
  215. package/dist/dependencies/parsers/base/baseParser.d.ts.map +1 -0
  216. package/dist/dependencies/parsers/base/baseParser.js +80 -0
  217. package/dist/dependencies/parsers/base/baseParser.js.map +1 -0
  218. package/dist/dependencies/parsers/base/index.d.ts +6 -0
  219. package/dist/dependencies/parsers/base/index.d.ts.map +1 -0
  220. package/dist/dependencies/parsers/base/index.js +27 -0
  221. package/dist/dependencies/parsers/base/index.js.map +1 -0
  222. package/dist/dependencies/parsers/cpp/cppParser.d.ts +36 -0
  223. package/dist/dependencies/parsers/cpp/cppParser.d.ts.map +1 -0
  224. package/dist/dependencies/parsers/cpp/cppParser.js +196 -0
  225. package/dist/dependencies/parsers/cpp/cppParser.js.map +1 -0
  226. package/dist/dependencies/parsers/cpp/index.d.ts +6 -0
  227. package/dist/dependencies/parsers/cpp/index.d.ts.map +1 -0
  228. package/dist/dependencies/parsers/cpp/index.js +27 -0
  229. package/dist/dependencies/parsers/cpp/index.js.map +1 -0
  230. package/dist/dependencies/parsers/csharp/csharpParser.d.ts +32 -0
  231. package/dist/dependencies/parsers/csharp/csharpParser.d.ts.map +1 -0
  232. package/dist/dependencies/parsers/csharp/csharpParser.js +125 -0
  233. package/dist/dependencies/parsers/csharp/csharpParser.js.map +1 -0
  234. package/dist/dependencies/parsers/csharp/index.d.ts +6 -0
  235. package/dist/dependencies/parsers/csharp/index.d.ts.map +1 -0
  236. package/dist/dependencies/parsers/csharp/index.js +27 -0
  237. package/dist/dependencies/parsers/csharp/index.js.map +1 -0
  238. package/dist/dependencies/parsers/index.d.ts +24 -0
  239. package/dist/dependencies/parsers/index.d.ts.map +1 -0
  240. package/dist/dependencies/parsers/index.js +69 -0
  241. package/dist/dependencies/parsers/index.js.map +1 -0
  242. package/dist/dependencies/parsers/java/index.d.ts +6 -0
  243. package/dist/dependencies/parsers/java/index.d.ts.map +1 -0
  244. package/dist/dependencies/parsers/java/index.js +27 -0
  245. package/dist/dependencies/parsers/java/index.js.map +1 -0
  246. package/dist/dependencies/parsers/java/javaParser.d.ts +32 -0
  247. package/dist/dependencies/parsers/java/javaParser.d.ts.map +1 -0
  248. package/dist/dependencies/parsers/java/javaParser.js +168 -0
  249. package/dist/dependencies/parsers/java/javaParser.js.map +1 -0
  250. package/dist/dependencies/parsers/javascript/index.d.ts +6 -0
  251. package/dist/dependencies/parsers/javascript/index.d.ts.map +1 -0
  252. package/dist/dependencies/parsers/javascript/index.js +27 -0
  253. package/dist/dependencies/parsers/javascript/index.js.map +1 -0
  254. package/dist/dependencies/parsers/javascript/javascriptParser.d.ts +55 -0
  255. package/dist/dependencies/parsers/javascript/javascriptParser.d.ts.map +1 -0
  256. package/dist/dependencies/parsers/javascript/javascriptParser.js +266 -0
  257. package/dist/dependencies/parsers/javascript/javascriptParser.js.map +1 -0
  258. package/dist/dependencies/parsers/php/index.d.ts +6 -0
  259. package/dist/dependencies/parsers/php/index.d.ts.map +1 -0
  260. package/dist/dependencies/parsers/php/index.js +27 -0
  261. package/dist/dependencies/parsers/php/index.js.map +1 -0
  262. package/dist/dependencies/parsers/php/phpParser.d.ts +35 -0
  263. package/dist/dependencies/parsers/php/phpParser.d.ts.map +1 -0
  264. package/dist/dependencies/parsers/php/phpParser.js +162 -0
  265. package/dist/dependencies/parsers/php/phpParser.js.map +1 -0
  266. package/dist/dependencies/parsers/python/index.d.ts +6 -0
  267. package/dist/dependencies/parsers/python/index.d.ts.map +1 -0
  268. package/dist/dependencies/parsers/python/index.js +27 -0
  269. package/dist/dependencies/parsers/python/index.js.map +1 -0
  270. package/dist/dependencies/parsers/python/pythonParser.d.ts +60 -0
  271. package/dist/dependencies/parsers/python/pythonParser.d.ts.map +1 -0
  272. package/dist/dependencies/parsers/python/pythonParser.js +336 -0
  273. package/dist/dependencies/parsers/python/pythonParser.js.map +1 -0
  274. package/dist/dependencies/types.d.ts +280 -0
  275. package/dist/dependencies/types.d.ts.map +1 -0
  276. package/dist/dependencies/types.js +59 -0
  277. package/dist/dependencies/types.js.map +1 -0
  278. package/dist/i18n/index.d.ts +2 -0
  279. package/dist/i18n/index.d.ts.map +1 -0
  280. package/dist/i18n/index.js +18 -0
  281. package/dist/i18n/index.js.map +1 -0
  282. package/dist/i18n/translations.d.ts +55 -0
  283. package/dist/i18n/translations.d.ts.map +1 -0
  284. package/dist/i18n/translations.js +119 -0
  285. package/dist/i18n/translations.js.map +1 -0
  286. package/dist/index.d.ts +14 -0
  287. package/dist/index.d.ts.map +1 -0
  288. package/dist/index.js +36 -0
  289. package/dist/index.js.map +1 -0
  290. package/dist/reports/dependencyReportGenerator.d.ts +20 -0
  291. package/dist/reports/dependencyReportGenerator.d.ts.map +1 -0
  292. package/dist/reports/dependencyReportGenerator.js +690 -0
  293. package/dist/reports/dependencyReportGenerator.js.map +1 -0
  294. package/dist/reports/htmlReportGenerator.d.ts +43 -0
  295. package/dist/reports/htmlReportGenerator.d.ts.map +1 -0
  296. package/dist/reports/htmlReportGenerator.js +793 -0
  297. package/dist/reports/htmlReportGenerator.js.map +1 -0
  298. package/dist/reports/index.d.ts +7 -0
  299. package/dist/reports/index.d.ts.map +1 -0
  300. package/dist/reports/index.js +23 -0
  301. package/dist/reports/index.js.map +1 -0
  302. package/dist/reports/installedDepsReportGenerator.d.ts +14 -0
  303. package/dist/reports/installedDepsReportGenerator.d.ts.map +1 -0
  304. package/dist/reports/installedDepsReportGenerator.js +872 -0
  305. package/dist/reports/installedDepsReportGenerator.js.map +1 -0
  306. package/dist/rules/index.d.ts +31 -0
  307. package/dist/rules/index.d.ts.map +1 -0
  308. package/dist/rules/index.js +95 -0
  309. package/dist/rules/index.js.map +1 -0
  310. package/dist/rules/malware/categories/backdoors.d.ts +12 -0
  311. package/dist/rules/malware/categories/backdoors.d.ts.map +1 -0
  312. package/dist/rules/malware/categories/backdoors.js +163 -0
  313. package/dist/rules/malware/categories/backdoors.js.map +1 -0
  314. package/dist/rules/malware/categories/cryptominers.d.ts +13 -0
  315. package/dist/rules/malware/categories/cryptominers.d.ts.map +1 -0
  316. package/dist/rules/malware/categories/cryptominers.js +415 -0
  317. package/dist/rules/malware/categories/cryptominers.js.map +1 -0
  318. package/dist/rules/malware/categories/exfiltration.d.ts +20 -0
  319. package/dist/rules/malware/categories/exfiltration.d.ts.map +1 -0
  320. package/dist/rules/malware/categories/exfiltration.js +658 -0
  321. package/dist/rules/malware/categories/exfiltration.js.map +1 -0
  322. package/dist/rules/malware/categories/keyloggers.d.ts +19 -0
  323. package/dist/rules/malware/categories/keyloggers.d.ts.map +1 -0
  324. package/dist/rules/malware/categories/keyloggers.js +763 -0
  325. package/dist/rules/malware/categories/keyloggers.js.map +1 -0
  326. package/dist/rules/malware/categories/loaders.d.ts +20 -0
  327. package/dist/rules/malware/categories/loaders.d.ts.map +1 -0
  328. package/dist/rules/malware/categories/loaders.js +702 -0
  329. package/dist/rules/malware/categories/loaders.js.map +1 -0
  330. package/dist/rules/malware/categories/network.d.ts +19 -0
  331. package/dist/rules/malware/categories/network.d.ts.map +1 -0
  332. package/dist/rules/malware/categories/network.js +622 -0
  333. package/dist/rules/malware/categories/network.js.map +1 -0
  334. package/dist/rules/malware/categories/obfuscation.d.ts +22 -0
  335. package/dist/rules/malware/categories/obfuscation.d.ts.map +1 -0
  336. package/dist/rules/malware/categories/obfuscation.js +766 -0
  337. package/dist/rules/malware/categories/obfuscation.js.map +1 -0
  338. package/dist/rules/malware/constants/index.d.ts +281 -0
  339. package/dist/rules/malware/constants/index.d.ts.map +1 -0
  340. package/dist/rules/malware/constants/index.js +327 -0
  341. package/dist/rules/malware/constants/index.js.map +1 -0
  342. package/dist/rules/malware/engine/index.d.ts +178 -0
  343. package/dist/rules/malware/engine/index.d.ts.map +1 -0
  344. package/dist/rules/malware/engine/index.js +552 -0
  345. package/dist/rules/malware/engine/index.js.map +1 -0
  346. package/dist/rules/malware/index.d.ts +205 -0
  347. package/dist/rules/malware/index.d.ts.map +1 -0
  348. package/dist/rules/malware/index.js +837 -0
  349. package/dist/rules/malware/index.js.map +1 -0
  350. package/dist/rules/malware/scoring/index.d.ts +84 -0
  351. package/dist/rules/malware/scoring/index.d.ts.map +1 -0
  352. package/dist/rules/malware/scoring/index.js +441 -0
  353. package/dist/rules/malware/scoring/index.js.map +1 -0
  354. package/dist/rules/malware/types/index.d.ts +616 -0
  355. package/dist/rules/malware/types/index.d.ts.map +1 -0
  356. package/dist/rules/malware/types/index.js +155 -0
  357. package/dist/rules/malware/types/index.js.map +1 -0
  358. package/dist/rules/malware/utils/index.d.ts +117 -0
  359. package/dist/rules/malware/utils/index.d.ts.map +1 -0
  360. package/dist/rules/malware/utils/index.js +514 -0
  361. package/dist/rules/malware/utils/index.js.map +1 -0
  362. package/dist/rules/standards.d.ts +26 -0
  363. package/dist/rules/standards.d.ts.map +1 -0
  364. package/dist/rules/standards.js +352 -0
  365. package/dist/rules/standards.js.map +1 -0
  366. package/dist/rules/vulnerabilities/constants/index.d.ts +835 -0
  367. package/dist/rules/vulnerabilities/constants/index.d.ts.map +1 -0
  368. package/dist/rules/vulnerabilities/constants/index.js +544 -0
  369. package/dist/rules/vulnerabilities/constants/index.js.map +1 -0
  370. package/dist/rules/vulnerabilities/engine/index.d.ts +145 -0
  371. package/dist/rules/vulnerabilities/engine/index.d.ts.map +1 -0
  372. package/dist/rules/vulnerabilities/engine/index.js +581 -0
  373. package/dist/rules/vulnerabilities/engine/index.js.map +1 -0
  374. package/dist/rules/vulnerabilities/index.d.ts +148 -0
  375. package/dist/rules/vulnerabilities/index.d.ts.map +1 -0
  376. package/dist/rules/vulnerabilities/index.js +252 -0
  377. package/dist/rules/vulnerabilities/index.js.map +1 -0
  378. package/dist/rules/vulnerabilities/rules/authentication.d.ts +8 -0
  379. package/dist/rules/vulnerabilities/rules/authentication.d.ts.map +1 -0
  380. package/dist/rules/vulnerabilities/rules/authentication.js +419 -0
  381. package/dist/rules/vulnerabilities/rules/authentication.js.map +1 -0
  382. package/dist/rules/vulnerabilities/rules/commandInjection.d.ts +8 -0
  383. package/dist/rules/vulnerabilities/rules/commandInjection.d.ts.map +1 -0
  384. package/dist/rules/vulnerabilities/rules/commandInjection.js +300 -0
  385. package/dist/rules/vulnerabilities/rules/commandInjection.js.map +1 -0
  386. package/dist/rules/vulnerabilities/rules/csrf.d.ts +8 -0
  387. package/dist/rules/vulnerabilities/rules/csrf.d.ts.map +1 -0
  388. package/dist/rules/vulnerabilities/rules/csrf.js +261 -0
  389. package/dist/rules/vulnerabilities/rules/csrf.js.map +1 -0
  390. package/dist/rules/vulnerabilities/rules/deserialization.d.ts +8 -0
  391. package/dist/rules/vulnerabilities/rules/deserialization.d.ts.map +1 -0
  392. package/dist/rules/vulnerabilities/rules/deserialization.js +336 -0
  393. package/dist/rules/vulnerabilities/rules/deserialization.js.map +1 -0
  394. package/dist/rules/vulnerabilities/rules/fileUpload.d.ts +8 -0
  395. package/dist/rules/vulnerabilities/rules/fileUpload.d.ts.map +1 -0
  396. package/dist/rules/vulnerabilities/rules/fileUpload.js +325 -0
  397. package/dist/rules/vulnerabilities/rules/fileUpload.js.map +1 -0
  398. package/dist/rules/vulnerabilities/rules/hardcodedSecrets.d.ts +8 -0
  399. package/dist/rules/vulnerabilities/rules/hardcodedSecrets.d.ts.map +1 -0
  400. package/dist/rules/vulnerabilities/rules/hardcodedSecrets.js +446 -0
  401. package/dist/rules/vulnerabilities/rules/hardcodedSecrets.js.map +1 -0
  402. package/dist/rules/vulnerabilities/rules/index.d.ts +17 -0
  403. package/dist/rules/vulnerabilities/rules/index.d.ts.map +1 -0
  404. package/dist/rules/vulnerabilities/rules/index.js +47 -0
  405. package/dist/rules/vulnerabilities/rules/index.js.map +1 -0
  406. package/dist/rules/vulnerabilities/rules/pathTraversal.d.ts +8 -0
  407. package/dist/rules/vulnerabilities/rules/pathTraversal.d.ts.map +1 -0
  408. package/dist/rules/vulnerabilities/rules/pathTraversal.js +351 -0
  409. package/dist/rules/vulnerabilities/rules/pathTraversal.js.map +1 -0
  410. package/dist/rules/vulnerabilities/rules/prototypePollution.d.ts +8 -0
  411. package/dist/rules/vulnerabilities/rules/prototypePollution.d.ts.map +1 -0
  412. package/dist/rules/vulnerabilities/rules/prototypePollution.js +272 -0
  413. package/dist/rules/vulnerabilities/rules/prototypePollution.js.map +1 -0
  414. package/dist/rules/vulnerabilities/rules/securityMisconfiguration.d.ts +8 -0
  415. package/dist/rules/vulnerabilities/rules/securityMisconfiguration.d.ts.map +1 -0
  416. package/dist/rules/vulnerabilities/rules/securityMisconfiguration.js +438 -0
  417. package/dist/rules/vulnerabilities/rules/securityMisconfiguration.js.map +1 -0
  418. package/dist/rules/vulnerabilities/rules/sqlInjection.d.ts +12 -0
  419. package/dist/rules/vulnerabilities/rules/sqlInjection.d.ts.map +1 -0
  420. package/dist/rules/vulnerabilities/rules/sqlInjection.js +636 -0
  421. package/dist/rules/vulnerabilities/rules/sqlInjection.js.map +1 -0
  422. package/dist/rules/vulnerabilities/rules/ssrf.d.ts +8 -0
  423. package/dist/rules/vulnerabilities/rules/ssrf.d.ts.map +1 -0
  424. package/dist/rules/vulnerabilities/rules/ssrf.js +401 -0
  425. package/dist/rules/vulnerabilities/rules/ssrf.js.map +1 -0
  426. package/dist/rules/vulnerabilities/rules/xss.d.ts +11 -0
  427. package/dist/rules/vulnerabilities/rules/xss.d.ts.map +1 -0
  428. package/dist/rules/vulnerabilities/rules/xss.js +724 -0
  429. package/dist/rules/vulnerabilities/rules/xss.js.map +1 -0
  430. package/dist/rules/vulnerabilities/scoring/index.d.ts +80 -0
  431. package/dist/rules/vulnerabilities/scoring/index.d.ts.map +1 -0
  432. package/dist/rules/vulnerabilities/scoring/index.js +414 -0
  433. package/dist/rules/vulnerabilities/scoring/index.js.map +1 -0
  434. package/dist/rules/vulnerabilities/types/index.d.ts +830 -0
  435. package/dist/rules/vulnerabilities/types/index.d.ts.map +1 -0
  436. package/dist/rules/vulnerabilities/types/index.js +164 -0
  437. package/dist/rules/vulnerabilities/types/index.js.map +1 -0
  438. package/dist/rules/vulnerabilities/utils/index.d.ts +206 -0
  439. package/dist/rules/vulnerabilities/utils/index.d.ts.map +1 -0
  440. package/dist/rules/vulnerabilities/utils/index.js +615 -0
  441. package/dist/rules/vulnerabilities/utils/index.js.map +1 -0
  442. package/dist/types/index.d.ts +359 -0
  443. package/dist/types/index.d.ts.map +1 -0
  444. package/dist/types/index.js +61 -0
  445. package/dist/types/index.js.map +1 -0
  446. package/dist/utils/index.d.ts +82 -0
  447. package/dist/utils/index.d.ts.map +1 -0
  448. package/dist/utils/index.js +326 -0
  449. package/dist/utils/index.js.map +1 -0
  450. package/dist/utils/logger.d.ts +40 -0
  451. package/dist/utils/logger.d.ts.map +1 -0
  452. package/dist/utils/logger.js +139 -0
  453. package/dist/utils/logger.js.map +1 -0
  454. package/docs/ARCHITECTURE.md +320 -0
  455. package/docs/V1.2.1-IA_Performances.md +116 -0
  456. package/docs/images/WIN_Defender.png +0 -0
  457. package/package.json +68 -0
  458. package/secure-scan.config.json +134 -0
  459. package/secure-scan.sln +29 -0
  460. package/src/ai/aiAnalyzer.ts +714 -0
  461. package/src/ai/index.ts +5 -0
  462. package/src/analyzers/base/baseAnalyzer.ts +66 -0
  463. package/src/analyzers/base/index.ts +5 -0
  464. package/src/analyzers/c-cpp/cppAnalyzer.ts +308 -0
  465. package/src/analyzers/c-cpp/index.ts +5 -0
  466. package/src/analyzers/core/engine/index.ts +5 -0
  467. package/src/analyzers/core/engine/ruleEngine.ts +221 -0
  468. package/src/analyzers/core/index.ts +8 -0
  469. package/src/analyzers/core/scanner/fileScanner.ts +204 -0
  470. package/src/analyzers/core/scanner/index.ts +5 -0
  471. package/src/analyzers/core/scoring/index.ts +5 -0
  472. package/src/analyzers/core/scoring/riskScoring.ts +198 -0
  473. package/src/analyzers/core/securityScanner.ts +321 -0
  474. package/src/analyzers/csharp/csharpAnalyzer.ts +328 -0
  475. package/src/analyzers/csharp/index.ts +5 -0
  476. package/src/analyzers/iac/iacAnalyzer.ts +318 -0
  477. package/src/analyzers/iac/index.ts +5 -0
  478. package/src/analyzers/index.ts +67 -0
  479. package/src/analyzers/java/index.ts +5 -0
  480. package/src/analyzers/java/javaAnalyzer.ts +320 -0
  481. package/src/analyzers/javascript/PROMPT_JS_ANALYZER.md +267 -0
  482. package/src/analyzers/javascript/astUtils.ts +789 -0
  483. package/src/analyzers/javascript/index.ts +50 -0
  484. package/src/analyzers/javascript/javascriptAnalyzer.ts +984 -0
  485. package/src/analyzers/javascript/malwareDetector.ts +697 -0
  486. package/src/analyzers/javascript/packageJsonAnalyzer.ts +626 -0
  487. package/src/analyzers/javascript/taintAnalyzer.ts +630 -0
  488. package/src/analyzers/php/index.ts +5 -0
  489. package/src/analyzers/php/phpAnalyzer.ts +280 -0
  490. package/src/analyzers/python/index.ts +5 -0
  491. package/src/analyzers/python/pythonAnalyzer.ts +319 -0
  492. package/src/cli/index.ts +276 -0
  493. package/src/dependencies/aiDependencyAnalyzer.ts +496 -0
  494. package/src/dependencies/database/cveDatabase.ts +426 -0
  495. package/src/dependencies/database/index.ts +6 -0
  496. package/src/dependencies/database/maliciousPackages.ts +286 -0
  497. package/src/dependencies/dependencyAnalyzer.ts +394 -0
  498. package/src/dependencies/detectors/index.ts +7 -0
  499. package/src/dependencies/detectors/securityStandards.ts +200 -0
  500. package/src/dependencies/detectors/vulnerabilityDetector.ts +343 -0
  501. package/src/dependencies/index.ts +27 -0
  502. package/src/dependencies/installed/index.ts +8 -0
  503. package/src/dependencies/installed/installedScanner.ts +821 -0
  504. package/src/dependencies/installed/malwarePatterns.ts +492 -0
  505. package/src/dependencies/installed/types.ts +287 -0
  506. package/src/dependencies/parsers/base/baseParser.ts +108 -0
  507. package/src/dependencies/parsers/base/index.ts +6 -0
  508. package/src/dependencies/parsers/cpp/cppParser.ts +245 -0
  509. package/src/dependencies/parsers/cpp/index.ts +6 -0
  510. package/src/dependencies/parsers/csharp/csharpParser.ts +151 -0
  511. package/src/dependencies/parsers/csharp/index.ts +6 -0
  512. package/src/dependencies/parsers/index.ts +56 -0
  513. package/src/dependencies/parsers/java/index.ts +6 -0
  514. package/src/dependencies/parsers/java/javaParser.ts +203 -0
  515. package/src/dependencies/parsers/javascript/index.ts +6 -0
  516. package/src/dependencies/parsers/javascript/javascriptParser.ts +362 -0
  517. package/src/dependencies/parsers/php/index.ts +6 -0
  518. package/src/dependencies/parsers/php/phpParser.ts +208 -0
  519. package/src/dependencies/parsers/python/index.ts +6 -0
  520. package/src/dependencies/parsers/python/pythonParser.ts +437 -0
  521. package/src/dependencies/types.ts +330 -0
  522. package/src/i18n/index.ts +1 -0
  523. package/src/i18n/translations.ts +194 -0
  524. package/src/index.ts +16 -0
  525. package/src/reports/dependencyReportGenerator.ts +717 -0
  526. package/src/reports/htmlReportGenerator.ts +781 -0
  527. package/src/reports/index.ts +7 -0
  528. package/src/reports/installedDepsReportGenerator.ts +899 -0
  529. package/src/rules/index.ts +58 -0
  530. package/src/rules/malware/INFO.md +287 -0
  531. package/src/rules/malware/categories/backdoors.ts +174 -0
  532. package/src/rules/malware/categories/cryptominers.ts +434 -0
  533. package/src/rules/malware/categories/exfiltration.ts +677 -0
  534. package/src/rules/malware/categories/keyloggers.ts +780 -0
  535. package/src/rules/malware/categories/loaders.ts +721 -0
  536. package/src/rules/malware/categories/network.ts +639 -0
  537. package/src/rules/malware/categories/obfuscation.ts +788 -0
  538. package/src/rules/malware/constants/index.ts +358 -0
  539. package/src/rules/malware/engine/index.ts +758 -0
  540. package/src/rules/malware/index.ts +928 -0
  541. package/src/rules/malware/scoring/index.ts +549 -0
  542. package/src/rules/malware/types/index.ts +752 -0
  543. package/src/rules/malware/utils/index.ts +643 -0
  544. package/src/rules/standards.ts +372 -0
  545. package/src/rules/vulnerabilities/PROMPT_VULNERABILITIES.md +226 -0
  546. package/src/rules/vulnerabilities/constants/index.ts +625 -0
  547. package/src/rules/vulnerabilities/engine/index.ts +831 -0
  548. package/src/rules/vulnerabilities/index.ts +312 -0
  549. package/src/rules/vulnerabilities/rules/authentication.ts +426 -0
  550. package/src/rules/vulnerabilities/rules/commandInjection.ts +307 -0
  551. package/src/rules/vulnerabilities/rules/csrf.ts +268 -0
  552. package/src/rules/vulnerabilities/rules/deserialization.ts +343 -0
  553. package/src/rules/vulnerabilities/rules/fileUpload.ts +332 -0
  554. package/src/rules/vulnerabilities/rules/hardcodedSecrets.ts +453 -0
  555. package/src/rules/vulnerabilities/rules/index.ts +17 -0
  556. package/src/rules/vulnerabilities/rules/pathTraversal.ts +358 -0
  557. package/src/rules/vulnerabilities/rules/prototypePollution.ts +279 -0
  558. package/src/rules/vulnerabilities/rules/securityMisconfiguration.ts +445 -0
  559. package/src/rules/vulnerabilities/rules/sqlInjection.ts +669 -0
  560. package/src/rules/vulnerabilities/rules/ssrf.ts +408 -0
  561. package/src/rules/vulnerabilities/rules/xss.ts +753 -0
  562. package/src/rules/vulnerabilities/scoring/index.ts +543 -0
  563. package/src/rules/vulnerabilities/types/index.ts +1004 -0
  564. package/src/rules/vulnerabilities/utils/index.ts +709 -0
  565. package/src/types/index.ts +391 -0
  566. package/src/utils/index.ts +306 -0
  567. package/src/utils/logger.ts +150 -0
  568. package/test-installed-scanner.ts +136 -0
  569. package/tsconfig.json +30 -0
@@ -0,0 +1,372 @@
1
+ /**
2
+ * Security Standards Database
3
+ * OWASP Top 10, CWE, MITRE ATT&CK, SANS Top 25
4
+ */
5
+
6
+ import { SecurityStandard, ThreatType } from '../types';
7
+
8
+ /**
9
+ * OWASP Top 10 2021
10
+ */
11
+ export const OWASP_TOP_10: Record<string, SecurityStandard> = {
12
+ 'A01:2021': {
13
+ name: 'OWASP',
14
+ id: 'A01:2021',
15
+ title: 'Broken Access Control',
16
+ description: 'Access control enforces policy such that users cannot act outside of their intended permissions.',
17
+ url: 'https://owasp.org/Top10/A01_2021-Broken_Access_Control/'
18
+ },
19
+ 'A02:2021': {
20
+ name: 'OWASP',
21
+ id: 'A02:2021',
22
+ title: 'Cryptographic Failures',
23
+ description: 'Failures related to cryptography which often lead to sensitive data exposure.',
24
+ url: 'https://owasp.org/Top10/A02_2021-Cryptographic_Failures/'
25
+ },
26
+ 'A03:2021': {
27
+ name: 'OWASP',
28
+ id: 'A03:2021',
29
+ title: 'Injection',
30
+ description: 'User-supplied data is not validated, filtered, or sanitized by the application.',
31
+ url: 'https://owasp.org/Top10/A03_2021-Injection/'
32
+ },
33
+ 'A04:2021': {
34
+ name: 'OWASP',
35
+ id: 'A04:2021',
36
+ title: 'Insecure Design',
37
+ description: 'Missing or ineffective control design.',
38
+ url: 'https://owasp.org/Top10/A04_2021-Insecure_Design/'
39
+ },
40
+ 'A05:2021': {
41
+ name: 'OWASP',
42
+ id: 'A05:2021',
43
+ title: 'Security Misconfiguration',
44
+ description: 'Missing appropriate security hardening or improperly configured permissions.',
45
+ url: 'https://owasp.org/Top10/A05_2021-Security_Misconfiguration/'
46
+ },
47
+ 'A06:2021': {
48
+ name: 'OWASP',
49
+ id: 'A06:2021',
50
+ title: 'Vulnerable and Outdated Components',
51
+ description: 'Using components with known vulnerabilities.',
52
+ url: 'https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/'
53
+ },
54
+ 'A07:2021': {
55
+ name: 'OWASP',
56
+ id: 'A07:2021',
57
+ title: 'Identification and Authentication Failures',
58
+ description: 'Confirmation of user identity, authentication, and session management.',
59
+ url: 'https://owasp.org/Top10/A07_2021-Identification_and_Authentication_Failures/'
60
+ },
61
+ 'A08:2021': {
62
+ name: 'OWASP',
63
+ id: 'A08:2021',
64
+ title: 'Software and Data Integrity Failures',
65
+ description: 'Code and infrastructure that does not protect against integrity violations.',
66
+ url: 'https://owasp.org/Top10/A08_2021-Software_and_Data_Integrity_Failures/'
67
+ },
68
+ 'A09:2021': {
69
+ name: 'OWASP',
70
+ id: 'A09:2021',
71
+ title: 'Security Logging and Monitoring Failures',
72
+ description: 'Insufficient logging, detection, monitoring, and active response.',
73
+ url: 'https://owasp.org/Top10/A09_2021-Security_Logging_and_Monitoring_Failures/'
74
+ },
75
+ 'A10:2021': {
76
+ name: 'OWASP',
77
+ id: 'A10:2021',
78
+ title: 'Server-Side Request Forgery (SSRF)',
79
+ description: 'SSRF flaws occur when a web application fetches a remote resource without validating the user-supplied URL.',
80
+ url: 'https://owasp.org/Top10/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/'
81
+ }
82
+ };
83
+
84
+ /**
85
+ * Common Weakness Enumeration (CWE)
86
+ */
87
+ export const CWE_DATABASE: Record<string, SecurityStandard> = {
88
+ 'CWE-79': {
89
+ name: 'CWE',
90
+ id: 'CWE-79',
91
+ title: 'Improper Neutralization of Input During Web Page Generation (XSS)',
92
+ description: 'The software does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page.',
93
+ url: 'https://cwe.mitre.org/data/definitions/79.html'
94
+ },
95
+ 'CWE-89': {
96
+ name: 'CWE',
97
+ id: 'CWE-89',
98
+ title: 'SQL Injection',
99
+ description: 'The software constructs SQL commands using externally-influenced input from an upstream component.',
100
+ url: 'https://cwe.mitre.org/data/definitions/89.html'
101
+ },
102
+ 'CWE-78': {
103
+ name: 'CWE',
104
+ id: 'CWE-78',
105
+ title: 'OS Command Injection',
106
+ description: 'The software constructs OS commands using externally-influenced input without proper neutralization.',
107
+ url: 'https://cwe.mitre.org/data/definitions/78.html'
108
+ },
109
+ 'CWE-94': {
110
+ name: 'CWE',
111
+ id: 'CWE-94',
112
+ title: 'Improper Control of Generation of Code (Code Injection)',
113
+ description: 'The software constructs code segments using externally-influenced input without proper neutralization.',
114
+ url: 'https://cwe.mitre.org/data/definitions/94.html'
115
+ },
116
+ 'CWE-502': {
117
+ name: 'CWE',
118
+ id: 'CWE-502',
119
+ title: 'Deserialization of Untrusted Data',
120
+ description: 'The application deserializes untrusted data without sufficiently verifying that the resulting data will be valid.',
121
+ url: 'https://cwe.mitre.org/data/definitions/502.html'
122
+ },
123
+ 'CWE-798': {
124
+ name: 'CWE',
125
+ id: 'CWE-798',
126
+ title: 'Use of Hard-coded Credentials',
127
+ description: 'The software contains hard-coded credentials, such as passwords or cryptographic keys.',
128
+ url: 'https://cwe.mitre.org/data/definitions/798.html'
129
+ },
130
+ 'CWE-22': {
131
+ name: 'CWE',
132
+ id: 'CWE-22',
133
+ title: 'Path Traversal',
134
+ description: 'The software uses external input to construct a pathname without proper neutralization.',
135
+ url: 'https://cwe.mitre.org/data/definitions/22.html'
136
+ },
137
+ 'CWE-327': {
138
+ name: 'CWE',
139
+ id: 'CWE-327',
140
+ title: 'Use of a Broken or Risky Cryptographic Algorithm',
141
+ description: 'The use of a broken or risky cryptographic algorithm is an unnecessary risk.',
142
+ url: 'https://cwe.mitre.org/data/definitions/327.html'
143
+ },
144
+ 'CWE-330': {
145
+ name: 'CWE',
146
+ id: 'CWE-330',
147
+ title: 'Use of Insufficiently Random Values',
148
+ description: 'The software uses insufficiently random numbers or values in a security context.',
149
+ url: 'https://cwe.mitre.org/data/definitions/330.html'
150
+ },
151
+ 'CWE-352': {
152
+ name: 'CWE',
153
+ id: 'CWE-352',
154
+ title: 'Cross-Site Request Forgery (CSRF)',
155
+ description: 'The web application does not verify that the request was intentionally provided by the user.',
156
+ url: 'https://cwe.mitre.org/data/definitions/352.html'
157
+ },
158
+ 'CWE-90': {
159
+ name: 'CWE',
160
+ id: 'CWE-90',
161
+ title: 'LDAP Injection',
162
+ description: 'The software constructs LDAP statements using externally-influenced input.',
163
+ url: 'https://cwe.mitre.org/data/definitions/90.html'
164
+ },
165
+ 'CWE-200': {
166
+ name: 'CWE',
167
+ id: 'CWE-200',
168
+ title: 'Exposure of Sensitive Information',
169
+ description: 'The software exposes sensitive information to an actor not authorized to have access.',
170
+ url: 'https://cwe.mitre.org/data/definitions/200.html'
171
+ },
172
+ 'CWE-506': {
173
+ name: 'CWE',
174
+ id: 'CWE-506',
175
+ title: 'Embedded Malicious Code',
176
+ description: 'The application contains code that appears to be malicious in nature.',
177
+ url: 'https://cwe.mitre.org/data/definitions/506.html'
178
+ },
179
+ 'CWE-912': {
180
+ name: 'CWE',
181
+ id: 'CWE-912',
182
+ title: 'Hidden Functionality',
183
+ description: 'The software contains functionality that is not documented or accessible through the intended interface.',
184
+ url: 'https://cwe.mitre.org/data/definitions/912.html'
185
+ }
186
+ };
187
+
188
+ /**
189
+ * MITRE ATT&CK Techniques
190
+ */
191
+ export const MITRE_ATTACK: Record<string, SecurityStandard> = {
192
+ 'T1059': {
193
+ name: 'MITRE',
194
+ id: 'T1059',
195
+ title: 'Command and Scripting Interpreter',
196
+ description: 'Adversaries may abuse command and script interpreters to execute commands.',
197
+ url: 'https://attack.mitre.org/techniques/T1059/'
198
+ },
199
+ 'T1071': {
200
+ name: 'MITRE',
201
+ id: 'T1071',
202
+ title: 'Application Layer Protocol',
203
+ description: 'Adversaries may communicate using application layer protocols to avoid detection.',
204
+ url: 'https://attack.mitre.org/techniques/T1071/'
205
+ },
206
+ 'T1027': {
207
+ name: 'MITRE',
208
+ id: 'T1027',
209
+ title: 'Obfuscated Files or Information',
210
+ description: 'Adversaries may attempt to make files or information difficult to discover or analyze.',
211
+ url: 'https://attack.mitre.org/techniques/T1027/'
212
+ },
213
+ 'T1132': {
214
+ name: 'MITRE',
215
+ id: 'T1132',
216
+ title: 'Data Encoding',
217
+ description: 'Adversaries may encode data to make the content of command and control traffic more difficult to detect.',
218
+ url: 'https://attack.mitre.org/techniques/T1132/'
219
+ },
220
+ 'T1041': {
221
+ name: 'MITRE',
222
+ id: 'T1041',
223
+ title: 'Exfiltration Over C2 Channel',
224
+ description: 'Adversaries may steal data by exfiltrating it over an existing command and control channel.',
225
+ url: 'https://attack.mitre.org/techniques/T1041/'
226
+ },
227
+ 'T1496': {
228
+ name: 'MITRE',
229
+ id: 'T1496',
230
+ title: 'Resource Hijacking',
231
+ description: 'Adversaries may leverage the resources of systems to mine cryptocurrency.',
232
+ url: 'https://attack.mitre.org/techniques/T1496/'
233
+ },
234
+ 'T1056': {
235
+ name: 'MITRE',
236
+ id: 'T1056',
237
+ title: 'Input Capture',
238
+ description: 'Adversaries may use methods of capturing user input to obtain credentials or collect information.',
239
+ url: 'https://attack.mitre.org/techniques/T1056/'
240
+ }
241
+ };
242
+
243
+ /**
244
+ * SANS Top 25
245
+ */
246
+ export const SANS_TOP_25: Record<string, SecurityStandard> = {
247
+ 'SANS-1': {
248
+ name: 'SANS',
249
+ id: 'SANS-1',
250
+ title: 'Out-of-bounds Write',
251
+ description: 'Writing data past the end, or before the beginning, of the intended buffer.',
252
+ url: 'https://www.sans.org/top25-software-errors/'
253
+ },
254
+ 'SANS-2': {
255
+ name: 'SANS',
256
+ id: 'SANS-2',
257
+ title: 'Improper Neutralization of Input During Web Page Generation',
258
+ description: 'Cross-site scripting (XSS) vulnerabilities.',
259
+ url: 'https://www.sans.org/top25-software-errors/'
260
+ },
261
+ 'SANS-3': {
262
+ name: 'SANS',
263
+ id: 'SANS-3',
264
+ title: 'SQL Injection',
265
+ description: 'SQL injection vulnerabilities in database queries.',
266
+ url: 'https://www.sans.org/top25-software-errors/'
267
+ }
268
+ };
269
+
270
+ /**
271
+ * Map threat types to relevant security standards
272
+ */
273
+ export function getStandardsForThreat(threatType: ThreatType): SecurityStandard[] {
274
+ const standards: SecurityStandard[] = [];
275
+
276
+ switch (threatType) {
277
+ case ThreatType.SQL_INJECTION:
278
+ standards.push(OWASP_TOP_10['A03:2021']);
279
+ standards.push(CWE_DATABASE['CWE-89']);
280
+ standards.push(SANS_TOP_25['SANS-3']);
281
+ break;
282
+
283
+ case ThreatType.COMMAND_INJECTION:
284
+ standards.push(OWASP_TOP_10['A03:2021']);
285
+ standards.push(CWE_DATABASE['CWE-78']);
286
+ standards.push(MITRE_ATTACK['T1059']);
287
+ break;
288
+
289
+ case ThreatType.XSS:
290
+ standards.push(OWASP_TOP_10['A03:2021']);
291
+ standards.push(CWE_DATABASE['CWE-79']);
292
+ standards.push(SANS_TOP_25['SANS-2']);
293
+ break;
294
+
295
+ case ThreatType.CSRF:
296
+ standards.push(OWASP_TOP_10['A01:2021']);
297
+ standards.push(CWE_DATABASE['CWE-352']);
298
+ break;
299
+
300
+ case ThreatType.INSECURE_DESERIALIZATION:
301
+ standards.push(OWASP_TOP_10['A08:2021']);
302
+ standards.push(CWE_DATABASE['CWE-502']);
303
+ break;
304
+
305
+ case ThreatType.HARDCODED_CREDENTIALS:
306
+ standards.push(OWASP_TOP_10['A07:2021']);
307
+ standards.push(CWE_DATABASE['CWE-798']);
308
+ break;
309
+
310
+ case ThreatType.PATH_TRAVERSAL:
311
+ standards.push(OWASP_TOP_10['A01:2021']);
312
+ standards.push(CWE_DATABASE['CWE-22']);
313
+ break;
314
+
315
+ case ThreatType.LDAP_INJECTION:
316
+ standards.push(OWASP_TOP_10['A03:2021']);
317
+ standards.push(CWE_DATABASE['CWE-90']);
318
+ break;
319
+
320
+ case ThreatType.INSECURE_CRYPTO:
321
+ standards.push(OWASP_TOP_10['A02:2021']);
322
+ standards.push(CWE_DATABASE['CWE-327']);
323
+ break;
324
+
325
+ case ThreatType.WEAK_RANDOM:
326
+ standards.push(OWASP_TOP_10['A02:2021']);
327
+ standards.push(CWE_DATABASE['CWE-330']);
328
+ break;
329
+
330
+ case ThreatType.DANGEROUS_FUNCTION:
331
+ standards.push(OWASP_TOP_10['A03:2021']);
332
+ standards.push(CWE_DATABASE['CWE-94']);
333
+ break;
334
+
335
+ case ThreatType.BACKDOOR:
336
+ case ThreatType.REVERSE_SHELL:
337
+ standards.push(CWE_DATABASE['CWE-506']);
338
+ standards.push(CWE_DATABASE['CWE-912']);
339
+ standards.push(MITRE_ATTACK['T1059']);
340
+ break;
341
+
342
+ case ThreatType.OBFUSCATED_CODE:
343
+ standards.push(CWE_DATABASE['CWE-506']);
344
+ standards.push(MITRE_ATTACK['T1027']);
345
+ break;
346
+
347
+ case ThreatType.CRYPTOMINER:
348
+ standards.push(CWE_DATABASE['CWE-506']);
349
+ standards.push(MITRE_ATTACK['T1496']);
350
+ break;
351
+
352
+ case ThreatType.KEYLOGGER:
353
+ standards.push(CWE_DATABASE['CWE-506']);
354
+ standards.push(MITRE_ATTACK['T1056']);
355
+ break;
356
+
357
+ case ThreatType.DATA_EXFILTRATION:
358
+ standards.push(CWE_DATABASE['CWE-200']);
359
+ standards.push(MITRE_ATTACK['T1041']);
360
+ break;
361
+
362
+ case ThreatType.INFORMATION_DISCLOSURE:
363
+ standards.push(OWASP_TOP_10['A01:2021']);
364
+ standards.push(CWE_DATABASE['CWE-200']);
365
+ break;
366
+
367
+ default:
368
+ standards.push(OWASP_TOP_10['A05:2021']);
369
+ }
370
+
371
+ return standards.filter(s => s !== undefined);
372
+ }
@@ -0,0 +1,226 @@
1
+ # PROMPT – Diseño y Mejora del Módulo de Reglas de Vulnerabilidades
2
+ ## Secure-Scan – src/rules/vulnerabilities
3
+
4
+ Asume el rol combinado de:
5
+
6
+ - AppSec Engineer
7
+ - Security Architect
8
+ - SAST Engine Designer
9
+ - Auditor de Seguridad
10
+
11
+ con experiencia en herramientas SAST empresariales, OWASP, CWE, MITRE ATT&CK y análisis estático avanzado.
12
+
13
+ ---
14
+
15
+ ## 🎯 Objetivo General
16
+
17
+ Diseñar e implementar el módulo `src/rules/vulnerabilities`, encargado de la **detección avanzada de vulnerabilidades de seguridad** en proyectos de software, sin ejecutar el código.
18
+
19
+ El módulo debe priorizar:
20
+
21
+ - Alta cobertura de reglas
22
+ - Alta precisión (mínimos falsos positivos)
23
+ - Detección temprana
24
+ - Explicaciones claras (auditoría + developer-friendly)
25
+ - Soporte multi-lenguaje
26
+ - Escalabilidad y arquitectura modular
27
+
28
+ ---
29
+
30
+ ## 🧩 Alcance del Módulo
31
+
32
+ El módulo debe detectar:
33
+
34
+ ### 🔹 Vulnerabilidades de código
35
+ - Errores de validación de entrada
36
+ - Flujos peligrosos de datos
37
+ - Uso inseguro de APIs
38
+
39
+ ### 🔹 Configuración insegura
40
+ - Archivos YAML / JSON / ENV
41
+ - Configuraciones débiles o peligrosas
42
+
43
+ ### 🔹 Infraestructura
44
+ - Dockerfiles
45
+ - CI/CD pipelines
46
+ - Archivos de automatización
47
+
48
+ ---
49
+
50
+ ## 📚 Estándares Obligatorios
51
+
52
+ Cada regla de vulnerabilidad DEBE mapearse cuando aplique a:
53
+
54
+ - OWASP Top 10
55
+ - CWE
56
+ - SANS Top 25
57
+ - MITRE ATT&CK
58
+ - CVEs reales (si existen)
59
+
60
+ ---
61
+
62
+ ## 🗂️ Clasificación de Vulnerabilidades
63
+
64
+ Las vulnerabilidades deben organizarse por:
65
+
66
+ - Tipo:
67
+ - Injection
68
+ - XSS
69
+ - Auth / Session
70
+ - Configuración
71
+ - Deserialización
72
+ - Path / File
73
+ - Lenguaje:
74
+ - JavaScript / TypeScript
75
+ - Python
76
+ - PHP
77
+ - Java
78
+ - C / C++
79
+ - C#
80
+
81
+ ---
82
+
83
+ ## 🧪 Vulnerabilidades a Implementar Inicialmente
84
+
85
+ Crear reglas dedicadas para:
86
+
87
+ - SQL Injection
88
+ - Command Injection
89
+ - XSS (DOM, Reflected, Stored)
90
+ - CSRF
91
+ - SSRF
92
+ - Insecure Deserialization
93
+ - Path Traversal
94
+ - Prototype Pollution
95
+ - Insecure Authentication / Session
96
+ - Hardcoded Secrets
97
+ - Unsafe File Upload
98
+ - Security Misconfigurations
99
+
100
+ ---
101
+
102
+ ## 🔍 Nivel de Análisis Técnico
103
+
104
+ El análisis debe ser **híbrido**, combinando:
105
+
106
+ - Regex (fallback)
107
+ - AST
108
+ - CFG / Call Graph
109
+ - Taint Analysis (fuentes → sinks)
110
+
111
+ Ejemplos de flujos reales a detectar:
112
+ - `req.body → exec`
113
+ - `userInput → innerHTML`
114
+ - `env → system()`
115
+
116
+ Se permite introducir **nuevos analizadores** además de reutilizar los existentes.
117
+
118
+ ---
119
+
120
+ ## 🧱 Arquitectura del Módulo (Requisito Crítico)
121
+
122
+ ### Principios
123
+
124
+ - Arquitectura modular
125
+ - Separación clara entre:
126
+ - Definición de reglas
127
+ - Lógica de detección
128
+ - Engine de ejecución
129
+
130
+ ### Modelo de Regla
131
+
132
+ Cada vulnerabilidad debe tener:
133
+ - Un archivo de **regla**
134
+ - Un archivo de **detector**
135
+
136
+ Las reglas deben poder:
137
+ - Tener múltiples patrones
138
+ - Ajustar severidad según contexto
139
+ - Correlacionarse con reglas de malware
140
+
141
+ ---
142
+
143
+ ## 📁 Estructura de Carpetas Esperada
144
+
145
+ Usar estructura **flat** dentro de `/vulnerabilities`, con un punto central:
146
+
147
+ src/rules/vulnerabilities/
148
+ ├── index.ts # Registro central de reglas
149
+ ├── vulnerabilityRule.ts # Interfaces base
150
+ ├── engine.ts # Rule engine reutilizable
151
+ ├── sqlInjection.ts
152
+ ├── xss.ts
153
+ ├── csrf.ts
154
+ ├── ssrf.ts
155
+ ├── misconfig.ts
156
+ └── tests/
157
+
158
+
159
+ ---
160
+
161
+ ## ⚖️ Severidad y Scoring
162
+
163
+ La severidad será **mixta**:
164
+
165
+ - Base definida en la regla
166
+ - Ajustada dinámicamente por contexto
167
+
168
+ Implementar `vulnerabilityScore` considerando:
169
+ - Explotabilidad
170
+ - Impacto técnico
171
+ - Impacto al negocio
172
+ - Contexto (prod vs dev)
173
+
174
+ ---
175
+
176
+ ## 📊 Hallazgos y Reportes
177
+
178
+ Cada hallazgo DEBE incluir:
179
+
180
+ - Fragmento exacto del código vulnerable
181
+ - Flujo de datos detectado
182
+ - Severidad final
183
+ - Vulnerability score
184
+ - Referencias OWASP / CWE
185
+ - Explicación nivel auditoría
186
+ - Contexto entendible para desarrolladores
187
+
188
+ ---
189
+
190
+ ## 🧪 Calidad del Código y Testing
191
+
192
+ El código generado debe:
193
+
194
+ - Seguir principios SOLID
195
+ - Ser extensible y mantenible
196
+ - Permitir testing aislado por regla
197
+
198
+ Tests requeridos:
199
+ - Golden tests con código vulnerable real
200
+ - Casos límite para falsos positivos
201
+
202
+ ---
203
+
204
+ ## ⚡ Performance y Seguridad
205
+
206
+ El motor de vulnerabilidades debe incluir:
207
+
208
+ - Timeouts por regla
209
+ - Límite de nodos AST analizados
210
+ - Protección contra ReDoS
211
+ - Ejecución paralela segura
212
+
213
+ No degradar precisión aunque el archivo sea grande o minificado.
214
+
215
+ ---
216
+
217
+ ## ✅ Resultado Esperado
218
+
219
+ Un módulo de vulnerabilidades:
220
+
221
+ - De nivel enterprise
222
+ - Comparable a SAST comerciales
223
+ - Modular, extensible y auditable
224
+ - Preparado para escalar a SaaS
225
+
226
+ ⚠️ El análisis debe ser estrictamente estático. Nunca ejecutar código analizado.