разработка 502 просмотров

GZIP-БОМБА: как красиво наказать ботов-сканеров

GZIP-БОМБА: как красиво наказать ботов-сканеров
Увеличить
GZIP-БОМБА: как красиво наказать ботов-сканеров 🧨

Газ, нашел я на просторах англоязычного сегмента одну статью, которая показалось интересной. Я ее переработал и, как мог, упростил для вас.


В общем, у кого проекты "торчат" в интернет, в логах могли видеть подозрительных запросов.

Боты лезут по админский путям, ищут файлы .env, тычут во все дыры подряд.
Обычно мы их просто баним, но иногда хочется прищемить им пальцы, а не просто закрыть дверь 🔥

Есть офигенно злое и при этом элегантное решение — «gzip-бомба».

Простая как две копейки:

1. Бот делает плохой запрос
2. Сервер не дает ошибку 403, а радостно отвечает «ок» (200)
3. И отдаёт боту маленький файлик ~10 МБ со сжатием gzip
4. Бот думает: «О, контент, сейчас быстро распакую!»
5. Начинает распаковывать… и ба-бах! 💥
Из 10 мегабайт получается 10 гигабайт одних нулей
6. У бота кончается вся память (RAM) → процесс падает и умирает ☠️

Карма, детка 😏

🔧 Если интересно, то в bash бомбу можно сделать так:
dd if=/dev/zero bs=1G count=10 | gzip -c > bomb.gz

Получится файл ~10 МБ. Потом в Apache/Nginx или в коде (PHP, Python, Java) отдаешь боту файлик с заголовком Content-Encoding: gzip

⚠️ Ложка дёгтя (и она большая)
Чтобы убить бота, ты должен реально отправить ему эти 10 МБ.
Если на тебя прёт ботнет и 100–500 запросов в секунду — твой сервер начнёт раздавать гигабайты трафика в секунду.
В итоге боты может и сдохнут… а твой канал и сервер лягут первыми 😅
Я проверял на своем серваке дома. Хнык...

В общем, на основе статьи и опыта скажу:
🔥 Против одиночных скрипт-кидди и тупых парсеров — шикарно и очень весело
❌ Против серьёзного DDoS — это СамоDDoS, не делайте так!
Самый безопасный и дешёвый вариант — отдавать код 444 в Nginx (соединение просто рвётся, трафик почти нулевой).

А бомбочку держи для особых случаев и для души 😈
#Безопасность #Администрирование #DevOps #Linux #Nginx #Кибербезопасность #Сервер

Понравился пост?

Обсуди его в Telegram-канале!

Обсуждение

Комментарии доступны через Telegram. Для участия в обсуждении нужен аккаунт Telegram.

Поделиться: Telegram