Tomasone, Marco Benito
(2024)
Utilizzo di modelli basati sui Transformers per la classificazione delle vulnerabilità negli Smart Contracts Ethereum.
[Laurea magistrale], Università di Bologna, Corso di Studio in
Informatica [LM-DM270]
Documenti full-text disponibili:
![[img]](http://amslaurea.unibo.it/style/images/fileicons/application_pdf.png) |
Documento PDF (Thesis)
Disponibile con Licenza: Salvo eventuali più ampie autorizzazioni dell'autore, la tesi può essere liberamente consultata e può essere effettuato il salvataggio e la stampa di una copia per fini strettamente personali di studio, di ricerca e di insegnamento, con espresso divieto di qualunque utilizzo direttamente o indirettamente commerciale. Ogni altro diritto sul materiale è riservato
Download (2MB)
|
Abstract
Negli ultimi anni, gli Smart Contracts hanno guadagnato popolarità grazie a caratteristiche come esecuzione automatica, trasparenza, immutabilità e decentralizzazione, operando su blockchain. La loro immutabilità garantisce che le parti del contratto possano riporre in esso fiducia, ma, allo stesso tempo comporta che la presenza di vulnerabilità all'interno di un contratto non possa essere risolta dopo la sua pubblicazione. Questo fa sì che si necessiti di strumenti che riescano a individuare la presenza di vulnerabilità nel contratto prima che questo venga pubblicato, garantendo la pubblicazione solo di contratti sicuri.
Questa tesi propone l’uso di tecniche di Deep Learning, utilizzando modelli basati sui Transformers (BERT, DistilBERT e CodeBERT) per rilevare cinque classi di vulnerabilità negli Smart Contracts: Access-Control, Arithmetic, Other, Reentrancy e Unchecked-Calls. Data la limitazione di 512 token per input dei modelli e data la maggior lunghezza dei contratti, è stato adottato un approccio che segmenta il testo in sottocontratti e aggrega gli embedding generati. I modelli sono stati addestrati sia sul bytecode che sul codice sorgente. Inoltre, è stato proposto un approccio di stacking che va a costruire un metaclassificatore sulla base delle predizioni dei migliori modelli sul bytecode e sul codice sorgente dei contratti.
I risultati dimostrano che i modelli basati sui Transformers sono altamente efficaci nel rilevare vulnerabilità, con CodeBERT che si distingue per la sua capacità di identificare vulnerabilità sia nel codice sorgente che nel bytecode. Le tecniche di aggregazione del testo hanno migliorato le performance. Infine, data l'entrata nelle nostre vite di LLM come Gemini o GPT è stato raccolto un piccolo campione di test dal modello Gemini di Google, al fine di valutare le sue performance. Queste non sono state soddisfacenti, mostrando l'esigenza di avere modelli ad hoc per task complessi come questo.
Abstract
Negli ultimi anni, gli Smart Contracts hanno guadagnato popolarità grazie a caratteristiche come esecuzione automatica, trasparenza, immutabilità e decentralizzazione, operando su blockchain. La loro immutabilità garantisce che le parti del contratto possano riporre in esso fiducia, ma, allo stesso tempo comporta che la presenza di vulnerabilità all'interno di un contratto non possa essere risolta dopo la sua pubblicazione. Questo fa sì che si necessiti di strumenti che riescano a individuare la presenza di vulnerabilità nel contratto prima che questo venga pubblicato, garantendo la pubblicazione solo di contratti sicuri.
Questa tesi propone l’uso di tecniche di Deep Learning, utilizzando modelli basati sui Transformers (BERT, DistilBERT e CodeBERT) per rilevare cinque classi di vulnerabilità negli Smart Contracts: Access-Control, Arithmetic, Other, Reentrancy e Unchecked-Calls. Data la limitazione di 512 token per input dei modelli e data la maggior lunghezza dei contratti, è stato adottato un approccio che segmenta il testo in sottocontratti e aggrega gli embedding generati. I modelli sono stati addestrati sia sul bytecode che sul codice sorgente. Inoltre, è stato proposto un approccio di stacking che va a costruire un metaclassificatore sulla base delle predizioni dei migliori modelli sul bytecode e sul codice sorgente dei contratti.
I risultati dimostrano che i modelli basati sui Transformers sono altamente efficaci nel rilevare vulnerabilità, con CodeBERT che si distingue per la sua capacità di identificare vulnerabilità sia nel codice sorgente che nel bytecode. Le tecniche di aggregazione del testo hanno migliorato le performance. Infine, data l'entrata nelle nostre vite di LLM come Gemini o GPT è stato raccolto un piccolo campione di test dal modello Gemini di Google, al fine di valutare le sue performance. Queste non sono state soddisfacenti, mostrando l'esigenza di avere modelli ad hoc per task complessi come questo.
Tipologia del documento
Tesi di laurea
(Laurea magistrale)
Autore della tesi
Tomasone, Marco Benito
Relatore della tesi
Scuola
Corso di studio
Indirizzo
CURRICULUM A: TECNICHE DEL SOFTWARE
Ordinamento Cds
DM270
Parole chiave
Smart Contracts,Vulnerabilità,Machine Learning,Transformers,BERT,Classificazione
Data di discussione della Tesi
10 Luglio 2024
URI
Altri metadati
Tipologia del documento
Tesi di laurea
(NON SPECIFICATO)
Autore della tesi
Tomasone, Marco Benito
Relatore della tesi
Scuola
Corso di studio
Indirizzo
CURRICULUM A: TECNICHE DEL SOFTWARE
Ordinamento Cds
DM270
Parole chiave
Smart Contracts,Vulnerabilità,Machine Learning,Transformers,BERT,Classificazione
Data di discussione della Tesi
10 Luglio 2024
URI
Statistica sui download
Gestione del documento: