| Campo DC | Valor | Idioma |
| dc.contributor.advisor | Almeida, Rodrigo Bonifácio de | pt_BR |
| dc.contributor.author | Tafur, José Vicente Clavo | pt_BR |
| dc.date.accessioned | 2026-03-05T17:13:49Z | - |
| dc.date.available | 2026-03-05T17:13:49Z | - |
| dc.date.issued | 2026-03-05 | - |
| dc.date.submitted | 2025-10-23 | - |
| dc.identifier.citation | 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. | pt_BR |
| dc.identifier.uri | http://repositorio.unb.br/handle/10482/54192 | - |
| dc.description | 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. | pt_BR |
| dc.description.abstract | 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. | pt_BR |
| dc.language.iso | eng | pt_BR |
| dc.rights | Acesso Aberto | pt_BR |
| dc.title | Sparse value flow analysis for java bytecode : an empirical assessment | pt_BR |
| dc.title.alternative | Análise de fluxo de valores para bytecode Java : uma avaliação empírica | pt_BR |
| dc.type | Dissertação | pt_BR |
| dc.subject.keyword | Análise estática | pt_BR |
| dc.subject.keyword | Análise de fluxo | pt_BR |
| dc.subject.keyword | Vazamento de dados | pt_BR |
| dc.subject.keyword | Análise de taint | pt_BR |
| dc.subject.keyword | Código de bytes Java | pt_BR |
| dc.rights.license | 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. | pt_BR |
| dc.description.abstract1 | 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. | pt_BR |
| dc.description.unidade | Instituto de Ciências Exatas (IE) | pt_BR |
| dc.description.unidade | Departamento de Ciência da Computação (IE CIC) | pt_BR |
| dc.description.ppg | Programa de Pós-Graduação em Informática | pt_BR |
| Aparece nas coleções: | Teses, dissertações e produtos pós-doutorado
|