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,320 @@
1
+ # 🏗️ Arquitectura Técnica - Secure-Scan
2
+
3
+ ## Visión General
4
+
5
+ Secure-Scan es una herramienta profesional de **Análisis Estático de Seguridad de Aplicaciones (SAST)** diseñada con una arquitectura modular, extensible y de nivel empresarial.
6
+
7
+ ## Diagrama de Arquitectura
8
+
9
+ ```
10
+ ┌─────────────────────────────────────────────────────────────────┐
11
+ │ CLI Core │
12
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
13
+ │ │ Commands │ │ Options │ │ Config Loader │ │
14
+ │ └──────────────┘ └──────────────┘ └──────────────────────┘ │
15
+ └─────────────────────────────┬───────────────────────────────────┘
16
+
17
+
18
+ ┌─────────────────────────────────────────────────────────────────┐
19
+ │ Security Scanner │
20
+ │ ┌──────────────────────────────────────────────────────────┐ │
21
+ │ │ Orchestrator │ │
22
+ │ │ - Coordina todos los módulos │ │
23
+ │ │ - Gestiona el flujo de análisis │ │
24
+ │ │ - Combina resultados │ │
25
+ │ └──────────────────────────────────────────────────────────┘ │
26
+ └──────────┬────────────────┬────────────────┬────────────────────┘
27
+ │ │ │
28
+ ▼ ▼ ▼
29
+ ┌──────────────────┐ ┌──────────────┐ ┌──────────────────┐
30
+ │ File Scanner │ │ Rule Engine │ │ AI Analyzer │
31
+ │ │ │ │ │ │
32
+ │ - Escanea dirs │ │ - Patterns │ │ - OpenAI/Claude │
33
+ │ - Detecta langs │ │ - Regex │ │ - Modelos locales│
34
+ │ - Lee archivos │ │ - AST │ │ - Mejora reglas │
35
+ └──────────────────┘ └──────────────┘ └──────────────────┘
36
+ │ │ │
37
+ └────────────────┴────────────────┘
38
+
39
+
40
+ ┌─────────────────────────────────────────────────────────────────┐
41
+ │ Language Analyzers (Plugins) │
42
+ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────┐ │
43
+ │ │ JS │ │ Python │ │ PHP │ │ Java │ │ C/C++ │ │
44
+ │ └─────────┘ └─────────┘ └─────────┘ └─────────┘ └─────────┘ │
45
+ │ ┌─────────┐ ┌─────────────────────────────────────────────┐ │
46
+ │ │ C# │ │ IaC Analyzer │ │
47
+ │ └─────────┘ │ (Dockerfile, YAML, Terraform, CI/CD) │ │
48
+ │ └─────────────────────────────────────────────┘ │
49
+ └─────────────────────────────┬───────────────────────────────────┘
50
+
51
+
52
+ ┌─────────────────────────────────────────────────────────────────┐
53
+ │ Risk Scoring Engine │
54
+ │ - Calcula puntuación de riesgo (0-100) │
55
+ │ - Pondera por severidad y categoría │
56
+ │ - Genera métricas de seguridad │
57
+ └─────────────────────────────┬───────────────────────────────────┘
58
+
59
+
60
+ ┌─────────────────────────────────────────────────────────────────┐
61
+ │ Report Generator │
62
+ │ ┌──────────────┐ ┌──────────────┐ ┌──────────────────────┐ │
63
+ │ │ HTML │ │ JSON │ │ SARIF (futuro) │ │
64
+ │ └──────────────┘ └──────────────┘ └──────────────────────┘ │
65
+ └─────────────────────────────────────────────────────────────────┘
66
+ ```
67
+
68
+ ## Componentes Principales
69
+
70
+ ### 1. CLI Core (`src/cli/`)
71
+
72
+ Punto de entrada de la aplicación. Maneja:
73
+ - Parsing de argumentos
74
+ - Configuración de opciones
75
+ - Invocación del scanner
76
+ - Formato de salida
77
+
78
+ **Comandos:**
79
+ - `scan <path>` - Escanea un proyecto
80
+ - `init` - Crea archivo de configuración
81
+ - `rules` - Lista reglas disponibles
82
+
83
+ ### 2. File Scanner (`src/analyzers/core/scanner/`)
84
+
85
+ Responsable de:
86
+ - Escanear directorios recursivamente
87
+ - Detectar lenguajes por extensión
88
+ - Leer y procesar archivos
89
+ - Filtrar por patrones de exclusión
90
+ - Calcular hashes de archivos
91
+
92
+ ### 3. Rule Engine (`src/analyzers/core/engine/`)
93
+
94
+ Motor de reglas que:
95
+ - Carga reglas de detección
96
+ - Ejecuta patrones regex contra código
97
+ - Genera findings con contexto
98
+ - Soporta AST (futuro)
99
+
100
+ ### 4. Language Analyzers (`src/analyzers/`)
101
+
102
+ Plugins especializados por lenguaje:
103
+
104
+ | Analizador | Lenguajes | Capacidades Especiales |
105
+ |------------|-----------|------------------------|
106
+ | JavaScript | JS, TS | npm audit, prototype pollution, DOM XSS |
107
+ | Python | Python | pickle, YAML, Django/Flask |
108
+ | PHP | PHP | Web shells, file inclusion, SQL |
109
+ | Java | Java | Deserialization, XXE, SpEL |
110
+ | C/C++ | C, C++ | Buffer overflow, format string |
111
+ | C# | C# | .NET vulnerabilities, LDAP |
112
+ | IaC | Docker, YAML, TF | Container security, CI/CD |
113
+
114
+ ### 5. AI Analyzer (`src/ai/`)
115
+
116
+ Análisis potenciado por IA:
117
+ - Integración con OpenAI GPT-4
118
+ - Soporte para Anthropic Claude
119
+ - Modelos locales (Ollama, llama.cpp)
120
+ - Mejora de explicaciones
121
+ - Detección de patrones complejos
122
+
123
+ ### 6. Risk Scoring (`src/analyzers/core/scoring/`)
124
+
125
+ Sistema de puntuación:
126
+ - Calcula score 0-100
127
+ - Pondera por severidad (Critical=100, Info=5)
128
+ - Multiplica por categoría (Malware=1.5x)
129
+ - Normaliza por tamaño del proyecto
130
+
131
+ ### 7. Report Generator (`src/reports/`)
132
+
133
+ Genera reportes profesionales:
134
+ - HTML con diseño moderno
135
+ - JSON para integración
136
+ - SARIF para IDEs (futuro)
137
+
138
+ ## Flujo de Datos
139
+
140
+ ```
141
+ Entrada: Ruta del proyecto
142
+
143
+
144
+ ┌──────────────┐
145
+ │ File Scanner │ ──▶ Lista de archivos con contenido
146
+ └──────────────┘
147
+
148
+
149
+ ┌──────────────┐
150
+ │ Detección de │ ──▶ Asigna lenguaje a cada archivo
151
+ │ Lenguaje │
152
+ └──────────────┘
153
+
154
+
155
+ ┌──────────────────────────────────────┐
156
+ │ Análisis Paralelo │
157
+ │ ┌────────────┐ ┌────────────────┐ │
158
+ │ │ Rules │ │ Analyzers │ │
159
+ │ │ (Regex) │ │ (Por lenguaje)│ │
160
+ │ └────────────┘ └────────────────┘ │
161
+ │ │ │ │
162
+ │ └───────┬───────┘ │
163
+ │ ▼ │
164
+ │ ┌────────────────────────────────┐ │
165
+ │ │ AI Analyzer │ │
166
+ │ │ (si está habilitado) │ │
167
+ │ └────────────────────────────────┘ │
168
+ └──────────────────┬───────────────────┘
169
+
170
+
171
+ ┌──────────────┐
172
+ │ Deduplicación│ ──▶ Elimina findings duplicados
173
+ └──────────────┘
174
+
175
+
176
+ ┌──────────────┐
177
+ │ Scoring │ ──▶ Calcula riesgo
178
+ └──────────────┘
179
+
180
+
181
+ ┌──────────────┐
182
+ │ Report │ ──▶ Genera HTML/JSON
183
+ │ Generator │
184
+ └──────────────┘
185
+
186
+
187
+ Salida: Reporte + Exit Code
188
+ ```
189
+
190
+ ## Estructura de un Finding
191
+
192
+ ```typescript
193
+ interface Finding {
194
+ id: string; // Identificador único
195
+ title: string; // Título del hallazgo
196
+ description: string; // Descripción detallada
197
+ severity: Severity; // critical | high | medium | low | info
198
+ threatType: ThreatType; // sql_injection, xss, backdoor, etc.
199
+ category: FindingCategory; // vulnerability | malware
200
+ location: {
201
+ file: string; // Ruta del archivo
202
+ startLine: number; // Línea inicial
203
+ endLine: number; // Línea final
204
+ };
205
+ snippet: {
206
+ code: string; // Código vulnerable
207
+ contextBefore: string; // Contexto anterior
208
+ contextAfter: string; // Contexto posterior
209
+ };
210
+ standards: SecurityStandard[]; // OWASP, CWE, MITRE
211
+ remediation: string; // Cómo corregir
212
+ confidence: number; // 0-100
213
+ analyzer: string; // Qué analizador lo detectó
214
+ tags: string[]; // Etiquetas
215
+ }
216
+ ```
217
+
218
+ ## Estándares de Seguridad
219
+
220
+ Cada finding se mapea a:
221
+
222
+ | Estándar | Descripción | Ejemplo |
223
+ |----------|-------------|---------|
224
+ | OWASP Top 10 | Top vulnerabilidades web | A03:2021 - Injection |
225
+ | CWE | Common Weakness Enumeration | CWE-79 (XSS) |
226
+ | MITRE ATT&CK | Tácticas y técnicas de atacantes | T1059 - Command Interpreter |
227
+ | SANS Top 25 | Errores de software más peligrosos | SANS-3 - SQL Injection |
228
+
229
+ ## Reglas de Detección
230
+
231
+ ### Estructura de una Regla
232
+
233
+ ```typescript
234
+ interface Rule {
235
+ id: string; // VULN-SQL-001
236
+ name: string; // SQL Injection
237
+ description: string; // Descripción
238
+ languages: SupportedLanguage[]; // Lenguajes
239
+ threatType: ThreatType;
240
+ severity: Severity;
241
+ patterns: RulePattern[]; // Patrones de detección
242
+ remediation: string;
243
+ enabled: boolean;
244
+ tags: string[];
245
+ }
246
+ ```
247
+
248
+ ### Tipos de Patrones
249
+
250
+ 1. **Regex** - Expresiones regulares
251
+ 2. **AST** - Análisis de árbol sintáctico (futuro)
252
+ 3. **Semantic** - Análisis semántico con IA
253
+
254
+ ## Extensibilidad
255
+
256
+ ### Añadir nuevo analizador
257
+
258
+ 1. Crear clase que extienda `BaseAnalyzer`
259
+ 2. Implementar método `analyze()`
260
+ 3. Registrar en `src/analyzers/index.ts`
261
+
262
+ ```typescript
263
+ export class NewLanguageAnalyzer extends BaseAnalyzer {
264
+ name = 'New Language Analyzer';
265
+ languages = ['newlang'];
266
+ version = '1.0.0';
267
+
268
+ async analyze(file: ScannedFile, rules: Rule[]): Promise<Finding[]> {
269
+ // Implementación
270
+ }
271
+ }
272
+ ```
273
+
274
+ ### Añadir nuevas reglas
275
+
276
+ 1. Crear archivo en `src/rules/vulnerabilities/` o `src/rules/malware/`
277
+ 2. Definir reglas con patrones
278
+ 3. Exportar en `index.ts`
279
+
280
+ ## Seguridad del Propio Scanner
281
+
282
+ ⚠️ **Restricciones de seguridad:**
283
+
284
+ 1. **Solo lectura** - El scanner nunca modifica archivos
285
+ 2. **Sin ejecución** - No ejecuta código del proyecto
286
+ 3. **Sin compilación** - No compila ni interpreta
287
+ 4. **Sandbox** - Puede ejecutarse en Docker
288
+
289
+ ## Roadmap de Desarrollo
290
+
291
+ ### Fase 1 ✅
292
+ - Análisis estático básico
293
+ - Reglas regex
294
+ - Reportes HTML
295
+
296
+ ### Fase 2 ✅
297
+ - Integración IA
298
+ - Multi-lenguaje
299
+ - CLI avanzado
300
+
301
+ ### Fase 3 ✅
302
+ - Análisis AST
303
+ - Análisis de IaC (Dockerfile, YAML, Terraform)
304
+ - Detección de malware
305
+
306
+ ### Fase 4 ✅
307
+ - Análisis de dependencias (SCA)
308
+ - Software Composition Analysis
309
+ - Detección de CVEs, typosquatting, paquetes maliciosos
310
+ - Soporte para npm, pip, composer, maven, nuget, vcpkg
311
+
312
+ ### Fase 5 (Futuro)
313
+ - Dashboard web
314
+ - API REST
315
+ - Multi-tenant SaaS
316
+
317
+ ### Fase 6 (Futuro)
318
+ - DAST (análisis dinámico)
319
+ - IAST (instrumentación)
320
+ - RASP (protección runtime)
@@ -0,0 +1,116 @@
1
+ # Actualización V1.2.1-IA_Performances
2
+
3
+ ## Resumen
4
+
5
+ La versión **V1.2.1-IA_Performances** introduce mejoras significativas en el rendimiento, nuevas capacidades de detección de malware, y una arquitectura optimizada para análisis estático de seguridad (SAST). Esta actualización refuerza la escalabilidad, extensibilidad y precisión de la herramienta Secure-Scan.
6
+
7
+ ---
8
+
9
+ ## Nota Importante
10
+
11
+ Windows puede detectar como malware el módulo de `categories` y puede eliminar algunos archivos relacionados. Esto es un falso positivo debido a las reglas de detección avanzadas incluidas en esta actualización.
12
+
13
+ ![Alerta de Windows](images/alerta-windows.png)
14
+
15
+ ---
16
+
17
+ ## Cambios Principales
18
+
19
+ ### 1. **Arquitectura Modular Mejorada**
20
+ - Refactorización completa del módulo de detección de malware.
21
+ - Separación de responsabilidades en módulos especializados:
22
+ - `types/`: Definiciones de tipos e interfaces.
23
+ - `constants/`: Configuración y constantes globales.
24
+ - `utils/`: Funciones utilitarias para análisis avanzado.
25
+ - `scoring/`: Sistema de puntuación dinámico.
26
+ - `engine/`: Motor de detección principal.
27
+ - `categories/`: Reglas organizadas por categorías.
28
+
29
+ ### 2. **Nuevas Categorías de Reglas de Malware**
30
+ Se añadieron 81 reglas distribuidas en 7 categorías:
31
+ - **Backdoors**: Detección de reverse shells, web shells y RATs.
32
+ - **Cryptominers**: Identificación de mineros de criptomonedas y abuso de CPU.
33
+ - **Keyloggers**: Captura de eventos de teclado y robo de credenciales.
34
+ - **Exfiltración de Datos**: Robo de cookies, tokens y datos sensibles.
35
+ - **Ofuscación**: Patrones de codificación y anti-depuración.
36
+ - **Loaders/Droppers**: Carga de código remoto y malware sin archivos.
37
+ - **Red/C2**: Comunicación con servidores de comando y control (C2).
38
+
39
+ ### 3. **Integración con MITRE ATT&CK**
40
+ - Mapeo completo de tácticas y técnicas de MITRE ATT&CK.
41
+ - Ejemplo: T1059 (Command and Scripting Interpreter), T1496 (Resource Hijacking).
42
+
43
+ ### 4. **Mejoras en el Motor de Reglas**
44
+ - Soporte para patrones Regex, AST y heurísticos.
45
+ - Protección contra ReDoS con límites de tiempo en Regex.
46
+ - Análisis concurrente de archivos con límites configurables.
47
+
48
+ ### 5. **Sistema de Puntuación Dinámico**
49
+ - Puntuación de riesgo (0-100) basada en múltiples factores:
50
+ - Severidad de los hallazgos.
51
+ - Correlación entre patrones detectados.
52
+ - Nivel de ofuscación y actividad de red.
53
+ - Conversión de puntuación a niveles de severidad: Crítico, Alto, Medio, Bajo.
54
+
55
+ ### 6. **Análisis Potenciado por IA**
56
+ - Integración con OpenAI GPT-4 y Anthropic Claude.
57
+ - Modelos locales para detección avanzada.
58
+ - Mejora de explicaciones y reducción de falsos positivos.
59
+
60
+ ### 7. **Generación de Reportes**
61
+ - Reportes en formato HTML y JSON.
62
+ - Diseño moderno y profesional.
63
+ - Soporte futuro para SARIF.
64
+
65
+ ### 8. **Compatibilidad con Versiones Anteriores**
66
+ - Exportaciones y tipos heredados siguen disponibles.
67
+ - Integración sin interrupciones con proyectos existentes.
68
+
69
+ ---
70
+
71
+ ## Cambios Técnicos
72
+
73
+ ### Refactorización de Archivos
74
+ - **Nuevos Archivos:**
75
+ - `src/rules/malware/categories/backdoors.ts`
76
+ - `src/rules/malware/categories/cryptominers.ts`
77
+ - `src/rules/malware/categories/keyloggers.ts`
78
+ - `src/rules/malware/categories/exfiltration.ts`
79
+ - `src/rules/malware/categories/obfuscation.ts`
80
+ - `src/rules/malware/categories/loaders.ts`
81
+ - `src/rules/malware/categories/network.ts`
82
+ - **Renombrados:**
83
+ - `src/core/engine/` → `src/analyzers/core/engine/`
84
+ - `src/core/scanner/` → `src/analyzers/core/scanner/`
85
+ - `src/core/scoring/` → `src/analyzers/core/scoring/`
86
+
87
+ ### Dependencias Actualizadas
88
+ - **Producción:**
89
+ - `@anthropic-ai/sdk`: ^0.71.2
90
+ - `openai`: ^4.20.0
91
+ - **Desarrollo:**
92
+ - `@typescript-eslint/eslint-plugin`: ^6.13.0
93
+ - `@typescript-eslint/parser`: ^6.13.0
94
+ - `typescript`: ^5.3.2
95
+
96
+ ### Scripts de NPM
97
+ - `build`: Compila el proyecto con TypeScript.
98
+ - `test:coverage`: Genera cobertura de pruebas con Jest.
99
+ - `lint`: Ejecuta ESLint para análisis estático.
100
+ - `prepare`: Limpia y construye el proyecto.
101
+
102
+ ---
103
+
104
+ ## Próximos Pasos
105
+
106
+ 1. **Integración AST**: Añadir soporte para análisis de árbol sintáctico.
107
+ 2. **Análisis Semántico**: Implementar flujo de datos y control.
108
+ 3. **Detección de Dependencias Maliciosas**: Integrar análisis SCA.
109
+ 4. **Optimización de Rendimiento**: Mejorar patrones Regex y concurrencia.
110
+ 5. **Pruebas de Integración**: Validar con muestras reales de malware.
111
+
112
+ ---
113
+
114
+ ## Conclusión
115
+
116
+ La versión **V1.2.1-IA_Performances** establece un nuevo estándar para herramientas SAST con capacidades avanzadas de detección, arquitectura modular y soporte para IA. Esta actualización asegura que Secure-Scan sea una solución confiable, escalable y lista para producción.
Binary file
package/package.json ADDED
@@ -0,0 +1,68 @@
1
+ {
2
+ "name": "secure-scan",
3
+ "version": "1.2.2",
4
+ "description": "Herramienta SAST (Análisis Estático de Seguridad) para detectar vulnerabilidades y código malicioso.",
5
+ "main": "dist/index.js",
6
+ "bin": {
7
+ "secure-scan": "./dist/cli/index.js"
8
+ },
9
+ "repository": {
10
+ "type": "git",
11
+ "url": "https://github.com/Luis000923/secure-scan.git"
12
+ },
13
+ "homepage": "https://github.com/Luis000923/secure-scan#readme",
14
+ "bugs": {
15
+ "url": "https://github.com/Luis000923/secure-scan/issues"
16
+ },
17
+ "scripts": {
18
+ "build": "tsc",
19
+ "start": "node dist/cli/index.js",
20
+ "dev": "ts-node src/cli/index.ts",
21
+ "test": "jest",
22
+ "test:coverage": "jest --coverage",
23
+ "lint": "eslint src/**/*.ts",
24
+ "clean": "rimraf dist",
25
+ "prepare": "npm run build"
26
+ },
27
+ "keywords": [
28
+ "security",
29
+ "sast",
30
+ "static-analysis",
31
+ "vulnerability-scanner",
32
+ "malware-detection",
33
+ "code-analysis",
34
+ "owasp",
35
+ "cwe",
36
+ "profesional"
37
+ ],
38
+ "author": "Luis000923",
39
+ "license": "MIT",
40
+ "dependencies": {
41
+ "@anthropic-ai/sdk": "^0.71.2",
42
+ "chalk": "^4.1.2",
43
+ "commander": "^11.1.0",
44
+ "glob": "^10.3.10",
45
+ "handlebars": "^4.7.8",
46
+ "js-yaml": "^4.1.0",
47
+ "openai": "^4.20.0",
48
+ "ora": "^5.4.1",
49
+ "strip-comments": "^2.0.1",
50
+ "winston": "^3.11.0"
51
+ },
52
+ "devDependencies": {
53
+ "@types/glob": "^8.1.0",
54
+ "@types/js-yaml": "^4.0.9",
55
+ "@types/node": "^20.10.0",
56
+ "@typescript-eslint/eslint-plugin": "^6.13.0",
57
+ "@typescript-eslint/parser": "^6.13.0",
58
+ "eslint": "^8.54.0",
59
+ "jest": "^29.7.0",
60
+ "rimraf": "^5.0.5",
61
+ "ts-jest": "^29.1.1",
62
+ "ts-node": "^10.9.1",
63
+ "typescript": "^5.3.2"
64
+ },
65
+ "engines": {
66
+ "node": ">=18.0.0"
67
+ }
68
+ }
@@ -0,0 +1,134 @@
1
+ {
2
+ "$schema": "https://raw.githubusercontent.com/secure-scan/secure-scan/main/schema.json",
3
+ "version": "1.0.0",
4
+
5
+ "scan": {
6
+ "languages": [
7
+ "javascript",
8
+ "typescript",
9
+ "python",
10
+ "php",
11
+ "java",
12
+ "c",
13
+ "cpp",
14
+ "csharp",
15
+ "dockerfile",
16
+ "yaml",
17
+ "terraform"
18
+ ],
19
+ "exclude": [
20
+ "**/node_modules/**",
21
+ "**/vendor/**",
22
+ "**/venv/**",
23
+ "**/.venv/**",
24
+ "**/dist/**",
25
+ "**/build/**",
26
+ "**/target/**",
27
+ "**/.git/**",
28
+ "**/coverage/**",
29
+ "**/__pycache__/**",
30
+ "**/*.min.js",
31
+ "**/*.min.css",
32
+ "**/package-lock.json",
33
+ "**/yarn.lock",
34
+ "**/composer.lock"
35
+ ],
36
+ "include": [],
37
+ "maxFileSize": 1048576,
38
+ "maxFiles": 10000,
39
+ "followSymlinks": false
40
+ },
41
+
42
+ "rules": {
43
+ "enabled": true,
44
+ "categories": {
45
+ "vulnerability": true,
46
+ "malware": true
47
+ },
48
+ "severity": {
49
+ "critical": true,
50
+ "high": true,
51
+ "medium": true,
52
+ "low": true,
53
+ "info": false
54
+ },
55
+ "customRulesPath": null,
56
+ "disabledRules": []
57
+ },
58
+
59
+ "ai": {
60
+ "enabled": true,
61
+ "provider": "local",
62
+ "model": "codellama:7b-instruct",
63
+ "apiKey": null,
64
+ "endpoint": "http://localhost:11434/api/generate",
65
+ "enhanceFindings": true,
66
+ "generateSummary": true,
67
+ "maxTokens": 4096,
68
+ "temperature": 0.1,
69
+ "performance": {
70
+ "parallelRequests": 2,
71
+ "numGpuLayers": -1,
72
+ "numThreads": 8,
73
+ "contextSize": 4096,
74
+ "batchSize": 512,
75
+ "enableCache": true,
76
+ "useMmap": true,
77
+ "useMlock": false,
78
+ "timeout": 120000
79
+ }
80
+ },
81
+
82
+ "output": {
83
+ "format": "html",
84
+ "path": "./secure-scan-report",
85
+ "filename": "security-report",
86
+ "includeSource": true,
87
+ "groupBy": "severity",
88
+ "sortBy": "severity"
89
+ },
90
+
91
+ "scoring": {
92
+ "enabled": true,
93
+ "weights": {
94
+ "critical": 100,
95
+ "high": 50,
96
+ "medium": 20,
97
+ "low": 5,
98
+ "info": 1
99
+ },
100
+ "categoryMultipliers": {
101
+ "vulnerability": 1.0,
102
+ "malware": 1.5
103
+ },
104
+ "thresholds": {
105
+ "fail": 70,
106
+ "warn": 40
107
+ }
108
+ },
109
+
110
+ "performance": {
111
+ "parallelism": 4,
112
+ "timeout": 300000,
113
+ "cacheEnabled": true,
114
+ "cachePath": ".secure-scan-cache"
115
+ },
116
+
117
+ "integrations": {
118
+ "git": {
119
+ "enabled": true,
120
+ "scanOnlyChanged": false,
121
+ "baseBranch": "main"
122
+ },
123
+ "sarif": {
124
+ "enabled": false,
125
+ "path": "./results.sarif"
126
+ }
127
+ },
128
+
129
+ "logging": {
130
+ "level": "info",
131
+ "file": null,
132
+ "colors": true
133
+ }
134
+ }
@@ -0,0 +1,29 @@
1
+ Microsoft Visual Studio Solution File, Format Version 12.00
2
+ # Visual Studio Version 17
3
+ VisualStudioVersion = 17.5.2.0
4
+ MinimumVisualStudioVersion = 10.0.40219.1
5
+ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test-samples", "test-samples", "{5E849C8E-AA1E-7CD4-5143-C6E7A8E2EC2D}"
6
+ EndProject
7
+ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VulnerableProject", "test-samples\VulnerableProject.csproj", "{970E6386-2235-55A4-270C-676D2128FFFC}"
8
+ EndProject
9
+ Global
10
+ GlobalSection(SolutionConfigurationPlatforms) = preSolution
11
+ Debug|Any CPU = Debug|Any CPU
12
+ Release|Any CPU = Release|Any CPU
13
+ EndGlobalSection
14
+ GlobalSection(ProjectConfigurationPlatforms) = postSolution
15
+ {970E6386-2235-55A4-270C-676D2128FFFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
16
+ {970E6386-2235-55A4-270C-676D2128FFFC}.Debug|Any CPU.Build.0 = Debug|Any CPU
17
+ {970E6386-2235-55A4-270C-676D2128FFFC}.Release|Any CPU.ActiveCfg = Release|Any CPU
18
+ {970E6386-2235-55A4-270C-676D2128FFFC}.Release|Any CPU.Build.0 = Release|Any CPU
19
+ EndGlobalSection
20
+ GlobalSection(SolutionProperties) = preSolution
21
+ HideSolutionNode = FALSE
22
+ EndGlobalSection
23
+ GlobalSection(NestedProjects) = preSolution
24
+ {970E6386-2235-55A4-270C-676D2128FFFC} = {5E849C8E-AA1E-7CD4-5143-C6E7A8E2EC2D}
25
+ EndGlobalSection
26
+ GlobalSection(ExtensibilityGlobals) = postSolution
27
+ SolutionGuid = {C65C7978-61E0-4C31-98B7-BA2317A793D2}
28
+ EndGlobalSection
29
+ EndGlobal