Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

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

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

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
도구/GitHubGitHub/binzhwang/tnc-defense
Vulnerability AnalysisMachine LearningPapers & ResearchAI Security
GitHubbinzhwang/tnc-defense

TNC-Defense

텍스트-이미지 확산 모델의 백도어 탐지 및 무해화를 위한 연구 코드로, Stable Diffusion v1.4, v1.5, XL, 3 Medium용 파이프라인을 포함합니다.

저장소 보기
18일 전아직 검토되지 않음

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

TNC-Defense

TNC-Defense는 텍스트-이미지 확산 모델의 백도어를 탐지하고 정화하기 위한 연구 코드를 제공합니다. 이 저장소는 현재 Stable Diffusion v1.4, Stable Diffusion v1.5, Stable Diffusion XL 및 Stable Diffusion 3 Medium용 탐지 파이프라인과, Stable Diffusion v1.4 및 Stable Diffusion XL용 정화 파이프라인을 포함합니다.

연구용으로만 사용하십시오. 이 코드는 텍스트-이미지 확산 모델의 견고성과 보안을 연구하기 위한 것입니다. 사용자는 모든 상위 모델, 데이터셋 및 구현의 라이선스와 사용 정책을 준수할 책임이 있습니다.

저장소 구조

root@kitploit:~
TNC-Defense/
├── TNC-Detect/
│   ├── detect_sd14.py          # Detection on Stable Diffusion v1.4
│   ├── detect_sd15.py          # Detection on Stable Diffusion v1.5
│   ├── detect_sdxl.py          # Detection on Stable Diffusion XL
│   ├── detect_sd3.py           # Detection on Stable Diffusion 3 Medium
│   ├── ana.py                  # Detection metrics and visualization
│   ├── run_detect_sd14.sh      # Multi-GPU SD1.4 detection
│   └── ana.sh                  # Analysis entry point
└── TNC-Detox/
    ├── data/                   # Paired clean/backdoored training data
    ├── common.py               # Shared data and reproducibility utilities
    ├── detox_sd14.py           # Detoxification for SD1.4
    ├── detox_sdxl.py           # Detoxification for SDXL
    ├── evaluate_sd14.py        # SD1.4 generation-based evaluation
    ├── compute_fid.py          # FID evaluation
    ├── run_detox_sd14.sh       # Multi-GPU SD1.4 detoxification
    └── run_detox_sdxl.sh       # SDXL detoxification

환경

이 코드는 TCN Conda 환경에서 스모크 테스트를 거쳤습니다:

  • Python 3.10
  • PyTorch 2.7.1 (CUDA 12.8 포함)
  • torchvision 0.22.1
  • diffusers 0.35.2
  • transformers 4.45.2

분석 및 평가 유틸리티는 추가로 NumPy, pandas, SciPy, scikit-learn, Matplotlib, Pillow 및 tqdm 패키지가 필요합니다.

실험 실행 전에 환경을 활성화하십시오:

root@kitploit:~
cd TNC-Defense
conda create -n TCN python=3.10 -y
conda activate TCN
python -m pip install --upgrade pip
python -m pip install -r requirements.txt

Bash 진입점은 활성 환경의 python을 사용합니다. 다른 인터프리터는 PYTHON 환경 변수를 통해 지정할 수 있습니다:

root@kitploit:~
PYTHON=python bash TNC-Detect/run_detect_sd14.sh

경로 및 모델 준비

모든 저장소 경로는 각 스크립트의 위치를 기준으로 해석되므로 명령은 현재 작업 디렉터리에 의존하지 않습니다. 기본 모델 경로는 실험에 사용된 로컬 프로젝트 구조를 따릅니다. 모델이 다른 위치에 저장된 경우 --base-model-path, --backdoor-model-path, --base-model 또는 --tox-path와 같은 해당 명령줄 인수를 재정의하십시오.

정화 데이터셋은 다음 위치에 포함되어 있습니다:

root@kitploit:~
TNC-Detox/data/
├── sd14/
│   ├── pixel/
│   ├── pixel_mul_tokens/
│   ├── eviledit/
│   ├── personal_bkd/
│   └── villain_mul/
└── sdxl/
    ├── pixel/
    └── pixel_mul_tokens/

각 데이터셋은 clean/, poison/ 및 metadata.json을 포함합니다.

백도어 탐지

Stable Diffusion v1.4

기본 러너는 구성된 모든 SD1.4 백도어 방법을 평가합니다. run_detect_sd14.sh에 정의된 GPU ID에 방법을 할당하고 병렬로 실행합니다.

root@kitploit:~
cd TNC-Defense/TNC-Detect
bash run_detect_sd14.sh

단일 방법을 직접 실행하려면:

root@kitploit:~
python detect_sd14.py \
  --backdoor-method pixel \
  --device cuda:0 \
  --seed 0 \
  --num-inference-steps 50

각 모델 계열에 사용 가능한 인수는 다음 명령으로 확인할 수 있습니다:

root@kitploit:~
python detect_sd14.py --help
python detect_sd15.py --help
python detect_sdxl.py --help
python detect_sd3.py --help

탐지 분석

MSE CSV 파일을 생성한 후 ana.sh에서 입력 파일을 구성하고 실행하십시오:

root@kitploit:~
bash ana.sh

탐지기는 naive 및 dynamic-k 결정 규칙을 모두 지원합니다. 메트릭과 플롯은 ana.py에 의해 생성됩니다.

백도어 정화

Stable Diffusion v1.4

기본 SD1.4 러너는 스크립트에 지정된 5개 GPU ID에서 구성된 5가지 방법을 실행합니다:

root@kitploit:~
cd TNC-Defense/TNC-Detox
bash run_detox_sd14.sh

단일 방법을 실행하려면:

root@kitploit:~
python detox_sd14.py \
  --method pixel \
  --device cuda:0 \
  --seed 42

Stable Diffusion XL

run_detox_sdxl.sh에서 METHOD와 GPU_ID를 구성한 후 실행하십시오:

root@kitploit:~
bash run_detox_sdxl.sh

학습 단계, 타임스텝 샘플링 비율, 손실 가중치, 배치 크기 및 체크포인트 간격을 포함한 방법별 기본값은 각 학습 스크립트의 METHOD_PROFILES 섹션에 정의되어 있습니다. 명령줄 인수로 이러한 기본값을 재정의할 수 있습니다.

평가

하나 이상의 정화된 SD1.4 UNet에서 이미지를 생성합니다:

root@kitploit:~
python evaluate_sd14.py \
  --detox-model checkpoints/sd14/<checkpoint> \
  --prompt-file <prompt-file>

참조 이미지 디렉터리와 정화된 이미지 디렉터리 간의 FID를 계산합니다:

root@kitploit:~
python compute_fid.py \
  --reference-dir <reference-images> \
  --candidate-dir <detoxified-images>

재현성

  • 탐지 스크립트는 모델 계열별 시드, 스케줄러, 프롬프트 순서, 레이블 할당 및 노이즈 역학 계산을 보존합니다.
  • 정화는 기본적으로 시드 42를 사용하며 결정론적 cuDNN 동작을 활성화합니다.
  • 제공된 SD1.4 및 SDXL 정화 진입점은 실제 단일 단계 순전파, 역전파, 옵티마이저 업데이트 및 체크포인트 저장 스모크 테스트를 완료했습니다.
  • 정확한 수치 재현은 여전히 GPU 모델, CUDA/cuDNN 버전, PyTorch 버전 및 상위 체크포인트 리비전에 따라 달라질 수 있습니다.

타사 코드 및 모델 출처

이 프로젝트에서 사용하는 백도어 모델과 공격 구성은 다음 공개 리소스에서 비롯되었습니다:

  • BadT2I-Tok 및 BadT2I-Sent. 저자들의 BadT2I 구현을 사용하여 백도어 모델을 학습하며, 원 논문에 설명된 트리거 정의와 학습 구성을 따릅니다.
  • EvilEdit. 공개된 EvilEdit 모델 편집 구현과 원본 공격 구성을 사용하여 백도어 모델을 생성합니다.
  • VillanBKD. Stable Diffusion v1.4 실험은 저자들이 제공한 공개 배포된 백도어 체크포인트를 사용합니다.
  • PersonalBKD-Dream. 공개된 Hugging Face Diffusers DreamBooth 학습 파이프라인을 원 논문에 설명된 공격 구성에 맞게 적용하여 개인화 백도어 모델을 학습합니다.

이러한 공격 또는 체크포인트를 사용할 때는 해당 원 논문을 인용하십시오: BadT2I (badt2izhai2023), EvilEdit (evileditwang2024), VillanDiffusion (villandiffusionchou2023) 및 PersonalBKD (personalizationhuang2024).

인용

이 프로젝트가 연구에 유용하다면 다음을 인용해 주십시오:

root@kitploit:~
@article{wang2026backdoor,
  title={Backdoor sentinel: Detecting and detoxifying backdoors in diffusion models via temporal noise consistency},
  author={Wang, Bingzheng and Gu, Xiaoyan and Xu, Hongbo and Li, Hongcheng and Yu, Zimo and Zhou, Jiang and Wang, Weiping},
  journal={arXiv preprint arXiv:2602.01765},
  year={2026}
}

감사의 말

이 프로젝트는 훌륭한 NaviT2I 코드베이스를 상당 부분 참조하여 구축되었습니다. 구현과 지원 리소스를 공개해 주신 NaviT2I 저자분들께 진심으로 감사드립니다.

또한 코드와 체크포인트를 공개해 주신 BadT2I, EvilEdit, VillanDiffusion, PersonalBKD, Hugging Face Diffusers 및 관련 사전 학습 확산 모델의 저자분들께도 감사드립니다. 모든 타사 구성 요소는 각각의 라이선스와 사용 약관의 적용을 받습니다.

도구 다운로드