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,616 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @fileoverview Malware Detection Module - Type Definitions
|
|
3
|
+
* @module rules/malware/types
|
|
4
|
+
*
|
|
5
|
+
* Comprehensive type definitions for the malware detection engine.
|
|
6
|
+
* Supports multi-language analysis, AST-aware detection, and enterprise-level reporting.
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* Supported programming languages for malware detection
|
|
10
|
+
*/
|
|
11
|
+
export declare enum SupportedLanguage {
|
|
12
|
+
JAVASCRIPT = "javascript",
|
|
13
|
+
TYPESCRIPT = "typescript",
|
|
14
|
+
PYTHON = "python",
|
|
15
|
+
PHP = "php",
|
|
16
|
+
C = "c",
|
|
17
|
+
CPP = "cpp",
|
|
18
|
+
CSHARP = "csharp",
|
|
19
|
+
JAVA = "java",
|
|
20
|
+
RUBY = "ruby",
|
|
21
|
+
GO = "go",
|
|
22
|
+
RUST = "rust",
|
|
23
|
+
SHELL = "shell",
|
|
24
|
+
POWERSHELL = "powershell"
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Malware threat categories based on behavior and intent
|
|
28
|
+
*/
|
|
29
|
+
export declare enum MalwareThreatType {
|
|
30
|
+
REVERSE_SHELL = "reverse_shell",
|
|
31
|
+
WEB_SHELL = "web_shell",
|
|
32
|
+
BACKDOOR = "backdoor",
|
|
33
|
+
RAT = "remote_access_trojan",
|
|
34
|
+
CRYPTOMINER = "cryptominer",
|
|
35
|
+
RESOURCE_HIJACKER = "resource_hijacker",
|
|
36
|
+
KEYLOGGER = "keylogger",
|
|
37
|
+
CREDENTIAL_STEALER = "credential_stealer",
|
|
38
|
+
TOKEN_STEALER = "token_stealer",
|
|
39
|
+
DATA_EXFILTRATION = "data_exfiltration",
|
|
40
|
+
COOKIE_STEALER = "cookie_stealer",
|
|
41
|
+
DROPPER = "dropper",
|
|
42
|
+
LOADER = "loader",
|
|
43
|
+
DOWNLOADER = "downloader",
|
|
44
|
+
MULTI_STAGE = "multi_stage",
|
|
45
|
+
OBFUSCATED_CODE = "obfuscated_code",
|
|
46
|
+
ANTI_DEBUGGING = "anti_debugging",
|
|
47
|
+
SANDBOX_EVASION = "sandbox_evasion",
|
|
48
|
+
BOTNET = "botnet",
|
|
49
|
+
C2_COMMUNICATION = "c2_communication",
|
|
50
|
+
DNS_TUNNELING = "dns_tunneling",
|
|
51
|
+
PERSISTENCE = "persistence",
|
|
52
|
+
FILELESS = "fileless",
|
|
53
|
+
LIVING_OFF_THE_LAND = "lotl",
|
|
54
|
+
SUPPLY_CHAIN = "supply_chain",
|
|
55
|
+
DEPENDENCY_CONFUSION = "dependency_confusion",
|
|
56
|
+
TYPOSQUATTING = "typosquatting",
|
|
57
|
+
EMBEDDED_PAYLOAD = "embedded_payload",
|
|
58
|
+
SUSPICIOUS_NETWORK = "suspicious_network",
|
|
59
|
+
TIME_BOMB = "time_bomb",
|
|
60
|
+
LOGIC_BOMB = "logic_bomb"
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Severity levels for malware findings
|
|
64
|
+
*/
|
|
65
|
+
export declare enum MalwareSeverity {
|
|
66
|
+
CRITICAL = "critical",// Immediate threat, active malware
|
|
67
|
+
HIGH = "high",// Dangerous patterns, likely malicious
|
|
68
|
+
MEDIUM = "medium",// Suspicious behavior, needs review
|
|
69
|
+
LOW = "low",// Minor concern, potential FP
|
|
70
|
+
INFO = "info"
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Confidence level of the detection
|
|
74
|
+
*/
|
|
75
|
+
export declare enum ConfidenceLevel {
|
|
76
|
+
CONFIRMED = "confirmed",// 95%+ certainty
|
|
77
|
+
HIGH = "high",// 80-95% certainty
|
|
78
|
+
MEDIUM = "medium",// 60-80% certainty
|
|
79
|
+
LOW = "low",// 40-60% certainty
|
|
80
|
+
TENTATIVE = "tentative"
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Pattern matching strategies
|
|
84
|
+
*/
|
|
85
|
+
export declare enum PatternType {
|
|
86
|
+
REGEX = "regex",
|
|
87
|
+
LITERAL = "literal",
|
|
88
|
+
AST = "ast",
|
|
89
|
+
SEMANTIC = "semantic",
|
|
90
|
+
HEURISTIC = "heuristic",
|
|
91
|
+
BEHAVIORAL = "behavioral"
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* MITRE ATT&CK Tactics
|
|
95
|
+
*/
|
|
96
|
+
export declare enum MitreTactic {
|
|
97
|
+
INITIAL_ACCESS = "TA0001",
|
|
98
|
+
EXECUTION = "TA0002",
|
|
99
|
+
PERSISTENCE = "TA0003",
|
|
100
|
+
PRIVILEGE_ESCALATION = "TA0004",
|
|
101
|
+
DEFENSE_EVASION = "TA0005",
|
|
102
|
+
CREDENTIAL_ACCESS = "TA0006",
|
|
103
|
+
DISCOVERY = "TA0007",
|
|
104
|
+
LATERAL_MOVEMENT = "TA0008",
|
|
105
|
+
COLLECTION = "TA0009",
|
|
106
|
+
COMMAND_AND_CONTROL = "TA0011",
|
|
107
|
+
EXFILTRATION = "TA0010",
|
|
108
|
+
IMPACT = "TA0040"
|
|
109
|
+
}
|
|
110
|
+
/**
|
|
111
|
+
* Base pattern definition
|
|
112
|
+
*/
|
|
113
|
+
export interface MalwarePatternBase {
|
|
114
|
+
/** Pattern type */
|
|
115
|
+
type: PatternType;
|
|
116
|
+
/** Pattern identifier for reference */
|
|
117
|
+
patternId?: string;
|
|
118
|
+
/** Languages this pattern applies to (empty = all) */
|
|
119
|
+
languages?: SupportedLanguage[];
|
|
120
|
+
/** Weight for scoring (0.0 - 1.0) */
|
|
121
|
+
weight?: number;
|
|
122
|
+
/** Description of what this pattern detects */
|
|
123
|
+
description?: string;
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Regex-based pattern
|
|
127
|
+
*/
|
|
128
|
+
export interface RegexPattern extends MalwarePatternBase {
|
|
129
|
+
type: PatternType.REGEX;
|
|
130
|
+
/** The regex pattern string */
|
|
131
|
+
pattern: string;
|
|
132
|
+
/** Regex flags (g, i, m, s, u) */
|
|
133
|
+
flags?: string;
|
|
134
|
+
/** Maximum execution time in ms (ReDoS protection) */
|
|
135
|
+
timeout?: number;
|
|
136
|
+
/** Maximum matches before stopping */
|
|
137
|
+
maxMatches?: number;
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Literal string pattern
|
|
141
|
+
*/
|
|
142
|
+
export interface LiteralPattern extends MalwarePatternBase {
|
|
143
|
+
type: PatternType.LITERAL;
|
|
144
|
+
/** The literal string to match */
|
|
145
|
+
value: string;
|
|
146
|
+
/** Case sensitive matching */
|
|
147
|
+
caseSensitive?: boolean;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* AST-based pattern for structural matching
|
|
151
|
+
*/
|
|
152
|
+
export interface AstPattern extends MalwarePatternBase {
|
|
153
|
+
type: PatternType.AST;
|
|
154
|
+
/** AST node type to match */
|
|
155
|
+
nodeType: string;
|
|
156
|
+
/** Properties to match on the node */
|
|
157
|
+
properties?: Record<string, unknown>;
|
|
158
|
+
/** Child patterns to match */
|
|
159
|
+
children?: AstPattern[];
|
|
160
|
+
/** Parent context requirements */
|
|
161
|
+
parentContext?: string[];
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* Semantic pattern for meaning-based matching
|
|
165
|
+
*/
|
|
166
|
+
export interface SemanticPattern extends MalwarePatternBase {
|
|
167
|
+
type: PatternType.SEMANTIC;
|
|
168
|
+
/** Semantic concept to detect */
|
|
169
|
+
concept: string;
|
|
170
|
+
/** Required data flows */
|
|
171
|
+
dataFlows?: string[];
|
|
172
|
+
/** Taint sources */
|
|
173
|
+
taintSources?: string[];
|
|
174
|
+
/** Taint sinks */
|
|
175
|
+
taintSinks?: string[];
|
|
176
|
+
}
|
|
177
|
+
/**
|
|
178
|
+
* Heuristic pattern for behavior-based detection
|
|
179
|
+
*/
|
|
180
|
+
export interface HeuristicPattern extends MalwarePatternBase {
|
|
181
|
+
type: PatternType.HEURISTIC;
|
|
182
|
+
/** Heuristic function name */
|
|
183
|
+
heuristicName: string;
|
|
184
|
+
/** Threshold for triggering */
|
|
185
|
+
threshold?: number;
|
|
186
|
+
/** Custom parameters */
|
|
187
|
+
params?: Record<string, unknown>;
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Union type for all pattern types
|
|
191
|
+
*/
|
|
192
|
+
export type MalwarePattern = RegexPattern | LiteralPattern | AstPattern | SemanticPattern | HeuristicPattern;
|
|
193
|
+
/**
|
|
194
|
+
* MITRE ATT&CK technique reference
|
|
195
|
+
*/
|
|
196
|
+
export interface MitreReference {
|
|
197
|
+
/** Tactic ID (e.g., TA0002) */
|
|
198
|
+
tacticId: MitreTactic;
|
|
199
|
+
/** Tactic name */
|
|
200
|
+
tacticName: string;
|
|
201
|
+
/** Technique ID (e.g., T1059) */
|
|
202
|
+
techniqueId: string;
|
|
203
|
+
/** Technique name */
|
|
204
|
+
techniqueName: string;
|
|
205
|
+
/** Sub-technique ID if applicable */
|
|
206
|
+
subTechniqueId?: string;
|
|
207
|
+
/** Sub-technique name */
|
|
208
|
+
subTechniqueName?: string;
|
|
209
|
+
/** URL to MITRE documentation */
|
|
210
|
+
url?: string;
|
|
211
|
+
}
|
|
212
|
+
/**
|
|
213
|
+
* CVE reference
|
|
214
|
+
*/
|
|
215
|
+
export interface CveReference {
|
|
216
|
+
/** CVE ID (e.g., CVE-2021-44228) */
|
|
217
|
+
cveId: string;
|
|
218
|
+
/** Brief description */
|
|
219
|
+
description: string;
|
|
220
|
+
/** CVSS score if available */
|
|
221
|
+
cvssScore?: number;
|
|
222
|
+
/** URL to CVE details */
|
|
223
|
+
url?: string;
|
|
224
|
+
}
|
|
225
|
+
/**
|
|
226
|
+
* Example code for documentation
|
|
227
|
+
*/
|
|
228
|
+
export interface CodeExample {
|
|
229
|
+
/** The example code */
|
|
230
|
+
code: string;
|
|
231
|
+
/** Language of the example */
|
|
232
|
+
language: SupportedLanguage;
|
|
233
|
+
/** Whether this is a malicious example */
|
|
234
|
+
isMalicious: boolean;
|
|
235
|
+
/** Description of the example */
|
|
236
|
+
description: string;
|
|
237
|
+
}
|
|
238
|
+
/**
|
|
239
|
+
* Impact assessment
|
|
240
|
+
*/
|
|
241
|
+
export interface ImpactAssessment {
|
|
242
|
+
/** Technical impact description */
|
|
243
|
+
technical: string;
|
|
244
|
+
/** Business impact description */
|
|
245
|
+
business: string;
|
|
246
|
+
/** Affected assets */
|
|
247
|
+
affectedAssets?: string[];
|
|
248
|
+
/** Potential data at risk */
|
|
249
|
+
dataAtRisk?: string[];
|
|
250
|
+
}
|
|
251
|
+
/**
|
|
252
|
+
* Remediation guidance
|
|
253
|
+
*/
|
|
254
|
+
export interface RemediationGuidance {
|
|
255
|
+
/** Short remediation summary */
|
|
256
|
+
summary: string;
|
|
257
|
+
/** Detailed steps */
|
|
258
|
+
steps?: string[];
|
|
259
|
+
/** Code fix example if applicable */
|
|
260
|
+
codeExample?: string;
|
|
261
|
+
/** References for more information */
|
|
262
|
+
references?: string[];
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Rule correlation configuration
|
|
266
|
+
*/
|
|
267
|
+
export interface RuleCorrelation {
|
|
268
|
+
/** Rules that increase severity when both match */
|
|
269
|
+
amplifyWith?: string[];
|
|
270
|
+
/** Rules that must also match for this rule to trigger */
|
|
271
|
+
requiresAlso?: string[];
|
|
272
|
+
/** Rules that suppress this rule when matched */
|
|
273
|
+
suppressedBy?: string[];
|
|
274
|
+
/** Severity boost when correlated rules match */
|
|
275
|
+
severityBoost?: number;
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Comprehensive malware detection rule
|
|
279
|
+
*/
|
|
280
|
+
export interface MalwareRule {
|
|
281
|
+
/** Unique rule identifier (e.g., MAL-BACK-001) */
|
|
282
|
+
id: string;
|
|
283
|
+
/** Human-readable rule name */
|
|
284
|
+
name: string;
|
|
285
|
+
/** Detailed technical description */
|
|
286
|
+
description: string;
|
|
287
|
+
/** Version of the rule */
|
|
288
|
+
version?: string;
|
|
289
|
+
/** Type of malware this rule detects */
|
|
290
|
+
threatType: MalwareThreatType;
|
|
291
|
+
/** Threat category */
|
|
292
|
+
category: MalwareCategory;
|
|
293
|
+
/** Languages this rule applies to */
|
|
294
|
+
languages: SupportedLanguage[];
|
|
295
|
+
/** Base severity level */
|
|
296
|
+
severity: MalwareSeverity;
|
|
297
|
+
/** Detection confidence */
|
|
298
|
+
confidence: ConfidenceLevel;
|
|
299
|
+
/** Primary detection patterns */
|
|
300
|
+
patterns: MalwarePattern[];
|
|
301
|
+
/** Secondary patterns that increase severity */
|
|
302
|
+
amplifyingPatterns?: MalwarePattern[];
|
|
303
|
+
/** Patterns that indicate false positive */
|
|
304
|
+
falsePositivePatterns?: MalwarePattern[];
|
|
305
|
+
/** Rule correlation configuration */
|
|
306
|
+
correlation?: RuleCorrelation;
|
|
307
|
+
/** Base score contribution (0-100) */
|
|
308
|
+
baseScore?: number;
|
|
309
|
+
/** Scoring factors */
|
|
310
|
+
scoringFactors?: ScoringFactors;
|
|
311
|
+
/** Example malicious code */
|
|
312
|
+
maliciousExamples?: CodeExample[];
|
|
313
|
+
/** Known false positive examples */
|
|
314
|
+
falsePositiveExamples?: CodeExample[];
|
|
315
|
+
/** Impact assessment */
|
|
316
|
+
impact?: ImpactAssessment;
|
|
317
|
+
/** Remediation guidance */
|
|
318
|
+
remediation: RemediationGuidance;
|
|
319
|
+
/** MITRE ATT&CK mappings */
|
|
320
|
+
mitreAttack?: MitreReference[];
|
|
321
|
+
/** Related CVEs */
|
|
322
|
+
cves?: CveReference[];
|
|
323
|
+
/** Additional reference URLs */
|
|
324
|
+
references?: string[];
|
|
325
|
+
/** Tags for categorization */
|
|
326
|
+
tags: string[];
|
|
327
|
+
/** Whether the rule is enabled */
|
|
328
|
+
enabled: boolean;
|
|
329
|
+
/** Author of the rule */
|
|
330
|
+
author?: string;
|
|
331
|
+
/** Creation date */
|
|
332
|
+
createdAt?: string;
|
|
333
|
+
/** Last update date */
|
|
334
|
+
updatedAt?: string;
|
|
335
|
+
}
|
|
336
|
+
/**
|
|
337
|
+
* Scoring factors for dynamic severity calculation
|
|
338
|
+
*/
|
|
339
|
+
export interface ScoringFactors {
|
|
340
|
+
/** Patterns detected count weight */
|
|
341
|
+
patternCountWeight?: number;
|
|
342
|
+
/** Obfuscation level weight */
|
|
343
|
+
obfuscationWeight?: number;
|
|
344
|
+
/** Network access weight */
|
|
345
|
+
networkAccessWeight?: number;
|
|
346
|
+
/** Command execution weight */
|
|
347
|
+
commandExecutionWeight?: number;
|
|
348
|
+
/** Persistence mechanism weight */
|
|
349
|
+
persistenceWeight?: number;
|
|
350
|
+
/** Data access weight */
|
|
351
|
+
dataAccessWeight?: number;
|
|
352
|
+
}
|
|
353
|
+
/**
|
|
354
|
+
* Malware score breakdown
|
|
355
|
+
*/
|
|
356
|
+
export interface MalwareScoreBreakdown {
|
|
357
|
+
/** Base score from rule */
|
|
358
|
+
baseScore: number;
|
|
359
|
+
/** Score from pattern matches */
|
|
360
|
+
patternScore: number;
|
|
361
|
+
/** Score from obfuscation detection */
|
|
362
|
+
obfuscationScore: number;
|
|
363
|
+
/** Score from network indicators */
|
|
364
|
+
networkScore: number;
|
|
365
|
+
/** Score from execution indicators */
|
|
366
|
+
executionScore: number;
|
|
367
|
+
/** Score from persistence indicators */
|
|
368
|
+
persistenceScore: number;
|
|
369
|
+
/** Score from correlation with other rules */
|
|
370
|
+
correlationScore: number;
|
|
371
|
+
/** Penalty for false positive indicators */
|
|
372
|
+
falsePositivePenalty: number;
|
|
373
|
+
/** Final calculated score */
|
|
374
|
+
totalScore: number;
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Complete malware score result
|
|
378
|
+
*/
|
|
379
|
+
export interface MalwareScore {
|
|
380
|
+
/** Numeric score (0-100) */
|
|
381
|
+
score: number;
|
|
382
|
+
/** Score breakdown */
|
|
383
|
+
breakdown: MalwareScoreBreakdown;
|
|
384
|
+
/** Calculated severity from score */
|
|
385
|
+
calculatedSeverity: MalwareSeverity;
|
|
386
|
+
/** Risk level description */
|
|
387
|
+
riskLevel: 'critical' | 'high' | 'medium' | 'low' | 'minimal';
|
|
388
|
+
/** Explanation of the score */
|
|
389
|
+
explanation: string;
|
|
390
|
+
}
|
|
391
|
+
/**
|
|
392
|
+
* Location of a finding in source code
|
|
393
|
+
*/
|
|
394
|
+
export interface SourceLocation {
|
|
395
|
+
/** File path */
|
|
396
|
+
filePath: string;
|
|
397
|
+
/** Starting line number (1-based) */
|
|
398
|
+
startLine: number;
|
|
399
|
+
/** Ending line number (1-based) */
|
|
400
|
+
endLine: number;
|
|
401
|
+
/** Starting column (0-based) */
|
|
402
|
+
startColumn?: number;
|
|
403
|
+
/** Ending column (0-based) */
|
|
404
|
+
endColumn?: number;
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* Pattern match details
|
|
408
|
+
*/
|
|
409
|
+
export interface PatternMatch {
|
|
410
|
+
/** Pattern that matched */
|
|
411
|
+
pattern: MalwarePattern;
|
|
412
|
+
/** Matched text */
|
|
413
|
+
matchedText: string;
|
|
414
|
+
/** Location of the match */
|
|
415
|
+
location: SourceLocation;
|
|
416
|
+
/** Capture groups if regex */
|
|
417
|
+
captures?: string[];
|
|
418
|
+
}
|
|
419
|
+
/**
|
|
420
|
+
* Complete malware finding
|
|
421
|
+
*/
|
|
422
|
+
export interface MalwareFinding {
|
|
423
|
+
/** Unique finding ID */
|
|
424
|
+
id: string;
|
|
425
|
+
/** Rule that triggered this finding */
|
|
426
|
+
ruleId: string;
|
|
427
|
+
/** Rule name */
|
|
428
|
+
ruleName: string;
|
|
429
|
+
/** Source code location */
|
|
430
|
+
location: SourceLocation;
|
|
431
|
+
/** Code snippet */
|
|
432
|
+
codeSnippet: string;
|
|
433
|
+
/** Highlighted portion */
|
|
434
|
+
highlightedCode?: string;
|
|
435
|
+
/** Threat type */
|
|
436
|
+
threatType: MalwareThreatType;
|
|
437
|
+
/** Category */
|
|
438
|
+
category: MalwareCategory;
|
|
439
|
+
/** Final severity */
|
|
440
|
+
severity: MalwareSeverity;
|
|
441
|
+
/** Confidence level */
|
|
442
|
+
confidence: ConfidenceLevel;
|
|
443
|
+
/** Malware score */
|
|
444
|
+
malwareScore: MalwareScore;
|
|
445
|
+
/** Patterns that matched */
|
|
446
|
+
patternMatches: PatternMatch[];
|
|
447
|
+
/** Correlated findings */
|
|
448
|
+
correlatedFindings?: string[];
|
|
449
|
+
/** Human-readable message */
|
|
450
|
+
message: string;
|
|
451
|
+
/** Detailed analysis */
|
|
452
|
+
analysis: string;
|
|
453
|
+
/** Remediation guidance */
|
|
454
|
+
remediation: RemediationGuidance;
|
|
455
|
+
/** MITRE ATT&CK references */
|
|
456
|
+
mitreAttack?: MitreReference[];
|
|
457
|
+
/** CVE references */
|
|
458
|
+
cves?: CveReference[];
|
|
459
|
+
/** Detection timestamp */
|
|
460
|
+
detectedAt: string;
|
|
461
|
+
/** Language of the code */
|
|
462
|
+
language: SupportedLanguage;
|
|
463
|
+
/** Additional context */
|
|
464
|
+
context?: Record<string, unknown>;
|
|
465
|
+
}
|
|
466
|
+
/**
|
|
467
|
+
* Analysis context for rule evaluation
|
|
468
|
+
*/
|
|
469
|
+
export interface AnalysisContext {
|
|
470
|
+
/** File being analyzed */
|
|
471
|
+
filePath: string;
|
|
472
|
+
/** File content */
|
|
473
|
+
content: string;
|
|
474
|
+
/** Detected language */
|
|
475
|
+
language: SupportedLanguage;
|
|
476
|
+
/** AST if available */
|
|
477
|
+
ast?: unknown;
|
|
478
|
+
/** Call graph if available */
|
|
479
|
+
callGraph?: unknown;
|
|
480
|
+
/** Dependencies if available */
|
|
481
|
+
dependencies?: string[];
|
|
482
|
+
/** Is this in node_modules or vendor */
|
|
483
|
+
isVendorCode?: boolean;
|
|
484
|
+
/** Is this a test file */
|
|
485
|
+
isTestFile?: boolean;
|
|
486
|
+
/** Previous findings in this file */
|
|
487
|
+
previousFindings?: MalwareFinding[];
|
|
488
|
+
/** Findings from related files */
|
|
489
|
+
relatedFindings?: MalwareFinding[];
|
|
490
|
+
}
|
|
491
|
+
/**
|
|
492
|
+
* Analysis options
|
|
493
|
+
*/
|
|
494
|
+
export interface AnalysisOptions {
|
|
495
|
+
/** Maximum findings per file */
|
|
496
|
+
maxFindingsPerFile?: number;
|
|
497
|
+
/** Maximum time per rule in ms */
|
|
498
|
+
ruleTimeout?: number;
|
|
499
|
+
/** Maximum time per file in ms */
|
|
500
|
+
fileTimeout?: number;
|
|
501
|
+
/** Include disabled rules */
|
|
502
|
+
includeDisabled?: boolean;
|
|
503
|
+
/** Minimum severity to report */
|
|
504
|
+
minSeverity?: MalwareSeverity;
|
|
505
|
+
/** Minimum confidence to report */
|
|
506
|
+
minConfidence?: ConfidenceLevel;
|
|
507
|
+
/** Enable AST-based detection */
|
|
508
|
+
enableAst?: boolean;
|
|
509
|
+
/** Enable heuristic detection */
|
|
510
|
+
enableHeuristics?: boolean;
|
|
511
|
+
/** Enable correlation analysis */
|
|
512
|
+
enableCorrelation?: boolean;
|
|
513
|
+
/** Ignore vendor/node_modules */
|
|
514
|
+
ignoreVendor?: boolean;
|
|
515
|
+
/** Ignore test files */
|
|
516
|
+
ignoreTests?: boolean;
|
|
517
|
+
}
|
|
518
|
+
/**
|
|
519
|
+
* Analysis result summary
|
|
520
|
+
*/
|
|
521
|
+
export interface AnalysisResult {
|
|
522
|
+
/** All findings */
|
|
523
|
+
findings: MalwareFinding[];
|
|
524
|
+
/** Summary statistics */
|
|
525
|
+
summary: {
|
|
526
|
+
totalFindings: number;
|
|
527
|
+
bySeverity: Record<MalwareSeverity, number>;
|
|
528
|
+
byThreatType: Record<string, number>;
|
|
529
|
+
byConfidence: Record<ConfidenceLevel, number>;
|
|
530
|
+
highestScore: number;
|
|
531
|
+
averageScore: number;
|
|
532
|
+
};
|
|
533
|
+
/** Files analyzed */
|
|
534
|
+
filesAnalyzed: string[];
|
|
535
|
+
/** Analysis duration in ms */
|
|
536
|
+
duration: number;
|
|
537
|
+
/** Any errors during analysis */
|
|
538
|
+
errors?: Array<{
|
|
539
|
+
file: string;
|
|
540
|
+
rule?: string;
|
|
541
|
+
error: string;
|
|
542
|
+
}>;
|
|
543
|
+
}
|
|
544
|
+
/**
|
|
545
|
+
* Malware finding categories
|
|
546
|
+
*/
|
|
547
|
+
export declare enum MalwareCategory {
|
|
548
|
+
BACKDOOR = "backdoor",
|
|
549
|
+
CRYPTOMINER = "cryptominer",
|
|
550
|
+
SPYWARE = "spyware",
|
|
551
|
+
TROJAN = "trojan",
|
|
552
|
+
WORM = "worm",
|
|
553
|
+
RANSOMWARE = "ransomware",
|
|
554
|
+
ADWARE = "adware",
|
|
555
|
+
ROOTKIT = "rootkit",
|
|
556
|
+
BOTNET = "botnet",
|
|
557
|
+
EXPLOIT = "exploit",
|
|
558
|
+
DROPPER = "dropper",
|
|
559
|
+
OBFUSCATION = "obfuscation",
|
|
560
|
+
EVASION = "evasion",
|
|
561
|
+
SUPPLY_CHAIN = "supply_chain",
|
|
562
|
+
SUSPICIOUS = "suspicious"
|
|
563
|
+
}
|
|
564
|
+
/**
|
|
565
|
+
* Rule engine interface
|
|
566
|
+
*/
|
|
567
|
+
export interface IMalwareRuleEngine {
|
|
568
|
+
/** Analyze a file */
|
|
569
|
+
analyze(context: AnalysisContext, options?: AnalysisOptions): Promise<MalwareFinding[]>;
|
|
570
|
+
/** Get all available rules */
|
|
571
|
+
getRules(): MalwareRule[];
|
|
572
|
+
/** Get rules by category */
|
|
573
|
+
getRulesByCategory(category: MalwareCategory): MalwareRule[];
|
|
574
|
+
/** Get rules by threat type */
|
|
575
|
+
getRulesByThreatType(type: MalwareThreatType): MalwareRule[];
|
|
576
|
+
/** Enable/disable a rule */
|
|
577
|
+
setRuleEnabled(ruleId: string, enabled: boolean): void;
|
|
578
|
+
/** Add a custom rule */
|
|
579
|
+
addRule(rule: MalwareRule): void;
|
|
580
|
+
/** Remove a rule */
|
|
581
|
+
removeRule(ruleId: string): void;
|
|
582
|
+
}
|
|
583
|
+
/**
|
|
584
|
+
* Pattern matcher interface
|
|
585
|
+
*/
|
|
586
|
+
export interface IPatternMatcher {
|
|
587
|
+
/** Match patterns against content */
|
|
588
|
+
match(content: string, patterns: MalwarePattern[], language: SupportedLanguage): PatternMatch[];
|
|
589
|
+
/** Match with timeout protection */
|
|
590
|
+
matchWithTimeout(content: string, patterns: MalwarePattern[], language: SupportedLanguage, timeout: number): Promise<PatternMatch[]>;
|
|
591
|
+
}
|
|
592
|
+
/**
|
|
593
|
+
* Score calculator interface
|
|
594
|
+
*/
|
|
595
|
+
export interface IScoreCalculator {
|
|
596
|
+
/** Calculate malware score for a finding */
|
|
597
|
+
calculateScore(rule: MalwareRule, matches: PatternMatch[], context: AnalysisContext): MalwareScore;
|
|
598
|
+
/** Calculate combined score for multiple findings */
|
|
599
|
+
calculateCombinedScore(findings: MalwareFinding[]): MalwareScore;
|
|
600
|
+
}
|
|
601
|
+
/**
|
|
602
|
+
* Heuristic analyzer interface
|
|
603
|
+
*/
|
|
604
|
+
export interface IHeuristicAnalyzer {
|
|
605
|
+
/** Calculate entropy of content */
|
|
606
|
+
calculateEntropy(content: string): number;
|
|
607
|
+
/** Detect obfuscation level */
|
|
608
|
+
detectObfuscationLevel(content: string, language: SupportedLanguage): number;
|
|
609
|
+
/** Normalize code for analysis */
|
|
610
|
+
normalizeCode(content: string, language: SupportedLanguage): string;
|
|
611
|
+
/** Check for anti-debugging patterns */
|
|
612
|
+
hasAntiDebugging(content: string, language: SupportedLanguage): boolean;
|
|
613
|
+
/** Check for environment-dependent activation */
|
|
614
|
+
hasEnvironmentChecks(content: string): boolean;
|
|
615
|
+
}
|
|
616
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/rules/malware/types/index.ts"],"names":[],"mappings":"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"}
|