Os pesquisadores sabem há muito tempo que podem coletar informações ocultas sobre o funcionamento interno de um site medindo o tempo que diferentes solicitações levam para serem atendidas e extrapolando informações – e possíveis pontos fracos – a partir de pequenas variações. Esses “ataques de temporização da web” têm sido descritos há anos, mas muitas vezes seriam muito complexos para serem utilizados por invasores do mundo real na prática, mesmo que funcionem na teoria. Porém, na conferência de segurança Black Hat em Las Vegas esta semana, um pesquisador alertou que os ataques de temporização na web são realmente viáveis e prontos para exploração.
James Kettle, diretor de pesquisa da empresa de segurança de aplicações web PortSwigger, desenvolveu um conjunto de técnicas de ataque de temporização na web que podem ser usadas para expor três categorias diferentes de vulnerabilidades em sites. Ele validou os métodos usando um ambiente de teste que ele criou, que compilou 30 mil sites reais, todos oferecendo programas de recompensa por bugs. Ele diz que o objetivo do trabalho é mostrar que, uma vez que alguém tenha uma compreensão conceitual dos tipos de informações que os ataques de web timing podem fornecer, aproveitá-los se torna mais viável.
“Sempre evitei pesquisar ataques cronometrados porque é um tópico com reputação”, diz Kettle. “Todo mundo pesquisa sobre isso e diz que sua pesquisa é prática, mas ninguém parece realmente usar ataques de temporização na vida real, então quão prático é isso? O que espero que este trabalho faça é mostrar às pessoas que essas coisas realmente funcionam hoje em dia e fazê-las pensar sobre isso.”
Kettle foi inspirado em parte por um artigo de pesquisa de 2020 intitulado “Timeless Timing Attacks”, que trabalhou para encontrar uma solução para um problema comum. Conhecido como “jitter de rede”, o apelido do jornal se refere aos atrasos de tempo entre o envio e o recebimento de um sinal em uma rede. Essas flutuações impactam as medições de temporização, mas são independentes do processamento do servidor web medido para ataques de temporização, portanto podem distorcer as leituras. A pesquisa de 2020, porém, apontou que ao enviar solicitações pelo onipresente protocolo de rede HTTP/2, é possível colocar duas solicitações em um único pacote de comunicação TCP para que você saiba que ambas as solicitações chegaram ao servidor ao mesmo tempo. Então, devido à forma como o HTTP/2 foi projetado, as respostas voltarão ordenadas de forma que aquela que demorou menos para ser processada seja a primeira e a que demorou mais seja a segunda. Isso fornece informações confiáveis e objetivas sobre o tempo no sistema, sem exigir nenhum conhecimento extra do servidor Web de destino – daí os “ataques de temporização atemporais”.
Os ataques de temporização na Web fazem parte de uma classe de hacks conhecida como “canais laterais”, nos quais o invasor coleta informações sobre um alvo com base em suas propriedades físicas do mundo real. Em seu novo trabalho, Kettle refinou a técnica de “ataques de temporização atemporais” para reduzir o ruído da rede e também tomou medidas para resolver tipos semelhantes de problemas com ruído relacionado ao servidor, para que suas medições fossem mais precisas e confiáveis. Ele então começou a usar ataques de tempo para procurar erros e falhas de codificação invisíveis em sites que geralmente são difíceis de serem encontrados por desenvolvedores ou malfeitores, mas que são destacados nas informações que vazam com medições de tempo.
Além de usar ataques de temporização para encontrar pontos de apoio ocultos para atacar, Kettle também desenvolveu técnicas eficazes para detectar dois outros tipos comuns de web bugs exploráveis. Uma delas, conhecida como vulnerabilidade de injeção no servidor, permite que um invasor introduza código malicioso para enviar comandos e acessar dados que não deveriam estar disponíveis. E o outro, chamado de proxies reversos mal configurados, permite acesso não intencional a um sistema.
Em sua apresentação na Black Hat na quarta-feira, Kettle demonstrou como ele poderia usar um ataque de temporização da web para descobrir uma configuração incorreta e, por fim, contornar o firewall de um aplicativo da web alvo.
“Como você encontrou essa configuração incorreta do proxy inverso, basta contornar o firewall”, disse ele à WIRED antes de sua palestra. “É absolutamente trivial executá-lo depois de encontrar esses proxies remotos, e os ataques de temporização são bons para encontrar esses problemas”.
Juntamente com sua palestra, Kettle lançou funcionalidades para a ferramenta de verificação de vulnerabilidades de código aberto conhecida como Param Miner. A ferramenta é uma extensão da popular plataforma de avaliação de segurança de aplicativos da web Burp Suite, desenvolvida pelo empregador de Kettle, PortSwigger. Kettle espera aumentar a conscientização sobre a utilidade dos ataques de temporização na web, mas também quer ter certeza de que as técnicas estão sendo utilizadas para defesa, mesmo quando as pessoas não entendem os conceitos subjacentes.
“Integrei todos esses novos recursos ao Param Miner para que pessoas que não sabem nada sobre isso possam executar esta ferramenta e encontrar algumas dessas vulnerabilidades”, diz Kettle. “É mostrar às pessoas coisas que de outra forma elas teriam perdido.”