Desenvolvendo Aplicativos para Mobile com Segurança

18:48 Carlos Santiago 0 Comentarios


Atualmente, pensar em ações de segurança para desenvolver uma aplicação mobile é indispensável, pois o celular é um ambiente que os desenvolvedores ainda não adquiriram total controle.

Não é possível ter o domínio sobre o device e quais podem ser os tipos de ataques que a aplicação será exposta. Quando se desenvolve para mobile, ou seja, para softwares não embarcados, encontra-se um ambiente repleto de vulnerabilidades.Não é fácil a tarefa do desenvolvedor mobile, já que na grande maioria das vezes, a aplicação é disponibilizada em nuvem e pode ser utilizada por qualquer usuário ou qualquer dispositivo.

Muitas vulnerabilidades que antigamente eram exclusividades dos computadores, estão massivamente presentes no mundo mobile, o que exige atenção especial.Ao adotar boas práticas no desenvolvimento, podemos mitigar muitas vulnerabilidades, o que diminui os riscos da aplicação ficar exposta.

A seguir, analisaremos uma tabela que apresenta alguns pontos de controle para um desenvolvimento mobile mais seguro.

TABELA OWASP MOBILEA OWASP (Open Web Application Security Project) é uma organização internacional, criada em 2003, sem fins lucrativos, mantida por profissionais, estudantes e interessados da área de segurança que se dedicam a criar artigos, metodologias, documentação, ferramentas e tecnologias para a melhoria da segurança das aplicações em todo o mundo, principalmente aplicações web.

Atualmente, com a crescente demanda de programas desenvolvidos para celular, foi criado um projeto dentro da OWASP, com o foco em listar os pontos de controle que temos que ter na nossa aplicação mobile e que, respectivamente, vem a mitigar muitas vulnerabilidades que podem ocorrer. A seguir, podemos ver os dez pontos de controle listados pela Tabela OWASP Mobile.




Para cada ponto de controle listado, são apresentadas vulnerabilidades e os possíveis impactos que sua aplicação pode sofrer se o ataque for explorado com sucesso.

1.  Insecure Data Storage - (Armazenamento Inseguro dos Dados)
•  Dados sensíveis podem ficar vulneráveis por falta de conhecimento do comportamento do dispositivo.
•   Sincronização de dados sensíveis em Cloud de forma desprotegida.
•   Armazenar dados em locais inseguros, como no sdcard por exemplo.

2.  Weak Server Side Controls - (Fracos Controles no Servidor)
•   Ainda não é possível confiar apenas no dispositivo para aplicar controle de segurança.
•   Aplicações mobile também estão expostas a ataques já explorados por aplicações web tradicionais.
•   Nunca confie no input do usuário, tanto no aplicativo, quanto no servidor. É importante que seja feito a validação dos dados de entrada para evitar diversos tipos de ataque.

3.  Insufficient Transport Layer Protection – (Insuficiências de Transporte na Camada de Proteção)
•   Dados sensíveis trafegados sem qualquer tipo de criptografia.
•   Dados com criptografia fraca no transporte dos dados através da web.
•   Dados com criptografia forte, porém são ignorados warnings de segurança, como data de expiração do certificiado.

4.  Client Side Injection - (Injeções no Lado Cliente)
•   Aplicações utilizam recursos de WebView.
•   Aplicações híbridas mesclando recursos nativos/web.
•   Uso promíscuo de APIs do device, como discagem e envio de SMS´s.

5.  Poor Authorization and Authentication – (Fraco Controle no Meio de Autorização e Autenticação)
•   Utilizar informações teoricamente imutáveis do dispositivo mobile que podem ser facilmente simuladas ou geradas.
•   Utilizar mecanismos de autenticação e autorização da plataforma sem conhecer a fundo o seu comportamento.

6.  Improper Session Handling – (Manuseios Impróprio de Sessão)
•    Aplicações mobile tendem a ter uma sessão mais duradoura motivada por questões de usabilidade.
•    Utilizar identificadores do celular como token de sessão.

7.   Security Decisions Via Untrusted Inputs – (Fraco Controle de Segurança nos Inputs Dados Pelo Usuário)
•   Pode ser aproveitado para ignorar permissões e modelos de segurança.
•   Facilitar utilização de aplicações maliciosas para capturar informações.
•   Exposição de dados sensíveis.

8.   Side Channel Data Leakage - (Vazamento de Informações)
•   Recursos padrões da plataforma associados à falha de desenvolvimento.
•   Dados sensíveis armazenados em locais não seguros.
•   Utilização indiscriminada de recursos de terceiros.

9.   Broken Cryptography – (Quebra de Criptografia)
•   Quebra de criptografia fraca utilizando força bruta, ataques de dicionário entre outros.
•   Utilização de recursos seguros de criptografia, porém associados a falhas de implementação.

10.  Sensitive Information Disclosure – (Divulgação de Informações Sensíveis)
•   Aplicações mobile estão sujeitas a engenharia reversa.
•   Ofuscação do código ajuda a garantir a privacidade, porém não resolve o problema por completo.


Referências

0 comentários: