
Codice per l'articolo ACL 2026 (main) "DeepGuard: Secure Code Generation via Multi-Layer Semantic Aggregation"

DeepGuard è un approccio innovativo per la generazione di codice sicuro che migliora la capacità dei modelli linguistici di grandi dimensioni di generare codice sicuro attraverso tecniche di aggregazione semantica multi-livello. Questo metodo identifica e mitiga efficacemente le vulnerabilità di sicurezza nel codice, fornendo agli sviluppatori soluzioni di generazione di codice più sicure.
.
├── 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
Addestra i modelli DeepGuard utilizzando il nostro dataset curato:
cd deepguard
python train.py --model_name qwen2.5-7b --aggregation_method attention
Parametri di Addestramento:
--model_name: Nome del modello base (qwen2.5-3b, qwen2.5-7b, deepseek-1.3b, deepseek-6.7b, seedcoder-8b)--aggregation_method: Metodo di aggregazioneEsegui gli script di valutazione della sicurezza:
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
Aggregatore semantico multi-livello per integrare gli stati nascosti di diversi livelli 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
Analizzatore di sicurezza per valutare la sicurezza del codice e fornire indicazioni di sicurezza:
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
Modello LoRA security-aware per un miglioramento efficiente della sicurezza:
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 è in grado di rilevare e mitigare diverse vulnerabilità di sicurezza comuni del codice in vari linguaggi di programmazione:
| CWE ID | Nome della Vulnerabilità | Descrizione | Linguaggi Supportati | Livello di Gravità |
|---|---|---|---|---|
| CWE-020 | Convalida impropria degli input | Validazione inadeguata degli input che può portare a vari problemi di sicurezza | Python | Alta |
| CWE-022 | Limitazione impropria di un percorso a una directory ristretta | Vulnerabilità di path traversal che consente l'accesso a file al di fuori delle directory ristrette | Python | Alta |
| CWE-078 | Iniezione di comandi del sistema operativo | Iniezione di comandi del sistema operativo che consente l'esecuzione di comandi di sistema arbitrari | Python | Critica |
| CWE-079 | Cross-site Scripting (XSS) | Attacchi di cross-site scripting che consentono l'esecuzione di script dannosi nei browser degli utenti | Python | Alta |
| CWE-089 | Iniezione SQL | Attacchi di iniezione SQL che consentono la manipolazione delle query del database | Python | Critica |
| CWE-119 | Overflow del buffer | Overflow del buffer che può portare all'esecuzione di codice o al crash del sistema | C | Critica |
| CWE-125 | Lettura fuori dai limiti | Lettura fuori dai limiti che può portare alla divulgazione di informazioni | C | Media |
| CWE-190 | Overflow di interi | Overflow di interi che può portare a comportamenti imprevisti o vulnerabilità di sicurezza | C | Media |
| CWE-416 | Uso dopo la liberazione | Vulnerabilità use-after-free che può portare all'esecuzione di codice o al crash del sistema | C | Critica |
| CWE-476 | Dereferenziazione di puntatore NULL | Dereferenziazione di puntatore NULL che può causare il crash del programma | C | Media |
| CWE-502 | Deserializzazione di dati non attendibili | Deserializzazione di dati non attendibili che può portare all'esecuzione di codice | Python | Alta |
| CWE-732 | Assegnazione errata dei permessi | Assegnazione errata dei permessi che può portare ad accessi non autorizzati | Python, C | Media |
| CWE-787 | Scrittura fuori dai limiti | Scrittura fuori dai limiti che può portare all'esecuzione di codice o alla corruzione dei dati | C | Critica |
DeepGuard supporta due modalità di valutazione:
Ogni tipo di vulnerabilità fornisce test case corrispondenti e dati di valutazione nelle directory data_eval/unit_test/ e data_eval/sec_eval/.
Forniamo programmi di esempio generati dal modello base e da DeepGuard per illustrarne ulteriormente i comportamenti.
Questa vulnerabilità si verifica quando input controllati dall'utente vengono utilizzati per costruire comandi del sistema operativo senza sanitizzazione. Il prompt per "CWE-078 0-py" è: