Desenvolvendo Aplicativos para Mobile com Segurança
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.
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: