summved/log-generator

GitHub: summved/log-generator

一款企业级 SIEM 日志生成与攻击链模拟工具,用于生成映射到 MITRE ATT&CK 框架的高仿真多源日志,帮助安全团队测试检测规则和训练分析能力。

Stars: 47 | Forks: 10

# 🚀 企业级 SIEM 日志生成器 [![License: GPL v3](https://img.shields.io/badge/License-GPLv3-blue.svg)](https://www.gnu.org/licenses/gpl-3.0) [![Node.js Version](https://img.shields.io/badge/node-%3E%3D18.0.0-brightgreen.svg)](https://nodejs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-007ACC?logo=typescript&logoColor=white)](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, 子域名突变, 安全插件, 安全运营, 安全防御评估, 扫描框架, 日志生成, 自动化攻击, 自定义请求头, 请求拦截