007Salih2020/Cyber_Threat_Intelligence_CTI
GitHub: 007Salih2020/Cyber_Threat_Intelligence_CTI
基于 Azure OpenAI 的战略级网络安全威胁情报 Copilot,自动化完成威胁建模、STRIDE 分析和合规映射并生成高管报告。
Stars: 0 | Forks: 0
# 战略 CTI 与威胁建模 Copilot
## 为什么需要此项目
大多数安全工具都是战术性的:IOC 查询、漏洞仪表板、SIEM 噪音。本平台解决了一个更棘手的问题:
该 Copilot 会摄取威胁情报,对您的架构进行建模,应用 STRIDE 分析,将发现的问题映射到合规框架,并生成可直接提交给管理层的报告——这一切均由 Azure OpenAI 提供支持。
## CISO 演练
### ISO 27001 A.12.4 — 日志记录与监控
本平台中的每一项操作均使用结构化 JSON 日志进行记录,包含关联 ID、严重级别和时间戳。`app/logging_config.py` 模块配置了一个生产级日志记录器,用于:
- 捕获所有 API 请求和响应及其延迟
- 记录 AI 模型调用及其 prompt 哈希值(而非原始 prompt),以实现可审计性
- 记录威胁摄取事件及其来源、数量和时间戳
- 写入 stdout(对容器友好),并可选地通过 Log Analytics 工作区写入 Azure Monitor
这满足了 A.12.4.1(事件日志记录)、A.12.4.2(日志信息保护)和 A.12.4.3(管理员和操作员日志)的要求,确保所有与安全相关的事件都被捕获、防篡改且可审查。
### ISO 27001 A.5.1 — 信息安全政策 / AI 政策
本平台实施了一套分层的 AI 治理模型:
1. **输入验证**:所有用户提供的架构描述和威胁数据在进入 AI 层之前,都会通过 Pydantic v2 模型进行验证。格式错误或过大的输入会被拒绝,并返回结构化的错误响应。
2. **Prompt 治理**:系统 prompt 在 `app/services/strategic_analysis.py` 中受版本控制。任何用户输入都不会直接注入到系统 prompt 中,而是仅注入到明确界定的用户消息部分中。
3. **输出净化**:AI 响应在返回给调用方或存储之前,都会经过解析和验证。
4. **最小权限**:Azure OpenAI 客户端使用作用域受限的 API key,且对 Azure 资源没有写入权限。生产部署中提供了 Key Vault 集成。
5. **可审计性**:每次 AI 调用都会记录部署名称、token 使用量以及输入的哈希值,从而在不暴露敏感数据的情况下实现可追溯性。
6. **人工监督**:所有 AI 生成的报告都会清晰地标记为 AI 辅助,并包含置信度指标,以确保在分发给管理层之前经过人工审核。
这满足了 A.5.1 的要求,它为如何在安全功能中使用 AI 建立了文档化且强制执行的政策,包括可接受的使用、数据处理和监督要求。
## 架构
```
graph TB
subgraph Ingestion["Threat Intelligence Ingestion"]
TAXII[TAXII 2.1 Client]
OSINT[OSINT / RSS Client]
OTX[AlienVault OTX]
MOCK[Mock Feed Adapter]
end
subgraph Core["Core Processing Engine"]
NORM[Normalizer]
AI[Azure OpenAI Engine]
STRIDE[STRIDE Analyzer]
RISK[Risk Scoring Engine]
COMP[Compliance Mapper]
MATURITY[Maturity Scorer]
end
subgraph Output["Output Layer"]
API[FastAPI REST API]
REPORT[Report Generator]
UI[Streamlit Dashboard]
end
subgraph Azure["Azure Services"]
AOAI[Azure OpenAI]
KV[Azure Key Vault]
MON[Azure Monitor]
end
TAXII --> NORM
OSINT --> NORM
OTX --> NORM
MOCK --> NORM
NORM --> AI
AI --> STRIDE
STRIDE --> RISK
RISK --> COMP
COMP --> MATURITY
MATURITY --> REPORT
REPORT --> API
API --> UI
AI --> AOAI
AOAI --> KV
API --> MON
```
## 功能
| 功能 | 描述 |
|---|---|
| 威胁情报摄取 | TAXII 2.1、OTX、RSS/OSINT、模拟适配器 |
| AI 战略分析 | 由 Azure OpenAI 驱动的高管摘要 |
| 威胁建模 | 从架构到 DFD 并输出 Mermaid |
| STRIDE 分析 | 完整的 STRIDE 表格及缓解措施 |
| 风险评分 | 多因素优先级排序引擎 |
| 合规性映射 | ISO 27001、NIST CSF、NIST 800-53 |
| 成熟度评分 | 8 领域安全成熟度视图 |
| 高管报告 | 可直接提交给 CISO 的 PDF/Markdown 报告 |
| 技术报告 | 面向工程师的详细分析 |
| REST API | 带有 OpenAPI 文档的 FastAPI |
| Streamlit UI | 交互式 Web 仪表板 |
| DevSecOps 流水线 | Bandit、Safety、Trivy、detect-secrets |
## 快速开始
### 前置条件
- Docker + Docker Compose
- (可选)Azure OpenAI endpoint 和 API key
### 1. 克隆并配置
```
git clone https://github.com/yourorg/strategic-cti-copilot
cd strategic-cti-copilot
cp .env.example .env
# 使用你的 Azure OpenAI 凭据编辑 .env(可选 — mock 模式无需凭据即可运行)
```
### 2. 使用 Docker 运行
```
docker-compose up --build
```
服务:
- FastAPI: http://localhost:8000
- Streamlit UI: http://localhost:8501
- API 文档: http://localhost:8000/docs
### 3. 本地运行(不使用 Docker)
```
python -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
# 启动 API
uvicorn app.main:app --reload --port 8000
# 启动 UI(单独的终端)
streamlit run dashboard/streamlit_app.py
```
### 4. 一键启动
```
chmod +x start.sh
./start.sh 8501
```
## API 调用示例
### 摄取威胁情报源
```
curl -X POST http://localhost:8000/api/v1/ingest \
-H "Content-Type: application/json" \
-d '{"sources": ["mock", "otx"]}'
```
### 运行威胁建模
```
curl -X POST http://localhost:8000/api/v1/threat-model \
-H "Content-Type: application/json" \
-d @app/data/sample_architecture.json
```
### 生成高管报告
```
curl -X POST http://localhost:8000/api/v1/report/executive \
-H "Content-Type: application/json" \
-d '{"include_maturity": true, "include_compliance": true}'
```
## 安全说明
- 没有任何密钥被硬编码。所有凭据均使用环境变量。
- 生产部署中提供了 Azure Key Vault 集成。
- 所有输入在处理前均通过 Pydantic v2 进行验证。
- AI prompt 受版本控制且可审计。
- 容器以非 root 用户身份运行。
- CI 中使用 Trivy 扫描容器镜像。
## 未来改进
- [ ] Azure AD / Entra ID 身份验证
- [ ] 使用 Azure Service Bus 进行实时 TAXII 源轮询
- [ ] MISP 集成
- [ ] 导出 Power BI 以用于高管仪表板
- [ ] Azure Container Apps 部署模板
- [ ] 支持 STIX 2.1 完整对象模型
- [ ] 随时间推移自动跟踪合规性差距
- [ ] 与 Microsoft Sentinel 集成
## 截图
## 许可证
MIT — 仅用于作品集和演示目的。
标签:Azure OpenAI, DLL 劫持, Kubernetes, 大语言模型, 大语言模型蜜罐, 威胁建模, 威胁情报, 开发者工具, 网络测绘, 请求拦截, 逆向工具