Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
ODPure — Defesa de purificação em estágio de entrada caixa-preta que neutraliza ataques de backdoor em detectores de objetos por meio de corrupção, reconstrução por difusão e votação por consenso DBSCAN. | Kitploit
Ferramentas/GitHubGitHub/alex66366/odpure
Ferramentas DefensivasAnálise Dinâmica (Sandboxing)Análise de VulnerabilidadesAprendizado de MáquinaPapers e PesquisaSegurança de IAAtaque Adversário
GitHubalex66366/odpure

ODPure

Defesa de purificação em estágio de entrada caixa-preta que neutraliza ataques de backdoor em detectores de objetos por meio de corrupção, reconstrução por difusão e votação por consenso DBSCAN.

Ver Repositório
118há 11 diasAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

ODPure: Purificação de Backdoor para Detecção de Objetos via Consenso de Corrupção em Conjunto

A primeira defesa de purificação em estágio de entrada, caixa-preta, adaptada para detectores de objetos contra ataques de backdoor.

License: MIT

📖 Visão Geral

ODPure é o primeiro framework de purificação em estágio de entrada, caixa-preta, adaptado para defender detectores de objetos contra ataques de backdoor. Ele operacionaliza um novo paradigma de Corrupção-Reconstrução-Seleção (CRS) que:

  1. Corrompe imagens de entrada com perturbações diversas para interromper padrões de gatilho
  2. Reconstrói características estruturais refinadas usando priors de difusão generativa
  3. Seleciona detecções de alta confiança via votação de consenso espacial

ODPure neutraliza efetivamente diversos ataques de backdoor (reduzindo a Taxa de Sucesso do Ataque para até 0,0%) enquanto preserva a utilidade de detecção limpa, alcançando relações de compromisso defesa-utilidade superiores às defesas existentes.

🔑 Principais Características

  • Defesa Caixa-Preta: Não requer internos do modelo, gradientes ou arquiteturas
  • Agnóstico ao Modelo: Funciona com qualquer detector de objetos (YOLO, Faster R-CNN, etc.)
  • Defesa Multi-Ataque: Lida com tipos de ataque OMA, ODA e OGA
  • Zero-Shot: Nenhum conhecimento prévio dos padrões de gatilho é necessário
  • Percepção Contínua: Mantém a continuidade operacional do fluxo sem descartar dados
  • 📋 Requisitos

    Requisitos de Sistema

    • Python 3.8+
    • CUDA 11.7+ (para aceleração por GPU)
    • 16GB+ de memória de GPU recomendado

    Dependências 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
    

    Configuração do Ambiente 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
    

    📦 Baixar Pesos Pré-Treinados

    Antes de executar o módulo de Reconstrução, você precisa baixar os pesos do modelo pré-treinado:

    Pesos Necessários

    ModeloDescriçãoDownload
    DiffBIR v2.1Modelo principal de restauraçãoHuggingFace
    Stable DiffusionPriors de difusão latenteHuggingFace
    LLaVALegendador de visão-linguagemHuggingFace
    RAMModelo de Reconhecimento-AwareGitHub Release

    Passos de Instalação

    1. Crie o diretório de pesos:
    root@kitploit:~
    mkdir -p Method/Reconstruction/weights
    
    1. Baixe e coloque os pesos seguindo as instruções nos respectivos repositórios dos modelos.

    2. Atualize os arquivos de configuração em Method/Reconstruction/configs/ para apontar para os pesos baixados.

    🏗️ Estrutura do Projeto

    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
    

    🚀 Início Rápido

    Opção A: Pipeline Ponta-a-Ponta em Uma Execução (Recomendado)

    O ponto de entrada recomendado é run_pipeline.sh, que encadeia os três estágios do 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
    

    O script executa:

    1. Estágio 1 (Corrupção) – gera 45 variantes corrompidas
    2. Estágio 2 (Reconstrução) – DiffBIR v2.1 com legendador LLaVA
    3. Estágio 3 (Seleção) – votação de consenso espacial DBSCAN

    As detecções purificadas finais são gravadas em <OUTPUT_DIR>/final/.

    Opção B: Executar Cada Estágio Manualmente

    Use isto se você quiser inspecionar / substituir etapas intermediárias.

    Estágio 1: Corrupção

    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
    

    Estágio 2: Reconstrução

    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
    

    Estágio 3: Seleção (Votação 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
    

    📊 Avaliação

    Passo 1: Ativar o Ambiente

    root@kitploit:~
    conda activate odpure
    

    Passo 2: Executar o Detector em Três Divisões

    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
    

    Passo 3: Calcular ASR / mAP

    OMA (Ataque de Classificação Incorreta de Objetos)

    root@kitploit:~
    python evaluation/OMA_ASR_new.py
    

    Configure os caminhos dentro do 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 Desaparecimento de Objetos)

    root@kitploit:~
    python evaluation/ODA_ASR_new.py
    

    OGA (Ataque de Geração 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
    

    🛡️ Configuração de Defesa

    Configurações Padrão do ODPure

    ParâmetroValorDescrição
    num_corruptions15 tipos × 3 severidades = 45 variantesDiversidade de corrupção
    corruption_severity1, 2, 3Níveis de intensidade de corrupção
    DBSCAN eps0.5Raio de agrupamento
    DBSCAN min_samples10Limiar de consenso
    cfg_scale6.0Orientação livre de classificador
    noise_aug1Nível de aumento de ruído

    Tipos de Corrupção

    ODPure usa 15 funções de corrupção diversas em 4 categorias:

    • Ruído: Gaussiano, Shot, Impulso
    • Desfoque: Gaussiano, Vidro, Movimento, Zoom, Desfoque
    • Clima: Neve, Geada, Névoa, Brilho
    • Digital: Compressão JPEG, Pixelização, Transformação elástica

    🔧 Uso Avançado

    Corrupções 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)
    

    Processamento 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
    

    Integração com 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 Experimentais

    Desempenho de Defesa em VOC e COCO (Gatilho Tabuleiro de Xadrez)

    AtaqueConjunto de Dados (Modelo)mAP LimpoAntes da Defesa (mAP/ASR)Após a Defesa (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

    GatilhoAtaquemAP LimpoASR AntesASR Depois
    Poké BallOMA77.3%95.5%19.8%
    Poké BallODA75.3%98.5%35.1%
    Poké BallOGA79.8%96.8%15.4%
    Branco SólidoOMA75.5%82.0%52.9%
    Branco SólidoODA71.8%71.1%44.0%
    Branco SólidoOGA80.2%73.7%37.0%

    🔬 Modelo de Ameaça

    Capacidade do Atacante

    • Implanta backdoor via envenenamento de dados durante o treinamento
    • Manipula detectores para exibir comportamentos maliciosos (OMA, ODA, OGA)
    • Mantém previsões normais em entradas limpas

    Restrições do Defensor

    • Agnóstico ao Ataque: Nenhum conhecimento prévio dos padrões de gatilho
    • Caixa-Preta Estrita: Apenas consulta entradas e observa saídas
    • Sem Dados de Treinamento: Purificação apenas em entradas no momento da inferência

    Objetivos de Defesa

    • Segurança: Mitigar a ativação do backdoor (baixo ASR)
    • Fidelidade: Manter alto mAP em entradas limpas e purificadas

    Tipos de Ataque

    Tipo de AtaqueDescriçãoComportamento
    OMAAtaque de Classificação Incorreta de ObjetosForça objetos-alvo a serem classificados incorretamente
    ODAAtaque de Desaparecimento de ObjetosFaz objetos-alvo desaparecerem da detecção
    OGAAtaque de Geração de ObjetosInduz objetos fantasmas alucinados

    📚 Citação

    Se você achar este trabalho útil em sua pesquisa, por favor cite:

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

    📝 Licença

    Este projeto está licenciado sob a Licença MIT - veja o arquivo LICENSE para detalhes.

    🤝 Agradecimentos

    • DiffBIR - Restauração de Imagem Baseada em Difusão
    • LLaVA - Assistente de Linguagem e Visão de Grande Porte
    • YOLOv5 - Framework de Detecção de Objetos
    • CLIP - Pré-treinamento Contrastivo de Linguagem-Imagem

    📧 Contato

    Para perguntas ou colaborações, por favor abra uma issue no GitHub.


    ODPure - Protegendo sistemas de detecção de objetos contra ataques de backdoor enquanto mantém a percepção contínua.

    Baixar ferramenta