Hoje apresentamos e explicamos uma ferramenta de ataque que está se tornando mais comum entre nossos clientes: o Account Checker.
Essa ferramenta de preenchimento de credenciais não é nova, mas seu uso está aumentando rapidamente por motivos que discutiremos a seguir. Embora conceitualmente muito simples e fáceis de usar, os verificadores de contas são extremamente poderosos.
Um verificador de contas é uma ferramenta de ataque que pega listas de pares de nome de usuário/senha vazados (ou seja, “credenciais”) e os testa em um site alvo.
Pacotes poderosos de verificadores de contas custam apenas US$ 100, e os adversários também podem criar seus próprios verificadores de contas a partir de kits de ferramentas de automação da web prontos para uso, como Mechanize, PhantomJS, IEC.py, Sikuli, Selenium ou iMacros. Esses kits de ferramentas reduzem a carga técnica necessária para escrever verificadores de contas e conduzir ataques de preenchimento de credenciais.
Abaixo está um verificador de contas "benigno" chamado namechk.com que ilustra como os verificadores de contas funcionam. Esta ferramenta verifica se um determinado nome de usuário está disponível em várias redes sociais. Verificamos o nome de usuário “shapesecurity” e esta ferramenta identificou corretamente todos os sites nos quais esse nome de usuário foi usado.
Este serviço usa um script que testa automaticamente um determinado nome de usuário em todos os sites visíveis na imagem (por exemplo, Blogger, Facebook, Youtube, Twitter, etc.).
Um verificador de contas criminosas funciona da mesma forma que a ferramenta acima e adiciona recursos adicionais, como verificar se várias senhas (com base em algoritmos de adivinhação ou uma das 25 principais senhas ) funcionam naquele site. O processo completo de verificação de nomes de usuário e senhas, juntamente com intenções maliciosas, leva ao ataque generalizado de preenchimento de credenciais.
Um estudo da Microsoft descobriu que o usuário médio tem pouco mais de seis senhas, que cada senha é compartilhada entre quatro sites diferentes e que cada usuário tem cerca de 25 contas que exigem senhas. Qualquer violação de dados em qualquer lugar faz com que as senhas de 3,9 dos principais sites se tornem públicas.
Brian Krebs escreveu sobre o verificador de contas pronto para uso abaixo. Este é o mesmo tipo de ferramenta usada para hackear o Hilton .
Este verificador é capaz de verificar se as credenciais são válidas e verificar o saldo de pontos, os últimos quatro dígitos do número do cartão de crédito e o endereço de cobrança do cartão.
Abaixo está um exemplo do código subjacente de um verificador de contas. Este verificador de contas testa um grande número de credenciais. Ao encontrar um par válido de credenciais, ele coleta informações de identificação pessoal e rouba valores armazenados e detalhes de cartão de crédito da conta.
O combustível para qualquer verificador de contas é uma lista de credenciais. Felizmente para os invasores, há um grande número de credenciais que são públicas.
Centenas de outras credenciais vazam todos os dias neste perfil do Twitter: twitter.com/dumpmon . Muitos profissionais de segurança usam essa lista para identificar quais contas de usuários em seus respectivos sites foram comprometidas e para bloquear contas comprometidas. Obviamente, os invasores também usam essa lista, em conjunto com verificadores de contas, para encontrar contas vulneráveis, que eles então usam para diversas atividades fraudulentas.
A resposta requer uma compreensão do mecanismo pelo qual os verificadores de contas funcionam.
Os verificadores de conta funcionam usando os elementos de formulário estáticos da página de login como uma API implícita. No exemplo de código acima, o invasor faz referência a vários nomes de elementos de formulário para interagir com a página da web de destino. A maioria dos sites não consegue distinguir essas interações das interações humanas normais
e assim aceitar de bom grado o tráfego de ataque. Isso permite que o invasor automatize o site usando verificadores de conta e execute facilmente milhões de testes ao longo de alguns dias ou semanas (geralmente usando uma grande botnet distribuída e um grande número de endereços IP para evitar limites de taxa e volume). Assim, até mesmo invasores pouco sofisticados podem lançar ataques potentes contra muitos dos maiores sites do mundo.
Para defender os sites contra essa atividade, que chamamos de “automação indesejada”, usamos uma abordagem que é familiar aos invasores: alteramos o código subjacente do site em cada visualização de página. Assim como os autores de malware há muito usam código polimórfico para escapar de produtos antivírus apresentando constantemente assinaturas diferentes, a solução da Shape cria um alvo móvel que frustra scripts que buscam automatizar um site. Isso permite que os administradores de sistemas aumentem o esforço que um invasor deve investir para criar scripts ou automatizar com sucesso um determinado site.
É claro que leitores experientes apontarão inúmeras maneiras de conduzir ataques de diferentes maneiras. Está além do escopo deste artigo (mas talvez seja assunto de artigos futuros) considerar tais ataques (DOM, GUI e outros). A Shape, claro, está extremamente focada em derrotar completamente todos esses ataques e tem soluções em cada um desses níveis.