S3IC-Lab/Odysseus

GitHub: S3IC-Lab/Odysseus

通过双重隐写术将恶意查询嵌入图像,实现对商业多模态大模型集成系统的越狱攻击,用于评估和揭示多模态 AI 系统的安全漏洞。

Stars: 51 | Forks: 6

# Odysseus:通过双重隐写术越狱商业多模态 LLM 集成系统 ## 引言 这是我们的论文“[Odysseus: Jailbreaking Commercial Multimodal LLM-integrated Systems via Dual Steganography](https://arxiv.org/abs/2512.20168v1)”的官方实现。该论文已被 Network and Distributed System Security Symposium (NDSS) 2026 接收。如果您发现本仓库对您的研究有帮助,请考虑引用我们的论文。欢迎通过 GitHub Issues 或电子邮件 (jmengcheng@163.com) 提出任何问题或反馈。 ## 概述 ![framework](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/9973047014031540.png) ## 入门指南 ### 1. 安装依赖 ``` conda create -n Odysseus python=3.10 conda activate Odysseus pip install -r requirements.txt ``` ### 2. 准备数据集和评估模型 我们在所有实验中使用 [COCO 2017](https://cocodataset.org/#download) 作为图像数据集。请提前下载数据集并将其放置在 `./data` 目录中。下载完成后,运行以下命令对数据集进行预处理和索引: ``` python ./data/index.py ``` 为了进行安全性评估,我们采用了 [HarmBench](https://huggingface.co/cais/HarmBench-Llama-2-13b-cls),这是一个广泛使用的有害内容分类基准。您可以使用以下命令从 Hugging Face 下载它: ``` huggingface-cli download --resume-download cais/HarmBench-Llama-2-13b-cls --local-dir /home/model/HarmBench-Llama-2-13b-cls ``` ### 3. 运行 #### 训练隐写术模型 首先,训练用于将恶意查询嵌入图像中的隐写术模型: ``` python train.py new --name stego_model ``` **可用命令:** **`new`** - 开始一次新的训练运行: - `--name`(必填):实验名称 - `--data-dir`, `-d`:数据目录(默认值:`./data`) - `--batch-size`, `-b`:批处理大小(默认值:10) - `--epochs`, `-e`:迭代次数(默认值:300) - `--continue-from-folder`, `-c`:从先前的检查点文件夹恢复 - `--tensorboard`:启用 Tensorboard 日志记录 - `--enable-fp16`:启用混合精度训练 - `--noise`:配置噪声层,例如,`'cropout((0.55, 0.6), (0.55, 0.6))'` **`continue`** - 恢复先前的训练运行: ``` python train.py continue --folder [checkpoint_folder] ``` - `--folder`, `-f`(必填):检查点文件夹的路径 - `--data-dir`, `-d`:覆盖先前的数据目录 - `--epochs`, `-e`:覆盖先前的迭代次数 训练好的模型可以从[此处](https://drive.google.com/file/d/1ZaZouUWoeDipTgFNf9NsrDBA_JcKyPPh/view?usp=drive_link)获取。 #### 发起越狱攻击 在发起攻击之前,请修改位于 `./utils/config.json` 的配置文件。具体包括: - 将 `harmbench-path` 设置为下载的 HarmBench 模型的本地路径(例如,`/home/model/HarmBench-Llama-2-13b-cls`)。 - 将 `stego-folder` 设置为包含训练好的隐写术模型的目录。 - 配置目标 MLLM 集成系统的 API key 以进行评估和测试。 完成上述步骤后,执行以下命令以发起越狱攻击: ``` python main.py ``` 这将自动生成隐写图像,将它们提交给目标 MLLM 集成系统,并使用 HarmBench 分类器评估响应。 **可用命令:** - `--dataset`:指定用于构建恶意查询的基准数据集。 - `--model`:指定要攻击的目标 MLLM 集成系统。支持的模型包括: - `gpt-4o` - `grok-3` - **Gemini 2.0 系列**,包括 `gemini-2.0-pro-exp-02-05` 和 `gemini-2.0-flash-exp` - **Doubao-seed-1.6 系列**,包括`doubao-seed-1-6-251015`、`doubao-seed-1-6-lite-251015`、`doubao-seed-1-6-flash-250828`、`doubao-seed-1-6-vision-250815`、`doubao-seed-1-6-thinking-250715`、`doubao-seed-code-preview-251028` - **Qwen3-VL 系列**,包括 `qwen3-vl-plus`、`qwen3-vl-flash` - **GLM-4.6V 系列**,包括 `glm-4.6v`、`glm-4.6v-flashx`、`glm-4.6v-flash` 更一般地,**其他配备了函数调用能力的商业 MLLM 集成系统可以通过适当配置此参数来进行评估**。 - `--try_times`:指定每个恶意查询的重复攻击尝试次数。 - `--cover_image`:指定用于隐写嵌入的载体图像。 ## 主要结果 ![main_results](https://static.pigsec.cn/wp-content/uploads/repos/2026/05/d59ae3e130031541.png) ## 引用信息 如果您发现本仓库对您的研究有帮助,引用我们的论文将不胜感激😄。 ``` @inproceedings{li2025odysseus, title={Odysseus: Jailbreaking Commercial Multimodal LLM-integrated Systems via Dual Steganography}, author={Li, Songze and Cheng, Jiameng and Li, Yiming and Jia, Xiaojun and Tao, Dacheng}, booktitle={Network and Distributed System Security Symposium}, year={2026} } ```
标签:COCO 2017, DLL 劫持, DNS 反向解析, Go语言工具, HarmBench, Llama-2, MLLM, Naabu, NDSS 2026, PyTorch, 内容安全, 凭据扫描, 双重隐写术, 反取证, 图像隐写, 多模态大模型, 大语言模型, 子域名枚举, 学术论文复现, 安全基准测试, 安全评估, 对抗样本, 恶意查询, 深度学习, 系统安全, 逆向工具