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, 大模型应用安全, 威胁情报, 开发者工具, 数据投毒攻击, 溯源防御, 边缘计算, 逆向工具