Tejakarthik200212/detection-as-code-pipeline

GitHub: Tejakarthik200212/detection-as-code-pipeline

一个将安全检测规则版本化管理并通过 CI/CD 自动验证、威胁情报增强和自动化响应(SOAR)的检测即代码流水线项目。

Stars: 0 | Forks: 0

# 检测即代码 — 自动化威胁检测流水线 一个检测工程流水线,将安全检测视为受版本控制的代码:规则以供应商中立格式编写,在每次变更时通过 CI/CD 进行自动测试和验证,通过威胁情报进行增强,并接入自动化(SOAR 风格)的响应工作流。其构建旨在展示现代安全团队如何工程化地管理和运作检测——而不仅仅是点击操作仪表板。 ## 展示内容 - **检测即代码** — 检测以受版本控制的 Sigma 规则(YAML)形式编写,每条规则均映射至 MITRE ATT&CK,并像软件一样进行审查和版本控制 - **检测的 CI/CD (GitHub Actions)** — 每次推送都会自动验证各规则的结构、严重性、语法及 ATT&CK 映射;存在缺陷的规则将导致构建失败且无法合并 - **威胁情报增强** — 一个 Python 模块,根据 AbuseIPDB 对源 IP 进行评分并返回可操作的判定结论 - **自动化响应(迷你 SOAR)** — 一个 Python 工作流,在触发检测时增强 IP 信息,根据威胁情报的判定决定操作,通知 Slack/Teams 频道,并写入结构化的事件记录 - **安全即软件实践** — 将自动化测试、版本控制、CI 门控及文档化应用于安全运营 (DevSecOps) ## 仓库结构 ``` detections/ Sigma detection rules (YAML), one per technique tests/ Automated validation run locally and in CI response/ Threat-intel enrichment + automated response (mini-SOAR) .github/ GitHub Actions CI/CD workflow docs/ Build guide and architecture notes ``` ## 包含的检测 | 规则 | MITRE ATT&CK | 严重性 | |------|--------------|----------| | SSH 暴力破解尝试 | T1110 (暴力破解) | 高 | | 云存储被设置为公开访问 | T1530 (来自云存储的数据) | 高 | | 端口扫描 / 网络侦察 | T1046 (网络服务发现) | 中 | ## 流水线工作原理 1. 检测以 Sigma 规则的形式在 `detections/` 中编写或编辑。 2. 推送时,**GitHub Actions** 会运行 `tests/test_rules.py`,如果任何规则缺少必填字段、严重性无效、不是有效的 YAML,或缺少 MITRE ATT&CK 映射,则会导致构建失败。 3. 当检测触发时(在实际部署中,来自 SIEM),`response/respond.py` 会通过 `response/enrich_ip.py` 增强源 IP 信息,决定操作,通知团队并记录事件。 ## 本地运行 ``` pip install -r requirements.txt # 验证所有 detection rules(与 CI 运行的检查相同) python -m pytest tests/ -v # 用 threat intelligence 丰富 IP export ABUSEIPDB_API_KEY="your_free_key" # optional; runs in demo mode without it python response/enrich_ip.py 74.96.216.30 # 模拟对触发的 detection 的自动化响应 export SLACK_WEBHOOK_URL="your_webhook" # optional; prints to console without it python response/respond.py --rule "SSH Brute Force Attempt" --src-ip 74.96.216.30 ``` ## 技术栈 Sigma · Python · GitHub Actions (CI/CD) · pytest · MITRE ATT&CK · AbuseIPDB API · Slack/Teams webhooks · YAML · Git ## 注意事项 - 未配置 API 密钥 / webhook 时,增强和响应脚本会在安全的**演示模式**下运行,因此整个流水线无需任何密钥即可实现端到端的运行。 - 没有密钥被提交;参见 `.gitignore`。在实际部署中,API 密钥和 webhook URL 将作为 CI/CD 密钥或环境变量注入。
标签:DevSecOps, Sigma规则, Wazuh, 上游代理, 威胁情报, 安全规则引擎, 安全运营, 开发者工具, 扫描框架, 插件系统, 检测即代码, 目标导入, 自动化响应, 逆向工具