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.

FeedsKontaktDatenschutz© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
T-Backdoor — Forschungscode zur Implementierung von T-Backdoor, zeitlich ausgelösten Backdoor-Angriffen auf spiking neuronale Netze unter Verwendung von Rate-, Latenz- und Jitter-Triggern ohne räumliche Perturbation. | Kitploit
Tools/GitHubGitHub/sisl-uri/t-backdoor
Maschinelles LernenPapers & ForschungLernen & BildungKI-SicherheitAdversarial-Angriff
GitHubsisl-uri/t-backdoor

T-Backdoor

Forschungscode zur Implementierung von T-Backdoor, zeitlich ausgelösten Backdoor-Angriffen auf spiking neuronale Netze unter Verwendung von Rate-, Latenz- und Jitter-Triggern ohne räumliche Perturbation.

Repository anzeigen
171vor 25 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

Beispielcodes für das Paper: 'T-Backdoor: Exploiting Temporal Redundancy in Neuromorphic Data for Spike-preserving Backdoor Attacks on SNNs'

Zusammenfassung

Backdoor-Angriffe stellen eine ernsthafte Sicherheitsbedrohung für tiefe neuronale Netze (DNNs) dar und sind für spikende neuronale Netze (SNNs) weitgehend unerforscht. Bestehende Angriffe führen hauptsächlich raumzeitliche Trigger ein, die Abweichungen in der Spike-Verteilung vergifteter Proben gegenüber ihren sauberen Gegenstücken hervorrufen. Um diese Einschränkung zu adressieren, schlägt diese Arbeit einen neuartigen Backdoor-Angriff auf SNNs vor, genannt \textbf{T-Backdoor}, der ausschließlich mit zeitlichen Triggern wie \textit{Rate}, \textit{Latency} und \textit{Jitter} arbeitet, ohne jegliche räumliche Störung einzuführen, wodurch die Verschiebung der Spike-Verteilungen deutlich schwerer zu erkennen ist. Durch umfangreiche Experimente auf drei Benchmark-Neuromorphik-Datensätzen: N-MNIST, CIFAR10-DVS und N-Caltech101, sowie Evaluierung gegen sieben Baseline-Backdoor-Abwehrverfahren zeigen wir, dass T-Backdoor eine nahezu perfekte Angriffserfolgsrate (ASR) von 100% sowohl in Single-Target- als auch in Multi-Target-Szenarien erreicht, mit nur geringfügiger Verschlechterung der sauberen Genauigkeit, während es robust gegenüber bestehenden Backdoor-Erkennungs- und -Abschwächungstechniken bleibt.

Repository-Struktur

├── models.py                          # Architectures for all datasets (shared)
├── datasets.py                        # Neuromorphic dataset loading (shared)
│
├── main_single.py                     # 1. Single-target entry point
├── single_poisoned_dataset.py         #    Trigger implementations + loaders
├── single_utils.py                    #    Train/eval loop, saving, plots
├── single_target.sh                   #    Paper runs
│
├── main_multi_target.py               # 2. Multi-target entry point
├── multi_target_poisoned_dataset.py   #    Per-target parameter assignment
├── multi_target_utils.py              #    Per-target ASR tracking, saving
├── multi_target.sh                    #    Paper runs
│
├── main_mtmt.py                       # 3. Multi-trigger multi-target entry point
├── mtmt_poisoned_dataset.py           #    Per-target trigger-type config
├── mtmt_utils.py                      #    Per-target ASR tracking, saving
└── mtmt.sh                            #    Paper runs

Anforderungen

  • Python 3.11
  • CUDA-fähige GPU (CPU funktioniert, ist aber unpraktisch langsam)
python -m venv venv
source venv/bin/activate

pip install torch torchvision          # CUDA build matching your driver
pip install spikingjelly
pip install numpy scipy matplotlib seaborn tqdm

Referenzumgebung, die für die berichteten Ergebnisse verwendet wurde:

PaketVersion
Python3.11.10
torch2.11.0+cu128
torchvision0.26.0+cu128
numpy2.2.6
scipy1.16.0
matplotlib3.8.4
seaborn0.13.2
spikingjellylatest from source

Datensatz-Einrichtung

Laden Sie die rohen neuromorphen Datensätze herunter und platzieren Sie jeden in einem eigenen Unterverzeichnis von data/, genau benannt wie der --dataset-Wert:

data/
├── mnist/       # N-MNIST
├── cifar10/     # CIFAR10-DVS
├── caltech/     # N-Caltech101
└── gesture/     # DVS128-Gesture

⚠️ data/ muss ein wörtliches Verzeichnis in Ihrem Arbeitsverzeichnis sein

Verwendung

1. Single-Target (main_single.py)

Ein Trigger, eine Zielklasse.

python main_single.py --dataset cifar10 --type latency --delay_frames 1 \
    --T 10 --epochs 100 --epsilon 0.1 --data_dir 'data/'

Kernargumente

ArgumentStandardBeschreibung
--datasetgesturemnist, cifar10, caltech, gesture
--typestaticstatic, moving, smart, latency, rate, jitter, jitter_fixed
--epsilon0.1Anteil des Trainingssatzes, der vergiftet wird
--trigger_label0Zielklasse
--T10Simulationszeitschritte
--epochs10Trainingsepochen
--batch_size16Batch-Größe
--lr0.001Lernrate
--lossmsemse oder cross
--optimadamadam oder sgd
--ampausAutomatische gemischte Präzision aktivieren
--seed42Zufallsseed
--data_dirdata/Datensatz-Wurzelverzeichnis
--save_pathexperiments_singleAusgabe-Wurzelverzeichnis
--model_pathNoneVon einem vortrainierten Checkpoint starten

Triggerspezifische Argumente

ArgumentStandardGilt für
--delay_frames2latency — Verzögerungsframes
--scale_factor0.5rate — <1 langsamer, >1 schneller
--n_shift3jitter_fixed — Anzahl der vertauschten Frame-Paare
--trigger_size0.1static/moving/smart — Patch-Größe als Bruchteil der Breite
--postop-leftstatic — top-left, top-right, bottom-left, bottom-right, middle, random
--polarity3static/moving/smart — 0=schwarz, 1=dunkelblau, 2=grün, 3=hellblau
--n_masks2smart — Anzahl der Kandidatenregionen
--leastaussmart — auf die am wenigsten aktive Region abzielen statt auf die aktivste
--most_polarityaussmart — die aktivste Polarität in der Region verwenden

Das Setzen von --epsilon 0.0 trainiert ein sauberes Baseline-Modell.


2. Multi-Target (main_multi_target.py)

Ein Trigger-Typ, N Zielklassen getrennt durch den Parameterwert des Triggers.

# Latency: delay 1 -> class 0, delay 3 -> class 1, delay 5 -> class 2
python main_multi_target.py --dataset mnist --type latency --n_targets 3 \
    --trigger_labels 0 1 2 --delay_params 1 3 5 \
    --epsilon 0.2 --T 10 --epochs 10 --data_dir 'data/'
ArgumentStandardBeschreibung
--typeratestatic, latency, rate, jitter, jitter_fixed
--n_targets3Anzahl der Zielklassen
--trigger_labels[0..n-1]Explizite Ziel-Labels; Länge muss gleich --n_targets sein
--epsilon0.1Gesamt-Budget, gleichmäßig auf die Ziele aufgeteilt

Pro-Ziel-Parameter. Geben Sie sie explizit an, oder lassen Sie sie automatisch durch np.linspace über einen Bereich zuweisen. Explizite Listen müssen die Länge --n_targets haben und überschreiben die Bereichsargumente.

TriggerExplizitAuto-BereichAuto-Standard
latency--delay_params 1 3 5--delay_min, --delay_max1 … T//2
rate--rate_params 0.3 0.6 0.9--rate_min, --rate_max0.1 … 6.0
jitter--jitter_params 0.05 0.15 0.25--jitter_std_min, --jitter_std_max0.05 … 0.3
jitter_fixed--nshift_params 1 3 5--n_shift_min, --n_shift_max1 … max(n_shift_min+1, T//4)
static——T aufgeteilt in n_targets Frame-Gruppen

Automatisch zugewiesene ganzzahlige Parameter (latency, jitter_fixed) werden durch Inkrementieren von Kollisionen dedupliziert, sodass keine zwei Ziele denselben Wert teilen.

Bei static werden die Ziele dadurch getrennt, welche Frames den Patch tragen — die Zeitachse unterscheidet sie, nicht das Erscheinungsbild des Patches.

Die Pro-Ziel-ASR wird in jeder Epoche zusammen mit der sauberen Genauigkeit ausgegeben.


3. Multi-Trigger Multi-Target (main_mtmt.py)

Ein anderer Trigger-Typ pro Ziel.

python main_mtmt.py --dataset mnist --T 10 --n_targets 5 \
    --target_types latency latency rate rate jitter_fixed \
    --trigger_labels 0 1 2 3 4 \
    --latency_delays 1 2 --rate_scales 0.5 2.0 --jitter_fixed_shifts 3 \
    --epsilon 0.3 --epochs 100 --data_dir 'data/'
Tool herunterladen