Brechas de segurança mantêm semelhanças de código com vulnerabilidades encontradas anos atrás, demonstrando que essas falhas podem afetar novamente os usuários
Vulnerabilidades antigas permanecem em vigor em centenas de aplicativos Android, incluindo alguns amplamente usados como Facebook, Instagram, Yahoo Browser ou WeChat, as quais podem permitir que cibercriminosos roubem informações de usuários desses aplicativos, além de conseguirem, por exemplo, informações como localização ou terem acesso à troca de mensagens.
A descoberta foi feita por pesquisadores da Check Point Software, que analisaram uma amostra de três vulnerabilidades de gravidade crítica (arbitrary code execution, ou execução arbitrária de código) descobertas entre 2014 e 2016, com o objetivo de demonstrar que esse tipo de vulnerabilidade já conhecida pode persistir mesmo em aplicativos publicados recentemente no Google Play. Por meio dessa análise, eles identificaram padrões conhecidos associados a versões vulneráveis de código aberto descobertas anteriormente.
A maioria dos usuários de smartphones demonstra grande preocupação com vulnerabilidades conhecidas no sistema operacional de seus dispositivos, o que poderia permitir que um cibercriminoso ganhasse controle total sobre o smartphone, bem como para as vulnerabilidades de zero day (dia zero) que ainda não foram resolvidas.
Nesse sentido, a percepção comum é que, assim que uma vulnerabilidade é descoberta em um componente de software, ela é corrigida imediatamente, desde que se mantenham as versões atualizadas do sistema operacional e de todos os aplicativos, o usuário permanecerá com seu dispositivo móvel seguro. No entanto, pesquisas realizadas pela equipe da Check Point demonstram o fato de que mesmo vulnerabilidades estabelecidas há muito tempo podem ser de importância crítica, uma vez que códigos obsoletos podem ser reutilizados inclusive em aplicativos mais populares.
Esclarecimentos do Instagram
Uma vulnerabilidade adicional do CVE-2016-3062 foi identificada pelos testes no Instagram (com.instagram.android). Em uma troca de mensagens entre a Check Point e o Instagram, os pesquisadores foram notificados de que “houve uma confusão, pois foram criados dois patches diferentes para esse problema, um para o FFmpeg há sete anos (que não era um CVE) e outro para o libav há três anos (que era um CVE), e parece que o FFmpeg fez a segunda correção do libav e, agora, os dois patches são carregados, sendo que qualquer um deles seria suficiente”.
com.instagram.android | 1,000,000,000+ | libfb_ffmpeg.so |
A Check Point ressalta que é importante observar que o foco dessa pesquisa estava no estado de segurança dos aplicativos no Google Play e não se concentra “em nenhuma vulnerabilidade específica e em nenhum aplicativo específico”. Isso também se aplica ao exemplo do Instagram indicado acima.
Por que vulnerabilidades conhecidas podem afetar os dispositivos novamente? Um aplicativo móvel popular geralmente usa dezenas de componentes reutilizáveis, escritos em uma linguagem de baixo nível, como C. Esses componentes, também conhecidos como bibliotecas nativas, geralmente derivam de projetos de código aberto ou incorporam fragmentos de código desses projetos. Quando uma vulnerabilidade é encontrada e corrigida em um desses projetos, é difícil ter controle sobre as bibliotecas nativas que podem ser afetadas por essa falha de segurança ou sobre os aplicativos que usam essas bibliotecas nativas. Tudo isso significa que um aplicativo pode continuar usando a versão obsoleta do código mesmo anos após a descoberta da vulnerabilidade.
Assim, a investigação realizada pela Check Point em torno de três vulnerabilidades corrigidas anos atrás também conclui o fato de que essas falhas de segurança no código tornam centenas de aplicativos potencialmente vulneráveis à execução remota de código. Portanto, existem centenas de aplicativos no Google Play que podem compartilhar esse mesmo erro e, portanto, ficar vulneráveis a falhas de segurança anteriores. Por outro lado, deve-se observar que o Google, atualmente, oferece apenas aos desenvolvedores a oportunidade de atualizar aplicativos, mas não exige a modificação de códigos de terceiros. Esse é um fato significativo, pois representa um sério risco à segurança do usuário.