Eu uso Zip Bombs para proteger meu servidor
(idiallo.com)Introdução
- A maior parte do tráfego da internet é de bots, e parte deles tem objetivos maliciosos (spam, invasões etc.).
- O autor já sofreu danos no passado por causa de bots, como um servidor WordPress infectado ou a remoção dos resultados de busca do Google.
- Para evitar isso, começou a usar Zip Bombs.
Corpo
-
O que é uma Zip Bomb?
- Um arquivo compactado pequeno que, ao ser descompactado, se expande para um volume muito grande.
- Um arquivo compactado de 1MB pode virar 1GB, e um de 10MB pode virar 10GB, paralisando o servidor.
-
A funcionalidade gzip existente
- Na web, a compressão gzip é usada para melhorar a eficiência na transmissão.
- A maioria dos bots também oferece suporte a compressão gzip.
-
Como responder com Zip Bombs
- Quando algo é identificado como bot malicioso, a resposta enviada é
200 OKjunto com um arquivo Zip Bomb compactado com gzip. - Ao tentar abrir esse arquivo, o bot pode cair ou travar no servidor dele.
- Em geral, são usados arquivos de 1MB (expansão para 1GB) ou 10MB (expansão para 10GB).
- Quando algo é identificado como bot malicioso, a resposta enviada é
-
Como criar uma Zip Bomb
dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz- Gera 10GB de dados de bytes zero com
/dev/zeroe depois compacta com gzip. - O resultado é uma zip bomb de cerca de 10MB.
- Gera 10GB de dados de bytes zero com
-
Exemplo de aplicação no servidor
- Se o middleware detectar um IP em blacklist ou um padrão malicioso, envia a Zip Bomb.
if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: deflate, gzip"); header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); readfile(ZIP_BOMB_FILE_10G); exit; }
Conclusão
- Zip Bombs não são uma defesa perfeita.
- Bots mais sofisticados podem detectar isso e contornar a técnica.
- Ainda assim, para bots simples que fazem crawling indiscriminado da web, elas são um meio de defesa eficaz.
- Mesmo consumindo alguns recursos do servidor, isso pode valer a pena em nome da segurança.
29 comentários
Acho que é uma abordagem que vale tentar pelo menos uma vez, caso não haja uma forma eficaz de bloquear bots que geram tráfego de spam.
Foi divertido de ler, porque parecia um texto sobre dar uma bomba de glitter para ladrões de encomenda :)
Esse vídeo é divertido. É exatamente igual àquilo kkk
Um texto na internet não é uma encomenda de alguém.
Se fosse propriedade privada não aberta ao público, teriam colocado um processo de autenticação.
Acho que dá para ver isso como algo parecido com deixar um panfleto na rua com um veneno letal espalhado nele.
É um conceito diferente de espalhar panfletos envenenados com intenção maliciosa.
Não é um jeito eticamente bom. E também não é uma solução fundamental.
É a primeira vez que lido com esse tipo de coisa, então queria saber qual é a solução fundamental!!
Concordo.
Bots maliciosos, isso lá é algo ético? kkk
Bots realmente maliciosos não podem ser pegos desse jeito.
Nem bomba de
gzipfunciona.Basta entender que algum desconhecido escreveu uma postagem divertida sobre uma bomba.
Ah, então é esse tipo de gente que dificulta o reconhecimento de legítima defesa, né? haha...
Por que isso não é considerado uma boa prática do ponto de vista ético? Fiquei curioso.
Que texto divertido! É um método em que eu nunca tinha pensado, então obrigado por compartilhar!
Qual será o objetivo de publicar um texto desses?
Na prática, acho muito improvável que empresas que realmente operam crawlers leiam isso e cheguem ao ponto de excluir o site por causa disso.
Então, para que tipo de leitor esse texto foi escrito?
Seria um texto de apresentação para mostrar a outras pessoas que também mantêm blogs que esse tipo de método existe,
ou uma provocação do tipo “meu blog é tão seguro assim, então tente rastreá-lo se puder”?
Fico realmente curioso para saber o que se ganha ao publicar um texto assim.
Talvez seja só para dizer que esse tipo de método existe..
É um blog pessoal; não posso escrever qualquer coisa? 🤔
Claro, como não é um espaço público, talvez seja só um texto postado sem pensar muito.
Assim como alguém pode deixar um comentário na comunidade sem pensar muito.
Como eu não consigo bloquear completamente os crawlers, o ideal seria não receber nem as tentativas, então fiquei curioso sobre a intenção de chamar atenção.
Então, se ele julgar que é um bot pelo IP, quer dizer que também vai mandar a bomba, né? haha
Dá para sentir a raiva do autor. haha
A ideia é presentear com uma bomba quem vier com um pedido dizendo que é um bot..
É maligno demais. De qualquer forma, é fácil para um agent se esconder. Se for um bot realmente malicioso, ele não vai expor sua malícia.
Ultimamente aparecem de vez em quando casos de danos causados por tráfego excessivo vindo de serviços integrados com LLM, e parece que isso também pode ser visto como uma medida para esse tipo de situação. Por exemplo, olhando para recursos como a busca na web do ChatGPT, pelas características dessa base de usuários há bastante margem para gerar tráfego excessivo "sem intenção maliciosa", e ouvi dizer que esses casos podem ser filtrados com facilidade por meio de uma simples identificação de agente. Se essa for realmente a intenção, no fim das contas isso só vai desperdiçar os custos de servidor da OpenAI (e a reputação dela?).
Então isso quer dizer que é um texto sem sentido.
A OpenAI já é uma empresa grande o bastante para ter esse nível de consideração, né.
E provavelmente é difícil que o simples fato de o usuário clicar diretamente no resultado da busca gere um tráfego tão pesado; não seria mais um problema de o crawler estar operando de forma excessiva?
Concordo que, seja pelo
User-Agentque você mencionou ou pela detecção baseada em IP citada no post original, é difícil afirmar se algo é malicioso, já que informações de identificação podem ser falsificadas. Bots realmente maliciosos provavelmente abordariam isso de forma mais sofisticada.Na minha opinião, em vez desse tipo de ataque, talvez uma "cutucada" mais realista fosse oferecer uma API de crawling com limitação de carga, permitindo acessos automatizados legítimos enquanto protege os recursos do servidor. rsrs
Já existe algo chamado bots.txt com o qual todos concordamos há muito tempo..
Este é um comentário sem relação com o texto em si, mas parece que recentemente aumentou visivelmente o número de alguns usuários que deixam comentários maldosos no hada, que costumo acompanhar. Acho que o clima está bem diferente da época em que não havia comentários ou havia só poucos.
Pessoalmente, acho que seria bom ter uma função de bloqueio, ou então uma função que deixasse o comentário acinzentado quando recebesse várias denúncias.
Presume-se que usuários com muitas recomendações recebam esse tipo de funcionalidade.
2222222222222222