yug3009p/ai-soc-copilot
GitHub: yug3009p/ai-soc-copilot
基于大语言模型的安全告警分诊平台,通过粘贴原始日志即可自动完成严重程度评估、MITRE映射和调查查询语句生成。
Stars: 0 | Forks: 0
# 🛡️ AI-SOC Copilot




## 截图
*仪表盘视图 — 包含告警输入面板和结构化分析输出的主界面。*
*横向移动分析 — 对 Windows 横向移动告警的 AI 分诊,包含 MITRE 映射和修复步骤。*
*DNS 渗透分析 — 通过 DNS 隧道检测数据渗透,包含严重程度评级和 SPL 查询语句。*
*暴力破解分析 — 凭证暴力破解分诊,包含被阻止的 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**
[](https://www.linkedin.com/in/yug-patel-b9727226b/)
*仪表盘视图 — 包含告警输入面板和结构化分析输出的主界面。*
*横向移动分析 — 对 Windows 横向移动告警的 AI 分诊,包含 MITRE 映射和修复步骤。*
*DNS 渗透分析 — 通过 DNS 隧道检测数据渗透,包含严重程度评级和 SPL 查询语句。*
*暴力破解分析 — 凭证暴力破解分诊,包含被阻止的 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**
[](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绕过, 红队行动, 编程规范, 网络安全, 网络映射, 访问控制, 逆向工具, 隐私保护