tecchuuu/ai-enhanced-xdr

GitHub: tecchuuu/ai-enhanced-xdr

基于 Wazuh + Kafka + Isolation Forest 构建的 AI 增强 XDR pipeline,通过无监督异常检测捕获签名规则遗漏的隐蔽攻击。

Stars: 0 | Forks: 0

# AI 增强的 XDR Wazuh + Kafka + 异常检测 pipeline,能够捕获基于签名的规则遗漏的攻击。 专为 **CS497 计算机科学项目 I** 构建,由 SIAM AI Cloud 赞助。Endpoint 事件流经 Wazuh,通过 Apache Kafka 进行流式传输,并由无监督异常检测模型(Isolation Forest)进行分析,该模型会标记行为偏差——包括基于规则的相关性无法捕获的缓慢、有节奏的攻击。检测结果会被写回 OpenSearch,与规则告警分开标记,并在自定义 dashboard 上并排展示。 NVIDIA Morpheus 是文档记录的 GPU 部署目标;此实现作为概念验证在 CPU 上运行(有关完整的架构说明及该决定背后的原因,请参阅 `docs/`)。 ## 架构 ``` Endpoint → Wazuh Agent → Wazuh Manager → archives.json │ archive_producer.py (tail -F) │ Apache Kafka │ detection_consumer.py (windowing → Isolation Forest) │ OpenSearch (ai-detections-* index) │ FastAPI + dashboard (rule alerts vs AI detections) ``` ## 仓库结构 ``` wazuh/ Wazuh manager/indexer/dashboard — Docker Compose + config ai-stack/ Kafka (KRaft mode) + streaming pipeline scripts dashboard/ FastAPI backend + detection-split dashboard (HTML/JS) scripts/ traffic generation, orchestration, ML experiments docs/ architecture notes, results log, failure log ``` ## 设置说明 需要 Docker、Docker Compose 和 Python 3.10+。 **1. Wazuh 技术栈** ``` cd wazuh docker compose -f generate-indexer-certs.yml run --rm generator sudo sysctl -w vm.max_map_count=262144 docker compose up -d ``` Dashboard:`https://localhost`(admin / SecretPassword — 在任何实际使用前请务必修改) **2. 部署 Wazuh agent** 在您想要监控的 endpoint 上,并将其指向 manager。在 `wazuh/config/wazuh_cluster/wazuh_manager.conf` 中启用 `logall_json: yes`(本仓库中已设置),以便 archive 捕获所有事件,而不仅仅是规则匹配。 **3. Kafka** ``` cd ../ai-stack docker compose -f ai-stack.yml up -d ``` **4. Python 环境** ``` python3 -m venv venv source venv/bin/activate pip install -r requirements.txt ``` **5. 运行 pipeline** ``` cd ../ai-stack/pipeline python archive_producer.py & # Wazuh archive -> Kafka python detection_consumer.py & # Kafka -> Isolation Forest -> OpenSearch cd ../../dashboard uvicorn main:app --host 0.0.0.0 --port 8000 & python3 -m http.server 8080 & ``` Dashboard:`http://localhost:8080/dashboard.html` ## 为什么采用此架构 - **启用 `logall_json`**:Wazuh 默认的告警日志仅包含匹配规则的事件。异常模型需要完整的事件流——包括规则*未*标记的所有内容——否则它永远无法检测到基于签名的检测所遗漏的内容。 - **Wazuh 与模型之间的 Kafka**:将快速路径(规则 → dashboard,始终有效)与 AI 路径(archive → 模型)解耦,因此缓慢或失败的模型运行永远不会影响标准告警。 - **基于滚动窗口 buffer 的 Isolation Forest**:无监督方式,因此不需要标记的攻击数据——它会学习该环境中“正常”的状态并标记偏差。窗口化聚合(而非单事件评分)使其能够捕获规避固定阈值相关性规则的隐蔽低速攻击(low-and-slow)。 - **独立的 `ai-detections-*` 索引 + 自定义规则 ID 范围 (100000+)**:确保在查询和显示时,将 AI 生成的发现与原生 Wazuh 规则告警区分开来。 完整的推理、评估方法和结果位于 `docs/` 中。 ## 状态 开发中。核心检测 pipeline(摄取 → 流式传输 → 异常检测 → 回写 → dashboard)已正常运行,并通过具有独立 ground truth 的受控攻击场景进行了验证。自动响应(阻断/隔离)、本地 LLM 告警解释以及在 Morpheus 上的 GPU 部署正在进行中。
标签:Apache Kafka, Isolation Forest, Wazuh, 安全运营, 异常检测, 扩展检测与响应, 扫描框架, 请求拦截, 软件成分分析, 逆向工具