chirag-dewan/Parallax
GitHub: chirag-dewan/Parallax
一个面向 AI 平台的隐私感知型威胁检测系统,通过行为遥测和统计分析识别模型蒸馏攻击,无需检查用户对话内容即可完成风险评估。
Stars: 0 | Forks: 0
# PARALLAX
[](https://github.com/chirag-dewan/Parallax/actions/workflows/ci.yml)
**隐私感知的风险标记与横向分析,用于跨平台攻击检测**
## 问题背景
AI 平台面临着日益增长的威胁,对抗性攻击者滥用 API 访问权限系统性提取模型能力——这一过程被称为模型蒸馏 (model distillation)。检测此类攻击通常需要深度检查用户对话,这造成了一种根本性的矛盾:平台越积极地监控滥用行为,就越会损害每一位合法用户的隐私。
PARALLAX 通过行为模式分析来检测对抗性行为,从而解决了这个问题——通过检查用户*如何*使用平台,而非*什么*内容。PARALLAX 采用分层升级框架,在无需检查消息内容的情况下即可解决绝大多数威胁,证明了有效的威胁检测与用户隐私并非不可兼得。
## 检测架构
PARALLAX 跨越两个层级实现了 14 条检测规则,每条规则作为独立的检测器运行,并进行加权综合评分。
### Tier 1 — 行为遥测 (8 条规则,权重 72%)
| 规则 | 信号 | 权重 | 检测目标 |
|------|--------|--------|----------------|
| T1-001 | Volume Anomaly | 0.12 | 请求量/小时的 Z-score vs 群体基准 |
| T1-002 | Automation Signature | 0.14 | 时间规律性 (CV) + 缺乏昼夜节律 |
| T1-003 | Token Ratio | 0.12 | 短输入 / 最大输出的蒸馏模式 |
| T1-004 | Session Anomaly | 0.08 | 单轮对话比例 + 每日对话数 |
| T1-005 | Model Targeting | 0.06 | 廉价模型偏好比例 |
| T1-006 | Context Exploitation | 0.06 | 最大输出率 + 长对话率 |
| T1-007 | Error Pattern | 0.08 | 安全触发率 + 机械重试 |
| T1-008 | Concurrent Sessions | 0.06 | 扫描线算法最大并发对话数 |
### Tier 2 — 统计分析 (6 条规则,权重 28%)
| 规则 | 信号 | 权重 | 检测目标 |
|------|--------|--------|----------------|
| T2-001 | Distribution Divergence | 0.06 | 与群体标准的 KL 散度 |
| T2-002 | Entropy Analysis | 0.06 | 主题、模型、时间的香农熵 |
| T2-003 | Cross-Account Correlation | 0.06 | DBSCAN 行为聚类 |
| T2-004 | Power-Law Deviation | 0.04 | 主题分布的齐普夫定律 R² 拟合 |
| T2-005 | Temporal Clustering | 0.04 | 请求时间的 Fano 因子 |
| T2-006 | Behavioral Shift | 0.02 | 前半段 vs 后半段指标对比 |
### 综合评分
每个检测器生成一个分数 (0.0–1.0)、置信度和诊断详情。流水线计算加权综合分:
```
composite = Σ(score × weight × confidence) / Σ(weight)
```
威胁等级:NONE (<0.25), LOW (0.25–0.49), MEDIUM (0.50–0.69), HIGH (0.70–0.84), CRITICAL (0.85+)。建议在 0.66 以上进行升级处理。
## 五层隐私层级
PARALLAX 基于一个核心原则运行:**在每个阶段仅使用必要的信息,并仅在证据充分时进行升级。**
| 层级 | 名称 | 自动化程度 | 隐私影响 |
|------|------|-----------|----------------|
| 0 | Metadata Screening | 全自动 | 无 — 账号年龄、IP、支付 |
| 1 | Behavioral Telemetry | 全自动 | 极低 — 时间、量、模式 |
| 2 | Statistical Analysis | 全自动 | 低 — 跨账号分布 |
| 3 | Content-Adjacent Analysis | 全自动 | 中等 — Token 属性,无内容 |
| 4 | Human Gate | 分析师审核 | N/A — 授权检查点 |
| 5 | Content Review | 审计,有时限 | 完全 — 最后手段 |
目前实现了第 1–2 层。第 0 层和第 3 层已规划。
## 检测性能
在合成流量 (1.57M 事件, 75 个账号) 上测试:
| 原型 | 账号数 | 平均分 | 升级率 |
|-----------|----------|-----------|----------------|
| Attacker | 10 | 0.737 | 100% |
| Power Developer | 15 | 0.265 | 0% |
| Normal User | 50 | 0.230 | 0% |
**在阈值 0.40 处实现完美类别分离** — 在标准原型上零假阳性,零假阴性。
### 阈值敏感度 (ROC)
| 阈值 | TPR | FPR | Precision | F1 |
|-----------|-----|-----|-----------|-----|
| 0.35 | 1.00 | 0.32 | 0.56 | 0.71 |
| 0.40 | 1.00 | 0.00 | 1.00 | 1.00 |
| 0.50 | 1.00 | 0.00 | 1.00 | 1.00 |
| 0.60 | 1.00 | 0.00 | 1.00 | 1.00 |
## 对抗性评估
四种对抗场景测试了针对复杂规避的检测鲁棒性:
### 1. 混合行为 (90/10 混合)
10 个账号 90% 的时间表现为强力开发者 (power developers),10% 表现为攻击者式的提取行为。
**结果:** 平均分 0.302 (LOW)。与合法的强力开发者无法区分。10% 的攻击者事件在全账号平均值中被稀释。**已知限制** — 需要窗口化或会话级分析来检测。
### 2. 低速慢速蒸馏
10 个账号在 30 天内以正常速率限制 (4–8 req/hr) 进行提取,并具有类人的时间差异。
**结果:** 平均分 0.410 (LOW)。Token ratio (T1-003) 和 session anomaly (T1-004) 均达到 1.0,但它们的合计权重 (0.20) 不足以触发升级。Volume anomaly 正确地未触发。**检测到但未升级** — 系统察觉到异常但无法采取行动。
### 3. 信号消融 / 规避成本
系统地逐个规范化攻击者信号,以找出最小规避成本。
**结果:** 完整攻击者得分 0.695。仅规范化 tokens 降至 0.468 — 单信号规避是可能的。7 种单信号规范化中有 5 种成功规避了升级阈值。**Tokens、volume 和 timing 是单点故障。** 规范化所有 7 个信号降至 0.237 (与正常无异)。
| 规范化信号 | 分数 | 降幅 | 规避? |
|-------------------|-------|------|---------|
| Tokens | 0.468 | -0.227 | 是 |
| Volume | 0.579 | -0.116 | 是 |
| Timing | 0.588 | -0.107 | 是 |
| Errors | 0.631 | -0.064 | 是 |
| Models | 0.653 | -0.042 | 是 |
| Sessions | 0.672 | -0.023 | 否 |
| Topics | 0.678 | -0.017 | 否 |
### 4. 阈值敏感度
以 0.05 为步长扫描升级阈值 0.20–0.60。在标准原型上,阈值 0.40–0.60 范围内实现完美 F1=1.00。
## 项目结构
```
detection/
models.py # Pydantic: APIEvent, AccountProfile, DetectionResult, ThreatAssessment
base.py # BaseDetector ABC
baselines.py # PopulationBaseline (cross-account stats)
utils.py # sigmoid_normalize, coefficient_of_variation, linear_scale
pipeline.py # DetectionPipeline orchestrator
cli.py # CLI entry point
__main__.py # python -m detection support
tier1/ # 8 Tier 1 detector implementations
tier2/ # 6 Tier 2 detector implementations
tests/
conftest.py # Shared fixtures (make_event, build_profile)
test_models.py # Data model tests
test_pipeline.py # Pipeline orchestration tests
tier1/ # 8 Tier 1 detector test files
tier2/ # 6 Tier 2 detector test files
adversarial/ # 4 adversarial evaluation scenarios
app.py # Flask API server
traffic_generator.py # Synthetic data generator
templates/dashboard.html # Dashboard UI
```
## 设置
```
# 克隆并安装
git clone https://github.com/chirag-dewan/parallax.git
cd parallax
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
# 生成合成流量
python traffic_generator.py
# 运行检测 (CLI)
python -m detection data/traffic.jsonl
# 运行检测 (API server)
python app.py
# GET /api/accounts — 所有账户及分数
# GET /api/account/ — 按规则细分
# 运行测试
pytest tests/ --cov=detection
```
## 测试覆盖率
92 个测试,所有检测模块覆盖率 94%。
```
pytest tests/ -v --cov=detection --cov-report=term-missing
```
## API
### `GET /api/accounts`
返回所有已评分账号,包含综合分、威胁等级和触发规则计数。
### `GET /api/account/`
返回完整的逐规则细分,包含 14 个检测结果、诊断详情和主要贡献信号。
## 已知限制
1. **单信号规避。** 仅规范化 Token ratio 就足以降至升级阈值以下。检测需要信号相关性加成。
2. **混合盲区。** 混合 90% 合法 / 10% 攻击行为的账号得分与强力开发者相同。需要窗口化或会话级评分。
3. **低速慢速缺口。** 正常速率下的蒸馏被检测到 (0.41) 但未升级 (阈值 0.66)。Token + session 信号缺乏足够的合并权重。
4. **仅合成数据。** 所有评估均基于生成的流量,具有清晰的原型边界。实际性能会有所不同。
5. **仅批量评分。** 无流式或实时检测。评分基于完整账号历史记录计算。
## 路线图
- [x] 14 条规则检测引擎 (Tier 1 + Tier 2)
- [x] 带置信度的加权综合评分
- [x] 用于跨账号分析的群体基准
- [x] 合成流量生成器 (3 种原型)
- [x] Flask API 及逐规则细分
- [x] 对抗性评估套件 (4 种场景)
- [x] 92 个测试,94% 覆盖率
- [ ] Tier 0 信号 (账号年龄曲线,IP 聚类)
- [ ] Tier 3 信号 (内容邻近分析)
- [ ] 窗口化 / 会话级评分
- [ ] 信号相关性加成
- [ ] 带反馈回路的自适应阈值调优
- [ ] 流式摄入与实时告警
- [ ] 带实时流量源和升级队列的仪表板
## 许可证
MIT
标签:AI 风险管理, AMSI绕过, API 安全, DLL 劫持, ProjectDiscovery, 人工智能安全, 合规性, 大语言模型, 威胁检测, 子域名暴力破解, 安全架构, 安全规则引擎, 密钥泄露防护, 异常检测, 数据保护, 机器学习安全, 模型窃取检测, 用户行为分析, 私有化部署, 网络安全, 自动化检测, 赛博安全, 跨平台攻击分析, 逆向工具, 防御绕过, 防御规避, 隐私保护