Condivisione della tecnologia

Studio cartaceo_Uno studio empirico di modelli di deep learning per il rilevamento delle vulnerabilità

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Introduzione

Contesto della ricerca : Negli ultimi anni, gli strumenti di rilevamento delle vulnerabilità del deep learning hanno ottenuto risultati promettenti. Il modello all'avanguardia riporta un punteggio F1 di 0,9 e supera l'analizzatore statico. I risultati sono entusiasmanti perché il deep learning potrebbe rivoluzionare la sicurezza del software. Pertanto, aziende del settore come IBM, Google e Amazon sono molto interessate e investono molto nello sviluppo di tali strumenti e set di dati.

Problemi esistenti : Sebbene il rilevamento delle vulnerabilità del deep learning sia promettente, non ha ancora raggiunto il livello della visione artificiale e dell’elaborazione del linguaggio naturale. Gran parte dell’attuale focus della ricerca è sulla sperimentazione di modelli emergenti di deep learning e sulla loro applicazione a set di dati come i set di dati Designn o MSR. Tuttavia, sappiamo molto poco del modello stesso, ad esempio, quali tipi di programmi può gestire efficacemente il modello, se dovremmo creare un modello per ciascun tipo di vulnerabilità o dovremmo creare un modello unificato per tutti i tipi di vulnerabilità con buoni dati di addestramento. l'aspetto del set e quali informazioni utilizza il modello quando prende decisioni. Conoscere le risposte a queste domande può aiutarci a sviluppare, eseguire il debug e applicare meglio i modelli. Tuttavia, è difficile rispondere a queste domande data la natura “scatola nera” del deep learning. Lo scopo del documento non è quello di fornire soluzioni complete a questi problemi, ma di esplorare questi obiettivi.

Domanda scientifica : In questo articolo, l'articolo analizza e riproduce una serie di modelli all'avanguardia di rilevamento delle vulnerabilità del deep learning e stabilisce domande di ricerca per comprendere tali modelli, con l'obiettivo di trarne lezioni e indicazioni per una migliore progettazione e debug dei modelli futuri.Il documento inquadra la domanda di ricerca e la divide in tre aree, vale a direCapacità del modellodati di allenamentoESpiegazione del modello . Nello specifico, l'obiettivo principale del documento è comprendere le capacità del deep learning nei problemi di rilevamento delle vulnerabilità, con particolare attenzione alle seguenti domande di ricerca:

  • Domanda 1 : Modelli diversi possono raggiungere un consenso sul rilevamento delle vulnerabilità? Quali sono le differenze tra i diversi modelli?
  • Domanda 2 : Alcuni tipi di vulnerabilità sono più facili da rilevare? Dovresti creare un modello per ogni tipo di vulnerabilità o dovresti creare un modello che rilevi tutte le vulnerabilità?
  • Domanda 3 : Esistono alcuni modelli di codice difficili da prevedere per il modello? Se tale modello di codice esiste, che tipo di modello di codice è?

Il secondo focus di ricerca del documento riguarda i dati di addestramento. L'obiettivo del documento è comprendere se e come la dimensione e la composizione dei dati di training influiscono sulle prestazioni del modello. Nello specifico, il contributo costruisce le seguenti domande di ricerca:

  • Domanda 4: L'aumento delle dimensioni del set di dati aiuta a migliorare le prestazioni del modello per il rilevamento delle vulnerabilità?
  • Domanda 5: in che modo la composizione degli elementi nel set di dati di addestramento influisce sulle prestazioni del modello?

Infine, la terza area di ricerca della tesi è l’interpretazione dei modelli. Il documento utilizza lo strumento di interpretazione del modello SOTA per indagare:

  • Domanda 6 : quali informazioni sul codice sorgente utilizza il modello per la previsione? Il modello è coerente su caratteristiche importanti?

contenuto della ricerca : Per rispondere alle domande di cui sopra, l’articolo esamina i modelli di deep learning all’avanguardia e riproduce con successo 11 modelli sui loro set di dati originali. Questi modelli utilizzano diverse architetture di deep learning come GNN, RNN, LSTM, CNN e Transformers. Per confrontare questi modelli, il documento è riuscito a eseguire 9 modelli con due set di dati popolari, Designn e MSR. I motivi per cui il documento sceglie questi due set di dati sono: (1) entrambi i set di dati contengono progetti e vulnerabilità del mondo reale (2) i modelli nella maggior parte dei documenti vengono valutati e ottimizzati utilizzando il set di dati Devign (3) Il set di dati MSR contiene 310 progetti; e i dati sono annotati con i tipi di vulnerabilità, il che è cruciale per la nostra domanda di ricerca. Attraverso esperimenti attentamente progettati e considerazione delle minacce, lo studio ha trovato risultati per sei domande di ricerca. Nel complesso, i contributi di ricerca di questo articolo includono:

  • contributo: 1: questo documento conduce un sondaggio completo sui modelli di rilevamento delle vulnerabilità del deep learning.
  • Contribuire 2: Il documento fornisce un repository di codici contenente 11 modelli di training e set di dati per il framework di deep learning SOTA con varie impostazioni di ricerca.
  • Contribuire 3: L'articolo progetta 6 domande scientifiche per comprendere le capacità del modello, i dati di training e l'interpretazione del modello.
  • Contribuire 4: L'articolo struttura la ricerca e ottiene i risultati attraverso esperimenti sulla questione scientifica posta.
  • Contribuisci 5: Il documento prepara esempi e dati interessanti per indagare ulteriormente l'interpretabilità del modello.

2. Riproduzione del modello

Per raccogliere i modelli di deep learning più avanzati, il documento ha studiato documenti dal 2018 al 2022 e ha fatto riferimento alle classifiche CodeXGLUE di Microsoft e alle classifiche D2A di rilevamento dei difetti di IBM. Il documento ha utilizzato tutti i modelli open source disponibili e ha riprodotto con successo 11 modelli. Un elenco completo dei modelli, nonché i motivi per cui non siamo riusciti a riprodurre alcuni modelli, è incluso nel pacchetto di replica dei dati del documento.

Come mostrato nella tabella sopra, i modelli riprodotti coprono varie architetture di deep learning. Designn e ReVeal utilizzano GNN sui grafici delle proprietà, integrando flusso di controllo, dipendenze dei dati e AST. ReGVD utilizza GNN sui token. Code2Vec utilizza un percettrone multistrato (MLP) sull'AST. VulDeeLocator e SySeVR sono modelli di sequenza basati su RNN e Bi-LSTM. Il recente rilevamento del deep learning utilizza trasformatori pre-addestrati, tra cui CodeBERT, VulBERTa-CNN, VulBERTa-MLP, PLBART e LineVul.

In risposta alle domande di ricerca del documento, il documento ha selezionato i set di dati Designn e MSR. L'articolo studia questi 11 modelli sui set di dati utilizzati nei loro articoli originali, mostrati nella tabella sopra. L'articolo ha rilevato che il set di dati Designn è stato utilizzato per valutare e mettere a punto 8 modelli. Il set di dati è un set di dati bilanciato contenente un numero approssimativamente uguale di esempi vulnerabili e non vulnerabili, per un totale di 27.318 punti dati (ogni esempio viene anche definito punto dati). LineVul utilizza il set di dati MSR, che è un set di dati disponibile di recente. Il set di dati è sbilanciato e contiene 10.900 esempi vulnerabili e 177.736 esempi non vulnerabili. Negli esempi sono presenti i progetti di origine e le voci CWE (Common Weakness Enumeration) che mostrano il tipo di vulnerabilità. Il documento utilizza queste caratteristiche del dataset per formulare alcune domande di ricerca.

Il documento riproduce i risultati del modello in base al set di dati e alle impostazioni originali, come mostrato nella tabella sopra. Tra queste, le colonne A, P, R e F rappresentano indicatori comunemente utilizzati nel rilevamento delle vulnerabilità del deep learning, tra cui accuratezza, precisione, richiamo e punteggio F1. Rispetto alla carta originale, i risultati della riproduzione della carta presentano solitamente un errore di calcolo entro il 2%. Casi speciali sono ReVeal, in cui gli autori hanno confermato che i nostri risultati hanno corretto l'errore di fuga di dati nell'articolo originale, e Devign, in cui l'articolo ha utilizzato un codice replicato di terze parti (pubblicato da Chakaborthy et al.) poiché il codice Devign originale non lo era fonte aperta.