jbvillegas/_RanDT
GitHub: jbvillegas/_RanDT
一款基于 Node.js 和 YARA 规则的 macOS 轻量级勒索软件检测系统,专注于通过实时文件监控防御恶意威胁。
Stars: 0 | Forks: 0
# RanDT - 勒索软件检测工具
一款全面的勒索软件检测系统,利用 YARA 规则监控和分析 macOS 系统上的文件。RanDT 为 Documents、Desktop 和 Downloads 文件夹提供企业级的安全监控。


## 功能
### 核心功能
- **实时文件监控** - 监视 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, 云资产可视化, 企业安全, 勒索软件检测, 威胁情报, 实时防护, 开发者工具, 恶意软件分析, 数据防泄露, 文件监控, 端点安全, 网络资产管理, 自动隔离, 补丁管理, 请求拦截, 钓鱼检测, 零日漏洞