Skip to content
KitploitKITPLOIT
OutilsExploitsBlog
Log in
Soumettre
OutilsExploitsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

FluxContactConfidentialité© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
T-Backdoor — Code de recherche implémentant T-Backdoor, des attaques par porte dérobée à déclencheur temporel sur les réseaux de neurones impulsionnels utilisant des déclencheurs de taux, de latence et de gigue sans perturbation spatiale. | Kitploit
Outils/GitHubGitHub/sisl-uri/t-backdoor
Apprentissage AutomatiqueArticles et RechercheApprentissage et ÉducationSécurité de l'IAAttaque Adversariale
GitHubsisl-uri/t-backdoor

T-Backdoor

Code de recherche implémentant T-Backdoor, des attaques par porte dérobée à déclencheur temporel sur les réseaux de neurones impulsionnels utilisant des déclencheurs de taux, de latence et de gigue sans perturbation spatiale.

Voir le dépôt
171il y a 25 joursPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Exemples de codes pour l'article : « T-Backdoor : Exploiter la redondance temporelle dans les données neuromorphiques pour des attaques par porte dérobée préservant les spikes sur les SNN »

Résumé

Les attaques par porte dérobée constituent une menace sérieuse pour la sécurité des réseaux de neurones profonds (DNN) et restent largement sous-explorées pour les réseaux de neurones impulsionnels (SNN). Les attaques existantes introduisent principalement des déclencheurs spatio-temporels qui induisent des déviations dans la distribution des spikes des échantillons empoisonnés par rapport à leurs homologues propres. Pour remédier à cette limitation, ce travail propose une nouvelle attaque par porte dérobée sur les SNN, appelée \textbf{T-Backdoor}, qui opère à l'aide de déclencheurs purement temporels tels que \textit{Rate}, \textit{Latency} et \textit{Jitter} sans introduire aucune perturbation spatiale, rendant le décalage dans les distributions de spikes nettement plus difficile à détecter. Grâce à des expériences approfondies sur trois jeux de données neuromorphiques de référence : N-MNIST, CIFAR10-DVS et N-Caltech101, et à une évaluation face à sept méthodes de défense par porte dérobée de référence, nous démontrons que T-Backdoor atteint un taux de réussite d'attaque (ASR) quasi parfait de 100 % dans les configurations à cible unique et à cibles multiples, avec seulement une dégradation mineure de la précision sur données propres, tout en restant robuste face aux techniques existantes de détection et d'atténuation des portes dérobées.

Organisation du dépôt

├── 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

Prérequis

  • Python 3.11
  • GPU compatible CUDA (le CPU fonctionne mais est impraticablement lent)
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

Environnement de référence utilisé pour les résultats rapportés :

PaquetVersion
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

Configuration des jeux de données

Téléchargez les jeux de données neuromorphiques bruts et placez chacun dans son propre sous-répertoire de data/, nommé exactement comme la valeur de --dataset :

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

⚠️ data/ doit être un répertoire littéral dans votre répertoire de travail

Utilisation

1. Cible unique (main_single.py)

Un déclencheur, une classe cible.

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

Arguments principaux

ArgumentDéfautDescription
--datasetgesturemnist, cifar10, caltech, gesture
--typestaticstatic, moving, smart, latency, rate, jitter, jitter_fixed
--epsilon0.1Fraction de l'ensemble d'entraînement à empoisonner
--trigger_label0Classe cible
--T10Pas de temps de simulation
--epochs10Époques d'entraînement
--batch_size16Taille du lot
--lr0.001Taux d'apprentissage
--lossmsemse ou cross
--optimadamadam ou sgd
--ampdésactivéActiver la précision mixte automatique
--seed42Graine aléatoire
--data_dirdata/Racine des jeux de données
--save_pathexperiments_singleRacine de sortie
--model_pathNoneDémarrer à partir d'un point de contrôle pré-entraîné

Arguments spécifiques aux déclencheurs

ArgumentDéfautS'applique à
--delay_frames2latency — trames de retard
--scale_factor0.5rate — <1 plus lent, >1 plus rapide
--n_shift3jitter_fixed — nombre de paires de trames échangées
--trigger_size0.1static/moving/smart — taille du patch en fraction de la largeur
--postop-leftstatic — top-left, top-right, bottom-left, bottom-right, middle, random
--polarity3static/moving/smart — 0=noir, 1=bleu foncé, 2=vert, 3=bleu clair
--n_masks2smart — nombre de régions candidates
--leastdésactivésmart — cibler la région la moins active au lieu de la plus active
--most_polaritydésactivésmart — utiliser la polarité la plus active dans la région

Définir --epsilon 0.0 entraîne un modèle de référence propre.


2. Cibles multiples (main_multi_target.py)

Un type de déclencheur, N classes cibles séparées par la valeur du paramètre du déclencheur.

# 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/'
ArgumentDéfautDescription
--typeratestatic, latency, rate, jitter, jitter_fixed
--n_targets3Nombre de classes cibles
--trigger_labels[0..n-1]Étiquettes cibles explicites ; la longueur doit être égale à --n_targets
--epsilon0.1Budget total, réparti uniformément entre les cibles

Paramètres par cible. Fournissez-les explicitement, ou laissez-les être auto-attribués par np.linspace sur une plage. Les listes explicites doivent avoir une longueur de --n_targets et remplacent les arguments de plage.

DéclencheurExplicitePlage autoDéfaut auto
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 divisé en n_targets groupes de trames

Les paramètres entiers auto-attribués (latency, jitter_fixed) sont dédupliqués en incrémentant les collisions, de sorte que deux cibles ne partagent jamais une valeur.

Pour static, les cibles sont séparées par quelles trames portent le patch — l'axe temporel les distingue plutôt que l'apparence du patch.

L'ASR par cible est affiché à chaque époque, aux côtés de la précision sur données propres.


3. Déclencheurs multiples et cibles multiples (main_mtmt.py)

Un type de déclencheur différent par cible.

Télécharger l’outil