yug3009p/ai-soc-copilot

GitHub: yug3009p/ai-soc-copilot

基于大语言模型的安全告警分诊平台,通过粘贴原始日志即可自动完成严重程度评估、MITRE映射和调查查询语句生成。

Stars: 0 | Forks: 0

# 🛡️ AI-SOC Copilot ![Python](https://img.shields.io/badge/Python-3.11+-blue?style=flat-square&logo=python&logoColor=white) ![Streamlit](https://img.shields.io/badge/Streamlit-1.32+-red?style=flat-square&logo=streamlit&logoColor=white) ![Groq](https://img.shields.io/badge/Groq-llama--3.3--70b--versatile-F55036?style=flat-square) ![License](https://img.shields.io/badge/License-MIT-green?style=flat-square) ## 截图 AI-SOC Copilot main dashboard *仪表盘视图 — 包含告警输入面板和结构化分析输出的主界面。* Lateral movement alert analysis *横向移动分析 — 对 Windows 横向移动告警的 AI 分诊,包含 MITRE 映射和修复步骤。* DNS exfiltration alert analysis *DNS 渗透分析 — 通过 DNS 隧道检测数据渗透,包含严重程度评级和 SPL 查询语句。* Brute force alert analysis *暴力破解分析 — 凭证暴力破解分诊,包含被阻止的 IP 建议和 Splunk 调查查询语句。* ## 为什么做这个项目 SOC 分析师平均每天面临 **1,000 多条告警**。传统的分诊需要分析师手动交叉比对事件代码、查找 MITRE ATT&CK 映射、构建调查查询语句并记录调查结果——即使对于经验丰富的分析师来说,这也是一个**每条告警耗时 10 到 20 分钟**的过程。 这种告警疲劳会导致: - 关键威胁被淹没在海量噪音中 - 分析师职业倦怠和高流失率 - 平均响应时间 (MTTR) 增加 - 不同技能水平的分诊质量参差不齐 **AI-SOC Copilot** 通过充当高级分析师的副手来解决这一问题:粘贴任何原始告警,即可在数秒内获得结构化的专家级分析。初级分析师可以获得指导;高级分析师可以节省时间。所有人都能更快地做出响应。 ## 技术栈 | 层级 | 技术 | |---|---| | UI | Streamlit | | AI 引擎 | Llama 3.3 70B Versatile (Groq) | | SDK | `groq` Python SDK | | 配置 | `python-dotenv` | | 语言 | Python 3.11+ | | 历史记录 | 本地 `analyses.json` | **速度:** Groq 的 LPU 推理硬件在 Llama 3.3 70B 模型上可实现亚秒级延迟。 ## 设置说明 ### 1. 克隆仓库 ``` git clone https://github.com/yug3009p/ai-soc-copilot.git cd ai-soc-copilot ``` ### 2. 创建并激活虚拟环境 ``` # Windows python -m venv venv venv\Scripts\activate # macOS / Linux python -m venv venv source venv/bin/activate ``` ### 3. 安装依赖 ``` pip install -r requirements.txt ``` ### 4. 配置你的 API 密钥 ``` cp .env.example .env ``` 打开 `.env` 并添加你的 [Groq API 密钥](https://console.groq.com/keys): ``` GROQ_API_KEY=gsk_... ``` ### 5. 运行应用 ``` streamlit run app.py ``` 应用将在 `http://localhost:8501` 打开。 ## 使用示例 **输入告警**(粘贴到文本区域): ``` 2024-01-15 14:23:42 EventCode=4625 Account=administrator Domain=CORP Failure_Reason="Bad password" Source_IP=203.0.113.45 [50 similar events in 16 seconds] 2024-01-15 14:23:58 EventCode=4740 Account=administrator (ACCOUNT LOCKED OUT) ``` **AI 输出:** | 字段 | 结果 | |---|---| | **严重程度** | 🔴 严重 | | **摘要** | 一个外部 IP (203.0.113.45) 对域控制器发起了凭证暴力破解攻击,目标是内置管理员账户。在 16 秒内发生了 50 次失败登录尝试,触发了账户锁定。该源 IP 是已知的恶意主机 (AbuseIPDB 评分: 98/100)。 | | **MITRE** | T1110.001 — 暴力破解:密码猜测 (凭证访问) | | **操作** | 在边界防火墙处阻止 203.0.113.45;调查是否存在成功登录的情况;检查所有被锁定的账户;审查锁定后的 DC 事件日志以查找 EventCode=4624 | | **SPL 查询语句** | `index=wineventlog EventCode=4625 src_ip=203.0.113.45 \| timechart span=1s count` | ## 指标 基于 50 个样本告警的内部测试: | 指标 | 之前 | 之后 | |---|---|---| | 平均告警分诊时间 | ~15 分钟 | **< 2 分钟** | | MITRE 映射准确性 | 手动查找 | 自动化 | | SPL 查询语句生成 | ~5 分钟 | **即时** | | 初级分析师信心 | 低 | 显著提升 | ## 项目结构 ``` project-1-ai-soc-copilot/ ├── app.py # Main Streamlit application ├── requirements.txt # Python dependencies ├── .env.example # API key template ├── .gitignore ├── README.md └── sample_alerts/ ├── brute_force_login.txt ├── suspicious_powershell.txt ├── dns_exfiltration.txt ├── privilege_escalation.txt └── lateral_movement.txt ``` ## 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE)。 ## 作者 **Yug Mukesh Patel** [![LinkedIn](https://img.shields.io/badge/LinkedIn-Connect-0A66C2?style=flat-square&logo=linkedin)](https://www.linkedin.com/in/yug-patel-b9727226b/)
标签:AI安全, AMSI绕过, Chat Copilot, Cloudflare, Copilot, DLL 劫持, DNS隧道, Kubernetes, Llama 3, MITRE ATT&CK, MTTR优化, PE 加载器, PoC, Python, SPL查询, Streamlit, 人工智能, 凭证攻击, 告警分诊, 告警疲劳, 大语言模型, 威胁检测, 安全分析师, 安全运营中心, 数据渗透, 无后门, 暴力破解, 横向移动, 用户模式Hook绕过, 红队行动, 编程规范, 网络安全, 网络映射, 访问控制, 逆向工具, 隐私保护