abril 18, 2017

[Segurança] O maior ataque a banco de todos os tempos da última semana

Uma reportagem recente na revista Wired chamou atenção do mercado de segurança e do mercado bancário brasileiro: segundo eles, um grande banco nacional teria sido atacado por ciber criminosos, que tomaram controle de diversas operações do banco por algumas horas.


Segundo a reportagem da Wired e o blog da Kaspersky, um "Banco-Que-Não-Deve-Ser-Nomeado" sofreu um ataque relâmpago e bem coordenado as 13h do dia 22 de Outubro de 2016, sábado, que conseguiu alterar todos os registros DNS do banco e, assim, sequestrar os acessos aos serviços de Internet e Mobile banking durante cinco horas. Depois de aparentemente obter acesso ao cadastro DNS no registro.br (possivelmente através de phishing ou engenharia social nos funcionários do banco, segundo o NIC.br), os ciber criminosos redirecionaram as URLs dos sites existentes para sites de phishing hospedados na nuvem da Google.

Para enganar os clientes, os atacantes geraram um certificado digital SSL aparentemente legítimo em nome do banco através do serviço gratuito Let’s Encrypt. Assim, ao cair no site de phishing, as vítimas pensavam que a conexão era válida e segura. Além disso, o site falso distribuía um malware com instalação automática, disfarçado como se fosse o plug-in de segurança da Trusteer. O malware foi projetado para roubar informações de login de bancos, listas de contatos e credenciais de e-mail e FTP.





Em vários momentos, a notícia me pareceu ter um tom bem sensacionalista:
  • "Estima-se que o roubo tenha afetado centenas de milhares ou até milhões de clientes em mais de 300 cidades ao redor do mundo"; (nota: normalmente os bancos tem poucos acessos ao Internet Baning nos finais de semana, por isto esses números me parecem exagerados)
  • "Kaspersky researchers believe the hackers may have even simultaneously redirected all transactions at ATMs or point-of-sale systems to their own servers, collecting the credit card details of anyone who used their card that Saturday afternoon";
  • "Absolutely all of the bank’s online operations were under the attackers’ control for five to six hours";
  • "the DNS attack meant that “you become the bank. Everything belongs to you now";
  • "Ultimately, the hijack was so complete that the bank wasn’t even able to send email."
Embora a reportagem da Wired não tenha citado o nome do banco, uma rápida busca no Google permite descobrir que no ano passado a Kaspersky reportou um ataque no servidor DNS do banco Banrisul (Banco do Estado do Rio Grande do Sul).


Sim, a história é "velha" e ressurgiu agora por causa de uma apresentação que alguns analistas da Kaspersky fizeram no Security Analyst Summit (SAS), um evento anual da empresa, e que virou matéria na Wired. Me parece que o repórter da Wired devia estar na platéia e aproveitou o tom sensacionalista da história para fazer uma reportagem igualmente sensacionalista, com ares catastróficos.

Em um primeiro momento, me pareceu que tinham algumas coisas mal contadas nessa história. O que mais me chamou a atenção foram os trechos da reportagem da Wired aonde diz que o banco não conseguia enviar e-mails e que também foram redirecionados os acessos dos terminais de ponto de venda (PoS) e caixas eletrônicos (ATM): "(...)but also from redirecting ATM and point-of-sale transactions to infrastructure they controlled".

Eu compartilhei essa minha suspeita acima com vários colegas de trabalho, alguns pessoalmente e outros via Whatsapp, inclusive colegas lá do Sul e que me esclareceram algumas dúvidas que eu tinha sobre a atuação do Banrisul na região (por exemplo, ao contrário de alguns bancos de pequeno porte, o Banrisul é emissor de cartão de crédito e opera uma rede de terminais de ponto de venda própria, em vez de utilizar de terceitos - como Cielo e Redecard, logo eles tem servidores de cartões operando em sua infra-estrutura).

A primeira coisa que eu questionei foi que, ao contrário do acesso a um site web, serviços de e-mail e as infraestruturas de ATMs e PoS não deveriam ser totalmente afetados por problemas no DNS público. São serviços internos e que deveriam ser mais controlados, pensei. Vamos, então, discutir cada um desses pontos, por partes:
  • Serviço de e-mail - sim, é possível "atrapalhar" a comunicação sem comprometer o servidor de correio: com o registro de DNS comprometido, é possível facilmente redirecionar o recebimento de e-mails para um servidor de terceiros (alterando o registro "MX" no cadastro feito no novo servidor que passa a responder pelo domínio). Mas, a grosso modo, o envio de e-mails a partir da rede do Banrisul poderia continuar - ao contrário do que disse a nota da Kaspersky. Poderia, sim, mas como me lembrou o professor Nelson Brito em uma conversa que tivemos sobre esse assunto, atualmente muitos servidores de e-mail verificam o DNS reverso do rementente antes de encaminhar uma mensagem - uma prática de segurança muito comum para evitar SPAM. Assim, mesmo que os servidores de correio eletrônico do banco não tenham sido atacados nem comprometidos, é possível evitar que os servidores de e-mail do banco enviem ou recebam mensagens se o seu registro DNS for adulterado;
  • Comprometimento dos caixas eletrônicos (ATMs) - isso jamais deveria acontecer e me parece muito improvável ser afetado por problema no DNS: Os ATMs são um serviço crítico que deveriam utilizar apenas uma rede interna do banco e jamais deveriam acessar a Internet - e muito menos utilizar um DNS público. Isso já deve valer para os caixas eletrônicos dentro de agências (que devem se conectar na rede da agência, que se comunica via rede privada utilizando um DNS interno), mas mesmo os ATMs em shopping centers e lugares públicos deveriam acessar a rede do banco via uma rede privada ou, no mínimo, rede pública com VPN. Mesmo no pior caso em que os caixas eletrônicos se conectem ao banco via Internet, acredito que há grande dificuldade para capturar dados da comunicação, pois o ciber criminoso deveria ter um sistema para emular a autenticação de acesso e a troca de mensagens, algo que não é impossível de ser feito, mas muito trabalhoso. Além do mais, se a comunicação do ATM com a infra-etrutura central do baco for criptografada, não haveria como o atacante obter dados sensíveis, mesmo que redirecionasse o tráfego para um gateway sob controle dele e snifasse o tráfego;
  • Comprometimento de terminais de ponto de venda (PoS) - me parece muito improvável ser afetado por problema no DNS: Antigamente os terminais de PoS só se comunicavam com as redes dos bancos ou das empresas especializadas através de conexões discadas para as próprias empresas, via modem. Mas hoje em dia muitos dos terminais de PoS se comunicam com a central de processamento de cartões do banco via rede 3G ou 4G, além da possibilidade do lojista utilizar um tablet ou smartphone com um leitor de cartões e app próprio para funcionar como se fosse um "terminal de PoS". Nestes casos a comunicação é feita pela Internet e, portanto, é vulnerável a problemas no DNS do banco. Os terminais de PoS até poderiam ser afetados por um envenenamento de DNS, que faria com que eles tentassem se comunicar com um servidor errado. Mas, para isso acontecer e expor dados dos clientes, os ciber criminosos teriam que montar um servidor falso capaz de emular a comunicação com o PoS, pois além de falar um protocolo próprio, eu espero que o PoS tenha controles para proteger e autenticar a comunicação com o servidor. Ou seja, esse tipo de comprometimento me parece muito trabalhoso (embora não impossível) para ser feito. Mas, conversando com o Thiago Bordini durante o YSTS (após a primeira publicação desse post), ele me contou que já viu esquemas complexos de fraude de cartão aonde os criminosos emulavam a comunicação com o servidor do banco. Os ataques mais comuns e mais conhecidos contra PoS normalmente são baseados em técnicas de memory scrapping, aonde se busca um conjunto de números de cartões dentro da memória do próprio PoS ou do computador aonde ele está conectado.
Um ponto importante para tirar a limpo esta história é que o Banrisul tem rede própria de caixas eletrônicos e também de PoS (chamada "Vero"), logo cabe ao banco tomar as medidas de segurança e boas práticas para evitar incidentes nestes serviços. Aqui em São Paulo, ao contrário, somente os grandes bancos (Itau, Bradesco, BB, Caixa) tem rede própria de ATMs, enquanto a grande maioria dos bancos médios e pequenos utilizam a rede do Banco 24h. E no caso das redes de processamento de transações de cartões com PoS, estas são de empresas dedicadas a prestar este serviço, como a Cielo, Redecard e recentemente algumas menores (como o PagSeguro).


Assim, embora a descrição do comprometimento aos servidores web (com certificado digital e trojan bancário) sejam bem convincentes, os relatórios falham em detalhar a suposta acusação de comprometimento dos servidores de e-mail, caixas eletrônicos e terminais de cartão (PoS). Aparentemente o Banrisul não gostou do tom da reportagem e está ameaçando processar a Kaspersky.

De fato, é comum observar que alguns bancos brasileiros não gostam de admitir quando sofrem incidentes de segurança e crucificam se alguém externo expõe isso. Eu mesmo tenho dúvidas se deveríamos deixar os clientes alienados e expostos. Por um lado, devemos conscientizar os usuários sobre os riscos e cuidados que devem tomar no dia-a-dia. Mas, por outro lado, o usuário médio de Internet tem pouco conhecimento técnico e qualquer notícia mal explicada ou mal interpretada pode criar pânico desnecessário (ainda mais se tiver um tom sensacionalista).

Post atualizado em 21/10/17.

2 comentários:

Anônimo disse...

Bela matéria.

Unknown disse...

Efeito Kaspersky: DNS do Itaú atacado

https://medium.com/@c0nk3r/efeito-kaspersky-dns-do-ita%C3%BA-atacado-8a76b2d31d96

Creative Commons License
Disclaimer: The views expressed on this blog are my own and do not necessarily reflect the views of my employee.