Notícias

UB CLOUD MANAGED HOST

VULNERABILIDADE DE SERVIÇOS DE API

Blog Single

Antes que o aplicativo móvel seja ativado, são os serviços de API que são ativados e não são apenas acessíveis por dispositivos móveis, mas também podem ser acessados na web. Desenvolvedores ou hackers podem descobrir esses serviços e, em seguida, realizar ataques para modificar os dados provenientes do dispositivo móvel, comprometendo seus sistemas. Como solução, as APIs devem ser protegidas. A identificação e permissão de uso (pelo cliente) da API devem ser configuradas no lado do servidor. Para garantir que as APIs sejam capazes de lidar com a segurança, elas devem ser exaustivamente testadas.

Protegendo dados off-line / do dispositivo

Embora as redes móveis sejam difundidas, elas não cobrem todos os lugares que um usuário viaja ou pretende viajar. Nesses casos, um usuário pode precisar de dados offline para manter seu trabalho em andamento. Embora cada aplicativo móvel tenha seu próprio conjunto de arquivos locais, bancos de dados e cache, é possível que os aplicativos acessem os dados de outros aplicativos. Os dispositivos móveis também são afetados por malware e, por sua vez, os dados podem ser comprometidos. O sistema operacional móvel, no entanto, fornece recursos de segurança, mas não impede que os invasores atinjam seus objetivos inteiramente. Portanto, para manter seu aplicativo móvel e seus dados seguros, tente evitar o armazenamento de informações críticas no sistema de arquivos ou no banco de dados local, a menos que o requisito de negócios exija. Nesse caso, criptografe os dados que você considera confidenciais, certificando-se de que não sejam facilmente quebráveis.

Proteja seu canal de comunicação

A maioria dos aplicativos são baseados em cliente-servidor, portanto, usam muita comunicação de ida e volta de dados pela rede. Os canais de rede são propensos a adulteração e espionagem e esta é a razão pela qual se deve considerar a proteção da rede usando Secure Socket Layer (SSL) ou seus protocolos sucessores Transport Layer Security (TLS).

Como dito acima, proteger seu canal dessa maneira nunca garante 100% de segurança. Para habilitar a autenticação bidirecional, é recomendável usar a fixação de certificado ou chave pública. Além disso, você deve usar a versão SSL correta e manter seus certificados atualizados o tempo todo. Fique atento à sua infraestrutura de rede e às falhas subjacentes, Gerenciamento de identidade e acesso

Para ter acesso a um aplicativo e operar, o usuário precisa validar sua identidade. A maioria dos aplicativos móveis usa políticas de autenticação como prática padrão. Se a rede não for segura o suficiente, as credenciais podem ser facilmente roubadas por invasores. Por outro lado, o usuário autenticado pode não estar autorizado a realizar qualquer tipo de operação no aplicativo. Como solução, o usuário deve ser autenticado de tempos em tempos e seus privilégios devem ser monitorados e, a cada ação/operação crítica, devem ser revalidados. O gerenciamento de sessão do lado do servidor desempenha um papel vital neste caso, portanto, deve ser bem projetado. O acesso anônimo a qualquer recurso deve ser proibido pelo servidor.

Criptografia forte

Empresas e indivíduos criptografam dados e conteúdo quando o consideram crítico. Para criptografar/ descriptografar texto simples e dados binários, eles seguem determinado algoritmo, mas o mecanismo ou a implementação do algoritmo pode ser falho, resultando em baixa resistência ao ataque. A implementação de criptografia usando algoritmos fortes é uma maneira de garantir a segurança dos dados tanto para os dados residentes no dispositivo, quanto para os dados em trânsito durante a comunicação dispositivo-servidor e servidor-dispositivo e nos armazenamentos de dados de back-end igualmente. Use algoritmos de criptografia fortes, como AES/Rijndael, Twofish, Serpent e RC6 para criptografar o conteúdo. Faça com que sua implementação de segurança seja completamente testada por engenheiros de segurança profissionais.

Revisão/liberação de código ruim

Quando discutimos a segurança de aplicativos, dados e rede, perdemos o fato de que os desenvolvedores introduzem falhas de segurança no código por meio de credenciais de codificação, endereços IP, URLs e acesso backdoor a aplicativos móveis. Comentar senhas ou texto em código HTML (aplicativos da Web híbridos ou móveis) não os remove. Os invasores podem ler essas informações e usá-las para invadir sistemas de back-end. Uma revisão completa do código deve ser conduzida para ver se há alguma informação crítica codificada dentro do código ou se o acesso backdoor está habilitado para conveniência dos desenvolvedores ou testadores.

Manipulação binária e engenharia reversa

Os aplicativos de smartphone nada mais são do que uma série de arquivos binários arquivados juntos em um único arquivo. Depois que o código do aplicativo é finalizado, revisado e liberado para distribuição, geralmente é considerado seguro pelos desenvolvedores. Isso não é verdade, no entanto. Estes podem ser submetidos a engenharia reversa por programadores para obter código-fonte, imagens, bibliotecas e outros conteúdos importantes. Os invasores podem acessar os binários, o código subjacente e as bibliotecas de terceiros usadas dentro dele. Eles podem modificar os dados, recursos, bibliotecas, APIs etc. do aplicativo, o que pode fornecer informações sobre seu aplicativo, servidor, armazenamento de dados e outras informações críticas e arquitetura de implementação. Carregue recursos críticos em tempo de execução (do servidor) e remova-os quando não estiverem em uso. Assinar seus binários não resolve o problema inteiramente, mas ajuda a identificar a autenticação do editor e a integridade do próprio código. Certifique-se de que a revisão/liberação de código ruim também seja abordada.

Gerenciamento de sessão do servidor

Normalmente, os aplicativos móveis corporativos operam com a ajuda de servidores de middleware ou MBaaS (Mobile Backend as a Service). Esses servidores cuidam de muitos aspectos e um deles é o gerenciamento de sessões. Depois que uma sessão de usuário é estabelecida com o servidor, um invasor pode invadi-la e realizar operações no servidor. Normalmente, esses servidores possuem timeout de sessão como medida de segurança, mas a revalidação do usuário de tempos em tempos deve ser realizada para identificar a autenticidade da sessão.

Permissões do aplicativo

Ao desenvolver um aplicativo, nem todas as permissões de nível de plataforma necessárias para o aplicativo. Os desenvolvedores devem habilitar apenas as permissões nas quais o aplicativo precisa operar e os auditores devem revisar isso. Da mesma forma, os usuários devem ser instruídos o suficiente para entender essa situação em que um aplicativo está solicitando o acesso às informações nas quais não se destina a operar.

Notícias