Título: | Instrumentação RVSec para Android um relato de experiência |
Autor(es): | Rocha, Pedro Luis Chaves |
Orientador(es): | Almeida, Rodrigo Bonifácio de |
Assunto: | Software - segurança Criptografia de dados (Computação) Aplicativos |
Data de apresentação: | 20-Jul-2023 |
Data de publicação: | 6-Out-2023 |
Referência: | ROCHA, Pedro Luis Chaves. Instrumentação RVSec para Android um relato de experiência. 2023. 44 f., il. Trabalho de conclusão de curso (Bacharelado em Ciência da Computação) — Universidade de Brasília, Brasília, 2023. |
Resumo: | O uso de ferramentas de análise dinâmica se tornou comum para detectar determinados
tipos de problemas em software em domínios que envolvem setores críticos da sociedade,
como aplicações financeiras ou relacionados à saúde. Isso ocorre devido à dificuldade das
ferramentas de análise estática em identificar certas classes de problemas, tendo um alto
percentual de falsos positivos. Um exemplo significativo é a identificação de Cripto API
Misuses, que ocorre quando os programadores utilizam de maneira incorreta bibliotecas
de criptografia.
Para solucionar esse problema, diversos estudos estão sendo conduzidos para criar
ferramentas capazes de identificar o uso incorreto de APIs de criptografia de forma au-
tomática. Um exemplo de estratégia que possui esse propósito é o RVSec [1] que utiliza
uma técnica chamada de instrumentação via Runtime Verification para analisar dinami-
camente programas em busca de falhas relacionadas à utilização incorreta de APIs de
criptografia em aplicações Java. Nessa técnica, trechos de código responsáveis pela análise
dos problemas desejado são inseridos no programa original. Assim, aproveitando desse es-
tudo e da possibilidade de convertermos quaisquer aplicações Android em Java utilizando
engenharia reversa, um grupo de pesquisadores da Universidade de Brasília desenvolveu
uma nova ferramenta chamada de RVSec Android.
No decorrer do desenvolvimento dessa ferramenta, os pesquisadores se depararam com
fato de que a solução conseguia instrumentar com sucesso um percentual reduzido de
aplicativos. Desta forma, neste trabalho, conduzimos uma análise detalhada dos erros
mais comuns na ferramenta, realizando várias pesquisas e experimentos para coletar mais
informações e encontrar possíveis soluções para os problemas identificados. Dentre os
resultados obtidos, confirmamos a existência de uma incompatibilidade da ferramenta
com aplicativos implementados em Kotlin e descartamos a hipótese de que os erros eram
resultado de possíveis incompatibilidades com a SDK do Android. Além disso, também
identificamos que 3 dos 23 arquivos de especificações utilizados para analisar problemas
de uso de bibliotecas de criptografia são responsáveis por cerca de 30% de todos os erros
apresentados.
Também propomos ações que podem ser tomadas pelos desenvolvedores do RVSec
Android para continuar a busca pelos problemas. Dentre elas estão propostas de trabalhos
futuros relacionados aos demais erros ao aprofundamento dos resultados obtidos nesse
trabalho. Alternativamente, existe a possibilidade de abandonar o uso de ferramentas de
engenharia reversa e direcionar os esforços para o desenvolvimento de novas ferramentas
que tenham o mesmo objetivo, mas com um foco exclusivo em aplicativos Android. De
maneira geral, os resultados desse trabalho podem ser analisados pelos responsáveis pela
ferramenta que poderão tomar melhores decisões a respeito do desenvolvimento e dos
próximos passos a serem tomados. |
Abstract: | The use of dynamic analysis tools has become common to detect certain types of problems
that involve critical sectors of society, such as financial applications or those related to
health. This occurs due to the difficulty of static analysis tools in identifying this problem,
having a high percentage of false positives. A significant example is the Crypto API
Misuse, which occurs when programmers improperly use cryptography libraries.
To solve this problem, various studies are being conducted to create tools capable
of automatically identifying it. An example of software with this purpose is RVSec [1],
which uses a technique called instrumentation to dynamically analyze programs in search
of faults related to the incorrect use of cryptography APIs in JAVA applications. In this
technique, snippets of code responsible for analyzing the desired problems are inserted into
the original program. Thus, taking advantage of this study and the possibility of convert-
ing any Android applications into Java using reverse engineering, a group of researchers
from the University of Brasília developed a new tool called RVSec Android.
During the development of this tool, the researchers found that the application could
not successfully instrument even half of the tested applications on it. In this way, in this
work, we conducted a detailed analysis of the most common errors in the tool, conducting
some research and experiments to gather more information and find possible solutions
to the identified problems. Among the results obtained, we confirmed the existence of a
tool incompatibility with applications made in Kotlin and discarded the hypothesis that
the errors were due to the use of incorrect versions of the Android SDK by the tool. In
addition, we also identified that 3 out of the 23 specification files used to analyze problems
of use of cryptography libraries are responsible for about 30% of all the errors presented.
We also propose actions that can be taken by those responsible for RVSec Android to
continue searching for the problems. Among them are proposals for future work related to
the remaining errors and a deepening of the results obtained in this work. Alternatively,
there is the possibility of abandoning the use of reverse engineering tools and directing
efforts to the development of new tools that have the same objective, but with an exclusive
focus on Android applications. In general, the results of this work should also be analyzed
by those responsible for the tool, who will be able to make better decisions regarding
development and the next steps to be taken. |
Informações adicionais: | Trabalho de conclusão de curso (graduação) — Universidade de Brasília, Instituto de Ciências Exatas, Departamento de Ciência da Computação, 2023. |
Licença: | A concessão da licença deste item refere-se ao termo de autorização impresso assinado pelo autor que autoriza a Biblioteca Digital da Produção Intelectual Discente da Universidade de Brasília (BDM) a disponibilizar o trabalho de conclusão de curso por meio do sítio bdm.unb.br, com as seguintes condições: disponível sob Licença Creative Commons 4.0 International, que permite copiar, distribuir e transmitir o trabalho, desde que seja citado o autor e licenciante. Não permite o uso para fins comerciais nem a adaptação desta. |
Aparece na Coleção: | Ciência da Computação
|
Todos os itens na BDM estão protegidos por copyright. Todos os direitos reservados.