Uso bombas ZIP para proteger mi servidor
(idiallo.com)Introducción
- La mayor parte del tráfico de Internet proviene de bots, y algunos de ellos tienen fines maliciosos (spam, hacking, etc.).
- El autor sufrió daños en el pasado por culpa de bots, como la infección de un servidor de WordPress o la exclusión de Google Search.
- Para evitarlo, empezó a usar Zip Bomb.
Desarrollo
-
¿Qué es una Zip Bomb?
- Es un archivo comprimido pequeño que, al descomprimirse, se expande a un tamaño muy grande.
- Un archivo comprimido de 1 MB puede expandirse a 1 GB, y uno de 10 MB a 10 GB, dejando fuera de servicio al servidor.
-
La funcionalidad gzip existente
- En la web se usa compresión gzip para mejorar la eficiencia de transmisión.
- La mayoría de los bots también admiten compresión gzip.
-
Cómo responder con una Zip Bomb
- Si se determina que es un bot malicioso, se responde con
200 OKjunto con un archivo Zip Bomb comprimido con gzip. - Al intentar abrir este archivo, el bot puede caerse o quedarse colgado en el servidor.
- Por lo general se usa uno de 1 MB (expansión a 1 GB) o de 10 MB (expansión a 10 GB).
- Si se determina que es un bot malicioso, se responde con
-
Cómo crear una Zip Bomb
dd if=/dev/zero bs=1G count=10 | gzip -c > 10GB.gz- Se generan 10 GB de datos de bytes cero con
/dev/zeroy luego se comprimen con gzip. - El resultado es una zip bomb de aproximadamente 10 MB.
- Se generan 10 GB de datos de bytes cero con
-
Ejemplo de aplicación en el servidor
- Si en el middleware se detecta una IP en lista negra o un patrón malicioso, se envía la Zip Bomb.
if (ipIsBlackListed() || isMalicious()) { header("Content-Encoding: deflate, gzip"); header("Content-Length: "+ filesize(ZIP_BOMB_FILE_10G)); readfile(ZIP_BOMB_FILE_10G); exit; }
Conclusión
- La Zip Bomb no es una defensa perfecta.
- Los bots sofisticados pueden detectarla y evadirla.
- Sin embargo, contra bots básicos que hacen web crawling indiscriminado, puede ser una medida de defensa eficaz.
- Aunque use algunos recursos del servidor, vale lo suficiente como para justificarlo por motivos de seguridad.
29 comentarios
Creo que puede ser una opción para probar al menos una vez si no existe una forma efectiva de bloquear bots que generan tráfico de spam.
Me pareció divertido de leer, como un artículo sobre darle una bomba de brillantina a un ladrón de paquetes :)
Ese video es divertido. Es exactamente igual, jaja.
Una publicación en internet no es un paquete propiedad de alguien.
Entonces, si fuera una propiedad privada no pública, le habrían puesto un proceso de autenticación.
Creo que se puede ver como dejar un volante en la calle y untarlo con un veneno muy tóxico.
Es un concepto distinto a poner volantes envenenados con malas intenciones.
No es una forma éticamente correcta. Tampoco es una solución de fondo.
Es la primera vez que me topo con algo de este tipo, así que me pregunto cuál sería la solución fundamental.
Estoy de acuerdo.
¿Los bots maliciosos serían una forma ética? jajaja
No se puede atrapar a los bots realmente maliciosos de esta manera.
Ni siquiera funciona una bomba gzip.
Solo véanlo como que alguien escribió por diversión una publicación curiosa sobre una bomba.
Ah, así es como hay gente que hace más difícil que se reconozca la legítima defensa, jaja...
¿Por qué no es una forma éticamente correcta? Tengo curiosidad.
¡Qué texto tan divertido! Es un método que no se me habría ocurrido, ¡gracias por compartirlo!
¿Cuál será el propósito de publicar un texto así?
No creo que realmente exista casi ninguna posibilidad de que las empresas que ejecutan crawlers lean esto y hasta decidan excluirlo.
Entonces, ¿para qué tipo de lectores fue escrito este texto?
¿Es un artículo introductorio para contarles a otras personas que también manejan blogs que existe este método,
o es una provocación de “mi blog está así de bien protegido, así que intenten rastrearlo si pueden”?
De verdad me da mucha curiosidad qué se gana con publicarlo.
Quizás solo se trata de que existe este tipo de método...
Es un blog personal, ¿acaso no puedo escribir cualquier cosa? 🤔
Claro, como no es un lugar público, quizá solo lo publicó sin pensarlo mucho.
Igual que en una comunidad uno puede dejar un comentario sin pensarlo demasiado.
Como no puedo bloquear por completo a los rastreadores, lo ideal sería ni siquiera aceptar sus intentos, así que me dio curiosidad cuál era la intención detrás de provocar.
Entonces, si determinan que es un bot por la IP, también le van a lanzar la bomba, jaja.
Se nota el enojo del autor, jaja.
La idea es regalarle una bomba a las solicitudes donde el
agentllega diciendo que es un bot...Es demasiado malintencionado. De todos modos, el
agentse puede ocultar fácilmente. Si es un bot realmente malicioso, no va a mostrar sus malas intenciones.Últimamente se ven de vez en cuando casos de daños causados por tráfico excesivo proveniente de servicios conectados con LLM, así que en realidad también parece una medida que podría servir para ese tipo de situaciones. Por ejemplo, al ver la función de búsqueda web de ChatGPT y similares, por las características de su base de usuarios hay bastante margen para que se genere tráfico excesivo "no malicioso", y he oído que a esos casos se les puede filtrar fácilmente con una simple coincidencia de agente. Si esa es de verdad la intención, al final solo sería una forma de malgastar los costos de servidores de OpenAI (¿y su reputación?)..
Así que es un texto sin sentido.
OpenAI ya es una empresa lo suficientemente grande como para tener ese nivel de cortesía, supongo.
Y además, creo que sería difícil que se generara un tráfico tan problemático solo porque los usuarios hagan clic directamente en los resultados de búsqueda; ¿no será más bien que el problema es que el rastreador está funcionando de forma demasiado agresiva?
Estoy de acuerdo en que, ya sea el
User-Agentque mencionas o la detección basada en IP de la que habla el texto original, como la información de identificación puede disfrazarse, es difícil determinar con certeza si algo es malicioso. Los bots realmente maliciosos probablemente se acercarían de forma más astuta.Creo que, más que este tipo de ataques, sería un "empujoncito" más realista ofrecer una API de rastreo con limitación de carga, para permitir accesos automatizados legítimos mientras se protegen los recursos del servidor. jaja
Ya existe algo como
bots.txten lo que todos habíamos estado de acuerdo desde hace mucho tiempo..Es un comentario no relacionado con este artículo, pero me parece que últimamente han aumentado de forma notable algunos usuarios que dejan comentarios malintencionados en hada, que suelo visitar. Siento que el ambiente ha cambiado bastante en comparación con la época en la que no había comentarios o solo había unos pocos.
Personalmente, creo que estaría bien que hubiera una función de bloqueo, o una función que ponga los comentarios en gris cuando reciban varios reportes.
Se presume que a los usuarios con muchas recomendaciones se les otorgan ese tipo de funciones.
2222222222222222