Skip to content
KitploitKITPLOIT
ИнструментыЭксплойтыБлог
Log in
Отправить
ИнструментыЭксплойтыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

ЛентыКонтактыКонфиденциальность© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
ODPure — Защита на этапе входных данных по принципу «чёрного ящика», нейтрализующая бэкдор-атаки на детекторы объектов с помощью искажения, диффузионной реконструкции и консенсусного голосования DBSCAN. | Kitploit
Инструменты/GitHubGitHub/alex66366/odpure
Оборонительные ИнструментыДинамический анализ (песочница)Анализ уязвимостейМашинное ОбучениеСтатьи и ИсследованияБезопасность ИИСостязательная Атака
GitHubalex66366/odpure

ODPure

Защита на этапе входных данных по принципу «чёрного ящика», нейтрализующая бэкдор-атаки на детекторы объектов с помощью искажения, диффузионной реконструкции и консенсусного голосования DBSCAN.

Репозиторий
1681 месяц назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

ODPure: Очистка от бэкдоров для обнаружения объектов через ансамблевый консенсус искажений

Первая защита на входном этапе методом чёрного ящика, разработанная специально для детекторов объектов против бэкдор-атак.

License: MIT

📖 Обзор

ODPure — это первая платформа очистки на входном этапе методом чёрного ящика, разработанная специально для защиты детекторов объектов от бэкдор-атак. Она реализует новую парадигму Corruption-Reconstruction-Selection (CRS) (Искажение-Восстановление-Отбор), которая:

  1. Искажает входные изображения разнообразными возмущениями для нарушения триггерных паттернов
  2. Восстанавливает мелкозернистые структурные признаки с использованием генеративных диффузионных априоров
  3. Отбирает высокодостоверные детекции посредством пространственного консенсусного голосования

ODPure эффективно нейтрализует разнообразные бэкдор-атаки (снижая показатель успешности атаки до 0.0%), сохраняя при этом полезность чистого обнаружения, обеспечивая превосходный компромисс между защитой и полезностью по сравнению с существующими методами защиты.

🔑 Ключевые особенности

  • Защита методом чёрного ящика: не требуется доступ к внутреннему устройству модели, градиентам или архитектуре
  • Независимость от модели: работает с любым детектором объектов (YOLO, Faster R-CNN и т.д.)
  • Защита от множества атак: обрабатывает типы атак OMA, ODA и OGA
  • Zero-Shot: не требуется предварительное знание триггерных паттернов
  • Непрерывное восприятие: поддерживает непрерывность операционного потока без отбрасывания данных

📋 Требования

Системные требования

  • Python 3.8+
  • CUDA 11.7+ (для ускорения на GPU)
  • Рекомендуется 16GB+ видеопамяти

Зависимости Python

# 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 (рекомендуется)

# 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 необходимо загрузить веса предобученных моделей:

Необходимые веса

МодельОписаниеЗагрузка
DiffBIR v2.1Основная модель восстановленияHuggingFace
Stable DiffusionАприоры латентной диффузииHuggingFace
LLaVAМодель подписей визуально-языковых данныхHuggingFace
RAMRecognition-Aware ModelGitHub Release

Шаги установки

  1. Создайте директорию для весов:
mkdir -p Method/Reconstruction/weights
  1. Загрузите и разместите веса в соответствии с инструкциями в соответствующих репозиториях моделей.

  2. Обновите конфигурационные файлы в Method/Reconstruction/configs/, указав пути к загруженным весам.

🏗️ Структура проекта

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:

# 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 (Восстановление) – DiffBIR v2.1 с подписывающей моделью LLaVA
  3. Этап 3 (Отбор) – пространственное консенсусное голосование DBSCAN

Итоговые очищенные детекции записываются в <OUTPUT_DIR>/final/.

Вариант B: Ручной запуск каждого этапа

Используйте этот вариант, если вы хотите проверить/заменить промежуточные шаги.

Этап 1: Искажение

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: Восстановление

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)

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: Активация окружения

conda activate odpure

Шаг 2: Запуск детектора на трёх разбиениях

Скачать инструмент