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.

FeedsContactoPrivacidad© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
T-Backdoor — Código de investigación que implementa T-Backdoor, ataques de puerta trasera con activador temporal en redes neuronales de impulsos utilizando activadores de tasa, latencia y jitter sin perturbación espacial. | Kitploit
Herramientas/GitHubGitHub/sisl-uri/t-backdoor
Aprendizaje AutomáticoPapers e InvestigaciónAprendizaje y EducaciónSeguridad de IAAtaque Adversario
GitHubsisl-uri/t-backdoor

T-Backdoor

Código de investigación que implementa T-Backdoor, ataques de puerta trasera con activador temporal en redes neuronales de impulsos utilizando activadores de tasa, latencia y jitter sin perturbación espacial.

Ver Repositorio
171hace 25 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

Códigos de ejemplo para el artículo: 'T-Backdoor: Exploiting Temporal Redundancy in Neuromorphic Data for Spike-preserving Backdoor Attacks on SNNs'

Resumen

Los ataques de puerta trasera son una amenaza de seguridad grave para las redes neuronales profundas (DNN) y siguen estando en gran medida poco explorados en las redes neuronales de picos (SNN). Los ataques existentes introducen principalmente disparadores espaciotemporales que inducen desviaciones en la distribución de picos de las muestras envenenadas respecto a sus contrapartes limpias. Para abordar esta limitación, este trabajo propone un novedoso ataque de puerta trasera sobre SNN, denominado \textbf{T-Backdoor}, que opera utilizando disparadores puramente temporales como \textit{Rate}, \textit{Latency} y \textit{Jitter} sin introducir ninguna perturbación espacial, lo que hace que el cambio en las distribuciones de picos sea significativamente más difícil de detectar. Mediante experimentos exhaustivos en tres conjuntos de datos neuromórficos de referencia: N-MNIST, CIFAR10-DVS y N-Caltech101, y la evaluación frente a siete métodos de defensa de puerta trasera de referencia, demostramos que T-Backdoor alcanza una tasa de éxito de ataque (ASR) casi perfecta del 100% tanto en configuraciones de objetivo único como de objetivos múltiples, con solo una degradación menor en la precisión limpia, a la vez que se mantiene robusto frente a las técnicas existentes de detección y mitigación de puertas traseras.

Estructura del repositorio

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

Requisitos

  • Python 3.11
  • GPU compatible con CUDA (la CPU funciona pero es impracticablemente lenta)
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

Entorno de referencia utilizado para los resultados reportados:

PaqueteVersión
Python3.11.10
torch2.11.0+cu128
torchvision0.26.0+cu128
numpy2.2.6
scipy1.16.0
matplotlib3.8.4
seaborn0.13.2
spikingjellyúltima desde el código fuente

Configuración del conjunto de datos

Descargue los conjuntos de datos neuromórficos sin procesar y coloque cada uno en su propio subdirectorio de data/, nombrado exactamente como el valor de --dataset:

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

⚠️ data/ debe ser un directorio literal en su directorio de trabajo

Uso

1. Objetivo único (main_single.py)

Un disparador, una clase objetivo.

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

Argumentos principales

ArgumentoPredeterminadoDescripción
--datasetgesturemnist, cifar10, caltech, gesture
--typestaticstatic, moving, smart, latency, rate, jitter, jitter_fixed
--epsilon0.1Fracción del conjunto de entrenamiento a envenenar
--trigger_label0Clase objetivo
--T10Pasos de tiempo de simulación
--epochs10Épocas de entrenamiento
--batch_size16Tamaño del lote
--lr0.001Tasa de aprendizaje
--lossmsemse o cross
--optimadamadam o sgd
--ampdesactivadoHabilitar precisión mixta automática
--seed42Semilla aleatoria
--data_dirdata/Raíz del conjunto de datos
--save_pathexperiments_singleRaíz de salida
--model_pathNoneComenzar desde un checkpoint preentrenado

Argumentos específicos del disparador

ArgumentoPredeterminadoSe aplica a
--delay_frames2latency — fotogramas de retardo
--scale_factor0.5rate — <1 más lento, >1 más rápido
--n_shift3jitter_fixed — número de pares de fotogramas intercambiados
--trigger_size0.1static/moving/smart — tamaño del parche como fracción del ancho
--postop-leftstatic — top-left, top-right, bottom-left, bottom-right, middle, random
--polarity3static/moving/smart — 0=negro, 1=azul oscuro, 2=verde, 3=azul claro
--n_masks2smart — número de regiones candidatas
--leastdesactivadosmart — apuntar a la región menos activa en lugar de la más activa
--most_polaritydesactivadosmart — usar la polaridad más activa en la región

Establecer --epsilon 0.0 entrena un modelo de referencia limpio.


2. Objetivos múltiples (main_multi_target.py)

Un tipo de disparador, N clases objetivo separadas por el valor del parámetro del disparador.

# 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/'
ArgumentoPredeterminadoDescripción
--typeratestatic, latency, rate, jitter, jitter_fixed
--n_targets3Número de clases objetivo
--trigger_labels[0..n-1]Etiquetas objetivo explícitas; la longitud debe ser igual a --n_targets
--epsilon0.1Presupuesto total, dividido equitativamente entre los objetivos

Parámetros por objetivo. Proporciónelos explícitamente, o deje que se asignen automáticamente mediante np.linspace sobre un rango. Las listas explícitas deben tener longitud --n_targets y anulan los argumentos de rango.

DisparadorExplícitoRango automáticoPredeterminado automático
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 dividido en n_targets grupos de fotogramas

Los parámetros enteros asignados automáticamente (latency, jitter_fixed) se deduplican incrementando las colisiones, de modo que dos objetivos no comparten un valor.

Para static, los objetivos se separan por qué fotogramas portan el parche — el eje temporal los distingue en lugar de la apariencia del parche.

La ASR por objetivo se imprime en cada época, junto con la precisión limpia.


3. Múltiples disparadores y múltiples objetivos (main_mtmt.py)

Un tipo de disparador diferente por objetivo.

Descargar herramienta