Kevin Stubbings, pesquisador do GitHub Security Lab, publicou em 28 de setembro um artigo contando como a equipe usou o próprio agente de IA de segurança open source do GitHub para auditar aplicativos Android, encontrando e reportando ao todo 24 vulnerabilidades. A ferramenta usada se chama seclab-taskflow-agent, cujo núcleo é um conjunto de "fluxos de tarefas" escritos em YAML que conduzem, passo a passo, um modelo de linguagem a ler código, classificar pontos de entrada, encontrar problemas e escrever provas de conceito.
Esses fluxos de tarefas já vinham sendo usados em auditorias de código em geral, mas desta vez foram adaptados especificamente para aplicativos móveis, com a adição de dois novos arquivos, gather_mobile_entry_point_info.yaml e classify_application_local.yaml, responsáveis, respectivamente, por mapear os pontos de entrada do app e classificar as vulnerabilidades.
Como funciona na prática
Segundo o processo descrito no artigo, o usuário executa um script de auditoria no GitHub Codespaces, espera alguns minutos para o ambiente inicializar e deixa o agente trabalhar sozinho. Em um repositório de porte médio, o processo leva de uma a duas horas. Os resultados são gravados em um banco de dados SQLite: basta abrir a tabela audit_results e filtrar os registros com a coluna has_vulnerability marcada para ver os pontos que o agente considerou problemáticos.
Os tipos de vulnerabilidade cobertos pelo fluxo de tarefas giram em torno de problemas clássicos do Android: confused deputy e broadcasts inseguros relacionados a Intents, scripts entre apps em WebViews, pontes JavaScript expostas a páginas web, path traversal, falhas na lógica de resolução de deep links, além de vazamento de cookies e tokens de login. Segundo o artigo, a lista de classificação abrange ao todo 12 categorias CWE.
Dois casos detalhados
OsmAnd, aplicativo de navegação e mapas open source com mais de 10 milhões de downloads. O agente encontrou 3 problemas no fluxo de importação de configurações do app, sendo que um deles permite que um app malicioso instalado no mesmo aparelho, sem solicitar qualquer permissão, importe silenciosamente configurações por meio de parâmetros anexados a uma Intent, rastreando assim a localização e as rotas do usuário.
O aplicativo Android da Wikipédia. O agente descobriu uma falha na lógica de resolução de deep links: um atacante pode montar um link malicioso para levar a vítima a uma página falsa, capturar seus cookies a partir daí e, por fim, assumir a conta, obtendo um token de login de longa duração.
Stubbings escreve que a equipe não esperava que o modelo entendesse com tanta precisão o comportamento de APIs relacionadas a segurança em diferentes linguagens, mesmo sem receber o código-fonte daquela linguagem específica; o código de prova de conceito escrito pelo agente também costumava exigir poucas alterações para funcionar.
"LLMs are good at finding vulnerabilities but struggle at estimating severity."
Os grandes modelos de linguagem são bons em encontrar vulnerabilidades, mas têm dificuldade em estimar sua gravidade.
O que o agente ainda não consegue fazer
O artigo é direto sobre as limitações. O modelo frequentemente reporta problemas de baixa severidade, mesmo quando o prompt pede explicitamente para não reportá-los; diante de vulnerabilidades que já contam com mitigações, ele erra na avaliação do dano real; problemas complexos de priorização de fluxo de dados ele simplesmente não identifica; e conseguir uma prova de conceito confiável costuma exigir várias execuções, às vezes com um depurador acoplado ou prompts adicionais. A conclusão é que toda descoberta precisa passar por revisão manual de pesquisadores com conhecimento em segurança móvel.
Em termos de custo, rodar a ferramenta exige uma licença do GitHub Copilot, consumindo cota de requisições a modelos premium. O artigo alerta que repositórios grandes geram um volume enorme de chamadas de ferramentas, com consumo considerável de tokens, mas não especifica qual modelo foi usado.
Para desenvolvedores na China
Os fluxos de tarefas e os scripts são todos open source no GitHub, então equipes chinesas podem adaptá-los para auditar seus próprios aplicativos Android; a barreira está na licença do Copilot e no acesso a modelos estrangeiros. Como o fluxo de tarefas em si é apenas um conjunto de prompts e orquestração de etapas escrito em YAML, em teoria seria possível substituí-lo por modelos nacionais chineses — mas ainda não há dados comparativos públicos sobre o resultado.
A fragmentação do Android torna esse tipo de ferramenta ainda mais útil no mercado chinês. As lojas de aplicativos, os contêineres de mini-programas e os WebViews e pontes JavaScript dentro dos "super apps" de diferentes fabricantes de smartphones caem justamente nos tipos de vulnerabilidade cobertos por essa lista. O GitHub planeja, como próximo passo, expandir os fluxos de tarefas para aplicativos web e desktop, além de abrir o projeto para contribuições da comunidade.
Fontes: blog oficial do GitHub, CocoLoop, repositório open source do GitHub Security Lab; o número de vulnerabilidades, os downloads do OsmAnd e a duração de cada auditoria seguem os dados divulgados no blog do GitHub.