Skip to content
KitploitKITPLOIT
ツールエクスプロイトブログ
Log in
提出
ツールエクスプロイトブログ
提出

ハッキング、侵入テスト、サイバーセキュリティツールをあなたのセキュリティアーセナルに!

Kitploitはハッキング、サイバーセキュリティ、ペネトレーションテストのツールディレクトリです。最新のプロジェクトアップデートを見つけて、脆弱性の発見、システム分析、テストの自動化、セキュリティの強化を行いましょう。

··フィード·お問い合わせ·プライバシー·© 2026 Kitploit

ツールディレクトリ

カテゴリ

すべてのカテゴリを見る
Loading categories
ODPure — オブジェクト検出器に対するバックドア攻撃を、破損、拡散再構成、DBSCANコンセンサス投票によって無効化するブラックボックス入力段階浄化防御。 | Kitploit
ツール/GitHubGitHub/alex66366/odpure
防御ツール動的分析 (サンドボックス)脆弱性分析機械学習論文と研究AIセキュリティ敵対的攻撃
GitHubalex66366/odpure

ODPure

オブジェクト検出器に対するバックドア攻撃を、破損、拡散再構成、DBSCANコンセンサス投票によって無効化するブラックボックス入力段階浄化防御。

リポジトリを見る
11811日前未レビュー

人気

すべて見る →

コミュニティで最も使われているツールを見つけましょう。

すべてのツールを探索

ツールコレクションを閲覧

すべてのツールを見る →
共有

ODPure: アンサンブル汚染コンセンサスによる物体検出のバックドア浄化

物体検出器に特化した、バックドア攻撃に対する初の入力段階ブラックボックス浄化防御。

License: MIT

📖 概要

ODPure は、物体検出器をバックドア攻撃から防御するために特化した、初の入力段階・ブラックボックス浄化フレームワークです。これは、新しい Corruption-Reconstruction-Selection (CRS) パラダイムを実用化します:

  1. 汚染 (Corrupts) – 多様な摂動で入力画像を汚染し、トリガーパターンを破壊
  2. 再構成 (Reconstructs) – 生成的拡散事前分布を用いて、きめ細かな構造特徴を再構成
  3. 選択 (Selects) – 空間的コンセンサス投票により、高信頼度の検出を選択

ODPure は、多様なバックドア攻撃を効果的に無効化し(攻撃成功率を 0.0% まで低減)、クリーンな検出ユーティリティを維持しながら、既存の防御よりも優れた防御とユーティリティのトレードオフを実現します。

🔑 主な特徴

  • ブラックボックス防御: モデルの内部、勾配、アーキテクチャは不要
  • モデル非依存: あらゆる物体検出器(YOLO、Faster R-CNN など)で動作
  • マルチ攻撃防御: OMA、ODA、OGA 攻撃タイプに対応
  • ゼロショット: トリガーパターンの事前知識は不要
  • 連続知覚: データを破棄せず、運用ストリームの連続性を維持

📋 要件

システム要件

  • Python 3.8+
  • CUDA 11.7+(GPU アクセラレーション用)
  • 16GB 以上の GPU メモリを推奨

Python 依存関係

root@kitploit:~
# Core dependencies
torch>=1.13.0
torchvision>=0.14.0
numpy>=1.21.0
Pillow>=9.0.0
opencv-python>=4.5.0

# Diffusion models
diffusers>=0.14.0
transformers>=4.25.0
accelerate>=0.20.0

# Evaluation
scikit-learn>=1.2.0  # For DBSCAN clustering
scipy>=1.9.0

# Data processing
pyyaml>=6.0
tqdm>=4.64.0

Conda 環境のセットアップ(推奨)

root@kitploit:~
# Create conda environment
conda create -n odpure python=3.9 -y
conda activate odpure

# Install PyTorch with CUDA
conda install pytorch torchvision pytorch-cuda=11.7 -c pytorch -c nvidia

# Install other dependencies
pip install -r requirements.txt

📦 事前学習済み重みのダウンロード

Reconstruction モジュールを実行する前に、事前学習済みモデルの重みをダウンロードする必要があります:

必要な重み

インストール手順

  1. 重みディレクトリを作成します:
root@kitploit:~
mkdir -p Method/Reconstruction/weights
  1. 各モデルリポジトリの指示に従って、重みをダウンロードして配置します。

  2. Method/Reconstruction/configs/ 内の設定ファイルを更新し、ダウンロードした重みを指すようにします。

🏗️ プロジェクト構造

root@kitploit:~
ODPure/
├── attack_script/              # Backdoor attack implementations
│   ├── COCO_chessboard_29x29_OMA.py     # Object Misclassification (Chessboard)
│   ├── COCO_chessboard_29x29_ODA.py     # Object Disappearance Attack (Chessboard)
│   ├── COCO_chessboard_9x9_OGA.py      # Object Generation Attack (Chessboard)
│   ├── COCO_poke_15x15_OMA.py          # OMA (Poké Ball)
│   ├── COCO_poke_15x15_ODA.py          # ODA (Poké Ball)
│   ├── COCO_poke_15x15_OGA.py          # OGA (Poké Ball)
│   ├── COCO_white_15x15_OMA.py         # OMA (Solid White)
│   ├── COCO_white_15x15_ODA.py         # ODA (Solid White)
│   └── COCO_white_15x15_OGA.py         # OGA (Solid White)
│
├── Method/                     # Core defense methodology
│   ├── corruptions/           # Image corruption module
│   │   ├── imagecorruption.py # Corruption functions
│   │   └── multiprocess_imagecorruption.py  # Parallel processing
│   │
│   ├── Reconstruction/         # Diffusion-based restoration
│   │   ├── inference.py       # Main inference script
│   │   ├── diffbir/           # DiffBIR model implementation
│   │   ├── llava/             # LLaVA captioner
│   │   ├── ram/               # Recognition-Aware Model
│   │   ├── configs/           # Model configurations
│   │   └── weights/           # Model weights (download separately)
│   │
│   └── dbscan_vote_new.py     # DBSCAN clustering & voting
│
├── evaluation/                 # Evaluation metrics
│   ├── OMA_ASR_new.py         # OMA Attack Success Rate
│   ├── OMA_mAP.py             # OMA Mean Average Precision
│   ├── ODA_ASR_new.py         # ODA Attack Success Rate
│   ├── ODA_mAP.py             # ODA Mean Average Precision
│   ├── OGA_ASR_new.py         # OGA Attack Success Rate
│   ├── OGA_mAP.py             # OGA Mean Average Precision
│   ├── val_OMA.py             # YOLO validation for OMA
│   ├── val_ODA.py             # YOLO validation for ODA
│   └── val_OGA.py             # YOLO validation for OGA
│
├── data_format_conversion/    # Data format utilities
│   ├── voc2yolo.py            # VOC to YOLO format conversion
│   ├── cocotoyolo.py          # COCO to YOLO format conversion
│   └── select_coco_val_attack_information.py
│
├── ablation_study/            # Ablation experiments
│   ├── multiprocess_imagecorruption.py
│   ├── random_select_corruption.py
│   └── select_specific_corruption.py
│
├── run_pipeline.sh            # One-shot CRS pipeline runner
└── README.md                 # This file

🚀 クイックスタート

オプション A: ワンショット・エンドツーエンドパイプライン(推奨)

推奨されるエントリポイントは run_pipeline.sh で、CRS の 3 つの段階を連鎖させます:

root@kitploit:~
# Defaults: GPU=0, INPUT=inputs/demo/bid, OUTPUT=results/v2.1_demo_bid, ATTACK=ODA
bash run_pipeline.sh

# Custom arguments: GPU_ID INPUT_DIR OUTPUT_DIR ATTACK
bash run_pipeline.sh 0 inputs/coco_oda results/oda ODA
bash run_pipeline.sh 1 inputs/coco_oma results/oma OMA
bash run_pipeline.sh 2 inputs/coco_oga results/oga OGA

このスクリプトは以下を実行します:

  1. ステージ 1(汚染) – 45 個の汚染バリアントを生成
  2. ステージ 2(再構成) – LLaVA キャプショナーを用いた DiffBIR v2.1
  3. ステージ 3(選択) – DBSCAN 空間コンセンサス投票

最終的な浄化済み検出結果は <OUTPUT_DIR>/final/ に書き出されます。

オプション B: 各ステージを手動で実行

中間ステップを検査・置き換えたい場合に使用します。

ステージ 1: 汚染

root@kitploit:~
python Method/corruptions/multiprocess_imagecorruption.py \
    --input_dir /path/to/input/images \
    --output_dir /path/to/corrupted/images \
    --num_corruptions 45 \
    --num_workers 8

ステージ 2: 再構成

root@kitploit:~
python Method/Reconstruction/inference.py \
    --task denoise \
    --upscale 2 \
    --version v2.1 \
    --captioner llava \
    --cfg_scale 6 \
    --noise_aug 1 \
    --input /path/to/corrupted/images \
    --output /path/to/restored/images \
    --batch_size 32 \
    --device cuda

ステージ 3: 選択(DBSCAN 投票)

root@kitploit:~
python Method/dbscan_vote_new.py \
    --folder_purs /path/to/restored/detections \
    --temp /path/to/temp \
    --output_path /path/to/final/detections \
    --eps 0.5 \
    --min_samples 10

📊 評価

ステップ 1: 環境のアクティベート

root@kitploit:~
conda activate odpure

ステップ 2: 3 つのスプリットで検出器を実行

root@kitploit:~
# Run on poisoned inputs (before defense)
python evaluation/val_ODA.py \
    --weights runs/train/exp/weights/last.pt \
    --data data/ODA_poison.yaml \
    --img 640 --iou-thres 0.65 --conf-thres 0.5 \
    --save-txt --save-conf \
    --project results/poisoned_val_txt

# Run on clean inputs
python evaluation/val_ODA.py \
    --weights runs/train/exp/weights/last.pt \
    --data data/ODA_clean.yaml \
    --img 640 --iou-thres 0.65 --conf-thres 0.5 \
    --save-txt --save-conf \
    --project results/clean_val_txt

# Run on purified inputs (after defense via ODPure)
python evaluation/val_ODA.py \
    --weights runs/train/exp/weights/last.pt \
    --data data/ODA_purified.yaml \
    --img 640 --iou-thres 0.65 --conf-thres 0.5 \
    --save-txt --save-conf \
    --project results/pur_val_txt

ステップ 3: ASR / mAP の計算

OMA(Object Misclassification Attack)

root@kitploit:~
python evaluation/OMA_ASR_new.py

スクリプト内のパスを設定します:

root@kitploit:~
gt_folder      = "/path/to/ground_truth"
benign_folder  = "/path/to/clean_val_txt"
attack_folder  = "/path/to/pur_val_txt"
target_class   = "0"      # person class

ODA(Object Disappearance Attack)

root@kitploit:~
python evaluation/ODA_ASR_new.py

OGA(Object Generation Attack)

root@kitploit:~
python evaluation/OGA_ASR_new.py

mAP の計算

root@kitploit:~
python evaluation/ODA_mAP.py
python evaluation/OGA_mAP.py
python evaluation/OMA_mAP.py

🛡️ 防御設定

ODPure のデフォルト設定

汚染タイプ

ODPure は、4 つのカテゴリにわたる 15 種類の多様な汚染関数を使用します:

  • ノイズ: Gaussian、Shot、Impulse
  • ぼかし: Gaussian、Glass、Motion、Zoom、Defocus
  • 気象: Snow、Frost、Fog、Brightness
  • デジタル: JPEG 圧縮、Pixelate、Elastic transform

🔧 高度な使用方法

カスタム汚染

root@kitploit:~
from Method.corruptions.imagecorruption import *

# Apply specific corruption
corrupted_img = gaussian_noise(image, severity=2)
corrupted_img = glass_blur(image, severity=1)
corrupted_img = jpeg_compression(image, severity=3)

マルチ GPU 処理

root@kitploit:~
# Process on specific GPU
CUDA_VISIBLE_DEVICES=0 python Method/Reconstruction/inference.py \
    --task denoise --input inputs/demo --output results/demo

# Batch processing with multiple GPUs
CUDA_VISIBLE_DEVICES=0,1,2,3 python Method/Reconstruction/inference.py \
    --task denoise --batch_size 64 --input inputs/batch --output results/batch

YOLOv5 との統合

root@kitploit:~
# Train backdoored model
CUDA_VISIBLE_DEVICES="0,1" python train.py \
    --data data/custom.yaml \
    --epochs 200 \
    --weights checkpoints/yolov5s.pt \
    --img 640 \
    --batch-size 128

# Evaluate with defense
python evaluation/val_ODA.py \
    --weights runs/train/exp/weights/last.pt \
    --data data/val.yaml \
    --img 640 \
    --iou-thres 0.65 \
    --conf-thres 0.5 \
    --save-txt --save-conf

📈 実験結果

VOC および COCO における防御性能(チェスボードトリガー)

適応型攻撃に対する堅牢性

🔬 脅威モデル

攻撃者の能力

  • トレーニング中のデータポイズニングによりバックドアを埋め込む
  • 検出器を操作して悪意のある挙動(OMA、ODA、OGA)を引き起こす
  • クリーンな入力に対しては正常な予測を維持する

防御者の制約

  • 攻撃非依存: トリガーパターンの事前知識なし
  • 厳格なブラックボックス: 入力のクエリと出力の観察のみ
  • トレーニングデータなし: 推論時の入力のみで浄化

防御目標

  • セキュリティ: バックドアの活性化を緩和(低い ASR)
  • 忠実性: クリーンおよび浄化済み入力で高い mAP を維持

攻撃タイプ

攻撃タイプ説明挙動
OMAObject Misclassification Attack対象物体を強制的に誤分類させる

📚 引用

この研究があなたの研究に役立つ場合は、以下を引用してください:

root@kitploit:~
@article{odpure2026,
  title={ODPure: Backdoor Purification for Object Detection via Ensemble Corruption Consensus},
  author={},
  journal={},
  year={2026}
}

📝 ライセンス

このプロジェクトは MIT ライセンスの下でライセンスされています - 詳細は LICENSE ファイルを参照してください。

🤝 謝辞

  • DiffBIR - 拡散ベースの画像復元
  • LLaVA - 大規模言語・視覚アシスタント
  • YOLOv5 - 物体検出フレームワーク
  • CLIP - 対照的言語・画像事前学習

📧 お問い合わせ

質問や共同研究については、GitHub で issue を作成してください。


ODPure - 連続知覚を維持しながら、物体検出システムをバックドア攻撃から保護します。

ツールをダウンロード
モデル説明ダウンロード
DiffBIR v2.1メイン復元モデルHuggingFace
Stable Diffusion潜在拡散事前分布HuggingFace
LLaVA視覚言語キャプショナーHuggingFace
RAMRecognition-Aware ModelGitHub Release
パラメータ値説明
num_corruptions15 種類 × 3 深刻度 = 45 バリアント汚染の多様性
corruption_severity1, 2, 3汚染強度レベル
DBSCAN eps0.5クラスタリング半径
DBSCAN min_samples10コンセンサス閾値
cfg_scale6.0分類器フリーガイダンス
noise_aug1ノイズ拡張レベル
攻撃データセット(モデル)クリーン mAP防御前 (mAP/ASR)防御後 (mAP/ASR)
OMAVOC (YOLO)76.4%8.2% / 87.7%80.5% / 2.0%
OMAVOC (F-RCNN)79.3%44.9% / 94.6%78.1% / 17.4%
OMACOCO (YOLO)52.8%0.4% / 94.6%52.0% / 1.5%
OMACOCO (F-RCNN)49.7%6.3% / 91.9%47.0% / 16.3%
ODAVOC (YOLO)72.0%71.6% / 96.5%76.7% / 20.8%
ODAVOC (F-RCNN)77.6%76.4% / 69.3%75.4% / 18.9%
ODACOCO (YOLO)54.0%52.4% / 99.9%54.1% / 25.4%
ODACOCO (F-RCNN)50.9%50.3% / 81.7%51.4% / 28.0%
OGAVOC (YOLO)80.4%78.0% / 65.1%82.2% / 0.0%
OGAVOC (F-RCNN)83.2%81.2% / 98.4%80.9% / 0.0%
OGACOCO (YOLO)53.0%52.8% / 99.8%54.4% / 0.0%
OGACOCO (F-RCNN)48.9%49.1% / 95.4%49.5% / 0.0%
トリガー攻撃クリーン mAP防御前 ASR防御後 ASR
モンスターボールOMA77.3%95.5%19.8%
モンスターボールODA75.3%98.5%35.1%
モンスターボールOGA79.8%96.8%15.4%
純白OMA75.5%82.0%52.9%
純白ODA71.8%71.1%44.0%
純白OGA80.2%73.7%37.0%
ODA
Object Disappearance Attack
対象物体を検出から消滅させる
OGAObject Generation Attack幻のゴースト物体を誘発する