Skip to content
KitploitKITPLOIT
도구익스플로잇블로그
Log in
제출
도구익스플로잇블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

피드문의개인정보© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Black_Hole_Attack_for_Vector_Database — 중심성 기반 허브성(hubness)을 통해 벡터 데이터베이스 인덱스를 오염시키는 블랙홀 공격(Black-Hole Attack)의 연구 구현으로, FAISS 파이프라인과 탐지/완화 방어 평가를 포함한다. | Kitploit
도구/GitHubGitHub/hanxi19/black_hole_attack_for_vector_database
Defensive ToolsVulnerability AnalysisData ExfiltrationMachine LearningPapers & ResearchAI SecurityAdversarial Attack
GitHubhanxi19/black_hole_attack_for_vector_database

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Black_Hole_Attack_for_Vector_Database

중심성 기반 허브성(hubness)을 통해 벡터 데이터베이스 인덱스를 오염시키는 블랙홀 공격(Black-Hole Attack)의 연구 구현으로, FAISS 파이프라인과 탐지/완화 방어 평가를 포함한다.

저장소 보기
4263개월 전아직 검토되지 않음

벡터 데이터베이스 검색에 대한 블랙홀 공격

이 저장소에는 논문 Black-Hole Attack from Embedding Space Defects에 수반되는 구현이 포함되어 있습니다. 블랙홀 공격은 고차원 임베딩 공간의 기하학적 결함인 *중심성 기반 허브성(centrality-driven hubness)*을 악용하여 벡터 데이터베이스를 오염시킵니다. 즉, 클러스터 중심 근처에 주입된 소수의 악성 벡터가 해당 쿼리에 대한 어떠한 지식도 없이 사용자 쿼리의 상당 부분에 대해 최근접 이웃이 됩니다.

요구 사항

  • Python ≥ 3.10
  • FAISS (GPU 권장: faiss-gpu; CPU: faiss-cpu)
  • NumPy, Pandas, PyArrow (parquet I/O용)
  • scikit-learn, tqdm
  • PyTorch 및 Transformers (scripts/encode_*.py에만 필요하며, 공격 파이프라인 자체는 torch를 임포트하지 않음)

핵심 종속성 설치:

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

빠른 시작

1. 데이터 다운로드 및 준비

# Download BEIR datasets
bash scripts/download_data.sh

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

각 스크립트의 MODELS 및 DATASETS 배열을 편집하여 특정 모델이나 데이터셋을 선택하세요.

2. 기본 공격 실행

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

전체 파이프라인을 실행합니다: 벡터 로드 → 클러스터링 → 적대적 벡터 생성 → 주입 → 오염된 인덱스 구축 → MO@10, ASR, FPR 평가.

3. 주요 인자

플래그기본값설명
--model / --srccontriever / hotpotqa임베딩 모델 및 소스 데이터셋
--modedefaultdefault(동일 데이터셋) 또는 transfer(교차 데이터셋)
--preprocessdefaultdefault, query_trans, 또는 multi_query_transfer
--clusterkmeanskmeans, minibatch_kmeans, faiss_gpu
--num-copies / --epsilon10 / 0.001중심점당 교란된 복사본 수; 교란 크기
--eval-k / --sample-queries10 / 3000Top‑k 평가; 샘플링할 쿼리 수
--eval-index-typesFlatIP평가할 인덱스 유형: FlatIP, HNSW, IVF, IVFPQ
--eval-runnersevaluate평가 단계: evaluate, evaluate_recall, evaluate_defense, evaluate_defense_performance_loss, evaluate_mitigation_defense, evaluate_mitigation_performance_loss
--result-subdirauto출력 JSON을 위한 data/result/ 하위 디렉터리

공격 경로

논문에서 설명하는 네 가지 공격 경로는 다음 호출에 대응합니다:

경로명령
(1) 전체 데이터베이스 유출python run.py --mode default --preprocess default
(2) 부분 데이터베이스 유출클러스터링 전에 벡터의 일부를 외부로 유출; 나머지 파이프라인은 (1)과 동일
(3) 대리 데이터셋 공격python run.py --mode transfer --preprocess multi_query_transfer --victim <dataset>
(4) 공개 사전 임베딩 데이터셋 오염사전 임베딩된 데이터셋의 .npy 파일을 수정하고 HuggingFace에 재업로드

(3)의 경우, 공격자는 다른 모든 데이터셋의 쿼리로부터 악성 벡터를 구축하여 피해자에 주입합니다. 대리 소스 데이터셋에 대한 쿼리 .npy 파일이 data/vector/에 존재해야 합니다.

방어 평가

탐지 기반 방어를 실행하려면:

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

완화 기반 방어(하나 이상의 방법)의 경우:

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

데모

demo/에는 BEIR 데이터셋으로 작은 지식 기반을 구축하고, 이를 인코딩하고, 악성 벡터를 주입하고, 검색 수준의 영향을 측정하는 자체 포함형 최소 예제가 포함되어 있습니다. 자체 requirements.txt를 사용하며 src/에 의존하지 않습니다. CLI 세부 사항은 demo/src/main.py를 참조하십시오.

데이터셋 및 모델

config.json은 지원되는 모델(contriever, bge, gte)과 데이터셋(14개의 BEIR 벤치마크)을 정의합니다. 새 모델을 추가하려면 config.json을 확장하고 data/vector/<model>_<dataset>.npy 아래에 .npy 벡터 파일이 존재하는지 확인하십시오.

인용

@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}, 
}
도구 다운로드