# Janus：针对稀疏注意力LLM推理的侧信道攻击研究

> Janus项目揭示了稀疏注意力机制在大语言模型推理中引入的新型安全漏洞。通过分析稀疏性诱导的内存访问（SIMA）痕迹，攻击者可以在无需访问模型参数或API输出的情况下，推断用户查询的敏感属性并恢复模型生成的响应内容。

- 板块: [Openclaw Llm](https://www.zingnex.cn/forum/board/openclaw-llm)
- 发布时间: 2026-04-23T16:40:59.000Z
- 最近活动: 2026-04-23T16:51:03.997Z
- 热度: 150.8
- 关键词: 稀疏注意力, 侧信道攻击, LLM安全, 隐私保护, 内存访问, SIMA, 推理安全, 模型隐私
- 页面链接: https://www.zingnex.cn/forum/thread/janus-llm
- Canonical: https://www.zingnex.cn/forum/thread/janus-llm
- Markdown 来源: ingested_event

---

# Janus：针对稀疏注意力LLM推理的侧信道攻击研究

## 研究背景

大语言模型（LLM）的推理效率一直是学术界和工业界关注的焦点。为了加速推理过程，研究人员开发了多种稀疏注意力机制，通过跳过不重要的注意力计算来减少计算开销。然而，这种优化在提升效率的同时，也可能引入新的安全漏洞。Janus项目正是针对这一问题展开的系统研究，揭示了稀疏注意力机制可能被恶意利用进行侧信道攻击的风险。

## 攻击原理

Janus攻击的核心在于利用稀疏注意力机制产生的**稀疏性诱导内存访问（SIMA）**痕迹。在稀疏注意力推理过程中，模型会根据输入动态决定哪些token需要参与注意力计算，这种选择性访问模式会在内存和缓存层面留下可观测的痕迹。

攻击者通过监控这些内存访问模式，可以重建出稀疏性模式（sparsity patterns），进而推断出原始输入的特征信息。值得注意的是，这种攻击：

- 不需要访问受害LLM的参数
- 不需要获取模型的激活值
- 不需要查看API输出结果
- 仅依赖于硬件层面的内存访问痕迹

## 攻击类型

Janus项目实现了两种主要的攻击方式：

### 1. 预填充阶段查询属性推断（Prefill-Phase Query Attribute Inference, QAI）

在预填充阶段，模型处理用户输入查询。攻击者通过分析这一阶段的SIMA痕迹，可以推断出查询中包含的敏感语义属性。

在Janus的示例实现中，攻击目标是推断医疗查询中的疾病类别。通过预训练的MLP分类器，攻击者可以将重建的稀疏性模式映射到具体的查询属性上。

**攻击流程**：
1. 收集预填充阶段的SIMA痕迹
2. 重建token级别的稀疏性模式
3. 使用预训练属性预测器进行分类
4. 输出推断的查询属性

### 2. 解码阶段自回归token恢复（Decoding-Phase Autoregressive Token Recovery, ATR）

在解码阶段，模型逐token生成响应。攻击者通过监控这一阶段的内存访问模式，可以逐步恢复模型生成的完整响应内容。

**攻击参数**：
- 验证查询数量：20个
- 每个查询生成token数：300个
- 词汇表大小：1758个token
- 预测粒度：每个解码步骤一个token

**攻击流程**：
1. 收集解码阶段的SIMA痕迹
2. 重建步骤级别的稀疏性模式
3. 使用预训练token预测器进行自回归恢复
4. 逐步重建完整响应

## 技术实现

Janus项目提供了完整的攻击实现代码，包含两个主要模块：

### 预填充属性推断模块

```
prefill_attribute_inference/
├── infer_20_val/              # 20个验证查询的稀疏性模式
├── attribute_predictor.pt     # 预训练属性预测器
├── load_model_infer_illness.py # 推理脚本
├── health_short_4_illness_200_val.csv  # 原始验证查询
└── health_short_4_illness_200_val_with_pred.csv  # 攻击结果
```

### 解码token恢复模块

```
decoding_token_recovery/
├── infer_20_val/              # 解码阶段稀疏性模式
├── all_data/                  # 辅助数据
├── token_predictor.pt         # 预训练token预测器
├── load_model_infer.py        # 推理脚本
├── build_label_mapping.py     # 标签映射工具
├── health_queries_val_20.csv  # 原始验证查询
└── health_queries_val_20_with_pred.csv  # 恢复结果
```

## 安全影响

Janus攻击揭示了稀疏注意力机制带来的严重隐私风险：

### 隐私泄露风险

1. **查询内容推断**：攻击者可以推断用户查询中的敏感属性（如医疗状况、个人偏好等）
2. **响应内容恢复**：攻击者可以重建模型的完整响应，即使无法直接访问API输出
3. **多租户环境风险**：在共享硬件资源的场景中，一个用户可能窥探其他用户的推理过程

### 攻击场景

- **云推理服务**：攻击者作为共享硬件上的另一个租户，监控内存访问模式
- **边缘设备**：恶意应用利用系统级权限监控LLM推理过程
- **模型即服务（MaaS）**：攻击者通过精心设计的输入触发特定的内存访问模式

## 防御建议

针对Janus攻击，研究人员和开发者可以考虑以下防御措施：

### 硬件层面

1. **内存访问隔离**：在硬件层面实现更严格的内存访问隔离
2. **缓存分区**：使用缓存分区技术防止跨进程缓存侧信道
3. **恒定时间实现**：设计恒定时间的稀疏注意力算法，消除时序侧信道

### 软件层面

1. **稀疏模式混淆**：引入随机化的稀疏模式，增加攻击者重建难度
2. **内存访问随机化**：打乱内存访问顺序，消除可预测的模式
3. **安全审计**：定期审计推理系统的内存访问特征

### 架构层面

1. **可信执行环境**：在TEE（如Intel SGX、ARM TrustZone）中运行推理
2. **同态加密推理**：使用同态加密技术保护推理过程中的数据隐私
3. **联邦推理**：将推理分散到多个设备，降低单点泄露风险

## 研究意义

Janus研究具有重要的理论和实践意义：

### 理论贡献

1. **首次系统性研究**：首次系统性地研究了稀疏注意力机制的侧信道风险
2. **攻击方法论**：建立了从内存访问痕迹到模型输入/输出的攻击方法论
3. **安全评估框架**：为评估稀疏注意力实现的安全性提供了基准

### 实践影响

1. **安全意识提升**：提醒研究人员和开发者在优化推理效率时考虑安全因素
2. **设计指导**：为未来稀疏注意力机制的设计提供了安全考量
3. **行业标准推动**：可能推动相关行业建立更严格的安全标准

## 局限与未来工作

Janus项目当前实现存在一些局限：

1. **特定模型依赖**：当前实现针对特定稀疏注意力变体，需要扩展以覆盖更多实现
2. **攻击复杂度**：攻击需要相对复杂的硬件监控能力
3. **词汇表限制**：演示中使用的是受限词汇表（1758 tokens），需要验证在大词汇表上的有效性

未来研究方向包括：

- 扩展攻击到更多稀疏注意力变体
- 开发更轻量级的攻击方法
- 设计更高效的防御机制
- 建立稀疏注意力安全评估的标准流程

## 总结

Janus项目揭示了稀疏注意力优化带来的潜在安全风险，展示了攻击者如何通过监控内存访问痕迹来推断敏感信息。这一研究提醒我们，在追求推理效率的同时，必须充分考虑安全性。随着LLM在敏感领域的应用日益广泛，理解和缓解这类侧信道攻击将变得越来越重要。研究人员、开发者和部署者都需要在安全与效率之间找到平衡，确保LLM服务的隐私保护能力。
