Ameaças à Segurança de Aplicativos Móveis & Melhores Práticas para Desenvolvedores


Appy pie
By Appy pie  | May 8, 2018 8:07 am
Como criar um aplicativo com Appy Pie

Appy Pie, Criadora de Aplicativos, A revolução digital, que tomou conta do mundo e continua forte e crescente em toda parte, vem com sua parcela de fraquezas e, nos últimos tempos, temos sido forçadoa a lidar com grandes brechas e ameaças de segurança. Neste ambiente volátil e inseguro, a segurança de aplicativos móveis evoluiu de um recurso extra para uma necessidade extrema. Estamos usando nossos telefones celulares para realizar quase tudo em nosso dia a dia e, por essa razão, uma enorme quantidade de dados pessoais, às vezes sensíveis, é acessada através de nossos telefones celulares e dos aplicativos que instalamos neles.

Como uma organização que faz uso de aplicativos para seus negócios ou que possui um aplicativo corporativo para funcionar perfeitamente dentro da organização, você pode sofrer perdas enormes se seus aplicativos forem violados e a perda pode não ser apenas diretamente financeira, mas também da confiança que seus usuários podem colocar em seu aplicativo. É por esse motivo que, como proprietário do aplicativo ou um appreneur (empreendedor do mundo dos aplicativos), você deve manter a segurança em alta prioridade desde o início, quando começar a escrever as linhas iniciais do código.

Como usuários móveis e de aplicativos fervorosos, a maioria de nós insere uma grande quantidade de informações (algumas delas confidenciais) em nossos dispositivos móveis. Toda essa informação está simplesmente flutuando neste espaço etéreo e a temporada de caça está aberta para todos os tipos de cibercriminosos. Com apenas uma violação, todas as suas informações, incluindo seu nome, idade, endereço, números de telefone, números de conta e detalhes, e até mesmo sua localização atual, estarão disponíveis para criminosos. As apostas são ainda maiores quando se trata da empresa, simplesmente por causa da natureza da informação que eles manipulam e porque os criminosos estão mais interessados em se apossar dela.

Portanto, cabe aos desenvolvedores de aplicativos criar segurança nos aplicativos para proteger seus usuários e clientes e, no caso de aplicativos corporativos, até mesmo seus funcionários.

É realmente tão importante?

Foi estabelecido através de pesquisas que quase 95% dos aplicativos móveis são vulneráveis. Também é verdade que, com novos aplicativos sendo adicionados todos os dias às lojas de aplicativos, há cerca de 36 aplicativos instalados por um usuário médio de smartphones. Como os números são enormes e a troca de informações é frequente, é natural que alguns dos aplicativos sejam maliciosos.

Quando você está desenvolvendo um aplicativo (seja Android ou iOS) , a preocupação com a segurança é igualmente severa, tornando o teste de segurança uma tarefa igualmente assustadora. Mesmo que as vulnerabilidades e brechas possam estar mais presentes na plataforma Android, não significa que você teria menos trabalho para realizar ao utilizar a plataforma iOS.

Há muita inovação em encontrar novas maneiras de usar o dispositivo móvel, por isso os desenvolvedores de aplicativos precisam se concentrar no aspecto de segurança do aplicativo móvel.

Mais e mais proprietários de smartphones estão recorrendo ao uso de seus telefones para obter informações sobre suas condições de saúde e para serviços bancários on-line. Essa tendência de uso torna os usuários de smartphones mais vulneráveis à medida que informações confidenciais são utilizadas em um dispositivo conectado à Internet.

Brechas de segurança mais comuns

1) Controles Fracos no Lado do Servidor

Não seguir as práticas e codificações seguras no lado do servidor pode dar uma abertura para uma falha de segurança fatal. A API deve verificar com segurança a identidade e a autorização do solicitante/usuário.

2) Armazenamento Suspeito de Dados

Uma crença equivocada – de que os usuários e malwares não podem acessar os arquivos no dispositivo móvel, onde todas as informações estão armazenadas, pode abrir o aplicativo para uma violação de segurança.

3) Proteção Inadequada da Camada de Transporte

Outro mito comum é que a aplicação de SSL/TLS torna seu aplicativo móvel seguro, não deixando motivos para se preocupar. Isso também pode provar ser um ponto de brecha para violação.

4) Vazamentos Repentinos de Dados

Os dados podem ser vulneráveis a vazamentos de várias maneiras e podem ser vistos e copiados, capturados, salvos em backup e até mesmo registrados.

5) Validação e Autorização Inferior

Mesmo quando o aplicativo para dispositivos móveis foi validado uma vez, ainda assim não significa que suas credenciais estejam seguras. As credenciais podem, na verdade, ser roubadas de redes sem fio que podem ser inseguras. Também é importante ter em mente que, mesmo que um usuário tenha sido autenticado uma vez, isso não significa que ele pode ser automaticamente autorizado para tudo o tempo todo.

6) Decisões de Segurança Tomadas por Fontes Duvidosas

As solicitações de serviços da Web, chamadas ocultas e chamadas IPC não podem ser totalmente confiáveis, pois há um escopo delas sendo manipuladas com ferramentas maliciosas.

7) Não Oferecer Proteção Binária

No caso do celular ser adaptado, ter engenharia reversa ou ser analisado, há uma grande chance de uma grande violação de dados causar problemas.

8) Violação da Criptografia

Se o algoritmo de criptografia ou o algoritmo de descriptografia for fraco em sua estrutura, ele terá a sua arquitetura aberta para violações de segurança.

Por que a segurança e as violações de aplicativos para dispositivos móveis são amplamente ignoradas?

Há vários fatores ou razões que podem ser responsabilizados pela segurança do aplicativo ser ignorada por tanto tempo. No entanto, a principal razão é que o foco principal da indústria mudou para fornecer melhores recursos, tornando o aplicativo mais rápido etc. e os problemas de segurança são freqüentemente ignorados nesse sentido.

Na verdade, foi estabelecido por meio de pesquisa que várias organizações tendem a atrasar a realização de testes de segurança ou usá-las em intervalos longos, tornando-as ineficazes. A seguir, há uma lista de motivos pelos quais a segurança de aplicativos móveis não é focada.

  • Uma inclinação para desenvolver aplicativos por conveniência e velocidade leva a uma falta de atenção para garantir a segurança dos usuários.
  • Falta de conhecimento da parte do desenvolvedor em relação às implicações de segurança da plataforma em que estão trabalhando
  • Os usuários não dão ênfase suficiente à segurança e, em vez disso, procuram um aplicativo carregado de recursos.
  • Não realizar testes consistentes em todo o SDLC
  • Erros de codificação por acidente

Segurança de App Móvel – Melhores Práticas

#1 Escrever um Código Seguro

É aí que tudo começa. Se houver bugs ou vulnerabilidades em um código, pode ter certeza de que os hackers ou invasores tentaram entrar primeiro por essa porta. É possível que eles tentem modificá-lo e fazer engenharia reversa e, para isso, basta uma cópia pública do seu aplicativo.

Mesmo quando você se senta para começar a desenvolver um código de segurança que seja forte o suficiente para impedir tentativas de violação. Faça provisões no código para garantir que não possa ser submetido a engenharia reversa. Além disso, é importante que você realize testes repetidamente e corrija quaisquer bugs que possam surgir. Além disso, planeje o código de uma maneira que permita atualizações e correções. O código deve ser ágil o suficiente para permitir atualizações do final do usuário no caso de uma violação. Além disso, faça uso de codificação e assinatura de código.

#2 Criptografia de Dados

Com muita frequência, um aplicativo precisa trocar várias unidades de dados. Para fortalecer seu aplicativo, e protegê-lo de possíveis violações, é importante criptografar cada unidade de dados que é enviada pelo aplicativo. Quando você criptografa dados, você está essencialmente embaralhando o texto sem formatação até que ele seja convertido em um conjunto de letras e números sem sentido. Isso significa que mesmo que os dados sejam roubados, seria inútil para os criminosos. Esses dados criptografados sem sentido só podem ser descriptografados em informações significativas apenas para aqueles que possuem a chave.

#3 Exercitanto a Precaução com as Bibliotecas

Quando se trata de segurança, você só pode confiar em si mesmo. Isso significa que, ao usar bibliotecas de terceiros, é importante que você tenha precaução e cuidado, testando o código de maneira ideal antes de incorporá-lo ao aplicativo. É verdade que a integração de bibliotecas de terceiros pode ser útil para tornar o seu aplicativo atraente, mas algumas dessas bibliotecas podem se mostrar bastante inseguras em sua estrutura. Por exemplo, a Biblioteca GNU C possui uma falha de segurança inerente que permite que os atacantes implementem códigos maliciosos e causem uma falha no sistema. O mais preocupante é que essa falha permaneceu desconhecida por mais de sete anos. Como desenvolvedor, você deve usar repositórios internos controlados e implementar controles de política no momento da aquisição e proteger seu aplicativo das brechas de segurança nas bibliotecas.

#4 Utilizar APIs Autorizados Exclusivos

Quando você faz uso de APIs não autorizadas que são vagamente codificadas, você está, inconscientemente, concedendo aos hackers privilégios que podem ser mal utilizados. Se fôssemos dar um exemplo de informações de autorização em cache localmente, sabemos que isso ajuda os programadores a reutilizar essas informações com grande facilidade ao fazer chamadas de API. Isso facilita o uso de APIs para facilitar a vida do codificador. Mas, ao fazer isso, os invasores podem encontrar uma brecha e conseguir obter privilégios. Especialistas no assunto sugerem o uso de APIs autorizadas centralmente para maior segurança.

#5 Empregando Autenticação de Alto Nível

A parte de autenticação de um aplicativo móvel é tão vital quanto vulnerável. No passado, algumas das violações mais alarmantes ocorreram quando houve autenticação fraca. É por isso que uma autenticação forte ou de alto nível assumiu grande importância hoje. Em seu sentido mais básico, a autenticação inclui senhas ou quaisquer outros identificadores pessoais que possam atuar como uma barreira de entrada. Isso, no entanto, depende muito dos usuários do aplicativo. Você, como desenvolvedor, pode sensibilizar os usuários do seu aplicativo para a autenticação. É sua responsabilidade como desenvolvedor de aplicativos projetar um sistema de autenticação que reconheça apenas senhas com componentes alfanuméricos fortes, que devem ser alterados ou renovados em intervalos frequentes. Você também pode introduzir um sistema de autenticação em várias etapas que emprega uma combinação de senhas e OTPs e, no caso de aplicativos que lidam com conteúdo altamente confidencial, você pode até mesmo aplicar identificadores biométricos para acesso.

#6 Fazendo uso da Tecnologia de Detecção de Adulteração

Como desenvolvedor de aplicativos, você deve estar ciente das diferentes técnicas que possibilitariam o desencadeamento de alertas quando invasores tentassem adulterar seu código ou tentar injetar código mal-intencionado. Você pode até implantar a detecção de violação ativa como uma medida de segurança que tornaria o código não funcional se fosse modificado de qualquer maneira.

#7 Usando o Princípio do Mínimo Privilégio

O Princípio de Menor Privilégio afirma que o código deve ser capaz de ser executado apenas com as permissões que são instrumentais para o seu funcionamento e nada mais do que isso. Isso significa que, quando você cria um aplicativo, ele deve apenas solicitar as permissões essenciais para o funcionamento do aplicativo.

#8 Garantir o Tratamento Adequado da Sessão

Como as sessões em dispositivos móveis duram muito mais do que as em desktops, fica mais difícil para o servidor lidar com essas sessões de dispositivos móveis. Uma maneira de facilitar isso é usar tokens no lugar de identificadores de dispositivo para identificar sessões. A maior vantagem aqui é que os tokens podem ser facilmente revogados sempre que houver necessidade. Isso significa que a segurança do aplicativo aumenta no caso de o dispositivo ser roubado ou extraviado. Essa medida pode ser ainda mais fortalecida ao possibilitar a limpeza remota dos dados do dispositivo e até mesmo o logoff remotamente.

#9 Aplicando as Melhores Ferramentas e Técnicas de Criptografia

Falamos sobre criptografia e chaves no início do post, mas se você quiser que seus esforços de criptografia sejam úteis, é importante prestar atenção ao gerenciamento de chaves. Se você codificar suas chaves, estará apenas facilitando uma violação de segurança, facilitando a invasão dos invasores. As chaves devem sempre ser armazenadas em contêineres seguros, e nunca devem ser armazenados localmente no dispositivo.

#10 Continue Testando

Fazer e manter seu aplicativo seguro não é uma tarefa única que teria uma data final definida. Pelo contrário, na verdade, é um processo contínuo em que você teria que continuar testando o aplicativo e preparando-o para ser capaz de afastar as ameaças mais recentes. Você pode continuar testando seu aplicativo em busca de falhas ou vulnerabilidades, investindo em técnicas como testes de penetração, modelagem de ameaças e emuladores. Certifique-se de que essas vulnerabilidades sejam removidas com atualizações oportunas.

Nota de Conclusão

Nos últimos tempos, o mundo testemunhou algumas violações icônicas da segurança e provavelmente não esqueceremos WannaCry e NotPetya. É por essa razão que as pessoas realmente começaram a se sentar e levar as questões de segurança muito mais a sério. Nos próximos anos, organizações e indivíduos tomarão medidas adequadas e priorizarão a segurança sobre a maioria dos outros pontos. Como desenvolvedor de aplicativos, as práticas acima ajudam você a se preparar para isso e oferecer um aplicativo seguro e que mantém os dados de seus usuários protegidos contra invasores.

Appy pie
About The Author

App Builder