Bomba Zip: a negação de serviço que cria uma explosão de dados
Uma bomba Zip é definida como uma bomba de descompressão porque gera uma explosão de dados que pode desacelerar nossos computadores a ponto de congelá-los. Uma técnica muito simples que usa os algoritmos de compressão dos programas mais famosos como o Win Zip para criar arquivos aparentemente inofensivos. O ataque da bomba Zip se enquadra na categoria de negação de serviço porque tem como objetivo tornar o sistema inutilizável saturando os recursos de memória disponíveis.
Bomba Zip e negação de serviço: a estrutura do arquivo
Ainda circula na rede o famoso arquivo 42.zip, um arquivo de apenas 42 KB, mas capaz de desencadear um poder de fogo de cerca de 4 PetaByte. Para fazer uma comparação do tamanho do PetaByte, basta pensar que nossos discos rígidos podem ter em média algum TeraByte. Para obter um PetaByte você precisa de 1024 Terabytes, então definitivamente um tamanho impressionante!
Mas vamos voltar ao nosso 42.zip, que é feito com uma estrutura aninhada de arquivos que desce por 5 níveis. Cada nível contém 16 arquivos e cada arquivo é o nível subjacente composto por outros 16 arquivos. No quinto nível, cada arquivo contém um arquivo de 4 GB e as contas somam-se rapidamente (4,5 GB * 16 * 16 * 16 * 16 = 4 718 598 GB = 4,5 PT).
Quando o arquivo for aberto, o programa tentará abrir cada um dos arquivos contidos nele e continuará a descompactar até atingir os arquivos de 4 GB. É fácil perceber que desta forma as capacidades de um computador ficam saturadas em muito pouco tempo (tanto em termos de RAM como possivelmente do ponto de vista do disco rígido).
O truque por trás da explosão de uma bomba Zip
Mas como transformar mais de 4 PTs de informação em apenas 42 KB? É a própria natureza dos algoritmos de compressão que cria a armadilha da qual surgem as bombas Zip. Na verdade, geralmente esses algoritmos exploram as partes repetidas do arquivo. A codificação Huffman, que forma a base de algoritmos como DEFLATE usado pelo Win Zip ou Win Rar, permite reduzir o tamanho de um arquivo da forma mais eficiente possível . Tão eficiente que em alguns casos se torna perigoso!
Normalmente, as informações repetidas podem ser agrupadas indicando, na codificação, o símbolo (neste caso o caractere) e o número de repetições do mesmo. Exagerando o conceito, é possível criar um arquivo enorme que contém apenas um caractere repetido várias vezes . Basicamente, o algoritmo de compressão encontrará a repetição do mesmo caractere por n vezes e o codificará como uma tupla (caractere, n), reduzindo drasticamente o tamanho do arquivo. E aqui está a nossa Bomba Zip: muitos arquivos de texto que contêm o mesmo caractere repetido, aninhados em vários níveis!
Um ataque sempre presente
Embora muitas décadas tenham se passado desde a criação da primeira bomba Zip (foi no início dos anos 2000), ela continua sendo um ataque extremamente eficaz e ainda é usado hoje . Por exemplo, a vulnerabilidadeCVE-2017-16129 em que o cliente HTTP é vulnerável a ataques de bomba Zip. Na realidade, o arquivo em si não causa grandes problemas, além do uso pesado de recursos, mas deixa o cliente vulnerável a outros possíveis ataques.
O mesmo aconteceu não muito tempo atrás, em 2020, quando a vulnerabilidade CVE-2019-9674 foi descoberta que a biblioteca zipfile.py Python até a versão 3.7.2 é suscetível a ataques baseados em Zip Bomb. No site do NIST, você pode ver os detalhes desses ataques, bem como procurar vulnerabilidades que se espalharam no passado.
Concluindo, portanto, resta o aviso de prestar muita atenção tanto quando navegamos quanto quando baixamos arquivos cuja origem não conhecemos. Às vezes, até mesmo um arquivo enviado por um amigo pode conter essa negação de serviço irritante, fazendo com que nosso computador se atrapalhe em busca de novos recursos para abrir aquele arquivo abençoado!
O artigo Bomba Zip: a negação de serviço que cria uma explosão de dados vem de Tech CuE | Engenharia de Close-up .