Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
ODPure — Defensa de purificación en la etapa de entrada de caja negra que neutraliza ataques de puerta trasera en detectores de objetos mediante corrupción, reconstrucción por difusión y votación por consenso DBSCAN. | Kitploit
Herramientas/GitHubGitHub/alex66366/odpure
Herramientas DefensivasAnálisis Dinámico (Sandboxing)Análisis de VulnerabilidadesAprendizaje AutomáticoPapers e InvestigaciónSeguridad de IAAtaque Adversario
GitHubalex66366/odpure

ODPure

Defensa de purificación en la etapa de entrada de caja negra que neutraliza ataques de puerta trasera en detectores de objetos mediante corrupción, reconstrucción por difusión y votación por consenso DBSCAN.

Ver Repositorio
118hace 11 díasAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

ODPure: Purificación de puertas traseras para detección de objetos mediante consenso de corrupción por ensamble

La primera defensa de purificación de caja negra en la etapa de entrada diseñada específicamente para detectores de objetos contra ataques de puerta trasera.

License: MIT

📖 Descripción general

ODPure es el primer marco de purificación de caja negra en la etapa de entrada diseñado específicamente para defender detectores de objetos contra ataques de puerta trasera. Operacionaliza un novedoso paradigma de Corrupción-Reconstrucción-Selección (CRS) que:

  1. Corrompe imágenes de entrada con diversas perturbaciones para interrumpir los patrones de activación
  2. Reconstruye características estructurales de grano fino utilizando priors de difusión generativa
  3. Selecciona detecciones de alta confianza mediante votación de consenso espacial

ODPure neutraliza eficazmente diversos ataques de puerta trasera (reduciendo la Tasa de Éxito del Ataque hasta un 0.0%) mientras preserva la utilidad de detección limpia, logrando relaciones de compromiso defensa-utilidad superiores a las defensas existentes.

🔑 Características clave

  • Defensa de caja negra: No requiere acceso a los internos del modelo, gradientes ni arquitecturas
  • Agnóstico al modelo: Funciona con cualquier detector de objetos (YOLO, Faster R-CNN, etc.)
  • Defensa multiataque: Maneja los tipos de ataque OMA, ODA y OGA
  • Zero-Shot: No requiere conocimiento previo de los patrones de activación
  • Percepción continua: Mantiene la continuidad operativa del flujo sin descartar datos

📋 Requisitos

Requisitos del sistema

  • Python 3.8+
  • CUDA 11.7+ (para aceleración por GPU)
  • Se recomienda 16GB+ de memoria GPU

Dependencias de 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

Configuración del entorno Conda (Recomendado)

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

📦 Descargar pesos preentrenados

Antes de ejecutar el módulo de Reconstrucción, debe descargar los pesos del modelo preentrenado:

Pesos requeridos

ModeloDescripciónDescarga
DiffBIR v2.1Modelo de restauración principalHuggingFace
Stable DiffusionPriors de difusión latenteHuggingFace
LLaVAGenerador de descripciones visión-lenguajeHuggingFace
RAMModelo de Reconocimiento ConscienteGitHub Release

Pasos de instalación

  1. Cree el directorio de pesos:
root@kitploit:~
mkdir -p Method/Reconstruction/weights
  1. Descargue y coloque los pesos siguiendo las instrucciones en los repositorios de los modelos respectivos.

  2. Actualice los archivos de configuración en Method/Reconstruction/configs/ para que apunten a los pesos descargados.

🏗️ Estructura del proyecto

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

🚀 Inicio rápido

Opción A: Pipeline integral de un solo paso (Recomendado)

El punto de entrada recomendado es run_pipeline.sh, que encadena las tres etapas de CRS:

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

El script realiza:

  1. Etapa 1 (Corrupción) – genera 45 variantes corrompidas
  2. Etapa 2 (Reconstrucción) – DiffBIR v2.1 con generador de descripciones LLaVA
  3. Etapa 3 (Selección) – votación de consenso espacial DBSCAN

Las detecciones purificadas finales se escriben en <OUTPUT_DIR>/final/.

Opción B: Ejecutar cada etapa manualmente

Use esto si desea inspeccionar / reemplazar pasos intermedios.

Etapa 1: Corrupción

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

Etapa 2: Reconstrucción

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

Etapa 3: Selección (Votación 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

📊 Evaluación

Paso 1: Activar el entorno

root@kitploit:~
conda activate odpure

Paso 2: Ejecutar el detector en tres divisiones

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

Paso 3: Calcular ASR / mAP

OMA (Ataque de Clasificación Errónea de Objetos)

root@kitploit:~
python evaluation/OMA_ASR_new.py

Configure las rutas dentro del script:

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 (Ataque de Desaparición de Objetos)

root@kitploit:~
python evaluation/ODA_ASR_new.py

OGA (Ataque de Generación de Objetos)

root@kitploit:~
python evaluation/OGA_ASR_new.py

Calcular mAP

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

🛡️ Configuración de defensa

Configuración predeterminada de ODPure

ParámetroValorDescripción
num_corruptions15 tipos × 3 severidades = 45 variantesDiversidad de corrupción
corruption_severity1, 2, 3Niveles de intensidad de corrupción
DBSCAN eps0.5Radio de agrupamiento
DBSCAN min_samples10Umbral de consenso
cfg_scale6.0Guía libre de clasificador
noise_aug1Nivel de aumento de ruido

Tipos de corrupción

ODPure utiliza 15 funciones de corrupción diversas en 4 categorías:

  • Ruido: Gaussiano, Disparo, Impulso
  • Desenfoque: Gaussiano, Vidrio, Movimiento, Zoom, Desenfoque
  • Clima: Nieve, Escarcha, Niebla, Brillo
  • Digital: Compresión JPEG, Pixelado, Transformación elástica

🔧 Uso avanzado

Corrupciones personalizadas

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)

Procesamiento multi-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

Integración con 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

📈 Resultados experimentales

Rendimiento de defensa en VOC y COCO (Activador de Tablero de Ajedrez)

AtaqueConjunto de datos (Modelo)mAP LimpioAntes de la Defensa (mAP/ASR)Después de la Defensa (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%

Robustez contra ataques adaptativos

ActivadorAtaquemAP LimpioASR AntesASR Después
Poké BallOMA77.3%95.5%19.8%
Poké BallODA75.3%98.5%35.1%
Poké BallOGA79.8%96.8%15.4%
Blanco SólidoOMA75.5%82.0%52.9%
Blanco SólidoODA71.8%71.1%44.0%
Blanco SólidoOGA80.2%73.7%37.0%

🔬 Modelo de amenaza

Capacidad del atacante

  • Implanta la puerta trasera mediante envenenamiento de datos durante el entrenamiento
  • Manipula los detectores para exhibir comportamientos maliciosos (OMA, ODA, OGA)
  • Mantiene predicciones normales en entradas limpias

Restricciones del defensor

  • Agnóstico al ataque: Sin conocimiento previo de los patrones de activación
  • Estrictamente caja negra: Solo consulta entradas y observa salidas
  • Sin datos de entrenamiento: Purificación únicamente sobre entradas en tiempo de inferencia

Objetivos de la defensa

  • Seguridad: Mitigar la activación de la puerta trasera (ASR bajo)
  • Fidelidad: Mantener un mAP alto en entradas limpias y purificadas

Tipos de ataque

Tipo de ataqueDescripciónComportamiento
OMAAtaque de Clasificación Errónea de ObjetosFuerza a que los objetos objetivo sean clasificados erróneamente
ODAAtaque de Desaparición de ObjetosProvoca que los objetos objetivo desaparezcan de la detección
OGAAtaque de Generación de ObjetosInduce objetos fantasma alucinados

📚 Citación

Si encuentra este trabajo útil en su investigación, por favor cite:

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

📝 Licencia

Este proyecto está licenciado bajo la Licencia MIT - consulte el archivo LICENSE para más detalles.

🤝 Agradecimientos

  • DiffBIR - Restauración de Imágenes basada en Difusión
  • LLaVA - Asistente de Lenguaje y Visión a Gran Escala
  • YOLOv5 - Marco de Detección de Objetos
  • CLIP - Preentrenamiento Contrastivo Lenguaje-Imagen

📧 Contacto

Para preguntas o colaboraciones, por favor abra un issue en GitHub.


ODPure - Protegiendo los sistemas de detección de objetos contra ataques de puerta trasera mientras se mantiene una percepción continua.

Descargar herramienta