Vazamentos de binários: de bases de dados de cidadãos a senhas expostas em aplicações de governamentais

ElevenPaths    19 septiembre, 2019
Vazamentos de binários: de bases de dados de cidadãos a senhas expostas em aplicações de governamentais

Nossa equipe de CSAs realizou uma série de testes para evidenciar o estado atual da segurança de aplicações fornecidas por governos de diferentes países da fala hispânica. Realizamos uma revisão geral das falhas potenciais em relação ao desenvolvimento de software e como a falta de controles de segurança adequados poderia ser aproveitada por atacantes. Descobrimos desde senhas até base de dados completas que não deveriam ser públicas.

As aplicações criadas por governos deveriam oferecer (tanto ou mais do que o resto) controle de segurança apropriados para salvaguardar a confidencialidade, integridade e disponibilidade da informação. Através dessas aplicações se resolvem trâmites aduaneiros ou tributários, gestão financeira, administração pública, serviços educativos, cobrança eletrônica, gestão de dados hospitalares e de saúde, documentação de identificação individual e muitos outros que podem conter informação sensível.

Realizamos testes nos arquivos binários (executáveis) de aplicações que as organizações governamentais disponibilizam em seus sites para que os cidadãos façam o download e as instalem em seus dispositivos.

Metodologia

Foram analisadas 62 aplicações com foco na região latino-americana com as seguintes funções:

  • 22 aplicativos relacionados a gestão de informações tributárias e declaração de impostos para pessoas ou empresas e 5 dedicados a gestão de informação aduaneira
  • 15 programas que permitem gerenciar informação de administração pública como dados escolares, compras públicas, dados de ministérios e previdência social
  • 10 aplicações que permitem gerenciar serviços eletrônicos como emissão de certificados digitais, processos de gestão pública e assinaturas eletrônicas
  • 6 aplicações para gestão de dados financeiros, seguros e contabilidade
  • 4 aplicações para gerenciar informação de entidades sanitárias

É importante ressaltar que os testes não têm qualquer objetivo de atacar a infraestrutura tecnológica das organizações pesquisadas, assim como acessar qualquer informação sensível das organizações públicas ou facilitação de informações que possam ligá-las aos resultados obtidos no estudo. Esse documento tem o objetivo de colocar em contexto os riscos que ameaçam a segurança de cidadãos e empresas usuárias, criadas por falhas no desenvolvimento ou implementação da aplicação. Isso é muito importante especialmente porque muitos desses softwares estão, provavelmente, funcionando como parte do conjunto de aplicações instaladas dentro das redes locais dessas empresas.

Resultados

Apresentamos abaixo alguns dos resultados mais relevantes da pesquisa:

Detectamos aplicações que incluem arquivos do tipo MS Access (.mdb) que armazenam os dados utilizados em seu funcionamento. Revisando essa funcionalidade pudemos detectar que 14% das aplicações armazenam informação sensível em texto plano, incluindo nomes de usuários, senhas, credenciais de aplicativos e, em alguns casos, até credenciais de acesso a servidores. Mesmo que algumas dessas bases de dados estivessem protegidas por senha, após uma descompilação de código pudemos obter várias dessas senhas.

Em relação às medidas de segurança aplicadas aos binários (arquivos executáveis das aplicações), encontramos 8 melhores práticas de segurança utilizadas durante a criação que previssem um impacto maior no sistema operacional, caso vulnerabilidades sejam exploradas.

Em algumas descompilações de binários (feitas com facilidade ao utilizarem .NET), podemos observar senhas de acesso às bases de dados.

Uma boa prática para eliminar falhas de segurança durante o desenvolvimento de softwares é proibir o uso de funções descontinuadas ou obsoletas. Essas funções são assinaladas como vulneráveis nas diferentes linguagens de programação e, muitas vezes, por fabricantes. Além disso, é importante usar versões atualizadas de tecnologias de programação e bibliotecas de terceiros.

Conclusões

De acordo com nossa análise, podemos destacar as seguintes conclusões gerais:

  • No total encontramos 148 funções obsoletar ou vulneráveis utilizadas no desenvolvimento das 62 aplicações. Entre as mais utilizadas estão memcpy(), strlen(), strcpy(), strcat() e sprintf() que podem criar um grau relevante de insegurança no host onde a aplicação é executada
  • Em relação ao nível de segurança identificado nos binários, podemos destacar que as tecnologias mais recentes como CFG não estão ativadas em nenhum dos apps analisados. Outros tipos de controles como ASLR e DEP só estão presentes em 30% das aplicações. A habilitação de recursos “anti-exploiting” é uma prática crítica e necessário no ciclo de desenvolvimento para elevar o nível de segurança
  • A proteção do código fonte desses programas está presente somente em 8 das 62 aplicações, que usam ofuscação em alguns dos casos de maneira parcial
  • Só 8% dos programas usam certificados digitais para atestar sua autenticidade, o que não permite ao cidadão conferir se aquele executável é original ou não
  • Identificamos que 17 aplicações estabeleceram comunicação com serviços nas entidades e que somente quatro delas usava canais seguros HTTPS. Em 13 aplicações era possível interceptara informação através de canais inseguros.
  • 5 aplicações são detectadas como contendo código malicioso no momento de sua execução
  • Pudemos identificar que 20 aplicações armazenam configurações (URLs, IP privados, nomes de usuário, senhas, chaves API etc.) em texto plano
  • Pudemos identificar 8 credenciais (nomes de usuário e senhas, JKS Keys, tabelas de conexões e bases de dados) escritas em texto plano no código

O relatório completo está disponível aqui:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *