summved/log-generator
GitHub: summved/log-generator
一款企业级 SIEM 日志生成与攻击链模拟工具,用于生成映射到 MITRE ATT&CK 框架的高仿真多源日志,帮助安全团队测试检测规则和训练分析能力。
Stars: 47 | Forks: 10
# 🚀 企业级 SIEM 日志生成器
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://nodejs.org/)
[](https://www.typescriptlang.org/)
**最全面的开源网络安全日志生成器**,专为 SIEM 测试、安全培训和威胁模拟而设计。通过 **MITRE ATT&CK 框架集成**、**D3FEND 防御技术**、**基于机器学习的行为模式**、**攻击链模拟**以及**高性能 worker threads**,生成真实的企业级日志。
非常适合需要真实日志数据来测试 SIEM 规则、训练检测能力和模拟真实攻击场景的 **SOC 分析师**、**渗透测试人员**、**安全研究员**和**网络安全教育工作者**。
## 🎯 核心功能
- **🎯 MITRE ATT&CK 集成** - 生成映射到特定技术和战术的日志
- **🛡️ D3FEND 防御框架** - 生成防御响应日志和 SOC 活动
- **🔗 攻击链模拟** - 执行多阶段场景(APT29、勒索软件、内部威胁)
- **🤖 AI 增强攻击链** - 使用本地 AI 动态演进的攻击场景(无需外部 API)
- **🧠 基于机器学习的模式学习** - 使用机器学习生成真实的、基于行为的日志
- **⚡ 高性能生成** - 原生支持 6,000+ 日志/秒,借助 worker threads 和内存优先架构最高可达 20,000+ 日志/秒
- **📊 实时监控** - 内置 Prometheus 指标、Grafana 仪表板和健康检查端点
- **🌐 SIEM 集成** - 通过 HTTP/Syslog 直接集成 Splunk、ELK、Wazuh、QRadar(已经过测试和验证)
- **🐳 Docker 与 Kubernetes 就绪** - 提供包含完整监控堆栈的生产级就绪容器
- **🔄 历史重放** - 通过高级过滤重放和分析现有日志数据
- **📊 12+ 种日志源** - 终端节点、应用程序、服务器、防火墙、云、身份验证、数据库等
## 🚀 快速开始
### 安装
```
git clone https://github.com/your-username/log-generator.git
cd log-generator
npm install
```
### 基本用法
```
# 生成日志(存储在 logs/current/ 文件夹中并进行监控)
npm run generate
# 生成特定持续时间
npm run generate -- --duration 30m
# 生成 MITRE ATT&CK 特定日志
npm run generate -- --mitre-technique T1110 --duration 1h
# 运行攻击链模拟
npm run attack-chains:execute apt29-cozy-bear
# 新增:AI 增强的攻击链
npm run attack-chains:execute-ai ransomware-ryuk --mode enhanced --ai-level medium
npm run attack-chains:training apt29-cozy-bear --variations 5 --progressive
# 使用 worker threads 实现高性能生成
npm run performance-test -- --mode worker --workers 4 --duration 30s
# 测试 SIEM 集成
npm run performance-test -- --mode http --duration 10s
npm run performance-test -- --mode syslog --duration 10s
# 验证配置(建议性警告)
npm run validate-config
# 检查状态和性能
npm run status
# 访问监控 endpoints(当 generator 在启用监控的情况下运行时)
curl http://localhost:3000/health # Health check
curl http://localhost:3000/metrics # Prometheus metrics
curl http://localhost:3000/status # Detailed status
# 如果不需要,禁用监控(可选)
ENABLE_MONITORING=false npm run generate
```
### 日志存储
默认情况下,所有日志都会以 JSON 格式自动存储在 `logs/current/` 文件夹中。历史日志会滚动迁移到 `logs/historical/`,以便进行长期保存和分析。
## 🐳 Docker 与监控堆栈
### Docker 快速设置
```
# 启动完整监控栈(Prometheus + Grafana + SIEM 测试)
SIEM_HTTP_URL="http://localhost:8000/post" \
SIEM_API_TOKEN="test-token" \
GRAFANA_PASSWORD="admin123" \
docker-compose -f docker-compose.production.yml up -d
# 访问监控 dashboards
# Grafana: http://localhost:3001 (admin/admin123)
# Prometheus: http://localhost:9090
# SIEM 测试 Endpoint: http://localhost:8000/post (POST requests)
# Log Generator Metrics: http://localhost:3000/metrics
```
### 生产级 Kubernetes 部署
```
# 部署到 Kubernetes 并启用 auto-scaling
kubectl apply -f k8s/
# 检查部署状态
kubectl get pods -n log-generator
kubectl get services -n log-generator
```
## 📋 可用命令
| **类别** | **命令** | **描述** |
|---|---|---|
| **生成** | `npm run generate` | 从所有配置的源生成日志 |
| **性能** | `npm run performance-test` | 使用 worker threads 进行高性能测试 |
| **MITRE ATT&CK** | `npm run mitre-list` | 列出支持的 MITRE 技术 |
| **攻击链** | `npm run attack-chains:list` | 列出可用的攻击场景 |
| **AI 攻击链** | `npm run attack-chains:execute-ai ` | 结合 AI 增强功能执行 |
| **AI 训练** | `npm run attack-chains:training ` | 运行渐进式 AI 训练会话 |
| **ML 模式** | `npm run ml-patterns:learn ` | 从历史数据中学习 |
| **SOC 模拟** | `npm run soc-simulation:scenarios` | 列出 SOC 模拟场景 |
| **重放** | `npm run replay` | 重放历史日志 |
| **分析** | `npm run analyze` | 分析日志文件以查找问题 |
| **配置** | `npm run validate-config` | 验证配置文件(建议性警告) |
| **状态** | `npm run status` | 显示当前系统状态和性能 |
| **监控** | `curl localhost:3000/health` | 健康检查端点(可选) |
| **监控** | `curl localhost:3000/metrics` | Prometheus 指标端点(可选) |
| **监控** | `ENABLE_MONITORING=false npm run generate` | 禁用监控功能 |
有关命令的完整列表,请运行:`npx ts-node src/cli.ts --help`
## 🛡️ SIEM 集成
日志生成器支持多种输出格式和目标位置:
**输出格式:**
- **JSON** - 默认格式,存储在 `logs/current/` 中
- **Syslog** - 兼容 RFC3164/5424
- **CEF** - 通用事件格式 (Common Event Format)
- **HTTP** - 通过 REST API 直接集成 SIEM
**支持的 SIEM:**
- Splunk (HTTP Event Collector)
- Elastic/ELK Stack
- Wazuh
- QRadar
- Sentinel
- 任何兼容 Syslog 的 SIEM
请参阅 **[SIEM_INTEGRATION.md](SIEM_INTEGRATION.md)** 获取详细的集成指南。
## ⚡ 高性能特性
- **Worker Threads** - 跨多个 CPU 核心的并行日志生成
- **内存优先架构** - 写入磁盘前提供 10,000 条日志的缓冲区
- **网络输出** - 直接将 HTTP/Syslog 流传输至 SIEM(比磁盘快 10-50 倍)
- **批处理** - 可配置的批处理大小以实现最佳性能
- **实时监控** - 性能统计和系统健康监控
预期性能:在正确的配置下可达 **5,000-20,000+ 日志/秒**。
## 📚 文档
| **指南** | **描述** | **受众** |
|---|---|---|
| **[🛠️ 系统设置](SYSTEM_SETUP.md)** | 特定平台的设置和要求 | 所有用户 |
| **[❓ 常见问题](FAQ.md)** | 常见问题解答 | 所有用户 |
| **[🎯 使用场景](USE_CASES.md)** | 针对特定角色的实施指南 | SOC、红队、教育工作者 |
| **[📋 日志类型参考](LOG_TYPES_REFERENCE.md)** | 所有日志源的完整分解说明 | 技术用户 |
| **[⚙️ 配置指南](CONFIGURATION.md)** | 详细的配置选项 | 高级用户 |
| **[🛡️ SIEM 集成](SIEM_INTEGRATION.md)** | 与主流 SIEM 平台的集成 | SIEM 管理员 |
| **[🔧 技术指南](SIEM_TECHNICAL_GUIDE.md)** | 高级用法和故障排除 | DevOps、工程师 |
| **[🚀 性能指南](PERFORMANCE_GUIDE.md)** | 性能优化和基准测试 | 性能工程师 |
| **[📈 日志分析](LOG_ANALYSIS.md)** | 分析工具和质量指标 | 安全分析师 |
| **[🏗️ 代码架构](CODE_ARCHITECTURE.md)** | 开发者文档和 API 参考 | 开发者 |
| **[🔧 高级功能](ADVANCED_FEATURES.md)** | ML 模式、攻击链、D3FEND 集成 | 高级用户 |
## 🎯 使用场景
- **🔒 安全测试** - 测试 SIEM 规则和检测能力
- **📚 培训与教育** - 通过真实场景进行网络安全培训
- **🧪 开发** - 为应用程序生成一致的测试数据
- **⚡ 性能测试** - 通过海量生成对日志摄取系统进行负载测试
- **🎭 事件模拟** - 重现攻击场景以进行分析
- **🔄 持续测试** - 在 CI/CD pipeline 中进行自动化测试
## 🔧 系统要求
- **Node.js** 18.0.0 或更高版本
- **内存** 4GB+ RAM(高性能模式推荐 8GB+)
- **存储** 进行海量生成时推荐使用 SSD
- **网络** 用于通过 HTTP/Syslog 进行 SIEM 集成
请参阅 **[SYSTEM_REQUIREMENTS.md](SYSTEM_REQUIREMENTS.md)** 获取详细规格说明。
## 📄 许可证
本项目基于 GNU General Public License v3.0 授权 - 有关详细信息,请参阅 [LICENSE](LICENSE) 文件。
## 🙏 致谢
- **MITRE ATT&CK 框架** - 感谢其提供全面的威胁建模框架
- **MITRE D3FEND 框架** - 感谢其提供防御性网络安全本体
- **安全研究社区** - 感谢其对攻击模式验证的贡献
**⭐ 如果本项目对您的安全测试和 SIEM 开发有所帮助,请为本仓库点个 Star!**
标签:Docker, GNU通用公共许可证, MITM代理, Node.js, SIEM测试, TypeScript, 子域名突变, 安全插件, 安全运营, 安全防御评估, 扫描框架, 日志生成, 自动化攻击, 自定义请求头, 请求拦截