L'analisi statica di programmi scritti in più linguaggi di programmazione è impegnativa. Gli analizzatori tradizionali analizzano un singolo linguaggio, o un gruppo di linguaggi simili, per adattare l'analisi alle sue (o loro) caratteristiche. Analisi dell'intera applicazione possono quindi essere eseguite solo da una combinazione di analizzatori. Poiché sono necessarie più analisi, questo non consente all'analisi statica di avere un impatto significativo negli scenari del mondo reale. Questa tesi descrive LiSA, un framework generico in cui è possibile definire analisi statiche multilinguaggio attraverso l'interpretazione astratta. LiSA è una libreria Java open source che fornisce l'infrastruttura completa necessaria per lo sviluppo di analizzatori statici. LiSA è stata istanziata per due casi d'uso reali. GoLiSA (un analizzatore per Go basato su LiSA) applica analisi di information flow per individuare costrutti non deterministici che influenzano lo stato della blockchain. Invece, PyLiSA (un analizzatore per Python basato su LiSA) fornisce un'astrazione per il software che si occupa di dataframe. Un terzo POC dimostra la capacità di LiSA di analizzare più linguaggi in un'unica analisi attraverso, scoprendo una vulnerabilità IoT che su codice C++ e Java. Inoltre, questa tesi definisce SARL, un linguaggio che può essere utilizzato per modellare come framework e librerie interagiscono con l'applicazione analizzata, e TARSIS, un'astrazione di stringhe come linguaggi regolari.
A generic framework for multilanguage analysis / Negrini, Luca. - (2023 Jan 27).
A generic framework for multilanguage analysis
Negrini, Luca
2023-01-27
Abstract
L'analisi statica di programmi scritti in più linguaggi di programmazione è impegnativa. Gli analizzatori tradizionali analizzano un singolo linguaggio, o un gruppo di linguaggi simili, per adattare l'analisi alle sue (o loro) caratteristiche. Analisi dell'intera applicazione possono quindi essere eseguite solo da una combinazione di analizzatori. Poiché sono necessarie più analisi, questo non consente all'analisi statica di avere un impatto significativo negli scenari del mondo reale. Questa tesi descrive LiSA, un framework generico in cui è possibile definire analisi statiche multilinguaggio attraverso l'interpretazione astratta. LiSA è una libreria Java open source che fornisce l'infrastruttura completa necessaria per lo sviluppo di analizzatori statici. LiSA è stata istanziata per due casi d'uso reali. GoLiSA (un analizzatore per Go basato su LiSA) applica analisi di information flow per individuare costrutti non deterministici che influenzano lo stato della blockchain. Invece, PyLiSA (un analizzatore per Python basato su LiSA) fornisce un'astrazione per il software che si occupa di dataframe. Un terzo POC dimostra la capacità di LiSA di analizzare più linguaggi in un'unica analisi attraverso, scoprendo una vulnerabilità IoT che su codice C++ e Java. Inoltre, questa tesi definisce SARL, un linguaggio che può essere utilizzato per modellare come framework e librerie interagiscono con l'applicazione analizzata, e TARSIS, un'astrazione di stringhe come linguaggi regolari.File | Dimensione | Formato | |
---|---|---|---|
956516-1255497.pdf
accesso aperto
Tipologia:
Tesi di dottorato
Dimensione
4.05 MB
Formato
Adobe PDF
|
4.05 MB | Adobe PDF | Visualizza/Apri |
I documenti in ARCA sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.