Os pesquisadores sabem há muito tempo que podem obter informações ocultas sobre o funcionamento interno de um site medindo a quantidade de tempo que diferentes solicitações levam para serem atendidas e extrapolando informações — e potenciais fraquezas — a partir de pequenas variações. Esses “ataques de temporização da web” têm sido descritos há anos, mas muitas vezes seriam muito complicados para que invasores do mundo real os utilizassem na prática, mesmo que funcionassem na teoria. Na conferência de segurança Black Hat em Las Vegas esta semana, no entanto, um pesquisador alertou que ataques de temporização da web são realmente viáveis e pronto para exploração.
James Kettle, diretor de pesquisa da empresa de segurança de aplicativos da web PortSwigger, desenvolveu um conjunto de técnicas de ataque de temporização da 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.000 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 sobre os tipos de informações que os ataques de temporização da web podem fornecer, tirar vantagem deles se torna mais viável.
“Eu sempre evitei pesquisar ataques de tempo 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 tempo na vida real, então quão prático é? O que espero que esse 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 “Ataques de tempo atemporais”, que trabalhou em direção a uma solução para um problema comum. Conhecido como “tremulação de rede”, o apelido do artigo se refere a atrasos de tempo entre quando um sinal é enviado e recebido em uma rede. Essas flutuações impactam as medições de tempo, mas são independentes do processamento do servidor web medido para ataques de tempo, então podem distorcer as leituras. A pesquisa de 2020, no entanto, 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, por causa de como o HTTP/2 é projetado, as respostas retornarão ordenadas de forma que a que levou menos tempo para processar seja a primeira e a que levou mais tempo 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í, “ataques de tempo atemporal”.
Os ataques de temporização da Web fazem parte de uma classe de hacks conhecida como “canais laterais,” em que o invasor reúne 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 atemporal” para reduzir o ruído da rede e também tomou medidas para abordar 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 temporização para procurar por erros de codificação e falhas invisíveis em sites que geralmente são difíceis para desenvolvedores ou malfeitores encontrarem, mas que são destacados nas informações que vazam com medições de temporização.
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 bugs da web exploráveis. Um, conhecido como vulnerabilidade de injeção do lado do 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, finalmente, contornar um firewall de aplicativo da web alvo.
“Porque você encontrou essa configuração incorreta de proxy inverso, você simplesmente contorna o firewall”, ele disse à WIRED antes de sua palestra. “É absolutamente trivial executar uma vez que você encontrou esses proxies remotos, e ataques de tempo são bons para encontrar esses problemas.”
Junto com sua palestra, Kettle lançou uma funcionalidade para a ferramenta de varredura de vulnerabilidades de código aberto conhecida como Param Miner. A ferramenta é uma extensão para a popular plataforma de avaliação de segurança de aplicativos da web Burp Suite, que é desenvolvida pelo empregador de Kettle, PortSwigger. Kettle espera aumentar a conscientização sobre a utilidade dos ataques de temporização da web, mas ele 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 as pessoas que não sabem nada sobre isso possam executar essa ferramenta e encontrar algumas dessas vulnerabilidades”, diz Kettle. “Está mostrando às pessoas coisas que elas teriam perdido de outra forma.”