O que é endurecimento da aplicação?
O endurecimento de aplicações é um conceito e técnica em ciber-segurança que utiliza a ofuscação de código, criptografia de caixa branca e outras técnicas para proteger aplicações de técnicas de fraude móvel, tais como engenharia reversa e adulteração. Inclui medidas para aumentar o nível de esforço necessário para que um ator malicioso ataque um aplicativo. O endurecimento de aplicativos deve ser a melhor prática para as empresas protegerem seus aplicativos, reduzirem os riscos de segurança e evitarem abusos, trapaças e reembalagens.
Proteção inapp, endurecimento da aplicação e blindagem da aplicação
O endurecimento da aplicação e a blindagem da aplicação são subconjuntos de proteção in-app. A protecção In-app foi concebida para defender aplicações a partir do interior e é bem adequada para uma abordagem de confiança zero à protecção de aplicações. A proteção In-app é melhor usada para aplicações de alto valor executadas em dispositivos sem supervisão ou ambientes não confiáveis.
O endurecimento da aplicação inclui capacidades de prevenção que aumentam a dificuldade de um atacante executar um ataque. A blindagem da aplicação envolve medidas anti-tampering concebidas para perturbar um atacante e capacidades de detecção que determinam se o ambiente da aplicação pode ser confiável.
A proteção In-app também engloba recursos como tecnologias anti-bot, proteção contra clickjacking, auto-proteção de aplicações em tempo de execução, autenticação multifator e análise de risco.
Pressupostos de segurança móvel que deixam as aplicações vulneráveis
Os desenvolvedores de aplicativos móveis não são capazes de controlar todos os ambientes nos quais seus aplicativos serão utilizados. Por exemplo, os usuários podem quebrar a prisão ou enraizar seu dispositivo, o que desativa as salvaguardas do sistema operacional. Portanto, o endurecimento do aplicativo é uma parte importante da segurança do aplicativo móvel, pois ele cria proteções no próprio aplicativo, independentemente do status de segurança do dispositivo ou do sistema operacional.
Dois equívocos comuns aumentam os riscos de um comprometimento de uma aplicação móvel.
Primeiro, as pessoas assumem que as lojas de aplicativos oficiais - Apple App Store e Google Play - só oferecem aplicativos legítimos e seguros para download. Os aplicativos oficiais armazenam aplicativos de verificação que os desenvolvedores enviam em busca de malware e verificam se o acesso dos aplicativos aos dados do usuário está mediado.
Mas a realidade é que a loja de aplicativos é incapaz de capturar todos os aplicativos maliciosos, porque há muitos aplicativos demais para erradicar todos os maus e agir como um controle de segurança confiável.
Segundo, muitos assumem que os sistemas operacionais iOS e Android fornecem segurança adequada para aplicativos móveis baixados em seus dispositivos. A realidade é que os patches para uma vulnerabilidade no Android ou iOS nem sempre estão imediatamente disponíveis, e os usuários podem nem sempre praticar a ciber-higiene atualizando seus dispositivos regularmente. Além disso, em alguns casos, os desenvolvedores não implementam corretamente os recursos de criptografia fornecidos pelos sistemas operacionais.
Razões para endurecer as suas aplicações
Existem três razões principais para o endurecimento da aplicação: proteger a propriedade intelectual, proteger a integridade da aplicação e salvaguardar os dados sensíveis da aplicação.
Dentro de uma aplicação, existe propriedade intelectual (PI), tais como conceitos, inovações e invenções que dão à empresa uma vantagem competitiva. Ao analisar o código fonte do aplicativo, um hacker pode roubar o IP. O endurecimento da aplicação pode manter o IP seguro.
A integridade das aplicações também é uma preocupação dos desenvolvedores de aplicações. Os atores maliciosos podem inspecionar e, se possível, modificar um aplicativo para cloná-lo, roubar dados ou raspar dados através de APIs. Um aplicativo que não é endurecido usando ofuscação e criptografia de caixa branca é como um livro aberto. Os atacantes podem realizar uma análise estática do código do aplicativo à vista e encontrar áreas para atacar e explorar. Como parte de uma estratégia de defesa em camadas, as empresas também devem ter mecanismos que adicionem funcionalidades anti-debug e anti-tamper em uma aplicação para proteger, detectar e responder a ataques à sua integridade.
Uma técnica de ataque popular é a exploração de falhas de segurança da aplicação para roubar dados privados sensíveis. Como os dados em uso durante o tempo de execução podem ser expostos de maneiras que os dados em repouso ou em trânsito podem não estar e os atacantes podem ser capazes de aprender a explorar isso usando depuradores, emuladores e outras ferramentas, a próxima melhor estratégia é restringir o uso não autorizado de depuradores, emuladores e outras ferramentas que os hackers empregam para acessar e modificar dados em aplicativos. Além disso, se as chaves de criptografia não forem devidamente protegidas, um atacante pode roubar essas chaves e usá-las para acessar os dados em trânsito. O endurecimento de aplicações e outras técnicas de proteção in-app protegem as aplicações e os dados que fluem através delas, desativando os vetores de ataque que os hackers utilizam.
Técnicas de endurecimento de aplicação
O endurecimento de aplicações engloba várias técnicas para proteger as aplicações dos atacantes. Estes incluem:
Código Obfusco
A ofuscação de código codifica o código do aplicativo para dificultar a engenharia reversa dos aplicativos. Por isso, é mais difícil visar um aplicativo tornando-o mais difícil de ler, o que também torna mais difícil roubar seu IP ou reembalá-lo. A ofuscação de código utiliza várias técnicas para proteger as aplicações. Os componentes de software e identificadores podem ser renomeados. O código de dummy que nunca é usado pode ser adicionado, e as cordas podem ser criptografadas. O código pode ser recompilado e executado em um intérprete ou em uma máquina virtual. Outras técnicas de ofuscação de código incluem reflexão e embalagem.
Boxe branco ou criptografia de caixa branca
Esta abordagem oferece uma alternativa à utilização de ferramentas nativas de plataformas modernas, tais como o Keychain da Apple iOS ou o Android Keystore. Se uma empresa precisa permitir que seus aplicativos funcionem em dispositivos quebrados na prisão, esta pode ser uma técnica de criptografia útil. Além disso, o boxe branco pode ser usado se o intruso vir o local padrão, como Keychain/Secure Enclave para iOS ou KeyStore para Android, para credenciais em um dispositivo para atacar um ataque.
Outras Técnicas:
- O pinning de certificados, que permite que as partes envolvidas num processo de autenticação mútua fixem determinados certificados, pode ser usado para combater ataques de homem no meio.
- A criptografia de recursos envolve a criptografia de componentes de aplicativos, tais como classes e strings.
- A expiração automática define um prazo após o qual o usuário é desconectado do sistema após um período de inatividade.
- Os teclados autônomos podem ser empregados para parar as tentativas de registro de teclas, e a detecção de teclados desonestos pode ser usada para detectar teclados não autorizados.
- O polimorfismo é um método onde o código pode ser alterado para tornar a engenharia reversa mais difícil.
Casos de uso de endurecimento de aplicação
Os aplicativos bancários móveis são um caso de uso para endurecimento do aplicativo. Mais usuários móveis estão confiando em seus dispositivos bancários. Os fraudadores procuram capitalizar sobre qualquer falha na segurança que possam encontrar. O endurecimento do aplicativo ajuda a evitar que fraudadores desenvolvam explorações maliciosas do aplicativo bancário móvel , tornando mais difícil o sucesso de um atacante.
As aplicações móveis de saúde lidam com informação de saúde protegida (PHI) regulada pela Lei de Portabilidade e Responsabilidade de Seguros de Saúde (HIPAA). Os prestadores de serviços de saúde e outros podem enfrentar penalidades severas se seus aplicativos de telesaúde revelarem dados dos pacientes. O endurecimento da aplicação pode assegurar que a confidencialidade do paciente seja mantida e que as multas HIPAA sejam evitadas, assegurando que os ciberataqueiros não possam aceder aos PHI.
Os aplicativos de varejo móvel são outro excelente caso de uso para endurecimento de aplicativos. Eles lidam com dados de cartões de crédito regulados pelo PCI DSS (Payment Card Industry Data Security Standard). Os comerciantes on-line que não cumprirem com o PCI DSS podem enfrentar multas de empresas de cartão de crédito, a perda da confiança dos clientes e até mesmo auditorias da Federal Trade Commission.
O pessoal dos serviços públicos, como os socorristas, os agentes da lei e as agências governamentais, acedem, transmitem e armazenam informações sensíveis nos seus aplicativos móveis. Estes dados podem ser regidos pela HIPAA, políticas da agência ou regras de privacidade, pelo que necessitam de ser protegidos por medidas de segurança robustas, tais como o endurecimento das aplicações.
Os aplicativos móveis voltados para o consumidor são uma ponte entre o mundo externo e bancos de dados sensíveis de clientes internos, tornando-os um alvo para os atacantes. O endurecimento de aplicativos é capaz de bloquear ou impedir que atacantes explorem as inúmeras vulnerabilidades em aplicativos móveis que podem resultar em roubo de dados.
Com o número de dispositivos e aplicativos conectados aumentando exponencialmente, a superfície de ataque para os hackers se infiltrarem nas redes em casa, no local de trabalho e na fábrica está se expandindo a um ritmo semelhante. Os aplicativos que controlam dispositivos conectados são vulneráveis a ataques. O endurecimento de aplicativos pode proteger esses aplicativos para proteger sistemas incorporados de maneiras que as soluções antivírus e outras ferramentas de segurança convencionais não podem.
Ajudar a proteger contra estas estratégias de ataque com endurecimento da aplicação
O endurecimento de aplicações pode ajudar a defender aplicações contra vários cenários de ataque, incluindo engenharia reversa, reembalagem e teclados desonestos.
A engenharia reversa é a prática de analisar um aplicativo para extrair informações de projeto e implementação. A técnica pode ser usada para fins legítimos, mas um atacante também pode usá-la para analisar código e desenvolver malware que explora aplicativos para fins nefastos.
Em um ataque de reembalagem, um hacker inverte um aplicativo legítimo, adiciona código malicioso a ele e o carrega para uma loja de aplicativos. Esta é uma técnica favorita de atacantes que têm como alvo aplicações bancárias móveis.
Aplicativos de teclado alternativos, que são usados por pessoas para personalizar seus teclados, também podem esconder códigos maliciosos que roubam dados ou executam outras ações maliciosas.
O resultado final é que o endurecimento de aplicativos protege os aplicativos contra atividades maliciosas e protege informações sensíveis de cibercriminosos durante todo o seu ciclo de vida. O endurecimento de aplicações é parte de uma abordagem de segurança em camadas que inclui proteção em tempo de execução, autenticação forte e outras técnicas. A segurança em camadas pode ajudar a acelerar as iniciativas de transformação digital, reduzir os custos operacionais e abrir novas oportunidades de crescimento.