robertpreshyl/AllysecLabs-Security-Intelligence-Platform

GitHub: robertpreshyl/AllysecLabs-Security-Intelligence-Platform

基于 Wazuh SIEM 构建的 AI 驱动 SOC 分析平台,通过自然语言查询和六种自动化检测算法实现安全告警的智能分析与报告生成。

Stars: 1 | Forks: 0

# AllysecLabs - AI 驱动的安全智能平台 ![AllysecLabs Logo](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/c50da5ebad102222.png) 一个基于 Wazuh SIEM 构建的 AI 驱动 SOC 分析平台。它通过自然语言查询处理安全警报,运行自动化模式检测,并生成带有 MITRE ATT&CK 映射的威胁分析——所有这些都在一个仪表盘中完成。 **技术栈:** Wazuh 4.14.3 · Groq LLM (Llama 3.3 70B) · FastAPI · Streamlit · Python 3.12 · Ubuntu 24.04 LTS ## 架构 安全警报从 Wazuh agent 经过 5 步分析管道,然后在仪表盘中显示为结构化报告。 ``` ┌──────────────────────────────────────────────────────────────────┐ │ Monitored Endpoints (3× Linux · 1× Windows · 1× macOS) │ │ Connected via Netbird WireGuard VPN mesh │ └─────────────────────────┬────────────────────────────────────────┘ │ Wazuh Agent (syslog · auth · FIM · SCA) ▼ ┌──────────────────────────────────────────────────────────────────┐ │ Wazuh All-in-One (Manager · Indexer · Dashboard) │ │ Writes: /var/ossec/logs/alerts/alerts.json │ └─────────────────────────┬────────────────────────────────────────┘ │ read-only JSONL ▼ ┌──────────────────────────────────────────────────────────────────┐ │ AI-SOC Platform (Python 3.12 · FastAPI · Streamlit) │ │ │ │ Step 1 · Interpret — LLM maps query → filters │ │ (time range, severity, keywords, OS) │ │ Step 2 · Filter — alert_processor.py applies filters │ │ Step 3 · Detect — pattern_detector.py (6 algorithms) │ │ Step 4 · Analyse — LLM receives stats + patterns + samples │ │ Step 5 · Report — structured output with MITRE mapping │ │ Export: Markdown · HTML · PDF · JSON │ └─────────────────────────┬────────────────────────────────────────┘ │ ▼ ┌──────────────────────────────────────────────────────────────────┐ │ LLM Backends (7 providers · pluggable · swap via config) │ │ │ │ Groq (Llama 3.3 70B) · Ollama (local/VPN) · OpenRouter │ │ OpenAI (GPT-4o) · Anthropic (Claude Sonnet 4) │ │ Google (Gemini 2.0 Flash) · HuggingFace │ └──────────────────────────────────────────────────────────────────┘ ``` **LLM 选择:** Groq (Llama 3.3 70B) 是默认选项——亚秒级的推理速度保持了分析的交互性。对于警报数据不能离开网络的环境,Ollama 通过 Netbird VPN 在本地运行。所有 7 个后端共享一个通用接口。 **部署:** 两个服务(端口 8000 上的 `api_server.py` 和端口 8501 上的 `dashboard.py`)作为经过安全强化的 systemd 单元运行在 Wazuh 服务器上,并可通过 Netbird 网格网络访问——无需对外暴露。 ## 检测能力 该平台在将结果传递给 LLM 进行分析之前,会运行 6 种自动化检测算法: | 模式 | 检测方法 | 阈值 | |---------|-----------------|-----------| | **暴力破解** | 来自同一源 IP 的重复身份验证失败 | 10 分钟内 5 次以上 | | **端口扫描** | 目标 agent 上的快速端口变化 | 5 分钟内 10 个以上端口 | | **权限提升** | Sudo 滥用,MITRE T1548 指标 | 30 分钟内 3 个以上事件 | | **横向移动** | 同一源 IP 访问多个 agent | 30 分钟内涉及 2 个以上 agent | | **告警突增** | 超出基线的突然流量激增 | 5 分钟内 20 个以上告警 | | **合规违规** | SCA 检查违规 | 按 agent 统计 | 检测后,LLM 会执行威胁分析: - 将发现的结果映射到 MITRE ATT&CK 框架(T1110、T1548 等) - 分类严重程度:CRITICAL / HIGH / MODERATE / LOW - 生成带有基于证据的补救步骤的分析 - 生成包含执行摘要、时间线和置信度得分的事件报告 ## 测试结果 已针对我在实验室环境中 7 天内收集的 11,342 个真实安全事件进行了验证。 **查询示例:** ``` "Show me brute force attacks in the last 24 hours" "Detect lateral movement between servers" "Give me a security assessment of today's events" "Are there any privilege escalation attempts?" ``` **性能:** | 指标 | 数值 | |--------|-------| | 代码库 | 13 个文件中约 9,700 行 Python 代码 | | 已验证的查询类型 | 15 种不同的安全查询模式 | | 端到端查询响应 | 约 3.5 秒 | | LLM 推理 | 约 0.7 秒 | | 模式检测(6 种算法) | <1 秒 | | 每次查询处理的警报 | 4,500+ | | 误报率(调优后) | <5 次/天(从约 200 次/天降低) | ![Event Analysis](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/bbd1eed678102223.png) *整周分析——11,342 个安全事件已处理并分类* ![Critical Findings](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/b2e561b79c102224.png) *自动检测暴力破解尝试和哈希传递指标* ![Brute Force Detection](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/40f5f4f2b5102227.png) *在 Postfix 邮件服务器上检测到 2,000 多次暴力破解尝试* ![Executive Summary](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e79bc44e29102229.png) *带有威胁评估的自动生成执行摘要* ![Full Report](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/6bf9c9dda6102231.png) *带有封面的专业事件报告* ### 数据验证 每一项 AI 发现都会与原始 Wazuh 数据进行交叉核对。对于包含捏造指标的分析——如凭空捏造的 CVE、源警报中不存在的 IP 地址,或没有支持证据的 MITRE 技术——平台会予以拒绝并重试。 ![Wazuh Verification](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/8b76f6a4ae102233.png) *AI 报告“对 Postfix 进行了 2,000 次暴力破解尝试”——Wazuh 仪表盘确认了确切的数量* ## 真实世界的事件响应 当平台检测到来自相同攻击者 IP 的持续数天的暴力破解活动时,我启动了全面的事件响应。显示 30 多个 IP 发生 87,753 次以上身份验证失败的 AI 分析触发了立即调查,揭示了一个导致邮件服务器完全不受保护的关键 fail2ban 错误配置。 **平台的作用:** 自动化检测揭露了攻击模式。AI 分析量化了威胁范围。调查和响应则由人工主导。 ### 事件响应阶段 **1. 准备** - 平台配置了实时模式检测 - Wazuh agent 监控身份验证日志 - 已安装 fail2ban(但配置错误) **2. 检测与分析** - 平台检测到 4,114 个警报,包括 195 个高严重性的 Postfix SASL 故障 - AI 分析:“大规模分布式暴力破解活动——30+ 攻击者 IP” - 调查确认仅主要攻击者就产生了 87,753 条日志记录 - 根本原因:缺少 fail2ban 过滤器文件,尽管遭受了数天的攻击,被封禁的 IP 数为 0 ![fail2ban Pre-Mitigation](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/e70187b94c102234.png) *检测到 19 次身份验证失败,但被封禁的 IP 数为 0——确认防御失效* **3. 遏制** - 对主要攻击者 IP 实施紧急 iptables 封锁 - 创建缺失的 fail2ban 过滤器配置 - 将阈值从 maxretry=3 调整为 maxretry=1(应对分布式攻击规避) **4. 根除** - 实施 Postfix 速率限制(每个 IP 10 次连接/分钟) - 修复 fail2ban jail 配置(添加了缺失的 logpath 和 backend) - 部署多层防御(iptables + 自动化 fail2ban + 速率限制) **5. 恢复** - 整个过程服务保持运行(零停机) - 8 个活动电子邮件账户未受影响 - 正常邮件投递保持 100% 正常运行时间 **6. 事件后阶段** - 确认在修复部署后 30 分钟内有 9 个僵尸网络 IP 被封禁 - 记录经验教训并更新检测阈值 - 建立每日 fail2ban 状态检查和每周模式审查 ![fail2ban Post-Mitigation](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/fd0b8b1329102236.png) *多层防御激活:9 个攻击 IP 被自动封禁,攻击被成功化解* **完整文档:** [Postfix 暴力破解事件响应报告](incidents/POSTFIX_BRUTEFORCE_RESPONSE_20260220.md) — 包含终端输出、配置修复、攻击分析和验证证据的完整调查过程。 ## 背景 ### 为什么开发这个平台 AI 辅助的安全分析工具是存在的,但它们被限制在企业级定价之后。Microsoft Security Copilot 需要通过 Azure 按小时计费的 Security Compute Units 以及 M365 E5 许可证。Security Onion 的 Onion AI 和 MCP Server 是 [仅限 Pro 版本的功能](https://securityonionsolutions.com/pro#comparison)。我希望在不承担企业许可成本的情况下学习 AI 与安全工具的集成——所以我构建了自己的工具。 我评估了哪种开源 SIEM 能为我提供最大的灵活性来进行构建。Wazuh 提供不受限制的 REST API 访问、自定义集成框架和主动响应功能——全部开源,没有功能门槛。 | 功能 | Wazuh (免费版) | Security Onion (社区版) | |---------|-------------|----------------------------| | REST API 访问 | ✅ 完全不受限制 | ❌ 仅限 Pro 版 | | AI/LLM 集成路径 | ✅ 开放 API | ❌ 仅限 Pro 版 | | 自定义集成 | ✅ 完全访问 | 有限 | | 报告 | ✅ 完全访问 | ❌ 仅限 Pro 版 | | 网络可见性 | 基础(基于 agent) | ✅ 卓越 | Security Onion 在网络安全监控方面是更强的选择。Wazuh 侧重于基于主机的监控 + 策略/标准集成,对于在无需付费许可证的情况下构建自定义集成而言,它是更好的选择。 ### 问题背景 我的 SOC 分析工作流程涉及不断的上下文切换:从 SIEM 仪表盘提取警报,将相关数据移动到单独的工具中,手动关联发现,然后在其他地方撰写结果。每次调查都需要在应用程序之间跳转 15-30 分钟,我才能得到一份调查结果的草稿。这个平台将整个管道集中在一个地方——警报进入,运行模式检测,LLM 分析结果,而我无需离开仪表盘就能获得一份结构化的报告。Netbird VPN 集成意味着我可以从任何地方查询安全事件,并在几秒钟内获得简洁的威胁摘要——无需坐在仪表盘屏幕前等待引人注目的事情发生。它还充当事件响应的首层响应分类。 ### 实验室环境 - VMware Workstation Pro 上的 Ubuntu Server 24.04 LTS(CIS 加固) - 使用 Netbird 进行安全网络连接 - Wazuh All-in-One 部署(Manager + Indexer + Dashboard) ### LLM 选择 我评估了多种方案: - **本地推理(Ollama + Open WebUI):** 概念验证可行,但较小的本地模型的响应质量不足以用于生产环境的 SOC 分析。对于警报数据不能离开网络的物理隔离环境,这仍然是一种可行的方法——在专用硬件或私有云实例上运行像 Qwen 这样的模型(我使用 Oracle Cloud + localhost 进行了测试)可以将所有数据保留在本地。 - **Groq (Llama 3.3 70B):** 日常查询的最佳速度与质量比(约 0.7 秒推理)。这是平台日常运行的模型。 - **Claude Opus 4:** 对于复杂的调查和面向管理层的报告,分析质量有明显提升,但成本较高。在生成综合性事件报告时,我会切换到该模型。 该架构是与 LLM 无关的——更换提供商只需更改一个配置值。 ## 安全考量 构建一个处理安全警报数据的工具会引入其自身的攻击面: - **数据处理:** 当使用云 LLM 提供商(Groq、Anthropic)时,警报数据会被发送到外部 API。对于不可接受这种情况的环境,平台支持通过 Ollama 进行本地 LLM 部署——将所有数据保留在本地。 - **API 凭证:** Wazuh API token 有效期较短(15 分钟过期)并会自动刷新。LLM API 密钥存储在环境变量中,并已排除在版本控制之外。 - **访问控制:** FastAPI 后端和 Streamlit 仪表盘运行在 localhost 上。外部访问通过 Netbird(基于 WireGuard 的网格 VPN)进行控制。 - **输出验证:** LLM 响应在呈现之前会被解析并与源警报数据进行交叉核对。包含捏造指标的分析将被拒绝。 - **服务器加固:** 底层的 Ubuntu 服务器遵循 CIS benchmark 指南。 此平台专为实验室和开发用途设计。生产环境部署将需要额外的加固:TLS 终止、身份验证中间件、审计日志和 API 速率限制。 ## 工程挑战 **Prompt 工程:** 初始 prompt 产生的是通用且无用的响应。经过大约 15 次迭代,关键的改进点在于:赋予 LLM 一个特定的分析师角色,定义结构化的输出格式预期,并要求它只引用源警报中存在的数据。 **大规模日志解析:** Wazuh 的 `alerts.json` 是只追加的,并且会增长到千兆字节级别。我实现了基于 tail 的读取(仅读取最后 N 行),处理了多行 JSON 条目,管理了因读取截断导致的格式错误的 JSON,并添加了文件锁定以与 Wazuh 写入过程的竞争条件。 **误报调优:** 初始的暴力破解阈值(5 分钟内 3 次失败)由于合法的密码输入错误,每天产生约 200 次误报。在分析了 11,342 个真实警报后,最终阈值(10 分钟内 5 次失败)将误报减少到每天 <5 次,同时保持了对实际攻击的检测。 **LLM 幻觉:** LLM 偶尔会捏造 CVE 编号,引用警报数据中不存在的 IP,或者在没有支持证据的情况下引用 MITRE 技术。我构建了后处理验证机制,将每一项声明与原始警报数据进行交叉参考,并拒绝不匹配的分析。 **上下文窗口限制:** 11,342 个警报超出了 128K token 的限制。我添加了基于查询的预过滤,以便只将符合查询意图的警报发送给 LLM。 **API token 管理:** Wazuh token 在 15 分钟后过期,会导致长时间的分析会话中断。我在 token 生命周期的 90% 时实现了主动 token 刷新,以防止分析中途失败。 ## 路线图 - [ ] 通过 Ollama 进行本地 LLM 部署,实现完全的物理隔离运行 - [ ] 向量数据库,用于历史事件的语义搜索 - [ ] 带有审批关卡的自动响应 Playbook - [ ] 威胁情报源集成 - [ ] 多 Agent 架构(按安全领域划分的专业 Agent) - [ ] 支持额外的 SIEM 平台(Splunk、ELK、QRadar) ## 附加截图 ![Dark Mode Dashboard](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/894124f32a102237.png) *仪表盘界面* ![Alert Distribution](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/603be077f2102239.png) *按严重程度划分的事件分布* ![MITRE Mapping](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/4ecf3651a6102240.png) *MITRE ATT&CK 战术覆盖范围* ![Privilege Escalation](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/0fded8934b102241.png) *Crontab 修改和权限提升检测* ![Event Details](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/29cd756be4102243.png) *安全事件表——邮件服务器正遭受主动攻击* ## 仓库说明 完整的源代码(约 9,700 行)保存在一个私有仓库中。此展示说明了该平台的架构、功能以及真实世界测试的结果。 ## 联系方式 **Robert Preshyl** **组织:** ASLabs — AllyShip Security Laboratories **LinkedIn:** [Precious Robert](https://www.linkedin.com/in/precious-robert/) **GitHub:** [robertpreshyl](https://github.com/robertpreshyl) **Email:** support@allyshipglobal.com ## 致谢 如果没有开源社区,这个项目就不会存在。这个平台中的每一个主要组件都是建立在人们和组织选择免费提供的工具之上的: - **[Wazuh](https://wazuh.com/)** — 构建了一个真正开源且具有不受限制 API 访问权限的 SIEM。我能够在 Wazuh 之上构建所有这些功能,而没有遇到任何许可证门槛,这正是开源安全工具的意义所在。 - **[Netbird](https://netbird.io/)** — 让我的实验室环境中的网络连接变得无缝。跨不同网络连接 agent、访问我的远程 Ollama 实例以及从任何地方安全地访问仪表盘——Netbird 在底层使用 WireGuard 让这一切变得异常简单。 - **[Ollama](https://ollama.com/)** — 让本地 LLM 部署变得触手可及。能够自托管推理对于物理隔离的安全环境至关重要,而 Ollama 让这一切变得简单直接。 - **[Open WebUI](https://openwebui.com/)** — 在开发过程中为使用本地模型进行实验提供了一个简洁的界面。 - **[Alibaba Cloud / Qwen Team](https://github.com/QwenLM)** — 发布了 Qwen 2.5,一个真正强大的开放权重模型家族。通过 Ollama 在 ARM 实例上本地运行 Qwen,是我证明本地 AI 辅助 SOC 分析可行的首个证据。 - **[Meta AI](https://ai.meta.com/)** — 将 Llama 3.3 70B 作为开放权重模型发布。这是通过 Groq 驱动平台日常分析的模型。 - **[Groq](https://groq.com/)** — 提供了我能找到的最快的 LLM 推理。亚秒级的响应时间让 AI 辅助的 SOC 工作具有交互感,而不是像在等待生成报告。 - **[Security Onion Solutions](https://securityonionsolutions.com/)** — 尽管 Onion AI 仅限 Pro 版的许可政策促使我构建了自己的解决方案,但 Security Onion 教会了我很多关于网络安全监控的知识。他们的社区版仍然是一个出色的 NSM 平台,我仍然在我的实验室中使用它进行数据包分析。 - **[Streamlit](https://streamlit.io/)** — 让不是前端开发人员的人也能构建出功能完备的安全仪表盘。 - **[FastAPI](https://fastapi.tiangolo.com/)** — 提供了带有自动生成文档的简洁 API 设计。开发体验非常出色。 - **[MITRE ATT&CK](https://attack.mitre.org/)** — 提供了使安全发现具有可操作性和标准化的威胁框架。 - **[Oracle Cloud](https://www.oracle.com/cloud/)** — 提供了永远免费的 ARM 实例,我用它来远程托管 Ollama。 当人们公开分享他们的工具时,安全社区就会受益。我感谢每一位为让安全变得更普及而做出贡献的人。 ## 许可证 MIT — 详情请参阅 [LICENSE](LICENSE)。 *构建于 2026 年 2 月 · Ubuntu 24.04 LTS · Python 3.12 · Wazuh 4.14.3* *所有屏幕截图和指标均来自安全实验室环境中的实时测试。*
标签:AI安全, AI风险缓解, AMSI绕过, ATT&CK框架, AV绕过, Chat Copilot, DLL 劫持, FastAPI, Kubernetes, Llama 3, LLM, Python, SOC平台, Streamlit, Syslog, Unmanaged PE, VPN, Wazuh, WireGuard, 大语言模型, 威胁情报, 威胁检测, 安全仪表盘, 安全合规, 安全报告, 安全运营中心, 开发者工具, 无后门, 模式识别, 端点安全, 红队行动, 结构化查询, 网络代理, 网络安全审计, 网络映射, 自动化安全, 自然语言查询, 补丁管理, 访问控制