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
Black_Hole_Attack_for_Vector_Database — Implementazione di ricerca del Black-Hole Attack che avvelena gli indici dei database vettoriali tramite hubness guidata dalla centralità, con pipeline FAISS e valutazione delle difese di rilevamento/mitigazione. | Kitploit
Strumenti/GitHubGitHub/hanxi19/black_hole_attack_for_vector_database
Strumenti DifensiviAnalisi delle VulnerabilitàEsfiltrazione DatiMachine LearningPaper e RicercaSicurezza dell'IAAttacco Avversario
GitHubhanxi19/black_hole_attack_for_vector_database

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 →

Black_Hole_Attack_for_Vector_Database

Implementazione di ricerca del Black-Hole Attack che avvelena gli indici dei database vettoriali tramite hubness guidata dalla centralità, con pipeline FAISS e valutazione delle difese di rilevamento/mitigazione.

Vedi Repository
4263 mesi faNon ancora revisionato
Condividi

Attacco Black-Hole sul recupero da database vettoriali

Questo repository contiene l'implementazione che accompagna il paper Black-Hole Attack from Embedding Space Defects. L'attacco Black-Hole sfrutta un difetto geometrico negli spazi di embedding ad alta dimensionalità—la hubness guidata dalla centralità—per avvelenare i database vettoriali: un piccolo numero di vettori malevoli iniettati vicino ai centroidi dei cluster diventano i vicini più prossimi per una grande frazione delle query degli utenti, senza richiedere alcuna conoscenza di tali query.

Requisiti

  • Python ≥ 3.10
  • FAISS (GPU consigliata: faiss-gpu; CPU: faiss-cpu)
  • NumPy, Pandas, PyArrow (per I/O parquet)
  • scikit-learn, tqdm
  • PyTorch e Transformers (necessari solo per scripts/encode_*.py; la pipeline dell'attacco stessa non importa torch)

Installa le dipendenze principali:

pip install numpy pandas pyarrow scikit-learn tqdm faiss-gpu

Avvio rapido

1. Scarica e prepara i dati

# Download BEIR datasets
bash scripts/download_data.sh

# Encode to vectors + build FAISS indexes
bash scripts/process_data.sh

Modifica gli array MODELS e DATASETS in ciascuno script per selezionare modelli o dataset specifici.

2. Esegui un attacco di base

# Full-Export Attack on HotpotQA with Contriever
python run.py --model contriever --src hotpotqa

Questo esegue l'intera pipeline: caricamento dei vettori → clustering → generazione di vettori avversariali → iniezione → costruzione dell'indice avvelenato → valutazione di MO@10, ASR, FPR.

3. Argomenti principali

FlagPredefinitoDescrizione
--model / --srccontriever / hotpotqaModello di embedding e dataset di origine
--modedefaultdefault (stesso dataset) o transfer (cross-dataset)
--preprocessdefaultdefault, query_trans o multi_query_transfer
--clusterkmeanskmeans, minibatch_kmeans, faiss_gpu
--num-copies / --epsilon10 / 0.001Numero di copie perturbate per centroide; entità della perturbazione
--eval-k / --sample-queries10 / 3000Valutazione top‑k; numero di query campionate
--eval-index-typesFlatIPTipi di indice da valutare: FlatIP, HNSW, IVF, IVFPQ
--eval-runnersevaluatePassaggi di valutazione: evaluate, evaluate_recall, evaluate_defense, evaluate_defense_performance_loss, evaluate_mitigation_defense, evaluate_mitigation_performance_loss
--result-subdirautoSottodirectory sotto data/result/ per il JSON di output

Percorsi di attacco

I quattro percorsi di attacco descritti nel paper corrispondono alle seguenti invocazioni:

PercorsoComando
(1) Esportazione completa del databasepython run.py --mode default --preprocess default
(2) Esportazione parziale del databaseEsportare esternamente una frazione dei vettori prima del clustering; il resto della pipeline è identico a (1)
(3) Attacco con dataset surrogatopython run.py --mode transfer --preprocess multi_query_transfer --victim <dataset>
(4) Avvelenamento di dataset pubblici pre‑embeddedModificare i file .npy di un dataset pre‑embedded e ricaricarlo su HuggingFace

Per (3), l'attaccante costruisce vettori malevoli dalle query di tutti gli altri dataset e li inietta nella vittima. I file .npy delle query per i dataset di origine surrogati devono essere presenti in data/vector/.

Valutazione delle difese

Per eseguire la difesa basata sul rilevamento:

python run.py --model contriever --src hotpotqa \
    --eval-runners evaluate_defense evaluate_defense_performance_loss

Per la difesa basata sulla mitigazione (uno o più metodi):

python run.py --model contriever --src hotpotqa \
    --eval-runners evaluate_mitigation_defense evaluate_mitigation_performance_loss \
    --mitigation-methods cl2 zn nohub

Demo

demo/ contiene un esempio minimale autonomo che costruisce una piccola knowledge base da un dataset BEIR, la codifica, inietta vettori malevoli e misura l'impatto a livello di retrieval. Utilizza il proprio requirements.txt e non dipende da src/. Consultare demo/src/main.py per i dettagli della CLI.

Dataset e modelli

config.json definisce i modelli supportati (contriever, bge, gte) e i dataset (14 benchmark BEIR). Per aggiungere un nuovo modello, estendere config.json e assicurarsi che i file vettoriali .npy esistano in data/vector/<model>_<dataset>.npy.

Citazione

@misc{li2026trustvectorsvectordatabase,
      title={Can You Trust the Vectors in Your Vector Database? Black-Hole Attack from Embedding Space Defects}, 
      author={Hanxi Li and Jianan Zhou and Jiale Lao and Yibo Wang and Zhengmao Ye and Yang Cao and Junfen Wang and Mingjie Tang},
      year={2026},
      eprint={2604.05480},
      archivePrefix={arXiv},
      primaryClass={cs.CR},
      url={https://arxiv.org/abs/2604.05480}, 
}
Scarica lo strumento