Skip to content

unipr-xAI-lab/LLMxVulnerabilityDetection

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LLMxVulnerabilityDetection: Rilevazione di Vulnerabilità tramite Large Language Models

Stato del Progetto: Attivo Pull Requests Benvenute

Un repository di ricerca dedicato all'esplorazione e alla valutazione di tecniche basate su Large Language Models (LLM) per l'identificazione automatica di vulnerabilità di sicurezza nel codice sorgente.


📖 Indice


🚀 Introduzione

La sicurezza del software è una sfida critica e in continua evoluzione. Gli strumenti tradizionali di analisi statica del codice (SAST) sono fondamentali, ma spesso producono un numero elevato di falsi positivi o non riescono a identificare vulnerabilità complesse che dipendono dal contesto.

Questo progetto di ricerca, LLMxVulnerabilityDetection, si propone di investigare il potenziale dei Large Language Models (LLM) come nuova frontiera per la rilevazione di vulnerabilità. L'ipotesi è che la capacità degli LLM di "comprendere" il codice in modo più olistico possa superare i limiti degli approcci basati su pattern e regole predefinite.

🎯 Obiettivi della Ricerca

Gli obiettivi principali di questo studio sono:

  1. Valutare l'Efficacia: Misurare le performance (precisione, richiamo, F1-score) di diversi LLM (sia general-purpose che code-specific) nell'identificare vulnerabilità note (es. CWE).
  2. Analisi Comparativa: Confrontare i risultati ottenuti dagli LLM con quelli di strumenti SAST open-source e commerciali di riferimento.
  3. Prompt Engineering: Sviluppare e ottimizzare tecniche di prompting (es. zero-shot, few-shot, chain-of-thought) per massimizzare l'accuratezza della rilevazione.
  4. Creazione di Benchmark: Assemblare e pubblicare un dataset di benchmark standardizzato per testare e confrontare approcci futuri in questo campo.
  5. Analisi dei Limiti: Identificare le classi di vulnerabilità in cui gli LLM eccellono e quelle in cui faticano, fornendo una guida per il loro utilizzo pratico.

🔬 Metodologia

L'approccio sperimentale si articola nelle seguenti fasi:

  • Dataset: Utilizziamo dataset standard per la ricerca sulla sicurezza che contengono un'ampia gamma di esempi di codice vulnerabile e corretto.
  • Modelli: La ricerca includerà test su una varietà di LLM, tra cui [es. GPT-4, Claude 3, Llama 3, Gemini, CodeLlama, ...].
  • Valutazione: Gli esperimenti saranno condotti in modo programmatico tramite script che interrogano le API dei modelli. I risultati saranno analizzati per calcolare le metriche di performance standard e confrontare le capacità di ciascun modello.

📂 Struttura del Repository

Il repository è organizzato per garantire la massima chiarezza e riproducibilità della ricerca.

LLMxVulnerabilityDetection/
├── 📄 README.md                # Questo file
├── 📂 data/                     # Dataset grezzi e processati
│   ├── raw/
│   └── processed/
├── 📂 src/                      # Codice sorgente principale
│   ├── scripts/               # Script per l'esecuzione degli esperimenti
├── 📂 results/                  # Risultati degli esperimenti (CSV, JSON, grafici)
├── 📂 docs/                     # Documentazione aggiuntiva (es. report, presentazioni)
├── 📜 requirements.txt          # Dipendenze Python del progetto
└── 📜 .gitignore               # File ignorati da Git

🛠️ Getting Started

Segui questi passaggi per configurare l'ambiente di sviluppo e iniziare a eseguire gli esperimenti.

Prerequisiti

  • Python 3.9+
  • pip e venv

Installazione

  1. Clona il repository:

    git clone [https://github.com/your-username/LLMxVulnerabilityDetection.git](https://github.com/your-username/LLMxVulnerabilityDetection.git)
    cd LLMxVulnerabilityDetection
  2. Crea e attiva un ambiente virtuale:

    python -m venv venv
    source venv/bin/activate  # Su Windows: venv\Scripts\activate
  3. Installa le dipendenze:

    pip install -r requirements.txt
  4. Configura le chiavi API: Molti esperimenti richiedono l'accesso alle API degli LLM. Crea un file .env nella root del progetto e inserisci le tue chiavi. Il file è già incluso in .gitignore per sicurezza.

    # Esempio per OpenAI
    OPENAI_API_KEY="sk-..."
    
    # Esempio per Google AI Studio
    GOOGLE_API_KEY="..."

🚀 Come Usarlo

TODO

📜 Citazione

Se utilizzi questo progetto o i suoi risultati nel tuo lavoro di ricerca, ti preghiamo di citarlo. TODO

🙏 Ringraziamenti

Questo lavoro è supportato da [Università degli Studi di Parma, Dipartimento di Scienze Matematiche, Fisiche ed Informatiche, University of Parma's xAI laboratory].

About

Progetto di ricerca sulla rilevazione di vulnerabilità di codice con tecniche di intelligenza artificiale.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors