Por Guilherme Scombatti

/ Em Segurança da Informação /

Postado em

ago 21, 2017

INsegurança no desenvolvimento mobile

Nos dias de hoje é muito comum encontrar programadores que desenvolvem para o ambiente web e que estão preocupados com a segurança da aplicação, independentemente da linguagem que estão desenvolvendo. Mas e quando o desenvolvimento é de uma aplicação mobile, será que os desenvolvedores possuem a mesma preocupação?

Não é possível, a não ser que seja através de uma falha na aplicação, visualizar o código fonte de uma aplicação que está sendo executa em um servidor web, independente da linguagem de programação que foi utilizada, mas quando olhamos para o desenvolvimento mobile a história é um pouco diferente.

Quando o desenvolvimento é mobile, os programadores criam como se fosse um arquivo “zip” e enviam para os repositórios de aplicativos, como o App Store para aplicativos iOS e o Google Play para aplicativos Android. Uma vez que os aplicativos estão nesses repositórios, os usuários, devem baixá-los para os seus celulares para poderem utilizá-los. Esse procedimento não acontece no desenvolvimento web, onde para poder utilizar uma aplicação basta acessá-la através do navegador.

A partir do momento que o aplicativo está no celular do usuário, é possível efetuar uma engenharia reversa e com isso visualizar, na grande maioria das vezes, o código fonte da aplicação e é nesse ponto que o problema acontece, pois toda a lógica da aplicação, constantes, funções, conexões e etc., podem ser visualizadas, ou seja, muitos programadores não sabem, esquecem, não possuem tempo ou não sei por qual outra questão, não se preocupam com o desenvolvimento mobile.

Efetuando a engenharia reversa de um aplicativo, foi possível obter o endereço de conexão, juntamente com o usuário e senha, do banco de dados da aplicação, ou seja, a total falta de segurança no desenvolvimento do aplicativo coloca em risco toda a segurança da informação dos usuários que o utilizam. Abaixo a imagem do método do aplicativo para Android que faz a conexão com o banco de dados:

insegurança no desenvolvimento mobile

Na imagem acima, além do código do aplicativo não estar criptografado, o programador fixou no código o endereço com usuário e senha de acesso ao banco de dados, ou seja, qualquer pessoa consegue se conectar ao banco de dados e visualizar todos os dados desse aplicativo.

Com a possibilidade de efetuar a engenharia reversa de aplicativos mobile, existe alguma solução para a segurança da informação? Existe e são várias, mas irei comentar apenas algumas: a primeira seria criptografar o código fonte antes de enviar o aplicativo para os repositórios; e a segunda, na parte de desenvolvimento, nunca devemos colocar usuário e senha de acesso à banco de dados, webservice ou seja qual serviço for, uma alternativa é enviar os dados para a aplicação web e essa aplicação web se conecta à base de dados e fornece uma reposta.

0
Guilherme Scombatti

Autor: Guilherme Scombatti

Trabalha com segurança da informação há mais de 5 anos, possui diversas certificações na área e também tem experiência em análise de malware há mais de 2 anos. Guilherme Scombatti tem seu nome em alguns programas de "Bug Bounty" como Apple, Adobe, Foursquare entre outros. Tem atuado em projetos de penetration testing em grandes empresas do segmento bancário, órgãos públicos, mineradoras entre outros.

Deixe uma resposta

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *