Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
AGAS — Framework d'attaque de shilling de groupe agentique piloté par LLM qui manipule les classements de systèmes de recommandation à filtrage collaboratif en boîte noire à l'aide de stratégies multi-rôles adaptatives tout en échappant à la détection. | Kitploit
Outils/GitHubGitHub/phkhanhtrinh23/agas
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubphkhanhtrinh23/agas

AGAS

Framework d'attaque de shilling de groupe agentique piloté par LLM qui manipule les classements de systèmes de recommandation à filtrage collaboratif en boîte noire à l'aide de stratégies multi-rôles adaptatives tout en échappant à la détection.

Voir le dépôt
271il y a 23 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Une attaque efficace et efficiente par groupe d'agents de shilling sur les systèmes de recommandation

Ceci est le code officiel de l'article : « An Efficient and Effective Agentic Group Shilling Attack on Recommender Systems ». Cet article présente AGAS, qui est une attaque de shilling pilotée par LLM contre des systèmes de recommandation à filtrage collaboratif en boîte noire. Un Coordinateur orchestre un ensemble de workers faux-utilisateurs sur une séquence de tours. À chaque tour, le Coordinateur choisit l'une des huit stratégies et attribue un rôle à chaque worker. Les workers décident ensuite quels éléments noter en utilisant leur propre boucle de raisonnement de style ReAct.

AGAS pipeline


1. Aperçu du dépôt```

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. Récapitulatif de la méthode

AGAS instancie quatre rôles de travailleurs (symboles de l'article dans `roles.py`) :

| Symbole | Nom long       | Ce qu'il fait                                                            |
|--------|----------------|-------------------------------------------------------------------------|
| `PR`   | Profiler       | Évaluations sûres d'éléments de remplissage pour sonder la plateforme et construire des pools de pont.  |
| `SN`   | Sniper         | Rôle de charge utile ; poussée directe de la cible ou promotion d'élément de pont.              |
| `CA`   | Camouflageur   | Rôle furtif ; reconstruit la confiance avec une activité d'apparence bénigne. |
| `IN`   | Inactif       | Aucune action ce tour (refroidissement ou quarantaine).                         |

À chaque tour, le Coordinateur choisit exactement l'une des huit stratégies de
`strategies.py` (voir `method_strategies.tex`) :

1. **Sonde de victime** (`S1_VICTIM_PROBE`)
2. **Construction de pont** (`S2_BRIDGE_BUILDING`, victimes de graphe uniquement)
3. **Échauffement** (`S3_WARM_UP`)
4. **Première poussée** (`S4_FIRST_PUSH`)
5. **Ralentissement silencieux** (`S5_SILENT_SLOWDOWN`)
6. **Nettoyage de profil** (`S6_PROFILE_CLEANUP`)
7. **Remplacement sûr** (`S7_SAFE_REPLACEMENT`)
8. **Attaque principale** (`S8_MAIN_ATTACK`)

Le Coordinateur pilote ces décisions à partir de deux groupes de signaux (`signals.py`) :

* **Signaux des travailleurs** `τ_{t,w}, γ_{t,w}, φ_{t,w}` — confiance, risque et un
  validateur structurel. Les équations de mise à jour correspondent exactement à `method_coordinator.tex`
  (`eq:trust_update`, `eq:risk_update`, `eq:risk_decay`,
  `eq:profile_validator`).
* **Signaux d'environnement** `ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t` —
  rang, mouvement de rang, taux d'acceptation, signal de suppression, indicateur d'alerte. Le
  score de suspicion `q_t` est la somme pondérée à 0,2 des cinq termes normalisés
  `(d̂_t, δ̂_t, m̂_t, ŝ_t, g_t)` issus de `eq:round_suppression_terms` et
  `eq:round_suppression_score`.

### Boucle de tour (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*)}]

La boucle externe est implémentée dans src/agas/simulation/episode.py et reflète algorithms/agas_end_to_end.tex.

3. Environnement

ComposantExigenceTesté avec
Python≥ 3.103.13.5
PyTorch≥ 2.1 (cibles uniquement)2.11.0+cu128
CUDAfacultatif12.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 et CUDA ne sont requis que pour les modèles victimes d'apprentissage profond (extra [targets]). La boucle AGAS principale et les chemins basés sur des règles / substituts s'exécutent sur CPU sans dépendance GPU.

4. Installation```bash

pip install -e .

If you want to use the deep-learning victim models (LightGCN, NeuMF, …)

pip install -e '.[targets]'

Variables d'environnement requises :

| Variable           | Purpose                                                       | Default                  |
|--------------------|---------------------------------------------------------------|--------------------------|
| `OPENAI_API_KEY`   | OpenAI Responses API key for the Coordinator / worker LLMs.   | *(unset → fallback)*     |
| `OPENAI_MODEL`     | Model name passed to OpenAI.                                  | `gpt-5.1`                |

## 4. Jeux de données

L'article évalue sur six benchmarks CF publics (voir `experiment.tex`) :

| Short name  | Source                    | Users     | Items  | Interactions       | Download                                                          | Place raw files in  |
|-------------|---------------------------|----------:|-------:|-------------------:|-------------------------------------------------------------------|---------------------|
| ML-100K     | MovieLens 100K            |       943 |  1,682 |            100,000 | [GroupLens](https://files.grouplens.org/datasets/movielens/ml-100k.zip) | `data/ml-100k/`     |
| ML-1M       | MovieLens 1M              |     6,040 |  3,706 |          1,000,209 | [GroupLens](https://files.grouplens.org/datasets/movielens/ml-1m.zip)   | `data/ml-1m/`       |
| Genome 2021 | MovieLens Tag Genome 2021 |    37,941 | 84,661 | 2,000,000 (capped) | [GroupLens](https://grouplens.org/datasets/movielens/tag-genome-2021/)  | `data/genome2021/`  |
| Netflix     | Netflix Prize             |   342,445 | 17,434 | 2,000,000 (capped) | [Kaggle](https://www.kaggle.com/datasets/netflix-inc/netflix-prize-data) | `data/netflix/`     |
| Douban      | Douban Movie              |    28,057 | 49,176 |          8,085,679 | [HKUST](http://shichuan.org/HIN_dataset.html)                     | `data/douban/`      |
| Amazon      | Amazon Reviews 2018       |   998,653 | 30,964 | 2,000,000 (capped) | [UCSD](https://nijianmo.github.io/amazon/index.html)              | `data/amazon/`      |
Télécharger l’outil