jbvillegas/_RanDT

GitHub: jbvillegas/_RanDT

一款基于 Node.js 和 YARA 规则的 macOS 轻量级勒索软件检测系统,专注于通过实时文件监控防御恶意威胁。

Stars: 0 | Forks: 0

# RanDT - 勒索软件检测工具 一款全面的勒索软件检测系统,利用 YARA 规则监控和分析 macOS 系统上的文件。RanDT 为 Documents、Desktop 和 Downloads 文件夹提供企业级的安全监控。 ![Version](https://img.shields.io/badge/version-1.0.0-blue.svg) ![Platform](https://img.shields.io/badge/platform-macOS-lightgrey.svg) ## 功能 ### 核心功能 - **实时文件监控** - 监视 Documents、Desktop 和 Downloads 文件夹 - **全面威胁检测** - 使用先进的 YARA 规则进行恶意软件识别 - **多类别分析** - 涵盖网络钓鱼、恶意软件、隐私侵犯等 - **性能优化** - 智能文件过滤和大小限制 - **企业级日志** - 具有多级别的结构化日志 - **可选隔离** - 自动隔离可疑文件 ### 检测类别 - **邮件与网络钓鱼** - 可疑附件和社会工程学 - **恶意软件分析** - 木马、勒索软件、键盘记录器、挖矿程序 - **文档威胁** - 启用宏的文件、PDF 漏洞利用、RTF 攻击 - **隐私侵犯** - 凭据窃取、浏览器数据、加密货币钱包 - **网络威胁** - C2 通信、DNS 隧道、数据渗出 - **高级威胁** - APT 指标、零日漏洞利用、多阶段攻击 ## 前置条件 ### 系统要求 - **操作系统**: macOS 10.15+ (针对 macOS 优化) - **Node.js**: 版本 14.0.0 或更高 - **YARA**: 通过 Homebrew 安装的最新版本 - **内存**: 最低 2GB RAM - **存储**: 1GB 可用空间 ### 依赖项 - `chokidar` - 文件系统监控 - `commander` - CLI 界面 - `chalk` - 终端着色 - `figlet` - ASCII 艺术横幅 - `node-notifier` - 桌面通知 ## 安装 ### 快速安装(推荐) ``` git clone https://github.com/jbvillegas/_RanDT.git cd _RanDT chmod +x install.sh ./install.sh ``` ### 手动安装 ``` # Clone repository git clone https://github.com/jbvillegas/_RanDT.git cd _RanDT # 安装 YARA brew install yara # 安装 Node.js 依赖 npm install # 验证 YARA 规则 npm run validate-rules # 运行测试 npm test ``` ## 用法 ### 命令行界面 ``` # 启动 RanDT npm start # 或 node cli.js start # 作为守护进程启动 node cli.js start --daemon # 停止 RanDT npm run stop # 或 node cli.js stop # 检查状态 node cli.js status # 查看实时日志 npm run logs # 或 node cli.js logs # 生成威胁报告 node cli.js report # 验证规则 node cli.js validate # 运行测试 node cli.js test ``` ### 直接执行 ``` # 使用默认设置启动 node detector.js # 使用自定义配置启动 node detector.js --config custom-config.json # 详细输出 node detector.js --verbose ``` ## 配置 ### 主配置 (`config.json`) ``` { "detector": { "maxFileSize": 104857600, // 100MB max file size "scanTimeout": 30000, // 30 second timeout "enableQuarantine": false, // Auto-quarantine threats "enableNotifications": true, // Desktop notifications "logLevel": "info", // Logging level "statsInterval": 600000, // Stats display interval "watchDepth": 3 // Directory depth limit }, "paths": { "watchPaths": [ // Directories to monitor "~/Documents", "~/Desktop", "~/Downloads" ], "excludePaths": [ // Paths to exclude "node_modules", ".git", ".DS_Store" ] } } ``` ### YARA 规则结构 ``` rules/ ├── master.yar # Main rules file (includes all) ├── attachment.yar # Email attachment analysis ├── phishing.yar # Phishing detection ├── malware.yar # Malware identification ├── documents.yar # Document threat analysis ├── privacy.yar # Data theft detection └── network.yar # Network-based threats ``` ## 监控与告警 ### 日志级别 - **DEBUG** - 详细的操作信息 - **INFO** - 一般信息和安全文件 - **WARN** - 警告和跳过的文件 - **ALERT** - 检测到威胁(需立即关注) - **ERROR** - 系统错误和故障 ### 输出示例 ``` [2025-07-15T10:30:45.123Z] [INFO] Starting RanDT - Real-time Threat Detector [2025-07-15T10:30:46.250Z] [ALERT] 🚨 THREAT DETECTED in /Users/user/Downloads/suspicious.pdf [2025-07-15T10:30:46.251Z] [INFO] ✅ File clean: document.docx ``` ### 统计仪表板 ``` RanDT Statistics: Uptime: 120 minutes Files Scanned: 1,247 Threats Detected: 3 Files Quarantined: 0 Errors: 0 ``` ## 测试 ### 自动化测试套件 ``` # 运行所有测试 npm test # 运行 YARA 规则测试 npm run test-rules # 验证规则语法 npm run validate-rules ``` ### 手动测试 测试套件会创建样本文件以验证检测: - 网络钓鱼邮件 - 恶意 PowerShell 脚本 - 勒索软件勒索信 - 凭据文件 - 启用宏的文档 - 网络配置 - 加密货币钱包 - SSH 密钥 ## 安全注意事项 ### 文件隔离 - **默认禁用** - 在 config.json 中启用 - **安全隔离** - 将文件移动到隔离目录 - **保留元数据** - 时间戳和文件信息 - **人工审查** - 需要手动恢复 ### 性能影响 - **优化的扫描** - 智能文件类型过滤 - **大小限制** - 跳过大于 100MB 的文件 - **深度限制** - 防止深层目录递归 - **内存高效** - 极低的内存占用 ### 隐私 - **本地处理** - 不向外部发送数据 - **加密日志** - 可选的日志加密 - **用户控制** - 完全控制监控范围 ## 威胁检测示例 ### 网络钓鱼检测 ``` rule phishing_email_spoofing { strings: $spoof = /From:.*@(paypal|amazon|microsoft)\.com/i $urgent = "urgent action required" nocase condition: $spoof and $urgent } ``` ### 恶意软件检测 ``` rule ransomware_indicators { strings: $ransom = "your files have been encrypted" nocase $bitcoin = "pay bitcoin" nocase condition: $ransom and $bitcoin } ``` ### 隐私侵犯 ``` rule credential_harvesting { strings: $email = /[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}/ $password = "password" nocase condition: @email[10] and $password } ``` ## 性能指标 ### 典型性能 - **扫描速度**: 50-100 个文件/秒 - **内存使用**: 50-100MB - **CPU 影响**: 在现代系统上 <5% - **误报率**: 调整规则后 <1% ### 优化建议 1. 根据您的环境**调整文件大小限制** 2. **自定义扫描扩展名**以减少负载 3. 根据误报率**调整规则灵敏度** 4. **使用 SSD 存储**以获得更好的性能 ## 贡献 ### 规则开发 1. 在 `rules/` 目录中创建新的 `.yar` 文件 2. 遵循 YARA 规则语法和约定 3. 包含全面的元数据 4. 在部署前彻底测试规则 ### 代码贡献 1. Fork 本仓库 2. 创建功能分支 3. 遵循现有的代码风格 4. 为新功能添加测试 5. 提交 Pull Request ## 支持 ### 常见问题 - **找不到 YARA**: 使用 `brew install yara` 安装 - **权限被拒绝**: 确保对受监控目录具有读取权限 - **CPU 使用率高**: 调整文件大小限制或排除目录 - **误报**: 调整规则灵敏度或添加排除项 ### 获取帮助 - **文档**: 查看此 README 和内联注释 - **Bug 报告**: 在 GitHub 上开启一个 issue - **功能请求**: 提交增强请求 - **直接联系**: your.email@example.com ## 致谢 - **YARA Project** - 强大的模式匹配引擎 - **Chokidar** - 高效的文件系统监控 - **Node.js 社区** - 优秀的生态系统和工具 - **安全研究社区** - 威胁情报和模式 **⚠️ 免责声明**: 此工具仅用于教育和防御性安全目的。请负责任地使用,并遵守适用的法律和法规。 ## 勒索软件检测工具 使用 YARA 和 JS 创建的轻量级勒索软件检测工具。实时工作,非常适合恶意软件分析、威胁狩猎和研究。 ## 特性 1. 实时文件监控 - 'Documents'、'Downloads'、'Desktop'。 2. YARA 规则集成 - 模式识别 3. 进程终止 - 终止可疑活动 4. 沙盒测试 - Docker 安全分析 ## 技术栈 1. 后端 - Node.js + 'chokidar' 2. 安全 - YARA 3. 沙盒 - Docker
标签:APT检测, Cutter, DAST, DNS 反向解析, GNU通用公共许可证, MITM代理, Node.js, YARA, 云资产可视化, 企业安全, 勒索软件检测, 威胁情报, 实时防护, 开发者工具, 恶意软件分析, 数据防泄露, 文件监控, 端点安全, 网络资产管理, 自动隔离, 补丁管理, 请求拦截, 钓鱼检测, 零日漏洞