Utilize este link para identificar ou citar este item: https://bdm.unb.br/handle/10483/36318
Arquivos neste item:
Arquivo Descrição TamanhoFormato 
2023_PedroLuisChavesRocha_tcc.pdf1,14 MBAdobe PDFver/abrir
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.