Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Black_Hole_Attack_for_Vector_Database — Forschungsimplementierung des Black-Hole-Angriffs, der Vektor-Datenbankindizes über zentralitätsgetriebene Hubness vergiftet, mit FAISS-Pipelines und Bewertung von Erkennungs- und Abwehrmaßnahmen. | Kitploit
Tools/GitHubGitHub/hanxi19/black_hole_attack_for_vector_database
DefensivwerkzeugeSchwachstellenanalyseDatenexfiltrationMaschinelles LernenPapers & ForschungKI-SicherheitAdversarial-Angriff
GitHubhanxi19/black_hole_attack_for_vector_database

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

Black_Hole_Attack_for_Vector_Database

Forschungsimplementierung des Black-Hole-Angriffs, der Vektor-Datenbankindizes über zentralitätsgetriebene Hubness vergiftet, mit FAISS-Pipelines und Bewertung von Erkennungs- und Abwehrmaßnahmen.

Repository anzeigen
426vor 3 MonatenNoch nicht geprüft
Teilen

Black-Hole-Angriff auf die Vektordatenbank-Suche

Dieses Repository enthält die Implementierung, die zum Paper Black-Hole Attack from Embedding Space Defects gehört. Der Black-Hole-Angriff nutzt einen geometrischen Defekt in hochdimensionalen Einbettungsräumen aus – die zentralitätsgetriebene Hubness –, um Vektordatenbanken zu vergiften: Eine kleine Anzahl bösartiger Vektoren, die nahe an Cluster-Zentroide injiziert werden, werden zu den nächsten Nachbarn für einen großen Anteil der Benutzerabfragen, ohne dass jegliches Wissen über diese Abfragen erforderlich ist.

Voraussetzungen

  • Python ≥ 3.10
  • FAISS (GPU empfohlen: faiss-gpu; CPU: faiss-cpu)
  • NumPy, Pandas, PyArrow (für Parquet-I/O)
  • scikit-learn, tqdm
  • PyTorch und Transformers (nur für scripts/encode_*.py erforderlich; die Angriffspipeline selbst importiert torch nicht)

Kernabhängigkeiten installieren:

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

Schnellstart

1. Daten herunterladen und vorbereiten

# Download BEIR datasets
bash scripts/download_data.sh

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

Bearbeiten Sie die Arrays MODELS und DATASETS in jedem Skript, um bestimmte Modelle oder Datensätze auszuwählen.

2. Einen Basisangriff ausführen

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

Dies führt die vollständige Pipeline aus: Vektoren laden → clustern → adversariale Vektoren generieren → injizieren → vergifteten Index erstellen → MO@10, ASR, FPR auswerten.

3. Wichtige Argumente

FlagStandardBeschreibung
--model / --srccontriever / hotpotqaEmbedding-Modell und Quelldatensatz
--modedefaultdefault (gleicher Datensatz) oder transfer (datensatzübergreifend)
--preprocessdefaultdefault, query_trans oder multi_query_transfer
--clusterkmeanskmeans, minibatch_kmeans, faiss_gpu
--num-copies / --epsilon10 / 0.001Anzahl der gestörten Kopien pro Zentroid; Störungsstärke
--eval-k / --sample-queries10 / 3000Top‑k-Auswertung; Anzahl der abgetasteten Abfragen
--eval-index-typesFlatIPAuszuwertende Indextypen: FlatIP, HNSW, IVF, IVFPQ
--eval-runnersevaluateAuswertungsschritte: evaluate, evaluate_recall, evaluate_defense, evaluate_defense_performance_loss, evaluate_mitigation_defense, evaluate_mitigation_performance_loss
--result-subdirautoUnterverzeichnis unter data/result/ für die Ausgabe-JSON

Angriffspfade

Die vier im Paper beschriebenen Angriffspfade entsprechen den folgenden Aufrufen:

PfadBefehl
(1) Vollständiger Datenbankexportpython run.py --mode default --preprocess default
(2) Teilweiser DatenbankexportExportieren Sie einen Bruchteil der Vektoren extern vor dem Clustern; der Rest der Pipeline ist identisch zu (1)
(3) Surrogat-Datensatz-Angriffpython run.py --mode transfer --preprocess multi_query_transfer --victim <dataset>
(4) Vergiftung öffentlicher vorab eingebetteter DatensätzeÄndern Sie die .npy-Dateien eines vorab eingebetteten Datensatzes und laden Sie sie erneut auf HuggingFace hoch

Für (3) erstellt der Angreifer bösartige Vektoren aus Abfragen von allen anderen Datensätzen und injiziert sie in das Opfer. Die Abfrage-.npy-Dateien für die Surrogat-Quelldatensätze müssen in data/vector/ vorhanden sein.

Verteidigungsauswertung

Um die erkennungsbasierte Verteidigung auszuführen:

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

Für die mitigation‑basierte Verteidigung (eine oder mehrere Methoden):

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

Demo

demo/ enthält ein eigenständiges minimales Beispiel, das eine kleine Wissensdatenbank aus einem BEIR-Datensatz aufbaut, sie kodiert, bösartige Vektoren injiziert und die Auswirkungen auf Retrieval-Ebene misst. Es verwendet eine eigene requirements.txt und ist nicht von src/ abhängig. CLI-Details finden sich in demo/src/main.py.

Datensätze und Modelle

config.json definiert die unterstützten Modelle (contriever, bge, gte) und Datensätze (14 BEIR-Benchmarks). Um ein neues Modell hinzuzufügen, erweitere config.json und stelle sicher, dass .npy-Vektordateien unter data/vector/<model>_<dataset>.npy vorhanden sind.

Zitation

@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}, 
}
Tool herunterladen