ncheung13579/iris

GitHub: ncheung13579/iris

基于稀疏自编码器的LLM提示注入检测工具,通过分析Transformer内部激活模式实现类似网络IDS的安全监控。

Stars: 0 | Forks: 0

# IRIS — LLM Agent 管道的神经 IDS IRIS 是一款交互式安全工具,通过利用稀疏自编码器 (SAE) 监控神经激活模式,来检测 LLM agent 管道中的提示注入攻击。它的工作原理类似于网络 IDS —— 但它不是检查数据包,而是检查模型的内部表示。 **课程:** CSSD 2221 — 安全入门 **学期:** 2026 年冬季,约克大学 ## 如何运行 ``` python launch.py ``` 就是这样。该脚本会安装所有依赖项,验证预训练模型是否存在,并在您的浏览器中打开 IRIS 仪表板。 **要求:** Python 3.10+。首次安装依赖项需要互联网连接。建议使用 CUDA GPU 以加快推理速度,但并非必需 —— 该工具可在 CPU 上运行。 ## 工具介绍 IRIS 提供六个交互式选项卡: ### 选项卡 1:实时分析 输入任何提示词并获得即时威胁评估。该工具通过 GPT-2 运行它,使用训练好的 SAE 分解激活,并使用两个检测层对结果进行分类: - **第 1 层(基于异常):** SAE 神经特征模式 —— 类似于行为 IDS - **第 2 层(基于签名):** TF-IDF 文本模式匹配 —— 类似于 Snort 显示裁决横幅、威胁概率、前 10 个触发的签名 ID 以及自然语言警报说明。包括针对正常流量、明显注入、编码攻击和模仿攻击的预加载示例。 ### 选项卡 2:神经 IDS 控制台 SOC 分析师风格的监控仪表板。处理批次提示词并查看带有时间戳、签名 ID、严重性评级和裁决的日志 —— 就像查看 Splunk/ELK SIEM 提要一样。将会话日志导出为 CSV 以供离线分析。 ### 选项卡 3:签名管理 浏览所有 6,144 个习得的检测签名(SAE 特征)。每个签名都有一个 ID、方向(注入/正常)和置信度分数 —— 类似于管理 Snort/Suricata 规则集。检查任何签名以查看哪些提示词会触发它。包括一个签名消融表,显示随着您启用更多签名,检测性能如何变化。 ### 选项卡 4:红队实验室 一个 5 级渗透测试练习。从制作基本注入(1 级)进阶到高级模仿攻击(4 级)和自由形式 APT 风格攻击(5 级)。每个级别都解释了网络安全对应概念。最后生成渗透测试报告。 ### 选项卡 5:规避实验室 原始注入与修改后的规避尝试的并行比较。查看修改攻击时签名激活如何变化 —— 实验 C4 的实时版本。类似于在安全实验室中测试 IDS 绕过技术。 ### 选项卡 6:系统分析 静态展示项目的安全分析:STRIDE 威胁模型、杀伤链分解、深度防御架构,以及将每个 IRIS 组件链接到其网络安全类比的概念映射表。 ## 网络安全概念映射 | IRIS 组件 | 网络安全类比 | 功能 | |---|---|---| | SAE 特征激活 | 数据包负载检查 | 深度内容分析 | | 敏感度分数 | IDS 签名规则 (Snort SIDs) | 模式匹配置信度 | | 特征阈值 | 防火墙允许/拒绝规则 | 二元通过/阻止决策 | | TF-IDF 检测器 | 基于签名的 IDS (Snort) | 已知模式匹配 | | SAE 检测器 | 基于异常的 IDS (行为) | 偏离基线 | | 双检测器共识 | 深度防御 | 多层检测 | | 规避实验室 | 渗透测试 | 对抗鲁棒性 | | 模仿规避 | 零日漏洞利用 | 无现有签名 | | Top-K 特征选择 | 规则集调优 | 减少警报疲劳 | | IDS 控制台日志 | SIEM (Splunk/ELK) | 集中监控 | ## 主要结果 | 指标 | 数值 | |---|---| | 激活可分性 (J1) | PASS (Cohen's d = 10.2) | | SAE 检测 F1 (C3) | 0.946 (对比 TF-IDF: 0.956) | | SAE 检测 AUC (C3) | 0.973 (对比 TF-IDF: 0.992) | | 规避率 — 编码 (C4) | 0% | | 规避率 — 隐蔽 (C4) | 0% | | 规避率 — 改写 (C4) | 23% | | 规避率 — 模仿 (C4) | 100% (零日等价) | | 总体规避率 (C4) | 32% | ## 项目结构 ``` iris/ ├── launch.py # <-- Run this ├── src/ │ ├── app.py # IRIS Detection Dashboard (Gradio) │ ├── data/ # Dataset loading and preprocessing │ ├── model/ # GPT-2 wrapper (TransformerLens) │ ├── sae/ # Sparse autoencoder architecture │ ├── analysis/ # Feature analysis, detection, adversarial │ ├── baseline/ # TF-IDF and activation baselines │ └── utils/ # Seeding, device management ├── notebooks/ # Research notebooks (background material) ├── checkpoints/ # Pre-trained models (included) ├── results/ # Figures and metrics ├── docs/ # Report, STRIDE, kill chain └── requirements.txt ``` ## 研究笔记本 `notebooks/` 目录记录了该工具背后的完整研究过程。这些是背景材料 —— 工具本身独立于它们运行。 | 笔记本 | 用途 | |---|---| | 01 | 数据探索 + 激活可分性 (J1) | | 02 | SAE 训练迭代 (J2) | | 03 | 特征检查 + 可解释性 (J3) | | 04 | 正式 SAE 评估 (C1) | | 05 | 注入敏感性分析 (C2) | | 06 | 检测管道比较 (C3) | | 07 | 对抗规避测试 (C4) | | 08 | 完整管道演示 | ## 文档 | 文档 | 用途 | |---|---| | `docs/Tutorial.md` | 使用仪表板的分步指南 | | `docs/Project_Report.md` | 综合项目报告 | | `docs/Design_Document.md` | 架构和实验计划 | | `docs/security/STRIDE_Analysis.md` | STRIDE 威胁模型 | | `docs/security/Kill_Chain.md` | 杀伤链分解 | 教程也可在仪表板的 **指南** 选项卡下找到。
标签:AMSI绕过, DLL 劫持, GPT-2, NIDS, Python, SAE, TF-IDF, Transformer, Vectored Exception Handling, 人工智能安全, 入侵检测系统, 分类器, 可解释性AI, 合规性, 大语言模型, 威胁检测, 安全数据湖, 安全运营中心, 容器化, 开发者评论分析, 异常检测, 教学项目, 无后门, 机械可解释性, 深度学习, 激活层监控, 特征提取, 神经网络, 稀疏自编码器, 签名检测, 约克大学, 网络安全, 网络映射, 网络流量分析, 逆向工具, 隐私保护, 零日漏洞检测