Ferramenta de detecção de card skimming com código aberto - Infonova
Ferramenta de detecção de card skimming com código aberto
Por Juliana Gaidargi em 2/03/2022 em Segurança
A ferramenta de detecção de card skimming com código aberto simula a navegação e as compras online para identificar códigos maliciosos destinados a roubar informações de cartões de pagamento nos sites dos varejistas.
O card skimming na web tem sido um grande flagelo para as lojas online nos últimos anos. Os ataques vão desde simples injeções de scripts em formas de pagamento até comprometimentos sofisticados de scripts e serviços legítimos de terceiros. Às vezes chamados de ataques Magecart, eles se tornaram a principal causa de fraude de cartão não presente (CNP). Portanto, impactaram pequenas e grandes marcas, bem como diferentes tipos de plataformas de comércio eletrônico.
Como um dos principais varejistas online, a Target começou a buscar soluções há alguns anos para combater essa ameaça. Afinal, essa era a melhor forma de manter seus próprios clientes protegidos enquanto compram em sua plataforma. Contudo, como não havia ferramentas de detecção prontas para esses ataques na época, dois engenheiros de segurança da empresa decidiram desenvolver suas próprias. Depois de estar em uso ativo no Target.com por mais de três anos, o scanner do lado do cliente da empresa foi lançado como um projeto de código aberto chamado Merry Maker.
"O Merry Maker simula continuamente a navegação online e conclui transações de teste para verificar a presença de código malicioso. Ou seja, o Merry Maker age como um convidado no Target.com ao concluir várias atividades típicas, incluindo compras on-line. Ao fazer isso, a ferramenta coleta e analisa uma variedade de informações, como solicitações de rede, arquivos JavaScript e atividade do navegador para determinar se há algum tipo de atividade indesejada."
O que é card skimming?
Card skimming é um tipo de ataque em que um dispositivo ou mecanismo malicioso é inserido no ponto de uma transação legítima para capturar detalhes do cartão. Ou seja, é um ataque man-in-the-middle. No mundo físico, dispositivos de skimming são anexados ao slot de cartão de caixas eletrônicos ou terminais de pagamento de bombas de gasolina para capturar os dados codificados na tarja magnética do cartão.
Eles geralmente são acompanhados por pequenas câmeras ou sobreposições de PIN pad para capturar os números PIN inseridos pelos usuários também. No entanto, a transição para cartões baseados em chip que usam criptografia junto com outros recursos de autenticação e validação de transações visa combater esses ataques de cartão presente.
Os ataques de web skimming ou digital skimming seguem um princípio semelhante. No entanto, usam código malicioso injetado nas páginas de pagamento de sites de compras online. Seu objetivo é capturar e desviar os detalhes do cartão e outras informações de pagamento inseridas pelos usuários em formulários. Esses scripts maliciosos de card skimming acabam em sites de várias maneiras:
Usando credenciais administrativas fracas ou roubadas;
Explorando vulnerabilidades em aplicativos da Web que permitem que invasores carreguem códigos não autorizados em servidores da Web;
Comprometendo serviços de terceiros, como análises da Web cujos scripts já estão carregados nas páginas de pagamento.
Entretanto, grupos de skimming na Web usam técnicas sofisticadas para tornar seu código de keylogging difícil de detectar. O código pode ser fortemente ofuscado e adicionado a arquivos JavaScript existentes. Eles também podem ser armazenados em outros tipos de recursos como CSS ou até mesmo incorporado em imagens. No entanto, outro viés é a hospedagem em domínios de terceiros que tenham nomes semelhantes aos usados ​​por serviços legítimos. Há ainda casos em que estão em redes de entrega de conteúdo com apenas uma pequena função de importação no site real.
Merry Maker e a detecção do lado do cliente
Os proprietários de sites podem usar diferentes tecnologias em servidores da Web para detectar a modificação não autorizada de arquivos de script. No entanto, os sites podem ser altamente complexos, usando código gerado dinamicamente com base em informações armazenadas em bancos de dados. Estas, por sua vez, são fornecidas aos usuários em tempo real. Portanto, uma estratégia de defesa adequada também requer varreduras realizadas com rastreadores do lado do cliente. Afinal, elas podem capturar o código renderizado completo que o navegador de um usuário comum receberia. É exatamente assim que o Merry Maker da Target foi projetado para funcionar.
"O Merry Maker foi desenvolvido para imitar o comportamento de usuários reais enquanto navegam em um site: pesquisando um produto, adicionando-o ao carrinho, inserindo detalhes de pagamento e enviando o pedido. Afinal, todo o código do lado do cliente executado durante essas etapas só pode ser totalmente executado em um navegador real."
A estrutura tem dois componentes: um painel de administração onde os defensores podem definir regras de detecção e revisar alertas e o próprio scanner do lado do cliente que é implementado usando o Headless Chrome – uma versão controlada por programação do navegador popular. Desde o seu lançamento em 2018, o scanner de card skimming completou mais de um milhão de digitalizações no Target.com.
Para automatizar o navegador headless, o Merry Maker conta com um componente Node.js chamado Puppeteer. Ele fornece uma API para controlar o navegador por meio do protocolo DevTools usando instruções escritas em JavaScript. Contudo, para complementar isso, os engenheiros da Target desenvolveram uma ferramenta chamada JS Scope que enumera solicitações de javascript e conecta as chamadas de função nativas do navegador.
"JS Scope nos dá uma melhor compreensão do comportamento do código do lado do cliente além da análise estática. Afinal, cada chamada de função, solicitação da web, resposta, cookie e outras chamadas relevantes são capturadas e analisadas quase em tempo real."
O scanner de card skimming pode executar várias regras de detecção para os eventos e conteúdo capturados pelo cromo sem cabeça em tempo real. Não obstante, o scanner suporta regras YARA – um mecanismo para classificar e identificar amostras de malware – e pode receber conjuntos de regras publicamente disponíveis que outros defensores escreveram ou customizaram para detectar tipos específicos de dados ou strings. Além disso, ele oferece suporte a regras de detecção baseadas em indicadores conhecidos de comprometimento (IOCs), como domínios de skimming digital que podem ser ingeridos de listas públicas ou de um fornecedor de inteligência de segurança.
A escrita de regras de detecção mais complexas também é suportada via Typescript. Esta consiste em uma linguagem de programação desenvolvida pela Microsoft que se baseia em JavaScript e estende sua sintaxe. No entanto, há também detecções mais genéricas para nomes de domínio desconhecidos, que adotam uma abordagem de lista branca. Nela, as solicitações para qualquer domínio que não tenha sido listado na lista branca são sinalizadas como potencialmente suspeitas.
Os alertas gerados pelo scanner de card skimming podem ser recebidos de três formas: através do painel do Merry Maker; por meio do Kafka, uma plataforma de streaming de eventos distribuídos de código aberto; ou por meio do GoAlert, outro projeto Target de código aberto que oferece suporte ao agendamento de chamadas, escalações automatizadas e notificações via SMS ou chamadas de voz.
O Merry Maker pode ser implantado como um contêiner do Docker. Ou seja, pode ser facilmente implantado em infraestrutura de nuvem em todo o mundo para imitar a diversidade geográfica de usuários reais. Afinal, alguns skimmers acionam seu código malicioso apenas para visitantes de determinados locais ou de determinados navegadores com determinadas configurações de idioma. Contudo, todos esses perfis de visitantes podem ser imitados com o Merry Maker.
Skimmers estão evoluindo e a detecção precisa acompanhar
Ferramentas e técnicas de detecção de card skimming nunca são uma bala de prata. Afinal, elas precisam ser complementadas com medidas preventivas ativas, como:
Manter todos os scripts de terceiros, complementos, estruturas e plug-ins que compõem um site atualizados;
Varreduras de vulnerabilidades estáticas e dinâmicas;
Auditorias de segurança de código interno e externo;
Gerenciamento de credenciais e autenticação de dois fatores;
Remoção de código desnecessário de páginas críticas, como formulários de pagamento;
Aproveitamento de mecanismos de segurança baseados em navegador, como Política de Segurança de Conteúdo (CSP) e Integridade de Sub-recurso (SRI).
Embora nenhum deles sozinho ofereça proteção perfeita, quando usados ​​juntos, reduzem significativamente a chance de uma infecção do skimmer.
CSP é um mecanismo através do qual um site pode informar aos navegadores os nomes de domínios externos confiáveis ​​a partir dos quais os scripts executáveis ​​podem ser carregados em seu contexto. Então, se o navegador encontrar um script que não seja de um dos domínios da lista de permissões na política CSP, ele deverá se recusar a carregá-lo. Embora possa ser um ótimo mecanismo de defesa, o CSP não aborda os casos em que um serviço de terceiros confiável que foi incluído na lista de permissões é comprometido e a injeção maliciosa ocorre em seu final.
O papel do SRI
Portanto, o SRI vem para complementar o CSP porque permite que os sites especifiquem um hash criptográfico para os recursos externos que eles buscam, por exemplo, de um CDN. Ou seja, o navegador validará que o recurso externo, como um script, possui o hash especificado pelo site que tenta importá-lo e se recusará a carregá-lo se o valor do hash não corresponder. Isso se destina a proteger contra a manipulação maliciosa de recursos externos. O problema com o SRI é que ele não é fácil de manter. Especialmente em sites muito grandes com muitos recursos externos e código dinâmico.
"Não há respostas fáceis para esse problema. Afinal o SRI pode ser um desafio se os recursos de terceiros forem muito utilizados por uma organização para telemetria/análise. Para a Target, um primeiro passo importante para melhorar a segurança do site tem sido ajudar as equipes que decidem sobre o conteúdo de terceiros a entender os riscos. Removemos todo o conteúdo de terceiros veiculado em páginas confidenciais que podemos e estamos trabalhando para usar SRI em scripts próprios" – Chris Carlson, diretor sênior de segurança cibernética e um dos desenvolvedores do Merry Maker, ao CSO.
Os outros funcionários da Target que criaram o Merry Maker são o Engenheiro Principal Eric Brandel e o Engenheiro Ilustre Caleb Walch.
Em uma apresentação na Black Hat Europe em 2021, pesquisadores da empresa de segurança Cyberpion apresentaram várias técnicas de evasão de detecção que os skimmers podem usar para evitar a detecção baseada no cliente. Isso inclui as chamadas injeções "sem script", em que um script de terceiros legítimo usa um serviço para armazenar outras fontes de dados que afetam o comportamento de um script e que podem ser carregadas no contexto do script por meio de solicitações Ajax. Afinal, comprometer essas fontes de dados de terceiros também pode fornecer aos invasores uma via de ataque enquanto o código do próprio script de terceiros permanece limpo. Este é um exemplo de um ataque digital à cadeia de suprimentos em que o ataque é movido para cima na cadeia.
"O Merry Maker pode detectar comprometimentos de primeira ou terceira parte (ou, nesse caso, de quarta parte) porque está examinando todo o código JavaScript (não sua origem) e todo o tráfego de rede gerado para indicadores de intenção maliciosa. No entanto, independentemente da fonte, o Merry Maker detecta indicadores."
Dito isso, existem técnicas e até bibliotecas de código aberto projetadas para detectar o uso de navegadores sem cabeça e distingui-los de visitantes ativos reais. Entretanto, skimmers podem fazer uso de tais métodos para evitar a exibição de seu código malicioso para scanners de card skimming automatizados como o Merry Maker.
"Assim como acontece com muita segurança cibernética, é uma questão de acompanhar as ameaças em evolução; Portanto, temos contramedidas para tentar mitigar a probabilidade dessa detecção impactante e, felizmente, a Puppeteer tem uma comunidade crescente de bibliotecas para combater esses tipos de técnicas".