Kh3m/rag-corpus-poisoning-iot-security
GitHub: Kh3m/rag-corpus-poisoning-iot-security
面向 RAG 物联网安全助手的研究项目,评估语料库投毒攻击效果并构建轻量级来源验证防御机制。
Stars: 7 | Forks: 0
# RAG 知识库投毒:IoT 安全助手
针对基于 RAG 的网络安全和 IoT 威胁情报助手的语料库投毒攻击,以及一种轻量级、可边缘部署的来源防御机制。
## 研究动机
现有的 RAG 投毒攻击(PoisonedRAG、BadRAG、Phantom)是在通用的 Wikipedia 风格 QA 语料库上进行评估的。现有的 RAG 防御手段(RobustRAG、TrustRAG)在设计时并未考虑资源受限或边缘计算预算。这两类研究都未针对真实网络安全助手实际使用的知识库进行测试:即 CVE 条目、MITRE ATT&CK 技术说明以及供应商安全公告。
本项目通过两项成果填补了这一空白:
1. 针对真实的网络/IoT 知识库评估的语料库投毒攻击,并在两种检索器后端(TF-IDF 和 dense embeddings)上进行了测试。
2. 专为在资源受限、可边缘部署的硬件上运行而设计的轻量级来源/指纹验证防御机制。
## 项目结构
```
src/
├── knowledge_base.py 8 legitimate documents (CVE entries, MITRE ATT&CK, vendor advisories)
├── rag_retriever.py Dual-backend retriever: TF-IDF and sentence-transformer embeddings
├── poisoned_docs.py 3 poisoned documents, each targeting a specific legitimate document
├── defense.py Provenance/fingerprint verification defense (in progress)
└── provenance_utils.py Signing and verification helpers (in progress)
tests/
├── phase1_baseline.py Clean system, no attack
├── phase2_attack.py Poisoned corpus, no defense
└── phase3_defense.py Poisoned corpus, defense active (in progress)
```
## 环境配置
本项目使用 [uv](https://docs.astral.sh/uv/) 进行依赖管理。
```
git clone https://github.com//rag-corpus-poisoning-iot-security.git
cd rag-corpus-poisoning-iot-security
uv venv
uv pip install -r requirements.txt
```
## 运行实验
每个阶段都可以在任一检索器后端上运行:
```
uv run python tests/phase1_baseline.py --backend tfidf
uv run python tests/phase1_baseline.py --backend embedding
uv run python tests/phase2_attack.py --backend tfidf
uv run python tests/phase2_attack.py --backend embedding
```
`embedding` 后端在首次运行时会从 Hugging Face 下载 `all-MiniLM-L6-v2`,之后会将其在本地缓存。
## 目前结果
**阶段 1:基线(无攻击)**
| Backend | Queries correct |
|---|---|
| TF-IDF | 3/3 |
| Embedding | 3/3 |
**阶段 2:攻击(语料库已投毒,无防御)**
| Backend | Queries corrupted |
|---|---|
| TF-IDF | 3/3 |
| Embedding | 待确认 |
投毒文档伪造了受信任数据源(NVD、MITRE-ATT&CK、Vendor-Advisory-Siemens)的来源标签,并在措辞上刻意模仿其目标查询,从而最大化针对合法文档的检索相似度。
**阶段 3:防御(语料库已投毒,防御已激活)**
进行中。
## 威胁模型
假设攻击者能够向语料库中注入新文档,例如通过未经审查的抓取数据源或被破坏的摄取 pipeline,但无法修改或删除现有的合法文档。这符合 RAG 系统从信任度不一的多个外部来源获取威胁情报的真实场景。
## 局限性
TF-IDF 不具备对文本的语义理解能力,因此该后端上的结果应被视为轻量级/贴近边缘环境的基线,而不能作为对生产级 dense-retrieval RAG 系统的论断。Embedding 后端解决了这个问题,它使用了一个小型、标准且对 CPU 友好的 sentence-transformer 模型。
## 引用
本项目是正在进行的研究的一部分。论文草稿正在准备中。
标签:IoT安全, RAG, 大模型应用安全, 威胁情报, 开发者工具, 数据投毒攻击, 溯源防御, 边缘计算, 逆向工具