mahfujde/A-LIFECYCLE-WIDE-EVALUATION-AND-MITIGATION-FRAMEWORK-FOR-TRUSTWORTHY-AI-IN-CYBER-THREAT-INTELLIGENCE
GitHub: mahfujde/A-LIFECYCLE-WIDE-EVALUATION-AND-MITIGATION-FRAMEWORK-FOR-TRUSTWORTHY-AI-IN-CYBER-THREAT-INTELLIGENCE
CTI-Shield 是一个基于多 Agent 和混合 RAG 的网络威胁情报框架,旨在通过幻觉防护和信任度评分机制为 AI 在 CTI 场景中提供可信赖的全生命周期评估与缓解能力。
Stars: 0 | Forks: 0
# 🛡️ CTI-Shield
**AI 驱动的网络威胁情报框架**
一个涵盖全生命周期、具备自学习能力、基于多 Agent 的 CTI 系统,并通过 RAG 减轻幻觉问题。
开源 · 免费 · 无需任何网络安全专业知识即可部署。
# CTI-Shield
面向网络威胁情报领域可信赖 AI 的全生命周期评估与缓解框架。
CTI-Shield 集成了 Streamlit 仪表盘、8 个 Agent 编排的分析 pipeline、混合检索技术栈、幻觉防护机制、信任度评分、STIX 2.1 输出,以及用于可重复评估的内置研究工具套件。
## 此仓库包含的内容
可运行的应用程序位于此目录中。它包括:
- `app.py` 用于 Streamlit UI
- `orchestrator.py` 用于多 Agent pipeline
- `agents/` 用于 Agent 实现
- `cti_shield/` 用于核心 CTI 工具、防护机制、检索、输出和信任逻辑
- `research/` 用于评估脚本和结果产物
- `tests/` 用于 pytest 测试套件
- `data/` 用于语料库、向量索引和 OSINT 报告样本
## 核心功能
- 支持从原始文本、安全公告和 OSINT 片段中进行威胁报告分析
- 提取 CVE、IOC 和 TTP,并映射至 MITRE ATT&CK
- 具备 FAISS 向量搜索和知识图谱检索的混合 RAG
- 具有多层防护的幻觉检测
- 符合结构化评估规则的信任度评分
- 支持 STIX 2.1 导出和 Markdown 报告
- 提供个人防护实用工具,例如安全卫生评分和 URL 风险检查
- 包含用于消融实验、归因分析、基线对比和真实场景评估的研究脚本
## 仓库结构
```
.
├── app.py
├── orchestrator.py
├── config.py
├── requirements.txt
├── setup.sh
├── agents/
├── cti_shield/
├── data/
├── research/
└── tests/
```
## 快速开始
```
python3 -m venv venv
source venv/bin/activate
pip install --upgrade pip
pip install -r requirements.txt
streamlit run app.py
```
然后在浏览器中打开 `http://localhost:8501`。
## 安装选项
### 自动化设置
```
chmod +x setup.sh
./setup.sh
```
### Docker
```
docker compose up --build
```
Docker 会连同启动仪表盘以及 Ollama 和 Neo4j 等支持服务。
### 手动设置
```
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
cp .env.example .env
streamlit run app.py
```
## 运行模式
| 模式 | 描述 | 最佳用途 |
|---|---|---|
| Demo | 无需 API key,阈值较宽松 | 快速探索和演示 |
| Local+LLM | 在本地下载 Hugging Face 模型 | 在 CPU 上离线使用 |
| Ollama | 使用本地 Ollama 服务器 | 私有本地推理 |
| API | 通过 LiteLLM 使用云端 LLM 提供商 | 带有严格防护的托管模型访问 |
| Full | 同时使用云端和本地模型 | 比较和基准测试 |
## 架构概述
该 pipeline 遵循全生命周期流程:
1. 输入适配和策略分类
2. 预处理和 IOC 提取
3. 知识图谱构建和 NLP TTP 映射
4. 从实时来源进行 OSINT 丰富化
5. 结合检索和 LLM 生成的混合推理
6. 幻觉验证和漂移检测
7. 信任度评分、来源归因和生命周期评估
8. STIX 和 Markdown 输出生成
主编排路径在 `orchestrator.py` 中实现,仪表盘入口点位于 `app.py`。
## 研究与评估
该仓库在 `research/` 目录下包含了可重复的评估工作流。
- `ablation_study.py` 比较检索和重排序配置
- `ragas_evaluator.py` 测量忠实度和答案相关性
- `attribution_aggregator.py` 测量来源可追溯性
- `guard_eval_dataset.py` 和 `guard_eval_runner.py` 运行幻觉防护测试
- `real_eval.py` 运行实时的安全公告评估路径
- `human_eval_tool.py` 支持盲测人工评分
输出将写入 `research/results/`。
## 配置
在运行 API 或本地 LLM 模式之前,请复制示例环境文件:
```
cp .env.example .env
```
常见变量包括:
- `OPENROUTER_API_KEY`
- `GEMINI_API_KEY`
- `GROQ_API_KEY`
- `CEREBRAS_API_KEY`
- `COHERE_API_KEY`
- `GITHUB_TOKEN`
- `MISTRAL_API_KEY`
- `HF_TOKEN`
- `NVIDIA_API_KEY`
- `SAMBANOVA_API_KEY`
- `OPENAI_API_KEY`
- `ANTHROPIC_API_KEY`
对于评估运行,代码库还会使用诸如 `CTI_EVAL_MODE`、`CTI_SKIP_OSINT` 和 `CTI_STRICT_LLM` 等标志。
## 测试
```
source venv/bin/activate
python -m pytest tests/ -v
```
指定示例:
- `python -m pytest tests/test_guard_integration.py -v`
- `python -m pytest tests/test_source_attributor.py -v`
- `python -m pytest tests/test_stix.py -v`
## 输出
常见的输出位置包括:
- `data/faiss_index/` 用于向量存储产物
- `data/kg_snapshot.json` 用于知识图谱快照
- `logs/` 用于运行时日志
- `research/results/` 用于评估 JSON、CSV 和报告文件
## 故障排除
- 如果 Ollama 模式失败,请确保 Ollama 服务器正在运行,且所选模型已在本地拉取。
- 如果 API 模式返回错误,请验证 `.env` 中的提供商密钥,并确认您的账户可以访问该模型。
- 如果应用程序找不到其数据目录,请运行一次设置脚本或从此目录启动应用程序。
## 许可证
如果 GitHub 项目中添加了仓库许可证文件,请参阅该文件。如果您公开发布此代码,请确保许可证符合您的预期分发条款。
| SamSam (TA18-106A) | US-CERT | 67% |
| SolarWinds/SUNBURST | NCSC | 67% |
| Scattered Spider (AA23-325A) | CISA | 67% |
## 📑 研究文档
## | 文档 | 描述 |
|----------|-------------|
| [research/results/](research/results/) | 作为带时间戳 JSON 的所有评估数据 |
## ❓ 故障排除
| 问题 | 解决方案 |
|---------|----------|
| `ModuleNotFoundError` | 在 venv 中运行 `pip install -r requirements.txt` |
| 端口 8501 被占用 | `streamlit run app.py --server.port 8502` |
| Ollama 无法连接 | 启动 Ollama:`ollama serve` 或打开 Ollama.app |
| Neo4j 连接被拒绝 | 启动 Neo4j 或忽略(回退至 NetworkX) |
| `torch` 安装失败 | 尝试 `pip install torch --index-url https://download.pytorch.org/whl/cpu` |
| M1 Mac 上出现 FAISS 导入错误 | `pip install faiss-cpu --no-cache-dir` |
| API key 不起作用 | 检查 `.env` 文件,编辑后重启 Streamlit |
## 📄 许可证
MIT 许可证 — 个人和商业使用免费。详情请见 [LICENSE](LICENSE)。
## ❤️ 为全人类而生
CTI-Shield 的存在是因为 **每个人都应该在网上保持安全**。
不仅仅是专家。也不仅仅是企业。而是 **所有人**。
如果您相信应让网络安全变得触手可及,请给此仓库 ⭐ 加星支持。
标签:AI风险缓解, DLL 劫持, Kubernetes, Python, Streamlit, 多智能体, 大语言模型, 威胁情报, 安全规则引擎, 开发者工具, 无后门, 检索增强生成, 特权检测, 网络安全, 访问控制, 请求拦截, 逆向工具, 隐私保护