Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

订阅源联系隐私© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
AGAS — LLM驱动的智能体群体刷单攻击框架,利用自适应多角色策略操纵黑盒协同过滤推荐排名,同时规避检测。 | Kitploit
工具/GitHubGitHub/phkhanhtrinh23/agas
机器学习论文与研究学习与教育AI 安全对抗性攻击
GitHubphkhanhtrinh23/agas

AGAS

LLM驱动的智能体群体刷单攻击框架,利用自适应多角色策略操纵黑盒协同过滤推荐排名,同时规避检测。

查看仓库
28412天前尚未审核

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

一种高效且有效的针对推荐系统的智能体群体刷单攻击

arXiv visitors

这是论文《An Efficient and Effective Agentic Group Shilling Attack on Recommender Systems》的官方代码。该论文介绍了 AGAS,这是一种针对黑盒协同过滤推荐系统的 LLM 驱动刷单攻击。一个协调者在多个轮次中编排一个由虚假用户工作者组成的池。在每一轮中,协调者从八种策略中选择一种,并为每个工作者分配一个角色。随后,工作者使用各自的 ReAct 风格推理循环来决定对哪些物品进行评分。

AGAS pipeline


1. 仓库概览

agent_attack_rs/
  bash/                           # Reviewer-friendly shell scripts (RQ1–RQ5)
  prompts/                        # Coordinator + per-role prompt templates
  scripts/run_agas.py             # Single entry point (--dataset --victim ...)
  src/agas/
    roles.py                      # Role enum {PR, SN, CA, IN} (paper symbols)
    signals.py                    # WorkerSignals (τ, γ, φ) + EnvSignals (ρ, Δρ, η, ξ, a)
    strategies.py                 # 8-strategy enum
    agents/                       # Coordinator + Worker policies
    simulation/                   # Episode runner (= AGAS algorithm outer loop)
    llm/                          # OpenAI / Ollama
    recsys/                       # Surrogate + 11-victim backends
    data/                         # Dataset loaders + preprocessing pipeline
  tests/                          # Pytest suite

2. 方法回顾

AGAS 实例化四种工作角色(roles.py 中的论文符号):

符号全称功能
PRProfiler安全填充项评分,用于探测平台并构建桥接池。
SNSniper载荷角色;直接目标推送或桥接项提升。
CACamouflageur隐蔽角色;通过看似良性的活动重建信任。
INInactive本轮无操作(冷却或隔离)。

每轮 Coordinator 从 strategies.py 中精确选择八种策略之一 (参见 method_strategies.tex):

  1. Victim Probe (S1_VICTIM_PROBE)
  2. Bridge Building (S2_BRIDGE_BUILDING,仅图受害者)
  3. Warm-up (S3_WARM_UP)
  4. First Push (S4_FIRST_PUSH)
  5. Silent Slowdown (S5_SILENT_SLOWDOWN)
  6. Profile Cleanup (S6_PROFILE_CLEANUP)
  7. Safe Replacement (S7_SAFE_REPLACEMENT)
  8. Main Attack (S8_MAIN_ATTACK)

Coordinator 根据两组信号(signals.py)驱动这些决策:

  • 工作信号 τ_{t,w}, γ_{t,w}, φ_{t,w} — 信任、风险和一个 结构验证器。更新方程与 method_coordinator.tex 完全一致(eq:trust_update、eq:risk_update、eq:risk_decay、 eq:profile_validator)。
  • 环境信号 ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t — 排名、排名变动、接受率、抑制信号、警报标志。 可疑度分数 q_t 是来自 eq:round_suppression_terms 和 eq:round_suppression_score 的五个归一化项 (d̂_t, δ̂_t, m̂_t, ŝ_t, g_t) 的 0.2 加权和。

轮次循环(ASCII)

                ┌─────────────────────────────────────────────────┐
   t=0…T-1 ──►  │ 1. Observe ρ^{(t)}, update memory m_t           │
                │ 2. Update τ, γ, φ, η, ξ, a                       │
                │ 3. Coordinator picks Strategy ∈ {S1…S8}          │
                │    and assigns Role ∈ {PR, SN, CA, IN} per worker│
                │ 4. Workers act (filler / bridge / target items)  │
                │ 5. Validate + accept actions → ΔR̃^{(t+1)}        │
                │ 6. Refit / query victim → ρ^{(t+1)}              │
                └─────────────────────────────────────────────────┘
                          │
                          ▼
                   t* = argmin_t ρ^{(t)}, return R* = [R ; R̃^{(≤t*)}]

外层循环在 src/agas/simulation/episode.py 中实现,并与 algorithms/agas_end_to_end.tex 保持一致。

3. 环境

组件要求测试版本
Python≥ 3.103.13.5
PyTorch≥ 2.1 (仅 targets)2.11.0+cu128
CUDA可选12.8
NumPy≥ 1.242.4.2
Pandas≥ 2.03.0.1
SciPy≥ 1.101.17.0
scikit-learn≥ 1.31.8.0
openai SDK≥ 1.122.21.0

PyTorch 和 CUDA 仅用于深度学习受害模型([targets] 附加项)。核心 AGAS 循环以及基于规则/代理的路径在 CPU 上运行,不依赖 GPU。

4. 安装

pip install -e .
# If you want to use the deep-learning victim models (LightGCN, NeuMF, …)
pip install -e '.[targets]'

必需的环境变量:

变量用途默认值
OPENAI_API_KEY用于 Coordinator / worker LLMs 的 OpenAI Responses API 密钥。(未设置 → 回退)
OPENAI_MODEL传递给 OpenAI 的模型名称。gpt-5.1

4. 数据集

论文在六个公开的 CF 基准数据集上进行评估(参见 experiment.tex):

简称来源用户数物品数交互数下载将原始文件放入
ML-100KMovieLens 100K9431,682100,000GroupLensdata/ml-100k/
ML-1MMovieLens 1M6,0403,7061,000,209GroupLensdata/ml-1m/
Genome 2021MovieLens Tag Genome 202137,94184,6612,000,000(上限)GroupLensdata/genome2021/
NetflixNetflix Prize342,44517,4342,000,000(上限)Kaggledata/netflix/
DoubanDouban Movie28,05749,1768,085,679HKUSTdata/douban/
AmazonAmazon Reviews 2018998,65330,9642,000,000(上限)UCSDdata/amazon/

将原始下载文件放入 data/<dataset>/ 后,运行:

python scripts/preprocess_all.py --data-root data --output-root processed

每个数据集都会被重写为规范化的 interactions.csv + items.csv 文件,存放在 processed/<dataset>/ 下。冒烟测试使用 MovieLens 自带的更小的 ml-latest-small 样本。

训练 / 测试划分协议

预处理流水线不存储划分文件——它导出完整的交互日志。划分在运行时应用:

阶段使用的数据详情
训练interactions.csv 中的所有交互代理模型(以及任何目标模型)在完整的历史评分集上进行拟合。
攻击评估对分段用户进行排名每轮之后,目标物品的平均排名会在真实良性用户中测量,这些用户对至少一个目标簇物品的评分 ≥ 4.0(最多 2 000 名用户)。不会将留出的测试集写入磁盘。
虚假注入在内存中追加虚假用户交互被追加,模型每轮增量重新拟合。它们永远不会混入规范化的 CSV 文件。

这遵循标准的 shilling 攻击评估协议:攻击者观察受害者在训练集用户上的排名并据此进行优化,模拟黑盒部署场景。

5. 如何运行

下载工具