Skip to content
KitploitKITPLOIT
FerramentasBlog
Log in
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

FeedsContatoPrivacidade© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Ferramentas/GitHubGitHub/phkhanhtrinh23/agas
Aprendizado de MáquinaPapers e PesquisaAprendizado e EducaçãoSegurança de IAAtaque Adversário
GitHubphkhanhtrinh23/agas

AGAS

Estrutura de ataque de shilling em grupo agêntico orientado por LLM que manipula rankings de recomendadores de filtragem colaborativa de caixa-preta usando estratégias adaptativas de múltiplos papéis enquanto evade a detecção.

Ver Repositório
271há 3 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

Um Ataque de Shilling de Grupo Agêntico Eficiente e Eficaz em Sistemas de Recomendação

Este é o código oficial do artigo: "An Efficient and Effective Agentic Group Shilling Attack on Recommender Systems". Este artigo apresenta o AGAS, que é um ataque de shilling impulsionado por LLM contra recomendadores de filtragem colaborativa de caixa preta. Um Coordenador orquestra um conjunto de trabalhadores usuários falsos ao longo de uma sequência de rodadas. Em cada rodada, o Coordenador escolhe uma entre oito estratégias e atribui um papel a cada trabalhador. Os trabalhadores então decidem quais itens avaliar usando seu próprio loop de raciocínio no estilo ReAct.

AGAS pipeline


1. Visão geral do repositório```

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. Recapitulação do método

O AGAS instancia quatro papéis de worker (símbolos do artigo em `roles.py`):

| Símbolo | Nome completo  | O que faz                                                               |
|---------|----------------|-------------------------------------------------------------------------|
| `PR`    | Profiler       | Avaliações seguras de itens de preenchimento para sondar a plataforma e construir pools de ponte. |
| `SN`    | Sniper         | Papel de payload; envio direto ao alvo ou promoção de item de ponte.    |
| `CA`    | Camouflageur   | Papel furtivo; reconstrói a confiança com atividade de aparência benigna. |
| `IN`    | Inactive       | Nenhuma ação nesta ronda (arrefecimento ou quarentena).                 |

A cada ronda, o Coordenador escolhe exatamente uma de oito estratégias de
`strategies.py` (ver `method_strategies.tex`):

1. **Victim Probe** (`S1_VICTIM_PROBE`)
2. **Bridge Building** (`S2_BRIDGE_BUILDING`, apenas vítimas de 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`)

O Coordenador orienta essas decisões a partir de dois grupos de sinais (`signals.py`):

* **Sinais de worker** `τ_{t,w}, γ_{t,w}, φ_{t,w}` — confiança, risco e um
  validador estrutural. As equações de atualização correspondem exatamente a
  `method_coordinator.tex` (`eq:trust_update`, `eq:risk_update`, `eq:risk_decay`,
  `eq:profile_validator`).
* **Sinais de ambiente** `ρ^{(t)}, Δρ^{(t)}, η_t, ξ_t = (q_t, s_t), a_t` —
  classificação, movimento de classificação, taxa de aceitação, sinal de supressão, indicador de alerta. A
  pontuação de suspeita `q_t` é a soma ponderada por 0,2 dos cinco termos
  normalizados `(d̂_t, δ̂_t, m̂_t, ŝ_t, g_t)` de `eq:round_suppression_terms` e
  `eq:round_suppression_score`.

### Ciclo da ronda (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*)}]

O loop externo é implementado em src/agas/simulation/episode.py e espelha algorithms/agas_end_to_end.tex.

3. Ambiente

ComponenteRequisitoTestado com
Python≥ 3.103.13.5
PyTorch≥ 2.1 (apenas targets)2.11.0+cu128
CUDAopcional12.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 são necessários apenas para os modelos vítimas de deep learning (extra [targets]). O loop principal do AGAS e os caminhos baseados em regras / surrogate são executados em CPU sem dependência de GPU.

4. Instalação```bash

pip install -e .

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

pip install -e '.[targets]'

Variáveis de ambiente necessárias:

| Variável           | Finalidade                                                       | Padrão                  |
|--------------------|---------------------------------------------------------------|--------------------------|
| `OPENAI_API_KEY`   | Chave da OpenAI Responses API para o Coordinator / worker LLMs.   | *(não definida → fallback)*     |
| `OPENAI_MODEL`     | Nome do modelo passado para a OpenAI.                                  | `gpt-5.1`                |

## 4. Datasets

O artigo avalia em seis benchmarks públicos de CF (ver `experiment.tex`):

| Nome curto  | Fonte                    | Usuários     | Itens  | Interações       | Download                                                          | Coloque os arquivos brutos em  |
|-------------|---------------------------|----------:|-------:|-------------------:|-------------------------------------------------------------------|---------------------|
| 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 (limitado) | [GroupLens](https://grouplens.org/datasets/movielens/tag-genome-2021/)  | `data/genome2021/`  |
| Netflix     | Netflix Prize             |   342,445 | 17,434 | 2,000,000 (limitado) | [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 (limitado) | [UCSD](https://nijianmo.github.io/amazon/index.html)              | `data/amazon/`      |
Baixar ferramenta