Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
AGAS — Framework di attacco di group shilling agentico guidato da LLM che manipola i ranking dei sistemi di raccomandazione collaborative-filtering black-box utilizzando strategie adattive multi-ruolo eludendo al contempo il rilevamento. | Kitploit
Strumenti/GitHubGitHub/phkhanhtrinh23/agas
Machine LearningPaper e RicercaApprendimento e FormazioneSicurezza dell'IAAttacco Avversario
GitHubphkhanhtrinh23/agas

AGAS

Framework di attacco di group shilling agentico guidato da LLM che manipola i ranking dei sistemi di raccomandazione collaborative-filtering black-box utilizzando strategie adattive multi-ruolo eludendo al contempo il rilevamento.

Vedi Repository
2713 giorni faNon ancora revisionato

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Un Efficiente ed Efficace Attacco di Group Shilling Agentico sui Sistemi di Raccomandazione

Questo è il codice ufficiale del paper: "An Efficient and Effective Agentic Group Shilling Attack on Recommender Systems". Questo paper introduce AGAS, che è un attacco shilling guidato da LLM contro recommender collaborative-filtering black-box. Un Coordinator orchestra un pool di worker fake-user attraverso una sequenza di round. In ogni round, il Coordinator sceglie una tra otto strategie e assegna un ruolo a ogni worker. I worker poi decidono quali item valutare utilizzando il proprio ciclo di ragionamento in stile ReAct.

AGAS pipeline


1. Panoramica del repository```

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. Riepilogo del metodo

AGAS istanzia quattro ruoli di worker (simboli del paper in `roles.py`):

| Simbolo | Nome esteso    | Cosa fa                                                                 |
|---------|----------------|-------------------------------------------------------------------------|
| `PR`    | Profiler       | Valutazioni sicure di filler-item per sondare la piattaforma e costruire bridge pool. |
| `SN`    | Sniper         | Ruolo di payload; push diretto del target o promozione di bridge-item.  |
| `CA`    | Camouflageur   | Ruolo stealth; ricostruisce la fiducia con attività dall'aspetto benigno. |
| `IN`    | Inactive       | Nessuna azione in questo round (cool-down o quarantena).                |

Ogni round il Coordinator sceglie esattamente una tra otto strategie da
`strategies.py` (vedi `method_strategies.tex`):

1. **Victim Probe** (`S1_VICTIM_PROBE`)
2. **Bridge Building** (`S2_BRIDGE_BUILDING`, solo vittime del grafo)
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`)

Il Coordinator guida tali decisioni a partire da due gruppi di segnali (`signals.py`):

* **Segnali dei worker** `τ_{t,w}, γ_{t,w}, φ_{t,w}` — fiducia, rischio e un
  validatore strutturale. Le equazioni di aggiornamento corrispondono esattamente
  a `method_coordinator.tex` (`eq:trust_update`, `eq:risk_update`, `eq:risk_decay`,
  `eq:profile_validator`).
* **Segnali ambientali** `ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t` —
  rank, movimento del rank, tasso di accettazione, segnale di soppressione, flag di allerta. Il
  punteggio di sospetto `q_t` è la somma pesata a 0.2 dei cinque termini
  normalizzati `(d̂_t, δ̂_t, m̂_t, ŝ_t, g_t)` da `eq:round_suppression_terms` e
  `eq:round_suppression_score`.

### Ciclo del round (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*)}]

Il loop esterno è implementato in src/agas/simulation/episode.py e rispecchia algorithms/agas_end_to_end.tex.

3. Ambiente

ComponenteRequisitoTestato con
Python≥ 3.103.13.5
PyTorch≥ 2.1 (solo targets)2.11.0+cu128
CUDAopzionale12.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 e CUDA sono richiesti solo per i modelli vittima di deep learning (extra [targets]). Il loop AGAS principale e i percorsi basati su regole / surrogati funzionano su CPU senza dipendenze GPU.

4. Installazione```bash

pip install -e .

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

pip install -e '.[targets]'

Variabili d'ambiente richieste:

| Variabile          | Scopo                                                         | Predefinito              |
|--------------------|---------------------------------------------------------------|--------------------------|
| `OPENAI_API_KEY`   | Chiave API OpenAI Responses per il Coordinator / worker LLMs. | *(non impostata → fallback)* |
| `OPENAI_MODEL`     | Nome del modello passato a OpenAI.                            | `gpt-5.1`                |

## 4. Dataset

Il paper valuta su sei benchmark CF pubblici (vedi `experiment.tex`):

| Nome breve  | Fonte                     | Utenti    | Elementi | Interazioni        | Download                                                          | Posiziona i file grezzi 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 (limitato) | [GroupLens](https://grouplens.org/datasets/movielens/tag-genome-2021/)  | `data/genome2021/`  |
| Netflix     | Netflix Prize             |   342,445 | 17,434 | 2,000,000 (limitato) | [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 (limitato) | [UCSD](https://nijianmo.github.io/amazon/index.html)              | `data/amazon/`      |
Scarica lo strumento