Desenvolvedores e especialistas em segurança de aplicativos mobile que usam a ferramenta de análise Inspeckage já devem ter notado a adição do selo “sponsored by Tempest” tanto no aplicativo quanto no Github e no perfil do Inspeckage no Twitter. O carimbo é a consolidação de uma parceria que já acontece há anos entre a empresa e Antonio Martins, desenvolvedor da ferramenta e especialista em análise de aplicativos mobile.
O Inspeckage e sua inspiração
O Inspeckage é um aplicativo que nasceu como um módulo do Xposed framework que permite realizar análises dinâmicas de aplicativos Android — usadas, por exemplo, em análises de malware e pentests — criado pela necessidade de entender como um app funciona em tempo de execução: “um desenvolvedor consegue, com o código-fonte, fazer um debug e acompanhar por onde um dado está trafegando no código, mas quem tem só o app baixado no Google Play não consegue fazer isso de forma fácil”, explica Antonio.
Buscando ferramentas que permitissem essa análise ele encontrou o projeto Instrospy-Analyzer, (uma extensão do Cydia), mas apesar de ser uma ferramenta híbrida, com versões para iOS e Android, esta última não recebe atualizações há tempos.
Outro problema que levou ao desenvolvimento do Inspeckage está relacionado aos hooks — técnica que permite a um programador injetar seu próprio código antes e depois dos métodos, habilitando a mudança no comportamento do sistema e dos aplicativos. Os hooks para Android que Antonio encontrou na web estavam muito defasados e não supriam as suas necessidades analíticas.
As principais funcionalidades do Inspeckage
O Inspeckage conta com mais de 20 features distribuídas entre coleta de informações, hooks, configurações, ações contra o app alvo e até visualização do logcat. No entanto, para de fato entender o que ele faz é preciso compreender que uma das principais motivações para a sua criação foi a análise de segurança de aplicações mobile.
“Um app mobile tem várias funções, mas pode ser que você não consiga dizer se, internamente, esse software lê um determinado dado seu; o Inspeckage tem hooks pré-definidos que mostram o que o app analisado faz em tempo de execução”, um deles permite, por exemplo, entender como e quais informações são armazenadas nos arquivos de “preferências” (Shared Preferences), uma funcionalidade muito útil do ponto de vista da análise de segurança.
Antonio dá outro exemplo de uso da plataforma: “digamos que você criou um app e quer ver como ele se comporta; existem coisas que estão além do desenvolvedor — por exemplo, se você está usando uma biblioteca fechada de outra empresa e quer ver o comportamento dessa biblioteca”, explica.
O Inspeckage conta ainda com uma função chamada +hooks, que são hooks configuráveis, úteis em análises de malware. Em uma das últimas versões uma implementação tornou possível alterar uma informação no momento em que ela está sendo executada.
Também é possível contornar o pinning de certificado (Certificate ou Public Key Pinning) a fim de analisar aplicativos que fazem requisições para servidores.
O desafios de criar e manter uma ferramenta como o Inspeckage
Disponibilidade de tempo e envolvimento da comunidade estão entre os principais desafios citados por Antonio para o desenvolvimento do Inspeckage. Desde o começo a ferramenta nasceu como um projeto open source como forma de “retribuição à comunidade de software livre”, conhecida por produzir e compartilhar ferramentas úteis para técnicos, desenvolvedores e outros especialistas; com essa iniciativa, ele esperava contar com uma colaboração que ainda não veio: “recebo dicas e pedidos de novas features, mas é difícil encontrar alguém que queira colaborar no desenvolvimento”
Dessa forma, por acreditar que toda ferramenta precisa ser atualizada constantemente, ele se viu obrigado a gerenciar um tempo já escasso, dividindo-o entre Tempest como colaborador e Inspeckage como desenvolvedor.
Conhecendo o interesse da Tempest em apoiar projetos inovadores que possam gerar retorno para a comunidade ele apresentou o Inspeckage e sugeriu o selo “sponsored by” para a empresa que, por entender os desafios da inovação, decidiu apoiá-lo.
“Não é a primeira vez que damos esse tipo de apoio”, conta Cristiano Lincoln, CEO da Tempest, “no passado já apoiamos o projeto GR Security, ferramenta desenvolvida pelo especialista em Linux Brad Spengler — que inclusive usamos aqui na Tempest — mas dar nosso apoio ao projeto do Antonio, que é nosso colega e colaborador, é algo ainda mais especial”. Para Lincoln, trata-se de um compromisso que está no DNA da companhia: “temos todo interesse em investir em produção e divulgação de pesquisas e ferramentas de segurança e entendemos as dificuldades que existem em desenvolver um projeto deste do zero e conseguir o apoio da comunidade. Aliar nossa marca a ele é uma forma de ajudar o Antonio nesse trabalho”, pondera.
O que esperar nas próximas versões do Inspeckage
Entre as funcionalidades previstas para as próximas versões estão a possibilidade de definir a localização do dispositivo, contornando as proteções de mock location e ignorando as informações geradas pelo GPS. Também está prevista a possibilidade de alterar o fingerprint do dispositivo, implementação que Antônio justifica com o fato de hoje ser “muito comum softwares usarem informações como modelo de telefone, versão de kernel e outras para identificar o aparelho”.
====
Para saber mais sobre o Inspeckage leia esta análise do Infosec Institute
O Inspeckage está disponível no Github e na Google Play