http://repositorio.unb.br/handle/10482/54192| Fichero | Tamaño | Formato | |
|---|---|---|---|
| JoseVicenteClavoTafur_DISSERT.pdf | 1,25 MB | Adobe PDF | Visualizar/Abrir |
| Título : | Sparse value flow analysis for java bytecode : an empirical assessment |
| Otros títulos : | Análise de fluxo de valores para bytecode Java : uma avaliação empírica |
| Autor : | Tafur, José Vicente Clavo |
| Orientador(es):: | Almeida, Rodrigo Bonifácio de |
| Assunto:: | Análise estática Análise de fluxo Vazamento de dados Análise de taint Código de bytes Java |
| Fecha de publicación : | 5-mar-2026 |
| Data de defesa:: | 23-oct-2025 |
| Citación : | TAFUR, José Vicente Clavo. Sparse value flow analysis for java bytecode: an empirical assessment. 2025. 103 f., il. Dissertação (Mestrado em Informática) — Universidade de Brasília, Brasília, 2025. |
| Resumen : | O vazamento de dados confidenciais representa uma preocupação relevante em relação à segurança de aplicativos atuais. Abordagens como a análise estática denominada “taint” identificam de forma eficaz potenciais vazamentos, rastreando e analisando o fluxo dos valores das variáveis ao longo do programa. A análise de fluxo denominada “Sparse Value Flow Analysis (SVFA)” é uma técnica de análise estática que se mostrou eficaz na identificação de vazamentos de dados em programas em C e C++. Entretanto, sua aplicação potencial na análise de programas Java (bytecode) ainda não foi avaliada. Uma parceria entre a Universidade de Brasília e a Universidade de Paderborn resultou na implementação do JSVFA, um analisador de bytecode Java. Essa ferramenta foi alterada para identificar conflitos semânticos e é aplicada em diversos projetos de pesquisa. A taxa de “sucesso” atual nos testes é de 51.64% (63 de 122), em comparação com o benchmark SecuriBench, que é um dos padrões utilizados para avaliar o desempenho da ferramenta de análise estática denominada FlowDroid. Esta tese busca avaliar o desempenho do JSVFA framework em comparação com as principais ferramentas de análise estática Java, empregando medidas como precisão, recall, f-score e taxa de sucesso nos testes. Além disso, busca-se aprimorar o código-fonte existente do JSVFA framework, utilizando os testes com falha para a caracterização do problema. Para validar as melhorias, compararemos as novas medidas da versão mais recente do JSVFA framework utilizando o benchmark SecuriBench com duas ferramentas de análise de destaque, FlowDroid e Joana. Adicionalmente, incorporaremos o TaintBench, um benchmark com “Aplicativos Android,” e, em seguida, avaliaremos seu desempenho. Realizamos aprimoramentos no código-fonte, resultando em uma nova versão do JSVFA framework, que apresenta melhorias substanciais em comparação com a versão anterior. A nova versão, avaliada por meio do benchmark SecuriBench, demonstra melhorias em recall, f-score e taxa de sucesso dos testes, embora resulte em uma leve diminuição da precisão. Em comparação ao FlowDroid e ao Joana, o novo JSVFA framework demonstra um equilíbrio entre precisão, recall e f-score, posicionando-se de forma intermediária. Adicionalmente, foram conduzidos dois experimentos para avaliar o desempenho do JSVFA framework no ambiente Android, os quais resultaram na identificação de 76 e 645 novos vazamentos, respectivamente, que não estavam presentes nos relatórios de “ground truth” do TaintBench, mas foram posteriormente confirmados como “true positives”. Entretanto, o JSVFA framework não consegue detectar os vazamentos apontados nos relatórios de TaintBench. Em suma, o JSVFA framework demonstra um desempenho competitivo na análise de código Java na academia; entretanto, a identificação de vazamentos de dados em APKs requer uma investigação mais aprofundada do ciclo de vida do Android, embora as novas descobertas sejam promissoras. |
| Abstract: | Sensitive data leakage is a significant security concern in modern application interactions. Approaches like static taint analysis effectively identify potential leaks by tracking and analyzing the flow of variable values throughout a program. Sparse Value Flow Analysis (SVFA) is a technique within static analysis that has demonstrated effectiveness in identifying data leaks in C and C++ programs. However, its potential application for analyzing Java bytecode programs has not yet been investigated. A collaboration between the University of Brasilia and the University of Paderborn led to the development of an analyzer for Java bytecode, named JSVFA. This tool has been modified to detect semantic merge conflicts and incorporated into various research initiatives. The current test pass rate is 51.64% (63 out of 122) when assessed against the SecuriBench benchmark, which is one of the test suites included in the tainted analysis tool referred to as FlowDroid. This thesis aims to evaluate how well JSVFA framework works compared to top tools for Java taint analysis, using metrics such as precision, recall, f-score, and pass rate. Furthermore, it seeks to enhance the existing JSVFA framework source code by utilizing the failing tests for problem characterization. To validate the enhancements, we will compare the new metrics values from the upgraded version of JSVFA framework using the SecuriBench benchmark alongside its previous version and against two leading analysis tools, FlowDroid and Joana. Furthermore, we will incorporate TaintBench, a benchmark featuring “Android Application,” and subsequently assess its completeness. We have implemented enhancements in the source code leading to a new version of JSVFA framework that improves on its predecessor. The new version, tested using the SecuriBench benchmark, improves on recall, f-score, and pass rate but somewhat reduces precision. Compared to FlowDroid and Joana, the new JSVFA framework shows enhancements in recall, f-score and pass-rate, and a decline in precision, which places it in a median position. In addition, two experiments were undertaken to assess the completeness of JSVFA framework in the Android environment; it has identified 76 and 655 new leakages, respectively, which were not in TaintBench ground truth reports but later confirmed as true positives. However, JSVFA framework fails to identify the source-sink paths reported as real leaks in the same ground truth. In conclusion, JSVFA framework appears to be competitive in academia for analyzing Java code; however, for detecting data leaks in APKs, more Android lifecycle exploration is needed even though these new findings seem promising. |
| metadata.dc.description.unidade: | Instituto de Ciências Exatas (IE) Departamento de Ciência da Computação (IE CIC) |
| Descripción : | Dissertação (Mestrado) — Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, Programa de Pós-Graduação em Informática, 2025. |
| metadata.dc.description.ppg: | Programa de Pós-Graduação em Informática |
| Licença:: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor com as seguintes condições: Na qualidade de titular dos direitos de autor da publicação, autorizo a Universidade de Brasília e o IBICT a disponibilizar por meio dos sites www.unb.br, www.ibict.br, www.ndltd.org sem ressarcimento dos direitos autorais, de acordo com a Lei nº 9610/98, o texto integral da obra supracitada, conforme permissões assinaladas, para fins de leitura, impressão e/ou download, a título de divulgação da produção científica brasileira, a partir desta data. |
| Aparece en las colecciones: | Teses, dissertações e produtos pós-doutorado |
Los ítems de DSpace están protegidos por copyright, con todos los derechos reservados, a menos que se indique lo contrario.