RangeAmp – ataques CDN que manipulam o cabeçalho Range HTTP

Conheça melhor o RangeAmp, uma série de ataques CDN que manipulam o cabeçalho Range HTTP e entenda como eles funcionam na prática.

CDN (Content Delivery Networks) é uma rede de fornecimento, entrega e distribuição de conteúdo. Esse é um termo criado em fins da década de 1990 para descrever um sistema de computadores e redes interligados através da Internet, que cooperam de modo transparente para fornecer conteúdo (particularmente grandes conteúdos de mídia) a usuários finais.

Simplificando, CDN, é uma maneira de enviar conteúdo massivo para usuários sem ter problemas com performance. Esse serviço é usado por sites (inclusive este que você lê agora) para que suas páginas sejam carregadas mais rapidamente.

Agora, uma equipe de pesquisadores da Universidade de Pequim, da Universidade de Tsinghua e da Universidade do Texas em Dallas divulgou informações sobre seu trabalho para identificar uma nova classe de ataques DoS, denominados “RangeAmp” e que contam com o uso do cabeçalho Range HTTP para organizar a amplificação do tráfego na rede de entrega de conteúdo (CDN).

RangeAmp – ataques CDN que manipulam o cabeçalho Range HTTP

RangeAmp – ataques CDN que manipulam o cabeçalho Range HTTP

A essência do método é que, devido à peculiaridade do processamento de cabeçalhos Range em muitas CDNs, um invasor pode solicitar um byte de um arquivo grande através da CDN, mas a CDN fará o download do arquivo inteiro ou de um bloco de dados significativamente maior do diretório servidor de destino para armazenamento em cache.

O grau de amplificação de tráfego durante tal ataque, dependendo do CDN, é de 724 a 43330 vezes, que pode ser usado para sobrecarregar o tráfego de CDN de entrada ou reduzir a largura de banda do canal de comunicação final para o site da vítima.
 

“O cabeçalho Range permite ao cliente determinar o intervalo de posições no arquivo a ser carregado em vez de retornar o arquivo inteiro.”

“Por exemplo, o cliente pode especificar “Intervalo: bytes=0-1023” e o servidor transmitirá apenas os primeiros 1024 bytes de dados. Esse recurso é altamente solicitado ao baixar arquivos grandes: o usuário pode pausar o download e continuar na posição interrompida. Ao especificar “bytes=0-0”, o padrão prescreve o primeiro byte no arquivo, “bytes=-1” – o último, “bytes=1-” – de 1 byte ao final do arquivo. Você pode transferir vários intervalos em um cabeçalho, por exemplo “Intervalo: bytes=0-1023.8192-10240″.”

Além disso, uma segunda opção de ataque foi proposta (chamada ataque RangeAmp Overlapping Byte Ranges (OBR), destinada a aumentar a carga da rede quando o tráfego é encaminhado por outra CDN, que é usada como proxy (por exemplo, quando O Cloudflare atua como front-end (FCDN) e a Akamai atua como back-end (BCDN).

O método se assemelha ao primeiro ataque, mas está localizado nas redes CDN e permite aumentar o tráfego quando você acessa através de outras CDNs, que o que aumenta a carga na infraestrutura e reduz a qualidade do serviço.

“A ideia é que o invasor envie vários intervalos à solicitação de intervalo da CDN, como “bytes = 0-, 0-, 0 – …”, “bytes = 1-, 0-, 0 – …” ou »bytes = – 1024,0-, 0 -… «.”

As solicitações contêm um grande número de intervalos «0-«, o que implica o retorno do arquivo de zero ao final. Devido à análise incorreta do intervalo quando o primeiro CDN se refere ao segundo CDN, um arquivo completo é retornado para cada banda “0-” (os intervalos não são adicionados, mas são ordenados sequencialmente) se houver duplicação e interseção de intervalos no solicitação de ataque enviada originalmente.

O grau de amplificação do tráfego no referido ataque varia de 53 a 7432 vezes.

O estudo examinou o comportamento de 13 CDNs: Akamai, Alibaba Cloud, Azure, CDN77, CDNsun, Cloudflare, CloudFront, Fastly, G-Core Labs, Huawei Cloud, Key Cloud, KeyCDN, StackPath e Tencent Cloud.

A equipe de pesquisa disse que:

“Infelizmente, embora tenhamos enviado um e-mail várias vezes e tentado se comunicar com o atendimento ao cliente, o StackPath não fez comentários”

“No geral, fizemos o possível para relatar responsavelmente vulnerabilidades e fornecer soluções de mitigação. Fornecedores de CDN relacionados tiveram quase sete meses para implementar técnicas de mitigação antes da publicação deste documento.”

Todas as CDNs revisadas permitiram o primeiro tipo de ataque no servidor de destino. A segunda versão do ataque CDN acabou por ser exposta a 6 serviços, dos quais quatro podem atuar como interface no ataque (CDN77, CDNsun, Cloudflare e StackPath) e três no papel de back-end (Akamai, Azure e StackPath )

O maior ganho é alcançado no Akamai e no StackPath, que permitem que mais de 10.000 intervalos sejam indicados no cabeçalho Range.

Os proprietários das CDNs foram notificados sobre as vulnerabilidades há aproximadamente 7 meses e, no momento da divulgação pública das informações, 12 das 13 CDNs resolveram os problemas identificados ou expressaram sua vontade de corrigi-los.

Fonte: https://www.liubaojun.org

O que está sendo falado no blog

Sair da versão mobile