За защита на своя сървър използвам zip бомби

Най-четени

Даниел Десподов
Даниел Десподов
Новинар. Увличам се от съвременни технологии, информационна безопасност, спорт, наука и изкуствен интелект.

Оригиналът е на Ibrahim Diallo

По-голямата част от трафика в мрежата се дължи на ботове. В по-голямата си част тези ботове се използват за откриване на ново съдържание. Съществуват четци на RSS емисии, търсачки, които претърсват съдържанието ви, а в днешно време и ботове с изкуствен интелект, които събират съдържание, за да го подават на LLM. Но има и злонамерени ботове. Те са създадени от спамъри, събирачи на съдържание и хакери. На предишното ми работно място един бот откри уязвимост в WordPress и вгради зловреден скрипт в нашия сървър, след което превърна машината в ботнет, използван за DDOS. Един от първите ми уеб сайтове беше напълно изтласкан от търсенията в Google заради ботове, генериращи спам. Трябваше да намеря начин да се защитя от тези ботове, затова започнах да използвам zip бомби.

Zip бомбата е сравнително малък компресиран файл, който може да се разгърне до много голям и да претовари машината.

За защита на своя сървър използвам zip бомби

Една от първите характеристики на уеб беше използването на gzip компресията. Интернет беше бавен и имаше малко налична информация, затова данните се компресираха, преди да бъдат прехвърлени по проводниците. По този начин един 50KB HTML файл, състоящ се от текст, можеше да бъде компресиран до 10KB, като по този начин се спестяваха 40KB при предаването. При комутируема интернет връзка това позволяваше една страница да бъде изтеглена за 3 секунди вместо за 12 секунди.

Същото компресиране може да се използва за прехвърляне на CSS, Javascript и дори изображения. Gzip е бърз, прост и значително подобрява работата при сърфиране. Когато браузърът прави уеб заявка, той добавя заглавия, с които съобщава на целевия сървър, че поддържа компресия. И ако сървърът също поддържа компресиране, той ще върне данните в компресиран вид.

Accept-Encoding: gzip, deflate

Уеб ботовете за обхождане също поддържат тази функция. Именно защото тяхната задача е да консумират съдържание от цялата глобална мрежа, те се стремят да увеличат обема чрез прилагане на компресия. И ние се възползваме напълно от тази функция.

За защита на своя сървър използвам zip бомби

Платформата, на която водя блога си, често се сканира от ботовете за уязвимости в сигурността, но в по-голямата си част аз я игнорирам. Но когато открия, че се опитват да извършат атаки или се опитват да налучкват даден отговор, връщам 200 OK и след това им предавам gzip. Размерът на файла варира от 1 MB до 10 MB, в зависимост от това какво могат да консумират. Най-често, след като получат този файл, никога повече не чувам за тях. Защо? Защото се сриват още преди да са завършили обработката на файла.

Content-Encoding: deflate, gzip

Това, което се случва, е, че те получават файла и прочитат заглавието, което им казва, че файлът е компресиран. Те се опитват да декомпресират файла с размер 1 МВ, за да намерят търсеното съдържание. Но файлът продължава да се декомпресира отново, и отново, и отново, и отново, и отново, докато не свърши паметта и сървърът им не се срине. Файл с размер 1 МВ се декомпресира в 1 GB. Това е повече от достатъчно, за да прекъсне работата на повечето ботове. Въпреки това, за онези досадни скриптове, които не искат да спрат, имам 10MB файл. Той се разархивира до 10 GB и мигновено убива скрипта.

Преди да пристъпя към описание на това как да създадете zip бомба, трябва да кажа, че потенциално може да организирате срив и повреда на собственото си устройство, така че помислете за рисковете. Ето как се създава една zip бомба:

За защита на своя сървър използвам zip бомби

Ето какво прави тази команда:

  • dd: командата dd се използва за копиране или конвертиране на данни.
  • if: входящ файл, тук е посочено dev \ zero – специален файл, който създава безкраен поток от нулеви байтове.
  • bs: block size (размер на блока), задава размера на блока на 1 гигабайт (1G), което означава, че dd ще чете и записва данни на блокове от по 1GB.
  • count=10: тази опция указва на dd да обработва 10 блока, като всеки блок е с размер 1GB. Това означава, че ще създадем 10 GB данни само от нули.
  • След това предаваме резултата от командата на програмата gzip, която го компресира във файл 10GB.gz. Полученият файл ще бъде с размер 10 MB.
За защита на своя сървър използвам zip бомби

На моя сървър съм добавил междинна програма, която проверява текущата заявка за злонамереност. Имам черен списък с IP адреси, които се опитват многократно да сканират целия уеб сайт. Има и други евристични методи за идентифициране на спамърите. Много спамъри се опитват да изпратят спам на дадена страница и след това се връщат, за да видят дали спамът е попаднал на страницата. Използвам този модел, за да ги идентифицирам. Той изглежда по следния начин:

За защита на своя сървър използвам zip бомби

Това е всичко, което е необходимо. Единствените ми разходи са свързани с прехвърлянето на 10MB файл от време на време. Ако този пост бъде заразен от вируси, ще намаля размера на файла до 1 МВ, което е почти толкова ефективно.

За защита на своя сървър използвам zip бомби

Струва си също така да се каже, че zip бомбата не гарантира пълна сигурност. Тя може лесно да бъде открита и заобиколена. А съдържанието може да бъде прочетено само частично. Но за обикновените ботове, които сляпо обхождат мрежата и се намесват в работата на сървърите, това е достатъчно добър инструмент за защита на сървъра.

АбонаментВсичко важно от света на технологиите, директно в пощата ти.

С абонирането приемате нашите Условия и Политика за поверителност. Може да се отпишете с един клик по всяко време.


Коментирайте статията в нашите Форуми. За да научите първи най-важното, харесайте страницата ни във Facebook, и ни последвайте в Google Новини, TikTok, Telegram и Viber или изтеглете приложението на Kaldata.com за Android, iPhone, Huawei, Google Chrome, Microsoft Edge и Opera!

1 Коментар
стари
нови оценка

Нови ревюта

Подобни новини