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
pgm-attack — Ricerca di codice per attacchi di poisoning sul PGM-index, che dimostra come creare dati avversari per degradare le prestazioni degli indici appresi. | Kitploit
Strumenti/GitHubGitHub/atsukisato/pgm-attack
Machine LearningPaper e RicercaSicurezza dell'IAAttacco Avversario
GitHubatsukisato/pgm-attack

pgm-attack

Ricerca di codice per attacchi di poisoning sul PGM-index, che dimostra come creare dati avversari per degradare le prestazioni degli indici appresi.

Vedi Repository
1713 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

PGM-attack

Panoramica

Codice ufficiale per il nostro articolo, Poisoning Attacks on the PGM-index.

Avvio rapido

1. Clonare il repository e i sottomoduli

git clone https://github.com/atsukisato/pgm-attack.git
cd pgm-attack
git submodule update --init --recursive

2. Compilare

./scripts/build.sh

Richiede CMake (vedi Dipendenze). Gli output vengono generati in build/ (i binari in build/bin per impostazione predefinita).

3. Scaricare, preprocessare e generare dati sintetici

./scripts/download_alex_dataset.sh       # ALEX
./scripts/download_mgbench.sh            # mgbench
./scripts/download_sosd_datasets.sh      # SOSD
./scripts/preprocess_alex_dataset.sh     # ALEX
./scripts/preprocess_mgbench.sh          # mgbench
./scripts/generate_synthetic_dataset.sh  # sintetici

4. Esperimenti

Ogni esecuzione accetta un file di configurazione JSON tramite ./scripts/run_experiment.sh <config.json>. Esempi:

4.1 Massimizzare l'errore massimo (es. n=16, metodo consecutivo)

./scripts/run_experiment.sh "configs/experiments/poison_attack/maximize_maxerror_consec/baseline_n16.json"

4.2 Minimizzare le chiavi legittime coperte (es. epsilon=2, metodo consecutivo)

./scripts/run_experiment.sh "configs/experiments/poison_attack/minimize_segment_length/baseline_epsilon2.json"

4.3 Massimizzare m_opt (esempio con PGM-index)

./scripts/run_experiment.sh "configs/experiments/poison_attack/inject_poisons_to_minimize_segment_length_swing_lambda_with_theta/baseline.json"

4.4 Limite superiore su m_opt (esempio dipendente dall'istanza)

./scripts/run_experiment.sh "configs/experiments/upper_bound/fix_w_per_block/baseline.json"

4.5 Eseguire tutti gli esperimenti (in batch)

Esegue l'elenco completo delle configurazioni di esperimento presenti in scripts/run_all_experiment.sh (modificare quel file per cambiare l'insieme).

./scripts/run_all_experiment.sh

5. Grafici e tabelle

Dalla radice del repository:

./scripts/plot.sh
./scripts/print_table.sh

Le figure e i log vengono scritti in fig/. Installare prima le dipendenze Python: pip install -r requirements.txt.

Dipendenze

  • Toolchain C++: g++, make e CMake (lo script di build configura con CMake e compila con cmake --build, che in genere invoca Make).
  • Python 3 con i pacchetti elencati in requirements.txt (script per grafici / tabelle).
  • jq — richiesto da ./scripts/run_experiment.sh per analizzare il JSON degli esperimenti.

Struttura del progetto

PercorsoRuolo
src/Sorgenti C++ (attacchi, benchmark PGM, strumenti, limiti superiori).
configs/experiments/Configurazioni JSON degli esperimenti (percorsi in poison_attack/, upper_bound/, ecc.).
scripts/Build, dati, run_experiment.sh, run_all_experiment.sh, plot.sh, print_table.sh.
third_party/Sottomoduli Git (PGM-index, FITing-Tree, RadixSpline).
data/, results/, fig/Dati, output delle esecuzioni e figure / log delle tabelle generati.
plot/Script Python per grafici e stampa delle tabelle.

Docker

Compilare l'immagine una volta:

./docker_build.sh
  • docker_run.sh — Container interattivo: monta il repository in /workspace, alloca 8 CPU (0–7) e avvia bash per poter compilare ed eseguire i comandi manualmente.
  • docker_run_all.sh — Esecuzione in background: esegue ./scripts/run_all_experiment.sh all'interno del container (8 CPU) e scrive lo stdout in results/run_all.log.
  • docker_run_all_single_cpu.sh — Come docker_run_all.sh ma con una sola CPU e OMP_NUM_THREADS=1 per esecuzioni a singolo thread.

Tutti e tre utilizzano l'immagine pgm_poisoning:latest e le stesse impostazioni di capability / volumi presenti negli script.

Scarica lo strumento