Skip to content
KitploitKITPLOIT
ToolsExploitsBlog
Log in
Einreichen
ToolsExploitsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
ODPure — Black-Box-Eingangsstufen-Reinigungsverteidigung, die Backdoor-Angriffe auf Objektdetektoren durch Korruption, Diffusionsrekonstruktion und DBSCAN-Konsensabstimmung neutralisiert. | Kitploit
Tools/GitHubGitHub/alex66366/odpure
DefensivwerkzeugeDynamische Analyse (Sandboxing)SchwachstellenanalyseMaschinelles LernenPapers & ForschungKI-SicherheitAdversarial-Angriff
GitHubalex66366/odpure

ODPure

Black-Box-Eingangsstufen-Reinigungsverteidigung, die Backdoor-Angriffe auf Objektdetektoren durch Korruption, Diffusionsrekonstruktion und DBSCAN-Konsensabstimmung neutralisiert.

Repository anzeigen
118vor 11 TagenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

ODPure: Backdoor-Bereinigung für Objekterkennung mittels Ensemble-Corruption-Konsens

Die erste Black-Box-Bereinigungsverteidigung auf Eingabeebene, die speziell für Objektdetektoren gegen Backdoor-Angriffe entwickelt wurde.

License: MIT

📖 Überblick

ODPure ist das erste Black-Box-Bereinigungsframework auf Eingabeebene, das speziell für die Verteidigung von Objektdetektoren gegen Backdoor-Angriffe entwickelt wurde. Es operationalisiert ein neuartiges Corruption-Reconstruction-Selection (CRS)-Paradigma, das:

  1. Korrumiert Eingabebilder mit vielfältigen Störungen, um Trigger-Muster zu unterbrechen
  2. Rekonstruiert feinkörnige strukturelle Merkmale unter Verwendung generativer Diffusions-Priors
  3. Selektiert Detektionen mit hoher Konfidenz durch räumliche Konsens-Abstimmung

ODPure neutralisiert effektiv verschiedene Backdoor-Angriffe (reduziert die Angriffserfolgsrate auf bis zu 0,0%) und bewahrt gleichzeitig den sauberen Erkennungsnutzen, wodurch überlegene Verteidigungs-Nutzen-Kompromisse im Vergleich zu bestehenden Verteidigungen erzielt werden.

🔑 Hauptmerkmale

  • Black-Box-Verteidigung: Kein Zugriff auf Modellinterna, Gradienten oder Architekturen erforderlich
  • Modellagnostisch: Funktioniert mit jedem Objektdetektor (YOLO, Faster R-CNN, etc.)
  • Multi-Angriffs-Verteidigung: Behandelt OMA-, ODA- und OGA-Angriffstypen
  • Zero-Shot: Kein Vorwissen über Trigger-Muster erforderlich
  • Kontinuierliche Wahrnehmung: Bewahrt die Kontinuität des operativen Datenstroms ohne Datenverwerfung
  • 📋 Anforderungen

    Systemanforderungen

    • Python 3.8+
    • CUDA 11.7+ (für GPU-Beschleunigung)
    • 16GB+ GPU-Speicher empfohlen

    Python-Abhängigkeiten

    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-Umgebung einrichten (Empfohlen)

    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
    

    📦 Vortrainierte Gewichte herunterladen

    Bevor Sie das Rekonstruktionsmodul ausführen, müssen Sie die vortrainierten Modellgewichte herunterladen:

    Erforderliche Gewichte

    ModellBeschreibungDownload
    DiffBIR v2.1Haupt-RestaurierungsmodellHuggingFace
    Stable DiffusionLatente Diffusions-PriorsHuggingFace
    LLaVAVision-Sprache-CaptionerHuggingFace
    RAMRecognition-Aware ModelGitHub Release

    Installationsschritte

    1. Erstellen Sie das Gewichtsverzeichnis:
    root@kitploit:~
    mkdir -p Method/Reconstruction/weights
    
    1. Laden Sie die Gewichte herunter und platzieren Sie sie gemäß den Anweisungen in den jeweiligen Modell-Repositories.

    2. Aktualisieren Sie die Konfigurationsdateien in Method/Reconstruction/configs/, um auf Ihre heruntergeladenen Gewichte zu verweisen.

    🏗️ Projektstruktur

    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
    

    🚀 Schnellstart

    Option A: Einmalige End-to-End-Pipeline (Empfohlen)

    Der empfohlene Einstiegspunkt ist run_pipeline.sh, das die drei CRS-Stufen kaskadiert:

    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
    

    Das Skript führt Folgendes aus:

    1. Stufe 1 (Korruption) – generiert 45 korrumpierte Varianten
    2. Stufe 2 (Rekonstruktion) – DiffBIR v2.1 mit LLaVA-Captioner
    3. Stufe 3 (Selektion) – DBSCAN räumliche Konsens-Abstimmung

    Die endgültigen bereinigten Detektionen werden in <OUTPUT_DIR>/final/ geschrieben.

    Option B: Jede Stufe manuell ausführen

    Verwenden Sie dies, wenn Sie Zwischenschritte überprüfen / ersetzen möchten.

    Stufe 1: Korruption

    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
    

    Stufe 2: Rekonstruktion

    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
    

    Stufe 3: Selektion (DBSCAN-Abstimmung)

    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
    

    📊 Evaluierung

    Schritt 1: Umgebung aktivieren

    root@kitploit:~
    conda activate odpure
    

    Schritt 2: Detektor auf drei Splits ausführen

    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
    

    Schritt 3: ASR / mAP berechnen

    OMA (Object Misclassification Attack)

    root@kitploit:~
    python evaluation/OMA_ASR_new.py
    

    Konfigurieren Sie die Pfade im Skript:

    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 berechnen

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

    🛡️ Verteidigungskonfiguration

    Standard-ODPure-Einstellungen

    ParameterWertBeschreibung
    num_corruptions15 Typen × 3 Schweregrade = 45 VariantenKorruptionsvielfalt
    corruption_severity1, 2, 3Korruptionsintensitätsstufen
    DBSCAN eps0.5Clustering-Radius
    DBSCAN min_samples10Konsens-Schwellenwert
    cfg_scale6.0Classifier-free guidance
    noise_aug1Rauschverstärkungsstufe

    Korruptionstypen

    ODPure verwendet 15 verschiedene Korruptionsfunktionen aus 4 Kategorien:

    • Rauschen: Gaussian, Shot, Impulse
    • Unschärfe: Gaussian, Glass, Motion, Zoom, Defocus
    • Wetter: Snow, Frost, Fog, Brightness
    • Digital: JPEG compression, Pixelate, Elastic transform

    🔧 Erweiterte Nutzung

    Benutzerdefinierte Korruptionen

    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)
    

    Multi-GPU-Verarbeitung

    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
    

    Integration mit 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
    

    📈 Experimentelle Ergebnisse

    Verteidigungsleistung auf VOC und COCO (Schachbrett-Trigger)

    AngriffDatensatz (Modell)Clean mAPVor Verteidigung (mAP/ASR)Nach Verteidigung (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%

    Robustheit gegen adaptive Angriffe

    TriggerAngriffClean mAPVor ASRNach ASR
    Poké BallOMA77.3%95.5%19.8%
    Poké BallODA75.3%98.5%35.1%
    Poké BallOGA79.8%96.8%15.4%
    Solid WhiteOMA75.5%82.0%52.9%
    Solid WhiteODA71.8%71.1%44.0%
    Solid WhiteOGA80.2%73.7%37.0%

    🔬 Bedrohungsmodell

    Fähigkeiten des Angreifers

    • Implantiert eine Backdoor durch Datenvergiftung während des Trainings
    • Manipuliert Detektoren, um bösartige Verhaltensweisen zu zeigen (OMA, ODA, OGA)
    • Behält normale Vorhersagen bei sauberen Eingaben bei

    Einschränkungen des Verteidigers

    • Angriffsagnostisch: Kein Vorwissen über Trigger-Muster
    • Strikt Black-Box: Nur Abfrage von Eingaben und Beobachtung von Ausgaben
    • Keine Trainingsdaten: Bereinigung nur auf Eingaben zur Inferenzzeit

    Verteidigungsziele

    • Sicherheit: Abschwächung der Backdoor-Aktivierung (niedrige ASR)
    • Treue: Beibehaltung eines hohen mAP bei sauberen und bereinigten Eingaben

    Angriffstypen

    AngriffstypBeschreibungVerhalten
    OMAObject Misclassification AttackErzwingt die Fehlklassifizierung von Zielobjekten
    ODAObject Disappearance AttackLässt Zielobjekte aus der Erkennung verschwinden
    OGAObject Generation AttackErzeugt halluzinierte Geisterobjekte

    📚 Zitierung

    Wenn Sie diese Arbeit in Ihrer Forschung als nützlich erachten, zitieren Sie bitte:

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

    📝 Lizenz

    Dieses Projekt ist unter der MIT-Lizenz lizenziert - siehe die LICENSE-Datei für Details.

    🤝 Danksagungen

    • DiffBIR - Diffusionsbasierte Bildrestaurierung
    • LLaVA - Großer Sprach- und Vision-Assistent
    • YOLOv5 - Objekterkennungsframework
    • CLIP - Kontrastives Sprach-Bild-Vortraining

    📧 Kontakt

    Für Fragen oder Kooperationen öffnen Sie bitte ein Issue auf GitHub.


    ODPure - Schützt Objekterkennungssysteme vor Backdoor-Angriffen bei gleichzeitiger Aufrechterhaltung der kontinuierlichen Wahrnehmung.

    Tool herunterladen