
Código para el artículo principal de ACL 2026 "DeepGuard: Secure Code Generation via Multi-Layer Semantic Aggregation"

DeepGuard es un enfoque innovador de generación de código seguro que mejora la capacidad de los modelos de lenguaje de gran tamaño para generar código seguro mediante técnicas de agregación semántica multicapa. Este método identifica y mitiga eficazmente las vulnerabilidades de seguridad en el código, proporcionando a los desarrolladores soluciones de generación de código más seguras.
.
├── data_train_val/ # Training and validation datasets
│ ├── train/ # Training data
│ └── val/ # Validation data
├── data_eval/ # Evaluation datasets
│ ├── sec_eval/ # Security evaluation data
│ └── unit_test/ # Unit test data
├── deepguard/ # DeepGuard core implementation
│ ├── train.py # Training script
│ └── inference.py # Inference script
├── sven/ # SVEN base framework
├── cosec/ # CoSec baseline implementation
├── runs/ # Training and evaluation scripts
│ ├── run_sec_deepguard.sh # DeepGuard evaluation script
│ ├── run_sec_cosec.sh # CoSec evaluation script
│ └── run_sec_base.sh # Base evaluation script
├── trained/ # Pre-trained model weights
├── images/ # Project related images
├── requirements.txt # Python dependencies
├── setup.py # Installation configuration
└── README.md # Project documentation
pip install -r requirements.txt
pip install -e .
./setup_codeql.sh
Entrene modelos DeepGuard utilizando nuestro conjunto de datos curado:
cd deepguard
python train.py --model_name qwen2.5-7b --aggregation_method attention
Parámetros de Entrenamiento:
--model_name: Nombre del modelo base (qwen2.5-3b, qwen2.5-7b, deepseek-1.3b, deepseek-6.7b, seedcoder-8b)--aggregation_method: Método de agregaciónEjecute los scripts de evaluación de seguridad:
cd runs
# Evaluate DeepGuard models
bash run_sec_deepguard.sh
# Evaluate CoSec baseline
bash run_sec_cosec.sh
# Evaluate base models
bash run_sec_base.sh
Agregador semántico multicapa para integrar estados ocultos de diferentes capas de Transformer:
class MultiLayerAggregator(nn.Module):
def __init__(self, num_layers, hidden_size, aggregation_method='attention'):
# Supports attention, weighted, concat aggregation methods
# Optimizes contributions from different layers through learned weights
Analizador de seguridad para evaluar la seguridad del código y proporcionar orientación de seguridad:
class SecurityAnalyzer(nn.Module):
def __init__(self, vocab_size, hidden_size, num_layers=4):
# Combines token-level security embeddings and context processing
# Outputs security scores to guide generation process
Modelo LoRA consciente de la seguridad para una mejora eficiente de la seguridad:
class SecurityAwareLoRAModel(nn.Module):
def generate_with_security(self, input_ids, **kwargs):
# Dynamic adjustment during generation to improve security
# Uses security scores to guide token selection
DeepGuard puede detectar y mitigar diversas vulnerabilidades de seguridad comunes en el código en múltiples lenguajes de programación:
| CWE ID | Nombre de la Vulnerabilidad | Descripción | Lenguajes Soportados | Nivel de Severidad |
|---|---|---|---|---|
| CWE-020 | Validación de Entrada Incorrecta | Validación de entrada inadecuada que puede provocar diversos problemas de seguridad | Python | Alta |
| CWE-022 | Limitación Incorrecta de una Ruta a un Directorio Restringido | Vulnerabilidad de recorrido de rutas (path traversal) que permite acceder a archivos fuera de los directorios restringidos | Python | Alta |
| CWE-078 | Inyección de Comandos del SO | Inyección de comandos del sistema operativo que permite ejecutar comandos arbitrarios del sistema | Python | Crítica |
| CWE-079 | Secuencias de Comandos en Sitios Cruzados (XSS) | Ataques de cross-site scripting que permiten ejecutar scripts maliciosos en los navegadores de los usuarios | Python | Alta |
| CWE-089 | Inyección SQL | Ataques de inyección SQL que permiten manipular consultas de bases de datos | Python | Crítica |
| CWE-119 | Desbordamiento de Búfer | Desbordamiento de búfer que puede provocar ejecución de código o bloqueos del sistema | C | Crítica |
| CWE-125 | Lectura Fuera de los Límites | Lectura fuera de los límites que puede provocar divulgación de información | C | Media |
| CWE-190 | Desbordamiento de Enteros | Desbordamiento de enteros que puede provocar comportamientos inesperados o vulnerabilidades de seguridad | C | Media |
| CWE-416 | Uso Después de Liberación | Vulnerabilidad de uso después de liberación (use-after-free) que puede provocar ejecución de código o bloqueos del sistema | C | Crítica |
| CWE-476 | Desreferencia de Puntero NULO | Desreferencia de un puntero nulo que puede provocar bloqueos del programa | C | Media |
| CWE-502 | Deserialización de Datos No Confiables | Deserialización de datos no confiables que puede provocar ejecución de código | Python | Alta |
| CWE-732 | Asignación Incorrecta de Permisos | Asignación incorrecta de permisos que puede provocar acceso no autorizado | Python, C | Media |
| CWE-787 | Escritura Fuera de los Límites | Escritura fuera de los límites que puede provocar ejecución de código o corrupción de datos | C | Crítica |
DeepGuard admite dos modos de evaluación:
Cada tipo de vulnerabilidad proporciona casos de prueba y datos de evaluación correspondientes en los directorios data_eval/unit_test/ y data_eval/sec_eval/.
Proporcionamos programas de ejemplo generados por el modelo base y DeepGuard para ilustrar mejor sus comportamientos.
Esta vulnerabilidad ocurre cuando entradas controladas por el usuario se utilizan para construir comandos del sistema operativo sin saneamiento. El prompt para "CWE-078 0-py" es: