The increasingly central role of mobile devices made security and optimization even more important, as applications are becoming more and more complex. Static analysis can be the perfect tool to increase the awareness of developers on these topics, and to help them to follow best practices. However, it is often ignored or not used to its full potential. The aim of this thesis is to present TargetLint, a framework for static analysis built on top of Android Lint and designed to ease the development of custom checks. The framework changes the role of the detector, delegating some tasks to new components designed for searching relevant element and for processing them. These new components are designed to be shared among detectors, thus improving code reusability and maintainability with respect to standard Android Lint. The first part of the thesis focuses on analysing the current state of Android Lint, presenting the problems we tried to solve with our TargetLint. Next, we present the full framework, describing our internal representation and giving a full description of its components. Here, we also show the issue recognition process and we highlight strengths and differences with Android Lint. Finally, we show how the framework behaves with real-world applications, presenting the result of the analysis performed on ten open-source Android apps. The detectors used for the analysis search for memory leak related issues. Thanks to a flexible reporting mechanism, the results are generated directly in LATEX format and we have attached them to this thesis as appendices.

Il ruolo sempre più centrale dei dispositivi mobili fa si che sicurezza e ottimiz- zazione delle applicazioni siano sempre più importanti, visto l’aumento della loro complessità. La static analysis può essere lo strumento perfetto per au- mentare la consapevolezza degli sviluppatori su questi temi e può essere loro d’aiuto nell’adesione alle linee guida. Purtroppo è spesso ignorato o non usato nel pieno del suo potenziale. Lo scopo di questa tesi è quello di presentare TargetLint, un framework per l’analisi statica che si appoggia ad Android Lint e che è pensato per favorire lo sviluppo di regole personalizzate. Il framework cambia il ruolo del detector, delegando parte della logica a nuovi componenti che si occupano di cercare gli elementi rilevanti nel codice e di processarli. Questi componenti sono stu- diati per essere condivisi tra diversi detector, così da migliorare il riuso e la mantenibilità del codice. La prima parte della tesi si concentra sull’analisi dello stato attuale di Android Lint, mostrandone i problemi che TargetLint cerca di risolvere. In seguito, viene presentato il framework nella sua interezza, descriven- done la rappresentazione interna del codice e fornendo una dettagliata spie- gazione dei vari componenti. Qui è mostrato anche il processo di riconosci- mento dell’issue, e sono analizzati i punti di forza e le differenze con Android Lint. In fine, viene mostrato come si comporta TargetLint con applicazioni reali, presentando i risultati dell’analisi di dieci app Android open-source. I detector utilizzati concentrano l’analisi sui problemi derivanti dai memory leak. Grazie alla flessibilità nella generazione dei report, i risultati completi sono stati creati direttamente in formato LATEX e sono allegati come appendici.

TargetLint : a framework for static analysis of Android applications

SCURA, PIETRO GIOVANNI;VOLPI, LORENZO
2017/2018

Abstract

The increasingly central role of mobile devices made security and optimization even more important, as applications are becoming more and more complex. Static analysis can be the perfect tool to increase the awareness of developers on these topics, and to help them to follow best practices. However, it is often ignored or not used to its full potential. The aim of this thesis is to present TargetLint, a framework for static analysis built on top of Android Lint and designed to ease the development of custom checks. The framework changes the role of the detector, delegating some tasks to new components designed for searching relevant element and for processing them. These new components are designed to be shared among detectors, thus improving code reusability and maintainability with respect to standard Android Lint. The first part of the thesis focuses on analysing the current state of Android Lint, presenting the problems we tried to solve with our TargetLint. Next, we present the full framework, describing our internal representation and giving a full description of its components. Here, we also show the issue recognition process and we highlight strengths and differences with Android Lint. Finally, we show how the framework behaves with real-world applications, presenting the result of the analysis performed on ten open-source Android apps. The detectors used for the analysis search for memory leak related issues. Thanks to a flexible reporting mechanism, the results are generated directly in LATEX format and we have attached them to this thesis as appendices.
ING - Scuola di Ingegneria Industriale e dell'Informazione
16-apr-2019
2017/2018
Il ruolo sempre più centrale dei dispositivi mobili fa si che sicurezza e ottimiz- zazione delle applicazioni siano sempre più importanti, visto l’aumento della loro complessità. La static analysis può essere lo strumento perfetto per au- mentare la consapevolezza degli sviluppatori su questi temi e può essere loro d’aiuto nell’adesione alle linee guida. Purtroppo è spesso ignorato o non usato nel pieno del suo potenziale. Lo scopo di questa tesi è quello di presentare TargetLint, un framework per l’analisi statica che si appoggia ad Android Lint e che è pensato per favorire lo sviluppo di regole personalizzate. Il framework cambia il ruolo del detector, delegando parte della logica a nuovi componenti che si occupano di cercare gli elementi rilevanti nel codice e di processarli. Questi componenti sono stu- diati per essere condivisi tra diversi detector, così da migliorare il riuso e la mantenibilità del codice. La prima parte della tesi si concentra sull’analisi dello stato attuale di Android Lint, mostrandone i problemi che TargetLint cerca di risolvere. In seguito, viene presentato il framework nella sua interezza, descriven- done la rappresentazione interna del codice e fornendo una dettagliata spie- gazione dei vari componenti. Qui è mostrato anche il processo di riconosci- mento dell’issue, e sono analizzati i punti di forza e le differenze con Android Lint. In fine, viene mostrato come si comporta TargetLint con applicazioni reali, presentando i risultati dell’analisi di dieci app Android open-source. I detector utilizzati concentrano l’analisi sui problemi derivanti dai memory leak. Grazie alla flessibilità nella generazione dei report, i risultati completi sono stati creati direttamente in formato LATEX e sono allegati come appendici.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2019_04_Scura_Volpi.pdf

accessibile in internet solo dagli utenti autorizzati

Descrizione: Testo della tesi
Dimensione 7.46 MB
Formato Adobe PDF
7.46 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/148015