panoulhc/ai-soc-triage-assistant
GitHub: panoulhc/ai-soc-triage-assistant
一款防御性 AI 驱动的 SOC 告警分诊助手,通过提取 IOC、整合威胁情报、映射 MITRE ATT&CK 并结合 Claude 生成调查报告,帮助安全分析师加速告警研判。
Stars: 0 | Forks: 0
# AI SOC 告警分诊助手
防御性 AI 驱动的 SOC 分诊助手,可提取 IOC,通过威胁情报丰富告警内容,将可疑活动映射到 MITRE ATT&CK,并使用 Claude 生成分析师风格的报告。
由 @panoulhc 开发。
```
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . .
```
## 概述
AI SOC 告警分诊助手是一款蓝队网络安全工具,旨在帮助您更快地分析安全告警。
该应用接收 JSON 格式的告警,提取其中的入侵指标 (IOC),利用威胁情报对其进行丰富,应用 SOC 分诊逻辑,可选择使用 Claude 进行 AI 辅助分析,并最终生成整洁的 Markdown 调查报告。
本项目建立在我之前的 AI 安全项目基础之上:[LLM 提示词注入防御](https://github.com/panoulhc/llm-prompt-injection-defense)。
该项目侧重于易受攻击的 AI 助手行为与防御性 AI 助手行为之间的对比。而本项目则将这些防御性 AI 概念应用到了真实的 SOC 工作流中。
## 功能
- JSON 告警分诊
- IOC 提取
- 公网/私网 IP 检测
- 域名、URL、哈希和邮箱提取
- AbuseIPDB 情报丰富
- VirusTotal 情报丰富
- 本地/模拟情报兜底
- 基于规则的 SOC 分析
- Claude 辅助分诊
- MITRE ATT&CK 映射
- 提示词注入标记检测
- Markdown 报告生成
- Streamlit 仪表板
- CLI 运行器
- 示例告警
- Pytest 测试
## 技术栈
- Python 3.12
- Streamlit
- Pydantic
- Anthropic Claude API
- Requests
- python-dotenv
- Pytest
## 项目结构
```
ai-soc-triage-assistant/
├── app/
│ ├── __init__.py
│ ├── config.py
│ ├── schemas.py
│ ├── ioc_extractor.py
│ ├── enrichers.py
│ ├── triage_rules.py
│ ├── claude_triage.py
│ ├── report_generator.py
│ └── pipeline.py
├── sample_alerts/
│ ├── brute_force.json
│ ├── suspicious_powershell.json
│ └── phishing_url.json
├── tests/
│ ├── conftest.py
│ ├── test_ioc_extractor.py
│ └── test_triage_rules.py
├── streamlit_app.py
├── run_cli.py
├── requirements.txt
├── .env.example
├── .gitignore
└── README.md
```
## 安装说明
```
git clone https://github.com/panoulhc/ai-soc-triage-assistant.git
cd ai-soc-triage-assistant
```
```
python3.12 -m venv .venv
source .venv/bin/activate
```
```
pip install -r requirements.txt
```
## 环境变量
在项目根目录下创建一个 `.env` 文件:
```
ANTHROPIC_API_KEY=your_claude_api_key
ANTHROPIC_MODEL=claude-sonnet-5
ABUSEIPDB_API_KEY=your_abuseipdb_key
VIRUSTOTAL_API_KEY=your_virustotal_key
```
AbuseIPDB 和 VirusTotal 是可选的。如果它们为空,应用将使用模拟/本地情报丰富。
## 运行仪表板
```
streamlit run streamlit_app.py
```
## 运行 CLI
分析示例告警:
```
python run_cli.py sample_alerts/brute_force.json
```
使用 Claude:
```
python run_cli.py sample_alerts/brute_force.json --claude
```
保存报告:
```
python run_cli.py sample_alerts/brute_force.json --claude --save-report
```
## 运行测试
```
python -m pytest -q
```
## 示例告警
```
{
"alert_name": "Multiple Failed Login Attempts",
"username": "admin",
"source_ip": "203.0.113.16",
"destination_host": "WIN-SRV-01",
"failed_attempts": 45,
"time_window": "10 minutes",
"timestamp": "2026-07-07T18:35:00Z"
}
```
## 示例输出
```
{
"severity": "high",
"confidence": "high",
"likely_activity": "Possible credential brute-force attempt",
"mitre_attack_mapping": [
{
"technique_id": "T1110",
"technique_name": "Brute Force",
"tactic": "Credential Access"
}
],
"evidence": [
"45 failed login attempts observed.",
"High-volume failures or privileged account targeting detected.",
"Documentation IP address used for sample data: 203.0.113.16."
],
"recommended_actions": [
"Check whether any successful login occurred after the failures.",
"Search for the same source IP across other hosts.",
"Review MFA and account lockout status for the targeted user."
],
"analyst_summary": "Possible credential brute-force attempt. Severity is high. The assessment is based on alert fields, extracted IOCs, enrichment results, and rule-based SOC logic."
}
```
## 支持的告警类型
当前的规则引擎支持:
- 暴力破解登录尝试
- 可疑的 PowerShell 执行
- Office 程序派生 shell/脚本进程
- 钓鱼主题告警
- 可疑特权账户活动
- IOC 信誉发现
- 告警内容中的提示词注入标记
## 支持的 IOC
- 公网 IP 地址
- 私网 IP 地址
- 域名
- URL
- 文件哈希
- 电子邮箱地址
## MITRE ATT&CK 映射示例
| 行为 | MITRE 技术 |
|---|---|
| 多次登录失败 | T1110 - Brute Force |
| 可疑的 PowerShell | T1059.001 - PowerShell |
| 使用混淆命令 | T1027 - Obfuscated Files or Information |
| 钓鱼相关活动 | T1566 - Phishing |
| Office 程序派生脚本 | T1204 - User Execution |
| 可疑账户创建 | T1136 - Create Account |
## 防御性 AI 设计
该应用将告警内容视为不受信任的数据。
Claude 工作流旨在:
- 保持 AI 的防御角色
- 避免执行告警文本中的指令
- 检测提示词注入标记
- 使用结构化的告警上下文
- 在 Claude 不可用时回退到基于规则的分诊
示例标记:
```
ignore previous instructions
reveal your system prompt
developer message
system message
jailbreak
bypass your rules
forget your instructions
```
## 报告输出
生成的报告包含:
```
1. Triage Verdict
2. Analyst Summary
3. Evidence
4. MITRE ATT&CK Mapping
5. Extracted IOCs
6. IOC Enrichment
7. Recommended Next Steps
8. Prompt-Injection Safety Check
9. Raw Alert
```
## 截图
标签:AI辅助分析, Claude, CVE检测, Kubernetes, Python, 告警分诊, 威胁情报, 字符串匹配, 安全运营, 开发者工具, 扫描框架, 无后门, 逆向工具