No dia 3 de fevereiro de 2020 o Partido Democrata dos Estados Unidos realizou a sua convenção no Estado de Iowa, no processo para definição do candidato do partido que irá disputar a corrida para a Casa Branca em 2020.
Isso não aconteceu. Depois de uma noite caótica, cheia de erros e má administração, o evento ainda não havia indicado um vencedor até o final do mês e os resultados apurados por outros meios correm o risco de serem anulados, por serem considerados imprecisos. Os líderes do partido e os especialistas se esforçaram para descobrir o que deu errado e chegaram à conclusão que um aplicativo para smartphone desenvolvido às pressas e insuficientemente testado para coletar os votos dos delegados estava no centro do desastre.
A situação não foi obra de hackers estrangeiros determinados a se infiltrar nesse processo democrático. Foi algo muito mais simples: o aplicativo não funcionou muito bem.
Como isso poderia ter acontecido? Antes do evento, o presidente do Partido Democrata de Iowa, Troy Price, declarou: “Se houver um problema, estaremos prontos com um backup e um backup para esse backup e um backup para o backup do backup”. Price acabou reconhecendo o erro e renunciou ao cargo. Esse é um exemplo embaraçoso de um executivo bem-intencionado que dá luz verde a um software não testado e sem a segurança mais básica.
As principais críticas foram direcionadas ao fato de que o aplicativo não funcionou. Não há duvida que em todos os aplicativos e sites de negócios e voltados a clientes, a funcionalidade é crucial. No entanto, a funcionalidade é apenas o que vemos na superfície. Como profissionais de segurança, nosso foco para evitar ataques se dirige para o que está acontecendo sob a camada superficial.
Nunca saberemos se os problemas podem ter distorcido os resultados eleitorais da convenção de Iowa, mas podemos considerar quatro questões de segurança que ajudam a proteger aplicativos e sites móveis:
Pessoas
Como humanos, cometemos erros. Os problemas com um software começam com os erros cometidos pelos profissionais que o codificam. As taxas de erro variam de acordo com vários fatores. De 10 a 20 erros por 1.000 linhas de código é uma média típica mencionada informalmente entre os profissionais desenvolvedores.
Os erros de codificação são uma causa direta de vulnerabilidades em aplicativos e sites móveis, que podem expor uma organização a um ataque. Os gerentes de projeto devem esperar erros de codificação e é por isso que testes contínuos rigorosos são essenciais, especialmente para DevOps, onde a mudança no código é constante. Existem medidas de proteção de segurança para ajudar a evitar possíveis comprometimentos devido a erros de codificação.
As pessoas também cometem erros ao usar aplicativos e sites. O relatório “Insider Threat Report 2019” da Verizon confirma o que sabemos: um colaborador descuidado é uma grande ameaça interna. Essas pessoas são “recursos despreparados, que violam políticas de uso definidas, manipulam dados incorretamente, instalam aplicativos não autorizados e usam soluções alternativas não aprovadas”. O phishing e o uso de credenciais roubadas são as principais causas de violações de dados, segundo o documento.
Seus desenvolvedores estão criando controles em aplicativos que ajudam a resolver esses tipos de erros?
Quando falamos em controles de segurança, a responsabilidade (accountability), ou falta dela, é um grande desafio para o desenvolvimento seguro de aplicativos. À medida que cresce a colaboração de vários departamentos na concepção, desenvolvimento e evolução de aplicativos móveis e da Web, quem é o responsável pela segurança? Em um ambiente DevOps, desenvolvedores, especialistas em redes, profissionais de segurança e outros abordam elementos de segurança de diferentes maneiras.
Quem é o responsável em sua organização?
Coisas
A lista de possíveis vulnerabilidades para aplicativos e sites para celular é interminável. Atualmente, dois dos maiores problemas de segurança enfrentados globalmente por todas as organizações são a exposição de APIs e um coletivo de atores de ameaças chamado Magecart Group.
A API (Application Programming Interface) permite que o lado do cliente de um aplicativo interaja mais diretamente com o aplicativo da Web de back-end e seus bancos de dados e infraestrutura de suporte. As APIs permitem que os desenvolvedores criem aplicativos que renderizam e reagem dinamicamente ao usuário, proporcionando uma experiência imersiva que se adapta a cada indivíduo. Os invasores procuram ativamente por vulnerabilidades nas APIs, porque é o método mais direto e de baixo nível para exfiltrar dados em massa, que podem ser dissociados do código do lado do cliente para serem usados arbitrariamente. Aplicativos e sites seguros de ponta-a-ponta exigem monitoramento e controles que protejam as APIs.
Os Magecart Groups são vários grupos distintos de criminosos cibernéticos, que apresentam um conjunto semelhante de técnicas para explorar carrinhos de compras on-line. O objetivo é roubar credenciais para acessar os dados do cartão de pagamento do cliente e os dados de identificação pessoal. Para fazer isso, um hacker injeta um código JavaScript no aplicativo Web ou redireciona o carrinho de compras para um site que hospeda um malware.
Explorações como o Magecart são eficazes porque muitos desenvolvedores usam ferramentas de terceiros, como carrinhos de compras pré-criados e outros aplicativos, sem verificar possíveis vulnerabilidades. Os especialistas em segurança sempre advertem às empresas e organizações que aceitam cartões de pagamento on-line para implementar controles de proteção contra ataques no estilo Magecart.
Estatísticas mostram que invasores já usaram o Magecart para violar com êxito mais de 18.000 domínios.
Esse vetor de grande ameaça está no seu radar?
Práticas
As organizações estão sempre falando sobre melhores práticas. Entretanto, as listas publicadas de bons procedimentos podem distorcer a percepção do que realmente importa em seu cenário específico.
Podemos citar dois problemas de segurança que ocorrem repetidamente, causados por códigos desprotegidos que podem sofrer facilmente engenharia reversa. Esse descuido permite que um ator mal-intencionado explore livremente o código de um aplicativo, para determinar como ele funciona e para descobrir quaisquer erros de codificação, como tokens, chaves ou senhas codificadas diretamente no aplicativo.
A exploração de código procura descobrir como funciona o código do aplicativo. O método é semelhante aos assaltantes de bancos que analisam as plantas de construção para descobrir como invadir fisicamente uma agência por um prédio próximo. Um hacker examina o código para entender seu fluxo de processos e identificar vulnerabilidades exploráveis.
O código de aplicativos desprotegidos que estão disponíveis para download em lojas ou sites de aplicativos é fácil de explorar por ferramentas gratuitas e pagas como IDA Pro, Binary Ninja e Hopper. Todas elas podem reproduzir fielmente o código fonte de um binário. Se você tiver algum segredo em seu código, o invasor o encontrará com uma dessas ferramentas se não estiver protegido. A única maneira de impedir esse tipo de exposição ao código é aplicar uma proteção no código antes que um aplicativo seja disponibilizado para uso público.
Uma má prática típica dos desenvolvedores é codificar tokens ou chaves em um aplicativo ou site. A incorporação de credenciais de segurança no código visa simplificar os processos de logon e evitar queixas de usuários. A prática pode ser justificada se esse acesso automático tiver escopo limitado e não expuser o acesso a dados confidenciais.
De maneira geral, deve-se evitar credenciais de codificação embutidas em todos os aplicativos e sites de acesso público. Lembre-se: se o código for público e desprotegido, qualquer pessoa poderá ler o código claramente em texto, incluindo a chave. Isso significa que uma violação pode passar totalmente despercebida, porque você deixou a chave na porta da frente.
Se você incorpora credenciais, não faça isso!
Ferramentas
Os responsáveis por proteger os aplicativos e o site de uma organização não devem subestimar a facilidade de hackear códigos. Muitas ferramentas disponíveis publicamente facilitam a exploração de vulnerabilidades no código, algumas das quais persistem por anos, apesar das frequentes notícias sobre violações. Aqui estão quatro exemplos:
Magisk é uma ferramenta que fornece acesso à raiz e uma interface sem sistema, permitindo que um hacker altere um sistema sem adulterar as partições. Magisk pode ocultar modificações de praticamente qualquer verificação de integridade de sistemas usada em aplicativos bancários, aplicativos de monitoramento corporativo, detecção de trapaças em jogos e até mesmo na API SafetyNet do Google. Magisk é uma estrutura de ataque Android de código aberto, com mais de 3.900 ataques, 100 releases e 140 colaboradores. Isso demonstra muita força.
Frida é um toolkit dinâmico para desenvolvedores, especialistas em engenharia reversa e pesquisadores de segurança. Ah, sim, e hackers também! O kit de ferramentas orquestra código dinâmico e injeção de dados em aplicativos nativos. Os fornecedores do Frida prometem: “Conecte qualquer função, espione APIs criptografadas ou rastreie código de aplicativos privados, sem a necessidade do código-fonte. Edite, clique em salvar e veja instantaneamente os resultados. Tudo sem etapas de compilação ou reinicialização de programas”. É uma das ferramentas do seu tipo mais fáceis de usar, para o bem ou para o mal.
Cycript permite que os invasores explorem e modifiquem aplicativos em execução no iOS ou Mac OS X. Também pode ser usado para redirecionar e interceptar chamadas de API. Nas palavras de seus idealizadores, “o Cycript permite que desenvolvedores explorem e modifiquem aplicativos em execução no iOS ou Mac OS X usando um híbrido de sintaxe Objective-C ++ e JavaScript por meio de um console interativo que apresenta realce de sintaxe e preenchimento de guias. (Ele também roda de forma independente em Android e Linux e fornece acesso ao Java, mas sem injeção)”. Ele foi projetado para ser uma ferramenta de desenvolvedor, mas maus atores descobriram ser uma maneira muito útil de fazer engenharia reversa e modificar o comportamento do aplicativo.
Game Guardian é uma ferramenta de hack/alteração de jogos. Os fornecedores dizem que esta ferramenta “pode modificar a quantidade de dinheiro, Hit Points (HP), Special Points (SP) e muito mais. Você pode aproveitar a parte divertida de um jogo sem sofrer com um design ruim”. Em 2019, a receita com jogos superou US$ 120 bilhões em todo o mundo, com um único título faturando US$ 1,8 bilhão. Proteger a integridade de um jogo é fundamental para os estúdios de jogos, se eles quiserem manter sua base de jogadores e fluxo de receita.
Todas essas ferramentas podem ser baixadas gratuitamente, são relativamente simples de usar, com ampla documentação e comunidades de suporte. Em alguns casos, centenas de colaboradores participaram no desenvolvimento do código-fonte aberto.
Próxima etapa: Fazer um balanço da segurança dos seus aplicativos e sites
A situação embaraçosa dos líderes políticos de Iowa causou um colapso, apesar das melhores intenções. É verdade que esse acontecimento teve divulgação internacional e, portanto, a condenação pública foi rápida e severa. É improvável que a maioria dos aplicativos e sites sob sua responsabilidade tenha o mesmo nível de visibilidade. No entanto, se um ataque comprometer a segurança de seus ativos, as consequências podem ser proporcionalmente muito prejudiciais para os negócios da sua empresa e sua reputação. Portanto, certifique-se de pensar na segurança ao conceber, criar, implementar e revisar os aplicativos e sites da sua empresa.
Faltam apenas poucos meses para a Lei Geral de Proteção de Dados (LGPD) entrar em vigor e, segundo um relatório dinâmico extraído da ferramenta “Diagnóstico LGPD“, apenas 38% das empresas demonstram estar de acordo com as exigências feitas pela nova lei de privacidade nos domínios Processos, Pessoas e Tecnologia. O diagnóstico, desenvolvido pela Associação Brasileira das Empresas de Software (ABES) em parceria com a EY, foi realizado até o momento por mais de 400 organizações dos setores de agronegócio, tecnologia, finanças, indústria e outros.
Podemos ajudar sua equipe a blindar o código binário contra engenharia reversa, garantindo que o código desenvolvido por sua empresa não será manipulado e promovendo a autoproteção dos aplicativos.
Acesse nossos materiais e descubra:
- Os benefícios da adoção de uma abordagem de segurança em várias camadas para Apps;
- As práticas recomendadas para proteção de código, criptografia de dados e chaves;
- Como os dados de ameaças em tempo real podem fornecer visibilidade crítica da postura de segurança de um App, colocando você à frente das vulnerabilidades.
Está na hora de levar a sério a segurança do seu App.
Comments are closed.
Recent Comments