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駆動のシリング攻撃です。1つの Coordinatorが、一連のラウンドにわたって偽ユーザーworkerのプールを統括します。各ラウンドで、Coordinatorは8つの戦略のうち1つを選び、 すべてのworkerに役割を割り当てます。その後、workerは自身の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 は 4 つのワーカーロールをインスタンス化します(論文上の記号は roles.py にあります):

記号正式名称役割
PRProfiler安全なフィラーアイテムの評価によりプラットフォームを調査し、ブリッジプールを構築します。
SNSniperペイロードロール。直接的なターゲットプッシュまたはブリッジアイテムの昇格を行います。
CACamouflageurステルスロール。無害に見える活動で信頼を再構築します。
INInactiveこのラウンドでは何も行いません(クールダウンまたは隔離)。

各ラウンドで Coordinator は strategies.py にある 8 つの戦略から ちょうど 1 つを選択します(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 はこれらの決定を 2 つのシグナルグループ(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 からの 5 つの正規化項 (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] extra)にのみ必要です。コア AGAS ループおよびルールベース/サロゲートパスは GPU 依存なしで CPU 上で動作します。

4. インストール

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

必須の環境変数:

変数目的デフォルト
OPENAI_API_KEYCoordinator / worker LLM 用の OpenAI Responses API キー。(未設定 → フォールバック)
OPENAI_MODELOpenAI に渡されるモデル名。gpt-5.1

4. データセット

本論文では6つの公開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

各データセットは processed/<dataset>/ 配下の正規化された interactions.csv + items.csv ファイルに書き換えられます。スモークテストでは、MovieLens に同梱されているはるかに小さい ml-latest-small サンプルを使用します。

訓練 / テスト分割プロトコル

前処理パイプラインは分割ファイルを保存しません — 完全なインタラクションログをエクスポートします。分割は実行時に適用されます:

段階使用データ詳細
訓練interactions.csv 内のすべてのインタラクションサロゲート(および任意のターゲットモデル)は、過去の評価の完全なセットでフィットされます。
攻撃評価セグメントユーザーに対するランキング各ラウンド後、ターゲットアイテムの平均ランクが、少なくとも1つのターゲットクラスターアイテムに 4.0 以上を評価した実際の良性ユーザー(最大 2 000 ユーザー)全体で測定されます。ホールドアウトテストセットはディスクに書き込まれません。
偽注入メモリ内で追加偽ユーザーのインタラクションが追加され、モデルは各ラウンドでインクリメンタルに再フィットされます。それらが正規の CSV ファイルに混入されることはありません。

これは標準的なシリング攻撃評価プロトコルに従っています: 攻撃者は訓練セットユーザーに対する被害者のランキングを観察し、それに応じて最適化し、ブラックボックス展開シナリオを模倣します。

5. 実行方法

ツールをダウンロード