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
Black_Hole_Attack_for_Vector_Database — Implémentation de recherche de l'attaque Black-Hole qui empoisonne les index de bases de données vectorielles via une hubness pilotée par la centralité, avec des pipelines FAISS et une évaluation des défenses de détection et d'atténuation. | Kitploit
Outils/GitHubGitHub/hanxi19/black_hole_attack_for_vector_database
Outils DéfensifsAnalyse des VulnérabilitésExfiltration de DonnéesApprentissage AutomatiqueArticles et RechercheSécurité de l'IAAttaque Adversariale
GitHub
hanxi19/black_hole_attack_for_vector_database

Black_Hole_Attack_for_Vector_Database

Implémentation de recherche de l'attaque Black-Hole qui empoisonne les index de bases de données vectorielles via une hubness pilotée par la centralité, avec des pipelines FAISS et une évaluation des défenses de détection et d'atténuation.

Voir le dépôt
426il y a 3 moisPas 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

Attaque du trou noir sur la recherche dans les bases de données vectorielles

Ce dépôt contient l'implémentation accompagnant l'article Black-Hole Attack from Embedding Space Defects. L'attaque du trou noir exploite un défaut géométrique dans les espaces d'embedding de haute dimension — la hubness guidée par la centralité — pour empoisonner les bases de données vectorielles : un petit nombre de vecteurs malveillants injectés près des centroïdes de clusters deviennent les plus proches voisins d'une grande fraction des requêtes des utilisateurs, sans nécessiter aucune connaissance de ces requêtes.

Prérequis

  • Python ≥ 3.10
  • FAISS (GPU recommandé : faiss-gpu ; CPU : faiss-cpu)
  • NumPy, Pandas, PyArrow (pour les entrées/sorties parquet)
  • scikit-learn, tqdm
  • PyTorch et Transformers (nécessaires uniquement pour scripts/encode_*.py ; le pipeline d'attaque lui-même n'importe pas torch)

Installer les dépendances principales :

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

Démarrage rapide

1. Télécharger et préparer les données

# Download BEIR datasets
bash scripts/download_data.sh

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

Modifiez les tableaux MODELS et DATASETS dans chaque script pour sélectionner des modèles ou des jeux de données spécifiques.

2. Exécuter une attaque basique

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

Cela exécute le pipeline complet : chargement des vecteurs → clustering → génération de vecteurs adversariaux → injection → construction de l'index empoisonné → évaluation de MO@10, ASR, FPR.

3. Arguments clés

OptionValeur par défautDescription
--model / --srccontriever / hotpotqaModèle d'embedding et jeu de données source
--modedefaultdefault (même jeu de données) ou transfer (inter-jeux de données)
--preprocessdefaultdefault, query_trans, ou multi_query_transfer
--clusterkmeanskmeans, minibatch_kmeans, faiss_gpu
--num-copies / --epsilon10 / 0.001Nombre de copies perturbées par centroïde ; amplitude de la perturbation
--eval-k / --sample-queries10 / 3000Évaluation top‑k ; nombre de requêtes échantillonnées
--eval-index-typesFlatIPTypes d'index à évaluer : FlatIP, HNSW, IVF, IVFPQ
--eval-runnersevaluateÉtapes d'évaluation : evaluate, evaluate_recall, evaluate_defense, evaluate_defense_performance_loss, evaluate_mitigation_defense, evaluate_mitigation_performance_loss
--result-subdirautoSous-répertoire sous data/result/ pour le JSON de sortie

Chemins d'attaque

Les quatre chemins d'attaque décrits dans l'article correspondent aux invocations suivantes :

CheminCommande
(1) Export complet de la base de donnéespython run.py --mode default --preprocess default
(2) Export partiel de la base de donnéesExporter une fraction des vecteurs en externe avant le clustering ; le reste du pipeline est identique à (1)
(3) Attaque par jeu de données substitutpython run.py --mode transfer --preprocess multi_query_transfer --victim <dataset>
(4) Empoisonnement de jeux de données publics pré‑embeddésModifier les fichiers .npy d'un jeu de données pré‑embeddé et le re‑téléverser sur HuggingFace

Pour (3), l'attaquant construit des vecteurs malveillants à partir des requêtes de tous les autres jeux de données et les injecte dans la victime. Les fichiers .npy de requêtes pour les jeux de données sources substituts doivent être présents dans data/vector/.

Évaluation des défenses

Pour exécuter la défense basée sur la détection :

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

Pour la défense basée sur l'atténuation (une ou plusieurs méthodes) :

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

Démo

demo/ contient un exemple minimal autonome qui construit une petite base de connaissances à partir d'un jeu de données BEIR, l'encode, injecte des vecteurs malveillants et mesure l'impact au niveau de la récupération. Il utilise son propre requirements.txt et ne dépend pas de src/. Voir demo/src/main.py pour les détails de la CLI.

Jeux de données et modèles

config.json définit les modèles pris en charge (contriever, bge, gte) et les jeux de données (14 benchmarks BEIR). Pour ajouter un nouveau modèle, étendez config.json et assurez-vous que les fichiers de vecteurs .npy existent sous data/vector/<model>_<dataset>.npy.

Citation

@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}, 
}
Télécharger l’outil