Desenvolvimento

Ξ Deixe um comentário

10 dicas de segurança para desenvolver aplicações iOS

publicado por Anderson Dadario
10 dicas de Segurança para Desenvolver Aplicações iOS

10 dicas de Segurança para Desenvolver Aplicações iOS

Muito se fala do OWASP Top 10 para aplicações Web, mas nem tanto sobre o OWASP Top 10 para aplicações voltadas aos dispositivos móveis. Embora o OWASP Top 10 Mobile 2013 ainda não tenha sido lançado, fiz questão de separar algumas das melhores práticas de segurança para o desenvolvimento de aplicações iOS que são muito úteis:

1) Limpe dados confidenciais caso a aplicação saia do primeiro plano
Essa prática é importante porque quando a aplicação sai do primeiro plano, o próprio iOS gera um screenshot da aplicação e armazena no diretório da mesma, ou seja, caso o usuário tenha preenchido seu cartão de crédito na aplicação bancária e alterna de aplicação para outra como o Angry Birds por exemplo,o iOS gera uma imagem contendo o último estado da aplicação bancária que possui o cartão de crédito que pode vir a cair nas mãos de um atacante que terá acesso à informações confidenciais.

2) Desabilite a funcionalidade de autocorreção para campos sensíveis
Quando o campo de texto da aplicação possui habilitado a funcionalidade de autocorreção, o iOS armazena o que foi digitado em um arquivo binário para posteriormente adicionar esta “palavra” na lista de palavras conhecidas devido ao mecanismo de auto-aprendizado do dicionário, que pode vir a ser obtido por um atacante.

3) Valide os dados de entrada
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, inclusive SQL Injection, visto que a maioria do armazenamento das informações no iOS é feito em bancos de dados SQLite.

4) Não permita que informações confidenciais sejam armazenadas no clipboard
Desabilite a opção de copiar para campos com informações sensíveis visto que eles podem ser acessados por qualquer aplicação, que pode vir a ser maliciosa e envie periodicamente o conteúdo do clipboard para o servidor de um atacante.

5) Sempre valide os certificados digitais
Geralmente os desenvolvedores para fins de teste desabilitam a validação dos certificados para utilizar um auto-assinado em ambiente de desenvolvimento, mas esquecem de habilitar novamente antes de publicar o aplicativo.

6) Não confie cegamente no Keychain
O recurso Keychain da Apple para armazenamento seguro não é a solução para todos os problemas, pois recuperando a senha do usuário (que geralmente é um PIN de 4 dígitos), é possível fazer o dump e crack da Keychain para obter os valores armazenados.  Experimente o SQLCipher.

7) Restrinja o tempo máximo de Sessão
Dispositivos móveis são facilmente perdidos, furtados e roubados, portanto, é importante definir um tempo máximo que a sessão do aplicativo estará aberta para que nenhum outro indivíduo além do verdadeiro usuário da aplicação consiga manipular a mesma.

8) Homologue bibliotecas de terceiros
De nada adianta desenvolver um código seguro e adicionar bibliotecas inseguras à sua aplicação. Realize uma análise estática do código fonte da biblioteca em busca de possíveis bugs de segurança que podem comprometer a sua aplicação.

9) Valide a integridade do Aplicativo e demais arquivos
Proteja sua aplicação contra adulteração de binários e demais arquivos validando a integridade dos mesmos por meio de funções hash one-way, bem como SHA1 e MD5, por exemplo, mas não use esses algoritmos devido à facilidade de colisão de hashes. Utilize SHA512 para esta tarefa.

10) Ofusque seu código
Essa prática de ofuscação é bastante complexa e intimamente ligada à Análise de Malware, trata-se de tratar o seu código como um malware que está fugindo de um analista de malware. Uma das técnicas de ofuscação é não utilizar nomes de variáveis passíveis de adivinhação (por exemplo usuario.logado), para dificultar a manipulação de código em tempo de execução via gdb.

Para saber mais, acesse:

Autor

Anderson Dadario é fundador do Gauntlet.io, serviço gratuito para execução de diversos scanners de segurança em aplicações web; Dadario possui larga experiência com testes de intrusão, análise de vulnerabilidades e integração de segurança no ciclo de desenvolvimento de software. Site: https://dadario.com.br

Anderson Dadario

Comentários

You must be logged in to post a comment.

Busca

Patrocínio

Publicidade



Siga-nos!

Newsletter: Inscreva-se

Para se inscrever em nossa newsletter preencha o formulário.

Artigos Recentes