Olaniyansodiq1234/Production-Hunt-Engine

GitHub: Olaniyansodiq1234/Production-Hunt-Engine

一个用 Python 和 DuckDB 从零构建的 SIEM 风格安全日志分析引擎,能够流式摄入多源日志并自动检测攻击活动。

Stars: 0 | Forks: 0

# 🛡️ Production Hunt 引擎 **一个 SIEM 风格的安全日志分析引擎,能够从原始日志中检测攻击活动。** 使用 Python、DuckDB 和 SQL 从零开始构建。处理 schema drift、重复数据、无效时间戳,并关联 5 个日志源(Auth、DNS、Web、Firewall、Endpoint)的事件。 ## 📊 项目概述 | 指标 | 数值 | |--------|-------| | 处理的总事件数 | 749,975 | | 来源 | 5 (Auth, DNS, Web, Firewall, Endpoint) | | 隔离的行数 | 25 | | 检测到的活动 | 3 | | 审查的案例 | 96 | | 良性 | 86 | | 已升级 | 10 | ## 🎯 核心功能 - ✅ **流式摄入** – 逐行处理 JSONL 日志 - ✅ **Schema Drift 处理** – 支持 v1/v2/v3 日志格式 - ✅ **隔离** – 隔离无效行并附带原因代码 - ✅ **去重** – 移除重复事件 - ✅ **活动检测** – 识别 3 种攻击模式: - 暴力破解认证 - 恶意 DNS 查询 - 多阶段攻击 (Web → Firewall → Endpoint) - ✅ **证据追踪** – 每一个声明都链接到原始源文件 + 行号 - ✅ **案例审查** – 分类 96 个可疑活动 (86 个良性,10 个升级) ## 🏗️ 架构 ## 🏗️ 架构图 ![架构图](https://static.pigsec.cn/wp-content/uploads/repos/cas/e3/e312d2b170a666c85066420a3385d6a1d6311e8e25c94098a4d0ee5ef0073ec8.png) **数据流:** 1. 原始日志 (JSONL) → Adapters 检测 schema 版本 2. 标准化转换为标准格式 3. DuckDB 存储标准化事件 4. SQL 查询检测攻击活动 5. 报告导出为 CSV/JSON ## 📁 项目结构 UBI-2026-0085-STAGE_5_FINAL/ ├── hunt-engine/ │ └── src/ │ ├── adapters/ # Schema 版本处理器 │ ├── pipeline/ # 摄入引擎 │ ├── correlation/ # 活动检测 │ ├── review/ # 案例分类 │ └── cli/ # 命令行界面 ├── tests/ # 单元测试 ├── queries/ # SQL 检测查询 ├── Images/ # 截图 │ ├── verification.png # 数据库验证 │ ├── campaigns.png # 活动检测结果 │ └── tests.png # 测试结果 ├── outputs/ # 生成的报告 (clean.db, CSVs, JSONs) ├── Makefile # 自动化 ├── requirements.txt # 依赖项 └── README.md ## 🚀 快速开始 ### 1. 克隆仓库 ```bash git clone https://github.com/YOUR-USERNAME/production-hunt-engine.git cd production-hunt-engine ``` ### 2. 设置虚拟环境 ```bash python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` ### 3. 摄入日志 ```bash python3 hunt-engine/src/cli/main.py ingest ``` ### 4. 检测活动 ```bash python3 hunt-engine/src/cli/main.py hunt ``` ### 5. 审查案例 ```bash python3 hunt-engine/src/cli/main.py review ``` ### 6. 运行测试 ```bash pytest tests/ -v --junitxml=outputs/test-results.xml ``` ## 🔧 Makefile 命令 | 命令 | 描述 | |--------|-------| | make clean | 删除生成的文件 | | make build | 设置虚拟环境 | | make test | 运行测试 | | make run | 摄入 + 检测 + 报告 | | make verify | 验证所有输出 | ## 📊 输出示例 ### 数据库验证 ![验证](https://static.pigsec.cn/wp-content/uploads/repos/cas/3f/3f04746e0828e987b5cbef53bac67d53ecc093fc51f4f68ee11bda7cf79334b6.png) ![活动图](https://static.pigsec.cn/wp-content/uploads/repos/cas/cf/cfdec4dec8a09dd11b2510c5abd1c8515ab06868e3e467fa99d2236460a2401e.png) ### 活动图 ### 🧪 ![Test Results](https://static.pigsec.cn/wp-content/uploads/repos/cas/01/015b6c1b4161ec49441139ae5a3588c9f749d21e7e5de991849d3d83d82e5ea0.png) ### 测试结果 ✅ test_database_exists PASSED ✅ test_events_table PASSED ✅ test_sources_exist PASSED ✅ test_campaigns_exist PASSED ✅ test_tp_fp_table PASSED ## 📈 活动检测结果 ### 活动 1:Auth 暴力破解 ```json { "campaign_type": "auth_bruteforce", "indicators": {"user_name": "user349", "fail_count": 21}, "evidence": [{"source": "auth", "file": "auth.jsonl", "row": 8298}], "confidence": "high" } ``` ### 活动 2:Firewall 拒绝模式 ```json { "campaign_type": "firewall_deny", "indicators": {"src_ip": "", "deny_count": 1934}, "evidence": [{"source": "firewall", "file": "firewall.jsonl", "row": 8}], "confidence": "medium" } ``` ### 活动 3:DNS Asset 查询 ```json { "campaign_type": "dns_asset_queries", "indicators": {"host": "asset-017", "query_count": 5}, "evidence": [{"source": "dns", "file": "dns.jsonl", "row": 39}], "confidence": "medium" } ``` ## 🔑 关键经验 | 经验 | 含义 | |--------|-------| | 证据 > 标签 | 每一个声明都需要源文件 + 行号 | | 一切自动化 | Makefile、测试、验证 | | 核对一切 | 每一行都要有交代 | | 时钟校正 | 必须应用 3,900 秒的漂移 | | 身份解析 | 别名必须在分组前解析 | ## 🛠️ 技术栈 | 组件 | 技术 | |--------|-------| | 语言 | Python 3.11+ | | 数据库 | DuckDB | | 测试 | Pytest | | 数据格式 | JSONL | | 查询引擎 | SQL | | 自动化 | Make | ## 📄 交付物 | # | 文件 | 状态 | |--------|-------|-------| | 1 | hunt-engine/ | ✅ | | 2 | tests/ | ✅ | | 3 | queries/ | ✅ | | 4 | benchmark.json | ✅ | | 5 | normalized-timeline.csv | ✅ | | 6 | campaign-graph.json | ✅ | | 7 | tp-fp-table.csv | ✅ | | 8 | data-quality-register.csv | ✅ | | 9 | evidence-index.csv | ✅ | | 10 | manifest.sha256 | ✅ | | 11 | integrity-attestation.md | ✅ | | 12 | README.md | ✅ | | 13 | assessment-manifest.json | ✅ | | 14 | continuity-record.md | ✅ | | 15 | Makefile | ✅ | | 16 | test-results.xml | ✅ | ## 👨‍💻 作者 UBI-2026-0085 – SOC Analyst 项目 📂 GitHub: 🔗 LinkedIn: ## ⭐ 支持 如果这个项目对您有帮助,请给仓库点个 star ⭐!
标签:AMSI绕过, DuckDB, IP 地址批量处理, Python, SIEM引擎, 多线程, 威胁检测, 安全日志分析, 数据清洗, 无后门, 日志关联分析, 时序数据库, 红队行动, 逆向工具