Що таке ддос атаки. DDoS-атака: як зробити? Програми для DDoS-атак

Якщо прочитайте наше керівництво, і впровадьте всі описані технології - убезпечте ваш комп'ютер від хакерських загроз! Не нехтуйте цим!

У сфері інформаційної безпеки, ddos ​​атаки займають одне з лідируючих місць у рейтингу електронних загроз. Але більшість користувачів мають дуже обмежені знання у цій тематиці. Зараз ми намагатимемося максимально докладно і доступно розкрити цю тему, щоб ви могли уявляти, що означає даний тип електронної загрози, як вона здійснюється, і відповідно, як ефективно з нею боротися. Отже знайомтеся – DDOS атака.

Термінологія

Щоб розмовляти однією мовою, ми повинні запровадити терміни та їх визначення.

Dos атака - атака типу "відмова в обслуговуванні". Звідси й англійська абревіатура dos – Denial of Service. Один із підтипів - розподілена атака, що здійснюється одночасно з кількох, а як правило, з великої кількості хостів. Основну частину обговорення ми присвятимо саме цьому варіанти, тому що атака ddos ​​несе в собі більше руйнівних наслідків, а істотна різниця лише в кількості хостів, що використовуються для атаки.

Щоб вам було легше зрозуміти. Подібні дії спрямовані на тимчасове припинення роботи будь-якого сервісу. Це може бути окремий сайт у мережі, великий інтернет або стільниковий провайдер, а також окрема служба (прийом пластикових карток). Щоб атака вдалася і принесла руйнівні дії, виконувати її потрібно з великої кількості точок (далі цей момент буде розглянуто докладніше). Звідси і "розподілена атака". Але суть залишається та ж - перервати роботу певної системи.

Для повноти картини потрібно розуміти, хто і з якою метою проводить подібні дії.

Атаки типу "відмова в обслуговуванні", як і інші комп'ютерні злочини, караються згідно із законом. Тому матеріал представлений лише з ознайомлювальною метою. Їх здійснюють it-фахівці, люди, які добре знаються на тематиках "комп'ютери" та "обчислювальні мережі", або як вже стало модним говорити - хакери. В основному, цей захід спрямований на отримання прибутку, адже зазвичай ddos ​​атаки замовляють недобросовісні конкуренти. Тут доречно навести невеликий приклад.

Допустимо на ринку послуг невеликого міста є два великі провайдери інтернет. І один із них хоче витіснити конкурента. Вони замовляють у хакерів розподілену dos атаку на сервера конкурента. І другий провайдер через перевантаження своєї мережі не може більше надавати доступ в інтернет своїм користувачам. Як підсумок – втрата клієнтів та репутації. Хакери отримують свою винагороду, несумлінний провайдер – нових клієнтів.

Але нерідкі випадки, коли "дсясять" і просто заради забави, або відточування навичок.

Розподілена Ddos атака

Давайте одразу домовимося – розбирати ми будемо саме комп'ютерні атаки. Тому якщо йдеться про кілька пристроїв, з яких проводиться атака, це будуть комп'ютери з протизаконним програмним забезпеченням.

Тут теж доречно зробити невеликий відступ. По суті, для того, щоб припинити роботу будь-якого сервісу або служби, потрібно перевищити максимально допустиме навантаження. Найпростіший приклад – доступ до веб-сайту. Так чи інакше, він розрахований на певну пікову відвідуваність. Якщо в певний момент часу на сайт зайде вдесятеро більше людей, то сервер не в змозі буде обробити такий обсяг інформації, і перестане працювати. А підключення в цей момент здійснюватимуться з великої кількості комп'ютерів. Це і будуть ті самі вузли, про які йшлося вище.

Давайте подивимося, як це виглядає на схемі нижче:

Як ви бачите, хакер отримав управління великою кількістю комп'ютерів, і встановив на них своє шпигунське програмне забезпечення. Саме йому він тепер може виконувати необхідні дії. У нашому випадку – здійснювати ddos-атаку.

Таким чином, якщо не дотримуватися правил безпеки під час роботи за комп'ютером, можна зазнати вірусного зараження. І можливо, ваш комп'ютер буде використовувати як вузл, для здійснення зловмисних дій.

Вам знадобиться: ми описували деякі аспекти безпеки, у статті .

А ось яким чином вони використовуватимуться, залежить від того, який варіант обрано зловмисника

Класифікація атак ddos

Наступні типи нападів можуть бути здійснені зловмисниками:

  1. Перевантаження смуги пропускання. Щоб комп'ютери, підключені до мережі, могли нормально взаємодіяти між собою, зв'язок, через які вони з'єднуються, повинен нормально працювати, і надавати достатні параметри для конкретних завдань (наприклад, смуга пропускання). Даний тип атак спрямований саме на перевантаження мережевих каналів зв'язку. Досягається це шляхом постійного надсилання безладної або системної інформації (команда ping)
  2. Обмеження ресурсів. Даний тип ми вже розглянули вище, наприклад з доступом до веб-сайту. Як ми зазначили, сервер мав можливість обробляти обмежену кількість одночасних підключень. Зловмиснику необхідно направити на сервер велику кількість одночасних підключень. У результаті сервер не впорається з навантаженням і перестане працювати.
  3. Напад на сервер DNS. У цьому випадку DDOS атака покликана також припинити доступ до веб-сайту. Інший варіант – перенаправити користувача з правильного сайту на фальшивий. Це може бути зроблено з метою викрадення персональних даних. Досягається це шляхом атаки на DNS сервера, а також підміни ip-адрес на фальшиві. Давайте розберемо це з прикладу. Якийсь банк використовує для розрахунку через інтернет свій веб-сайт. Користувачеві необхідно зайти на нього, та ввести дані своєї пластикової картки. Зловмисник з метою викрадення цієї інформації створює однотипний сайт і проводить атаку на DNS сервера (сервера імен). Метою цього заходу є перенаправлення користувача на сайт зловмисника, коли той спробує зайти на сайт банку. Якщо це вдається, користувач не підозрюючи загрози, введе свої персональні дані на сайті зловмисника, і він отримає доступ до них
  4. Недоопрацювання у програмному забезпеченні. Найскладнішим є цей тип атак. Зловмисники виявляють недоробки у програмному забезпеченні та використовують їх з метою руйнування системи. Щоб замовити таку атаку, необхідно буде витратити чимало коштів.

Як провести DDOS атаку своїми руками

Як приклад, ми вирішили показати вам, як можна здійснити атаку DDOS, з використанням спеціального програмного забезпечення.

Для початку завантажуйте програму на цю адресу. Після цього запускайте її. Ви повинні побачити стартове вікно:

Потрібно провести мінімальні налаштування:

  1. У графі "URL" пишемо адресу сайту, який ми хочемо атакувати
  2. Потім натискаємо кнопку "Lock on" - Ми побачимо цільового ресурсу
  3. Ставимо метод TCP
  4. Вибираємо кількість потоків (Threads)
  5. Виставляємо швидкість відправлення за допомогою повзунка
  6. Коли всі налаштування будуть закінчені, натискаємо кнопку "IMMA CHARGIN MAH LAZER"

Все – атака почалася. Ще раз повторюю, всі дії представлені в ознайомлювальних цілях.

Як захиститися від DDOS атак

Ви, напевно, вже зрозуміли, що цей тип загроз дуже небезпечний. А тому дуже важливо знати методи та принципи боротьби та запобігання розподіленим атакам.

  1. Налаштування систем фільтрації - завдання для системних адміністраторів та хостинг провайдерів
  2. Придбання систем захисту від DDOS атак (програмні та апаратні комплекси)
  3. Використання Firewall та списків контролю доступу (ACL) - цей захід спрямований на фільтрацію підозрілого трафіку
  4. Збільшення доступних ресурсів та встановлення систем резервування
  5. Відповідні технічні та правові заходи. Аж до притягнення винуватця до кримінальної відповідальності

Відео до статті:

Висновок

Тепер ви, напевно, розумієте всю небезпеку DDOS атак. До питань забезпечення безпеки своїх ресурсів потрібно підходити дуже відповідально, не шкодуючи часу, сил та грошей. А ще краще мати окремого спеціаліста, чи цілий відділ інформаційної безпеки.

Постійні читачі дуже часто ставили питання, як можна редагувати текст, якщо файл має PDF-файл. Відповідь можна знайти у матеріалі -

Для захисту даних можна використовувати цілий комплекс заходів. Одним з таких варіантів є

Якщо вам необхідно відредагувати свій відеоролик в режимі онлайн, ми приготували для вас популярних .

Навіщо шукати інформацію на інших сайтах, якщо у нас зібрано?

Боротьба з DDoS-атаками – робота не лише складна, а й захоплююча. Не дивно, що кожен сисадмін насамперед намагається організувати оборону самотужки - тим більше, що поки що це можливо.

Ми вирішили допомогти вам у цій нелегкій справі та опублікувати кілька коротких, тривіальних та не універсальних порад щодо захисту вашого сайту від атак. Наведені рецепти не допоможуть вам впоратися з будь-якою атакою, але від більшості небезпек вони вас убережуть.

Правильні інгредієнти

Сувора правда така, що багато сайтів може покласти будь-хто, скориставшись атакою Slowloris, що наглухо вбиває Apache, або влаштувавши так званий SYN-флуд за допомогою ферми віртуальних серверів, піднятих за хвилину в хмарі Amazon EC2. Всі наші подальші поради щодо захисту від DDoS самотужки ґрунтуються на наступних важливих умовах.

1. Відмовитися від Windows Server

Практика підказує, що сайт, який працює на вінді (2003 або 2008 – неважливо), у разі DDoS приречений. Причина невдачі криється в винтовому мережевому стеку: коли з'єднань стає дуже багато, то сервер неодмінно починає погано відповідати. Ми не знаємо, чому Windows Server у таких ситуаціях працює настільки огидно, але стикалися з цим не раз і не два. З цієї причини мова в цій статті йтиме про засоби захисту від DDoS-атак у разі, коли сервер крутиться на Linux. Якщо ви щасливий власник щодо сучасного ядра (починаючи з 2.6), то як первинний інструментарій будуть виступати утиліти iptables та ipset (для швидкого додавання IP-адрес), за допомогою яких можна оперативно забанити ботів. Ще один ключ до успіху - правильно приготовлений мережевий стек, про що ми також говоритимемо далі.

2. Розлучитися з Apache

Друга важлива умова – відмова від Apache. Якщо у вас, не рівна година, стоїть Apache, то як мінімум поставте перед ним проксі, що кешує - nginx або lighttpd. Apache"вкрай важко віддавати файли, і, що ще гірше, він на фундаментальному рівні (тобто невиправно) вразливий для небезпечної атаки Slowloris, що дозволяє завалити сервер мало не з мобільного телефону. Для боротьби з різними видами Slowloris користувачі Apache придумали спочатку патч Anti-slowloris.diff, потім mod_noloris, потім mod_antiloris, mod_limitipconn, mod_reqtimeout... Але якщо ви хочете спокійно спати ночами, простіше взяти HTTP-сервер, невразливий для Slowloris на рівні архітектури коду, тому всі наші подальші рецепти ґрунтуються що на фронтенді використовується nginx.

Відбиваємось від DDoS

Що робити, коли прийшов DDoS? Традиційна техніка самооборони – почитати лог-файл HTTP-сервера, написати патерн для grep (що відловлює запити ботів) та забанити всіх, хто під нього підпаде. Ця методика спрацює... якщо пощастить. Ботнети бувають двох типів, обидва небезпечні, але по-різному. Один цілком приходить на сайт миттєво, інший поступово. Перший вбиває все й одразу, зате в логах з'являється весь повністю, і якщо ви їх проgrepаєте та забаните всі IP-адреси, то ви – переможець. Другий ботнет укладає сайт ніжно та обережно, але банити вам його доведеться, можливо, протягом доби. Будь-якому адміністратору важливо розуміти: якщо планується боротися grep'ом, то треба бути готовим присвятити боротьбі з атакою кілька днів. Нижче поради про те, куди можна заздалегідь підкласти соломки, щоб не так боляче було падати.

3. Використовувати модуль testcookie

Мабуть, найголовніший, найдієвіший і оперативніший рецепт цієї статті. Якщо на ваш сайт приходить DDoS, то максимально дієвим способом дати відсіч може стати модуль testcookie-nginx, розроблений хабракористувачем @kyprizel. Ідея проста. Найчастіше роботи, що реалізують HTTP-флуд, досить тупі і не мають механізмів HTTP cookie та редиректу. Іноді трапляються просунутіші - такі можуть використовувати cookies і обробляти редиректи, але майже ніколи DoS-бот не несе в собі повноцінного JavaScript-движка (хоча це зустрічається все частіше і частіше). Testcookie-nginx працює як швидкий фільтр між ботами та бекендом під час L7 DDoS-атаки, що дозволяє відсіювати сміттєві запити. Що входить до цих перевірок? Чи вміє клієнт виконувати HTTP Redirect, чи підтримує JavaScript, чи він браузер, за який себе видає (оскільки JavaScript скрізь різний і якщо клієнт каже, що він, скажімо, Firefox, то ми можемо це перевірити). Перевірка реалізована за допомогою кукісів з використанням різних методів:

  • "Set-Cookie" + редирект за допомогою 301 HTTP Location;
  • "Set-Cookie" + редирект за допомогою HTML meta refresh;
  • довільним шаблоном, причому можна використовувати JavaScript.

Щоб уникнути автоматичного парсингу, перевіряюча кукіса може бути зашифрована за допомогою AES-128 і пізніше розшифрована на клієнтській стороні JavaScript. У новій версії модуля з'явилася можливість встановлювати кукісу через Flash, що також дозволяє ефективно відсіяти ботів (які Flash, як правило, не підтримують), але, щоправда, блокує доступ для багатьох легітимних користувачів (фактично всіх мобільних пристроїв). Примітно, що використовувати testcookie-nginx вкрай просто. Розробник, зокрема, наводить кілька зрозумілих прикладів використання (на різні випадки атаки) із семплами конфігів для nginx.

Крім переваг, у testcookie є і недоліки:

  • ріже всіх роботів, у тому числі Googlebot. Якщо ви плануєте залишити testcookie на постійній основі, переконайтеся, що ви не пропадете з пошукової видачі;
  • створює проблеми користувачам з браузерами Links, w3m та їм подібними;
  • не рятує від роботів, оснащених повноцінним браузерним двигуном з JavaScript.

Словом, testcookie_module не є універсальним. Але від ряду речей, таких як, наприклад, примітивні інструментарії Java і C#, він допомагає. Таким чином ви відсікаєте частину загрози.

4. Код 444

Метою DDoS'єрів часто стає найбільш ресурсомістка частина сайту. Типовий приклад – пошук, який виконує складні запити до бази. Звичайно, цим можуть користуватися зловмисники, зарядивши відразу кілька десятків тисяч запитів до пошукового двигуна. Що ми можемо вдіяти? Час відключити пошук. Нехай клієнти не зможуть шукати потрібну інформацію вбудованими засобами, але весь основний сайт залишатиметься в працездатному стані доти, поки ви не знайдете корінь всіх проблем. Nginx підтримує нестандартний код 444, який дозволяє просто закрити з'єднання і нічого не віддавати у відповідь:

Location /search ( return 444; )

Таким чином, можна, наприклад, оперативно реалізувати фільтрацію по URL. Якщо ви впевнені, що запити до location /search приходять тільки від ботів (наприклад, ваша впевненість полягає в тому, що на вашому сайті взагалі немає розділу /search), ви можете встановити на сервер пакет ipset і забанити ботів простим shell-скриптом:

Ipset-N ban iphash tail-f access.log | while read LINE; do echo "$LINE" | \ cut -d "" -f3 | cut -d " " -f2 | grep -q 444 && ipset -A ban "$(L%% *)";

Якщо формат лог-файлів нестандартний (не combined) або потрібно банити за іншими ознаками, ніж статус відповіді, може знадобитися замінити cut на регулярне вираження.

5. Банім з геопризнаку

Нестандартний код відповіді 444 може стати у нагоді ще й для оперативного бана клієнтів з геоознаки. Ви можете жорстко обмежити окремі країни, від яких відчуваєте незручність. Скажімо, навряд чи інтернет-магазин фотоапаратів з Ростова-на-Дону має багато користувачів в Єгипті. Це не дуже хороший спосіб (прямо скажемо - огидний), оскільки дані GeoIP неточні, а лихварі іноді літають до Єгипту на відпочинок. Але якщо вам втрачати нічого, то дотримуйтесь інструкцій:

  1. Підключіть до nginx GeoIP-модуль (wiki.nginx.org/HttpGeoipModule).
  2. Виведіть інформацію про геоприв'язку в access log.
  3. Далі, модифікувавши наведений вище шелл-скрипт, проgrepайте accesslog nginx'а і додайте відфутболених за географічною ознакою клієнтів у бан.

Якщо, наприклад, боти здебільшого були з Китаю, це може допомогти.

6. Нейронна мережа (PoC)

Нарешті, ви можете повторити досвід хабракористувача @SaveTheRbtz, який взяв нейронну мережу PyBrain, запхав у неї лог і проаналізував запити (habrahabr.ru/post/136237). Метод робочий, хоч і не універсальний:). Але якщо ви дійсно знаєте нутрощі свого сайту – а ви, як системний адміністратор, повинні, – то у вас є шанси, що в найбільш трагічних ситуаціях такий інструментарій на основі нейронних мереж, навчання та заздалегідь зібраної інформації вам допоможе. У цьому випадку дуже корисно мати access.log до початку DDoS"а, тому що він описує практично 100% легітимних клієнтів, а отже, відмінний dataset для тренування нейронної мережі. Тим більше очима в лозі боти видно не завжди.

Діагностика проблеми

Сайт не працює – чому? Його DDoS'ят чи це баг движка, не помічений програмістом? Неважливо. Не шукайте відповіді це питання. Якщо ви вважаєте, що ваш сайт можуть атакувати, зверніться до компаній, що надають захист від атак - у ряду анти-DDoS-сервісів перша доба після підключення безкоштовна - і не витрачайте більше часу на пошук симптомів. Зосередьтеся на проблемі. Якщо сайт працює повільно або не відкривається взагалі, значить, у нього щось не в порядку з продуктивністю, і – незалежно від того, чи йде DDoS-атака чи ні – ви, як професіонал, зобов'язані зрозуміти, чим це викликано. Ми неодноразово були свідками того, як компанія, яка відчуває труднощі з роботою свого сайту через DDoS-атаки, замість пошуку слабких місць у движку сайту намагалася направляти заяви до МВС, щоб знайти та покарати зловмисників. Не допускайте таких помилок. Пошук кіберзлочинців - це важкий і тривалий процес, ускладнений структурою та принципами роботи мережі Інтернет, а проблему з роботою сайту потрібно вирішувати оперативно. Змусіть технічних фахівців знайти, у чому полягає причина падіння продуктивності сайту, а заяву зможуть написати юристи.

7. Юзайте профайлер та відладчик

Для найпоширенішої платформи створення веб-сайтів – PHP + MySQL – вузьке місце можна шукати за допомогою наступних інструментів:

  • профайлер Xdebug покаже, на які виклики програма витрачає найбільше часу;
  • вбудований налагоджувач APD та налагоджувальний висновок у лог помилок допоможуть з'ясувати, який саме код виконує ці виклики;
  • в більшості випадків собака заритий у складності та великоваговості запитів до бази даних. Тут допоможе вбудована в двигун бази даних SQL-директива explain.

Якщо сайт лежить навзнак і ви нічого не втрачаєте, відключіться від мережі, подивіться логи, спробуйте їх програти. Якщо не лежить, то пойдіть сторінками, подивіться на базу.

Приклад наведено для PHP, але ідея є справедливою для будь-якої платформи. Розробник, що пише програмні продукти якою б то не було мовою програмування, повинен вміти оперативно застосовувати і відладчик, і профільник. Потренуйтеся заздалегідь!

8. Аналізуйте помилки

Проаналізуйте обсяг трафіку, час відповіді сервера кількість помилок. Для цього дивіться логі. У nginx час відповіді сервера фіксується у лозі двома змінними: request_time та upstream_response_time. Перша - це повний час виконання запиту, включаючи затримки мережі між користувачем і сервером; друга повідомляє, скільки бекенд (Apache, php_fpm, uwsgi...) виконував запит. Значення upstream_response_time надзвичайно важливе для сайтів з великою кількістю динамічного контенту та активним спілкуванням фронтенду з базою даних, їх не можна нехтувати. Як формат лога можна використовувати такий конфіг:

Log_format xakep_log "$remote_addr - $remote_user [$time_local] " ""$request" $status $body_bytes_sent " ""$http_referer" "$http_user_agent" $request_time \ $upstream_response_time";

Це combined-формат із доданими полями таймінгу.

9. Відстежуйте кількість запитів на секунду

Також подивіться на кількість запитів за секунду. У разі nginx ви можете приблизно оцінити цю величину наступною shell-командою (змінна ACCESS_LOG містить шлях до журналу запитів nginx у combined-форматі):

Echo $(($(fgrep -c "$(env LC_ALL=C date) [email protected]$(($(date \ +%s)-60)) +%d/%b/%Y:%H:%M)" "$ACCESS_LOG")/60))

Порівняно з нормальним для цього часу рівнем кількість запитів в секунду може як падати, так і зростати. Зростають вони у випадку, якщо прийшов великий ботнет, а падають, якщо ботнет, що прийшов, обрушив сайт, зробивши його повністю недоступним для легітимних користувачів, і при цьому ботнет статику не запитує, а легітимні користувачі запитують. Падіння кількості запитів спостерігається за рахунок статики. Але, так чи інакше, ми ведемо мову про серйозні зміни показників. Коли це відбувається раптово - поки ви намагаєтеся вирішити проблему самотужки і якщо не бачите її відразу в лозі, краще швидко перевірте двигун і паралельно зверніться до фахівців.

10. Не забувайте про tcpdump

Багато хто забуває, що tcpdump - це шалений засіб діагностики. Я наведу кілька прикладів. У грудні 2011-го виявили баг в ядрі Linux, коли воно відкривало TCP-з'єднання при виставлених прапорах TCP-сегменту SYN і RST. Першим багрепорт відправив саме системний адміністратор з Росії, чий ресурс був атакований цим методом - атакуючі дізналися про вразливість раніше, ніж весь світ. Йому, мабуть, така діагностика допомогла. Інший приклад: у nginx є одна не дуже приємна властивість - він пише в балку тільки після повної відпрацювання запиту. Бувають ситуації, коли сайт лежить, нічого не працює і нічого немає. Все тому, що всі запити, які зараз завантажують сервер, ще не виконалися. Tcpdump допоможе тут.

Він настільки хороший, що я радив людям не використовувати бінарні протоколи до того, як вони переконаються, що все гаразд, - адже текстові протоколи налагоджувати tcpdump"ом легко, а бінарні - ні. Однак сніффер хороший як засіб діагностики - як засіб підтримки production"а він страшний. Він легко може втратити відразу кілька пакетів та зіпсувати вам історію користувача. Дивитися його висновок зручно, і він стане в нагоді для ручної діагностики та бана, але намагайтеся нічого критичного на ньому не засновувати. Інший улюблений багатьма засіб «погріпати запити» - ngrep - взагалі за замовчуванням намагається запросити в районі двох гігабайт пам'яті, що несвопується, і тільки потім починає зменшувати свої вимоги.

11. Атака чи ні?

Як відрізнити DDoS-атаку, наприклад, від ефекту рекламної кампанії? Це питання може здатися смішним, але ця тема не менш складна. Бувають досить курйозні випадки. В одних добрих хлопців, коли вони напружилися і ґрунтовно прикрутили кешування, сайт зліг на пару днів. З'ясувалося, що протягом кількох місяців цей сайт непомітно датамайнили якісь німці і до оптимізації кешування сторінки сайту у цих німців з усіма картинками вантажилися досить довго. Коли сторінка почала видаватися з кешу миттєво, бот, який не мав ніяких тайм-аутів, теж почав збирати їх миттєво. Тяжко довелося. Випадок особливо складний тому, що якщо ви самі змінили налаштування (включили кешування) і сайт після цього перестав працювати, то хто, на вашу і начальницьку думку, винен? Ось ось. Якщо ви спостерігаєте різке зростання кількості запитів, подивіться, наприклад, у Google Analytics, хто приходив на якісь сторінки.

Тюнінг веб-сервера

Які є ще ключові моменти? Звичайно, ви можете поставити «умолчальний» nginx і сподіватися, що у вас все буде гаразд. Однак добре завжди не буває. Тому адміністратор будь-якого сервера повинен присвятити чимало часу тонкому налаштуванню та тюнінгу nginx.

12. Лімітуємо ресурси (розміри буферів) у nginx

Про що треба пам'ятати насамперед? Кожен ресурс має ліміт. Насамперед це стосується оперативної пам'яті. Тому розміри заголовків і всіх буферів потрібно обмежити адекватними значеннями на клієнта і на сервер цілком. Їх обов'язково потрібно прописати у конфізі nginx.

  • client_header_buffer_size_ _ Задає розмір буфера для читання заголовка запиту клієнта. Якщо рядок запиту або поле заголовка запиту не поміщаються повністю в цей буфер, виділяються буфери більшого розміру, що задаються директивою large_client_header_buffers.
  • large_client_header_buffersЗадає максимальне число та розмір буферів для читання великого заголовка запиту клієнта.
  • client_body_buffer_sizeЗадає розмір буфера для читання запиту клієнта. Якщо тіло запиту більше заданого буфера, все тіло запиту чи лише його частина записується в тимчасовий файл.
  • client_max_body_sizeЗадає максимально допустимий розмір тіла запиту клієнта, що вказується в полі Content-Length заголовка запиту. Якщо розмір більше заданого, клієнту повертається помилка 413 (Request Entity Too Large).

13. Налаштовуємо тайм-аути в nginx

Ресурсом є час. Тому наступним важливим кроком має стати установка всіх тайм-аутів, які знову ж таки дуже важливо акуратно прописати в налаштуваннях nginx.

  • reset_timedout_connection on;Допомагає боротися із сокетами, що зависли у фазі FIN-WAIT.
  • client_header_timeoutЗадає тайм-аут під час читання заголовка запиту клієнта.
  • client_body_timeoutЗадає тайм-аут під час читання тіла запиту клієнта.
  • keepalive_timeoutЗадає тайм-аут, протягом якого keep-alive з'єднання з клієнтом не буде закрито сервером. Багато хто боїться задавати тут великі значення, але ми не впевнені, що цей страх виправданий. Опціонально можна виставити значення тайм-ауту в заголовку HTTP Keep-Alive, але Internet Explorer відомий тим, що ігнорує це значення
  • send_timeoutЗадає тайм-аут під час передачі відповіді клієнту. Якщо після цього клієнт нічого не прийме, з'єднання буде закрито.

Відразу питання: які параметри буферів та тайм-аутів правильні? Універсального рецепта тут немає, у кожній ситуації вони свої. Але є перевірений підхід. Потрібно виставити мінімальні значення, за яких сайт залишається у працездатному стані (у мирний час), тобто сторінки віддаються та запити обробляються. Це визначається лише тестуванням – як із десктопів, так і з мобільних пристроїв. Алгоритм пошуку значень кожного параметра (розмір буфера або тайм-ауту):

  1. Виставляємо математично мінімальне значення параметра.
  2. Запускаємо прогін тестів сайту.
  3. Якщо весь функціонал сайту працює без проблем – параметр визначено. Якщо ні – збільшуємо значення параметра та переходимо до п. 2.
  4. Якщо значення параметра перевищило навіть значення за промовчанням, це привід для обговорення в команді розробників.

У ряді випадків ревізія даних параметрів повинна призводити до рефакторингу/редизайну сайту. Наприклад, якщо сайт не працює без трихвилинних AJAX long polling запитів, то потрібно не тайм-аут підвищувати, а long polling замінювати на щось інше - ботнет у 20 тисяч машин, що висить на запитах по три хвилини, легко вб'є дешевий середньостатистичний сервер.

14. Лімітуємо з'єднання в nginx (limit_conn та limit_req)

Nginx також має можливість лімітувати з'єднання, запити і так далі. Якщо ви не впевнені в тому, як поведеться певна частина вашого сайту, то в ідеалі вам потрібно протестувати її, зрозуміти скільки запитів вона витримає, і прописати це в конфігурації nginx. Одна річ, коли сайт лежить і ви здатні прийти та підняти його. І зовсім інша справа - коли він ліг настільки, що сервер пішов у swap. У цьому випадку найчастіше простіше перезавантажитись, ніж дочекатися його тріумфального повернення.

Припустимо, що на сайті є розділи з назвами /download і /search. При цьому ми:

  • не хочемо, щоб боти (або люди з надто ретивими рекурсивними download-менеджерами) забили нам таблицю TCP-з'єднань своїми закачуваннями;
  • не хочемо, щоб боти (або залітні краулери пошукових систем) вичерпали обчислювальні ресурси СУБД безліччю пошукових запитів.

Для цього пригодиться конфігурація такого виду:

Http ( limit_conn_zone $binary_remote_addr zone=download_c:10m; limit_req_zone $binary_remote_addr zone=search_r:10m \ rate=1r/s; server ( location /download/ ( limit_conn download_c 1; # Інша конфігурація search_r burst = 5; # Інша конфігурація location ) ) )

Зазвичай має пряме значення встановити обмеження limit_conn і limit_req для locations, у яких перебувають дорогі до виконання скрипти (у прикладі вказаний пошук, і це неспроста). Обмеження необхідно вибирати, керуючись результатами навантажувального та регресійного тестування, а також здоровим глуздом.

Зверніть увагу на параметр 10m у прикладі. Він означає, що на розрахунок даного ліміту буде виділено словник з буфером 10 мегабайт і ні мегабайтом більше. У цій конфігурації це дозволить відстежувати 320 000 TCP-сесій. Для оптимізації займаної пам'яті як ключ у словнику використовується змінна $binary_remote_addr, яка містить IP-адресу користувача в бінарному вигляді і займає менше пам'яті, ніж звичайна строкова змінна $remote_addr. Потрібно зауважити, що другим параметром до директиви limit_req_zone може бути не тільки IP, але й будь-яка інша змінна nginx, доступна в даному контексті, - наприклад, у випадку, коли ви не хочете забезпечити більш щадний режим для проксі, можна використовувати $binary_remote_addr$http_user_agent або $binary_remote_addr$http_cookie_myc00kiez - але використовувати такі конструкції потрібно з обережністю, оскільки, на відміну від 32-бітного $binary_remote_addr, ці змінні можуть бути істотно більшої довжини і декларовані вами «10m» можуть раптово закінчитися.

Тренди в DDoS

  1. Безперервно зростає потужність атак мережного та транспортного рівня. Потенціал середньостатистичної атаки типу SYN-флуд досяг уже 10 мільйонів пакетів на секунду.
  2. Особливий попит останнім часом мають атаки на DNS. UDP-флуд валідними DNS-запитами зі spoof'ленними IP-адресами джерела - це одна з найпростіших у реалізації та складних у плані протидії атак. Багато великих російських компаній (у тому числі хостингів) відчували останнім часом проблеми в результаті атак на їхні DNS-сервери. Чим далі, тим таких атак буде більше, а їхня потужність зростатиме.
  3. Судячи з зовнішніх ознак, більшість ботнетів управляється не централізовано, а у вигляді пірингової мережі. Це дає зловмисникам можливість синхронізувати дії ботнета в часі - якщо раніше керуючі команди поширювалися по ботнету в 5 тисяч машин за десятки хвилин, то тепер рахунок йде на секунди, а ваш сайт може несподівано випробувати миттєве зростання кількості запитів.
  4. Частка роботів, оснащених повноцінним браузерним двигуном з JavaScript, все ще невелика, але безперервно зростає. Таку атаку складніше відбити вбудованими підручними засобами, тому Саморобкіни повинні з побоюванням стежити за цим трендом.

готуємо ОС

Крім тонкого налаштування nginx, потрібно подбати про налаштування мережевого стека системи. Щонайменше - відразу включити net.ipv4.tcp_syncookies в sysctl, щоб разом захистити себе від атаки SYN-flood невеликого розміру.

15. Тюним ядро

Зверніть увагу на більш просунуті налаштування мережної частини (ядра) знову ж таки за тайм-аутами та пам'яті. Є більш важливі та менш важливі. Насамперед треба звернути увагу на:

  • net.ipv4.tcp_fin_timeoutЧас, який сокет проведе у TCP-фазі FIN-WAIT-2 (очікування FIN/ACK-сегмента).
  • net.ipv4.tcp_(,r,w)memРозмір приймального буфера сокетів TCP. Три значення: мінімум, значення за замовчуванням та максимум.
  • net.core.(r,w)mem_maxТе ж саме для не TCP буферів.

При каналі в 100 Мбіт/с значення за умовчанням якось годяться; але якщо у вас є хоча б гігабіт в секунду, то краще використовувати щось на кшталт:

Sysctl -w net.core.rmem_max=8388608 sysctl -w net.core.wmem_max=8388608 sysctl -w net.ipv4.tcp_rmem="4096 87380 8388608" sysctl4m6 w net.ipv4.tcp_fin_timeout=10

16. Ревізія /proc/sys/net/**

Ідеально вивчити всі параметри /proc/sys/net/**. Потрібно подивитися, наскільки вони відрізняються від дефолтних, і зрозуміти, наскільки вони адекватно виставлені. Linux-розробник (або системний адміністратор), який знається на роботі підвладного йому інтернет-сервісу і бажає його оптимізувати, повинен з цікавістю прочитати документацію всіх параметрів мережевого стека ядра. Можливо, він знайде там специфічні для свого сайту змінні, які допоможуть не лише захистити сайт від зловмисників, а й прискорити його роботу.

Не боятися!

Успішні DDoS-атаки день у день гасять e-commerce, стрясають ЗМІ, з одного удару відправляють у нокаут найбільші платіжні системи. Мільйони інтернет-користувачів втрачають доступ до критичної інформації. Загроза насущна, тому потрібно зустрічати її у всеозброєнні. Виконайте домашню роботу, не бійтеся та тримайте голову холодною. Ви не перший і не останній, хто зіткнеться з DDoS-атакою на свій сайт, і у ваших силах, керуючись своїми знаннями та здоровим глуздом, звести наслідки атаки до мінімуму.

На обчислювальну систему з метою довести її до відмови, тобто створення таких умов, за яких легальні (правомірні) користувачі системи не можуть отримати доступ до ресурсів (серверів), що надаються системою, або цей доступ утруднений. Відмова «ворожої» системи може бути і кроком до оволодіння системою (якщо в нештатній ситуації видає якусь критичну інформацію - наприклад, версію, частина програмного коду і т. д.). Але найчастіше це міра економічного тиску: простої служби, що приносить дохід, рахунки від провайдера і заходи щодо уникнення атаки відчутно б'ють «мету» по кишені.

Якщо атака виконується одночасно з великої кількості комп'ютерів, говорять про DDoS-атаці(Від англ. Distributed Denial of Service, розподілена атака типу «відмова в обслуговуванні»). У деяких випадках до фактичної DDoS-атаки призводить ненавмисна дія, наприклад, розміщення на популярному інтернет-ресурсі посилання на сайт, розміщений на не дуже продуктивному сервері (слешдот-ефект). Великий наплив користувачів призводить до перевищення допустимого навантаження на сервер і, отже, відмови в обслуговуванні частини їх.

Види DoS-атак

Існують різні причини, через які може виникнути умова DoS:

  • Помилкау програмному коді , що призводить до звернення до фрагмента адресного простору, що не використовується, виконання неприпустимої інструкції або іншої необробленої виняткової ситуації, коли відбувається аварійне завершення програми-сервера - серверної програми. Класичним прикладом є звернення за нульовим (англ. null) адресою.
  • Недостатня перевірка даних користувача, що призводить до нескінченного або тривалого циклу або підвищеного тривалого споживання процесорних ресурсів (до вичерпання процесорних ресурсів) або виділення великого обсягу оперативної пам'яті (до вичерпання доступної пам'яті).
  • Флуд(англ. flood- «повінь», «переповнення») - атака, пов'язана з великою кількістю звичайно безглуздих або сформованих у неправильному форматі запитів до комп'ютерної системи або мережного обладнання, що має на меті або призвела до відмови в роботі системи через вичерпання системних ресурсів - процесора, пам'яті чи каналів зв'язку.
  • Атака другого роду- атака, яка прагне викликати хибне спрацьовування системи захисту та таким чином призвести до недоступності ресурсу.

Якщо атака (зазвичай флуд) проводиться одночасно з великої кількості IP-адрес - з кількох розосереджених у мережі комп'ютерів - то в цьому випадку вона називається розподіленоюатакою на відмову в обслуговуванні ( DDoS).

Експлуатація помилок

Експлойтомназивають програму, фрагмент програмного коду або послідовність програмних команд, що використовують уразливості у програмному забезпеченні та застосовуються для проведення атаки на кіберсистему. З експлойтів, що ведуть до DoS-атаки, але непридатних, наприклад, для захоплення контролю над «ворожою» системою, найбільш відомі WinNuke та Ping of death (Пінг смерті).

Флуд

Про флуд як порушення мережевого етикету див. Флуд.

Флудомназивають величезний потік безглуздих запитів із різних комп'ютерів із єдиною метою зайняти «ворожу» систему (процесор, ОЗУ чи канал зв'язку) роботою і цим тимчасово вивести її з ладу. Поняття «DDoS-атака» практично рівносильне поняттю «флуд», і в побуті і той і інший часто взаємозамінні («зафлудити сервер» = «заDDoS'ити сервер»).

Для створення флуду можуть застосовуватися як звичайні мережеві утиліти на кшталт ping (цім відомо, наприклад, інтернет-спільнота «Уп'ячка»), так і спеціальні програми. Можливість DDoS'а часто «зашивають» у ботнети. Якщо на сайті з високою відвідуваністю буде виявлена ​​вразливість типу «міжсайтовий скриптинг» або можливість включення картинок з інших ресурсів, цей сайт також можна застосувати для DDoS-атаки.

Флуд каналу зв'язку та TCP-підсистеми

Будь-який комп'ютер, що має зв'язок із зовнішнім світом за протоколом TCP/IP, схильний до таких типів флуду:

  • SYN-флуд - при даному виді флуд-атаки на вузол, що атакується, направляється велика кількість SYN-пакетів за протоколом TCP (запитів на відкриття з'єднання). При цьому на комп'ютері, що атакується, через короткий час вичерпується кількість доступних для відкриття сокетів (програмних мережевих гнізд, портів) і сервер перестає відповідати.
  • UDP-флуд - цей тип флуду атакує не комп'ютер-мету, яке канал зв'язку. Провайдери резонно припускають, що UDP пакети треба доставити першими, а TCP можуть почекати. Великою кількістю UDP-пакетів різного розміру забивають канал зв'язку, і сервер, який працює за протоколом TCP, перестає відповідати.
  • ICMP-флуд - те саме, але за допомогою ICMP-пакетів.

Флуд прикладного рівня

Багато служб влаштовані так, що невеликим запитом можна викликати велику витрату обчислювальних потужностей на сервері. У такому разі атакується не канал зв'язку або TCP-підсистема, а безпосередньо служба (сервіс) – флудом подібних «хворих» запитів. Наприклад, веб-сервери вразливі для HTTP-флуду, - для виведення веб-сервера з ладу може застосовуватися як найпростіше GET /, так і складний запит до бази даних на кшталт GET /index.php?search=<случайная строка> .

Виявлення DoS-атак

Існує думка, що спеціальні засоби виявлення DoS-атак не потрібні, оскільки факт DoS-атаки неможливо не помітити. У багатьох випадках це справді так. Однак досить часто спостерігалися вдалі DoS-атаки, які були помічені жертвами лише через 2-3 доби. Бувало, що негативні наслідки атаки ( флуд-Атаки) виливалися в зайві витрати на оплату надлишкового Internet-трафіку, що з'ясовувалося лише при отриманні рахунку від Internet-провайдера. Крім того, багато методів виявлення атак неефективні поблизу об'єкта атаки, але ефективні на мережевих магістральних каналах. У такому разі доцільно ставити системи виявлення саме там, а не чекати, поки користувач, який зазнав атаки, сам її помітить і звернеться за допомогою. До того ж, для ефективної протидії DoS-атакам необхідно знати тип, характер та інші характеристики DoS-атак, а оперативно отримати ці відомості таки дозволяють системи виявлення.

Методи виявлення DoS-атак можна розділити на кілька великих груп:

  • сигнатурні – засновані на якісному аналізі трафіку.
  • статистичні – засновані на кількісному аналізі трафіку.
  • гібридні (комбіновані) - поєднують у собі переваги обох вищезгаданих методів.

Захист від DoS-атак

Заходи протидії DoS-атакам можна розділити на пасивні та активні, а також на превентивні та реакційні.

Нижче наведено короткий перелік основних методів.

  • Запобігання.Профілактика причин, що спонукають тих чи інших осіб організовувати та вжити DoS-атаки. (Дуже часто кібератаки взагалі є наслідками особистих образ, політичних, релігійних та інших розбіжностей, що провокує поведінку жертви тощо)
  • Фільтрування та блекхолінг.Блокування трафіку, що походить від атакуючих машин. Ефективність цих методів знижується в міру наближення до об'єкта атаки і підвищується в міру наближення до атакуючої машини.
  • Зворотній DDOS- Перенаправлення трафіку, що використовується для атаки, на атакуючого.
  • Усунення вразливостей.Не працює проти флуд-атак, котрим «уразливістю» є кінцівка тих чи інших системних ресурсів.
  • Нарощування ресурсів.Абсолютного захисту природно не дає, але є гарним тлом для застосування інших видів захисту від DoS-атак.
  • Розосередження.Побудова розподілених та дублювання систем, які не припинять обслуговувати користувачів, навіть якщо деякі їх елементи стануть недоступними через DoS-атаку.
  • Ухиляння.Видалення безпосередньої мети атаки (доменного імені або IP-адреси) подалі від інших ресурсів, які часто також піддаються впливу разом з метою атаки.
  • Активні заходи у відповідь.Вплив на джерела, організатора або центр управління атакою як техногенними, так і організаційно-правовими засобами.
  • Використання обладнання для відображення DoS-атак.Наприклад DefensePro® (Radware), Периметр (МФІ Софт), Arbor Peakflow® та інших виробників.
  • Придбання сервісу захисту від DoS-атак.Актуально у разі перевищення флудом пропускної спроможності мережного каналу.

Див. також

Примітки

Література

  • Кріс КасперськийКомп'ютерні віруси зсередини та зовні. - Пітере. - СПб. : Пітер, 2006. - С. 527. - ISBN 5-469-00982-3
  • Stephen Northcutt, Mark Cooper, Matt Fearnow, Karen Frederik.Аналіз типових порушень безпеки в мережах = Intrusion Signatures and Analysis. - New Riders Publishing (англ.) СПб.: Видавничий дім "Вільямс" (російськ.), 2001. - С. 464. - ISBN 5-8459-0225-8 (російськ.), 0-7357-1063-5 ( англ.)
  • Morris, R.T= A Weakness in the 4.2BSD Unix TCP/IP Software. - Computing Scienece Technical Report No.117. - AT&T Bell Laborotories, Feb 1985.
  • Bellovin, S. M.= Security Problems у протоколі TCP/IP. - Computer Communication Review, Vol. 19, No.2. - AT&T Bell Laborotories, April 1989.
  • = daemon9 / route / infinity "IP-spooling Demystified: Trust Realationship Exploitation". - Phrack Magazine, Vol.7, Issue 48. - Guild Production, July 1996.
  • = daemon9 / route / infinity "Project Neptune". - Phrack Magazine, Vol.7, Issue 48. - Guild Production, July 1996.

Посилання

  • DoS-атакау каталозі посилань Open Directory Project (

DDOS атака. Пояснення та приклад.

Всім привіт. Це блог Комп'ютер76 і зараз чергова стаття про основи хакерського мистецтва. Сьогодні ми поговоримо про те, що таке DDOS атака простими словами та прикладами. Перед тим, як кидатися спеціальними термінами, буде запровадження, зрозуміле кожному.

Навіщо використовується атака DDOS?

Злом WiFi використовується для забору пароля бездротової мережі. Атаки у формі “ ” дозволять слухати інтернет-трафік. Аналіз уразливостей з наступним підвантаженням конкретного дає можливість захоплення цільового комп'ютера. А що робить DDOS атака? Її мета зрештою – добір прав на володіння ресурсом у законного господаря. Я не маю на увазі, що сайт або блог вам не належатиме. Це в тому сенсі, що у випадку успішно проведеної атаки на ваш сайт, ви втратите можливість ним керувати. Принаймні на деякий час.

Однак у сучасній інтерпретації DDOS атака найчастіше застосовується порушення нормальної роботи будь-якого сервісу. Хакерські групи, назви яких постійно на слуху, нападають на великі урядові або державні сайти з метою привернути увагу до тих чи інших проблем. Але майже завжди за такими атаками стоїть суто меркантильний інтерес: робота конкурентів або прості витівки з непристойно незахищеними сайтами. Головна концепція DDOS у тому, що до сайту одночасно звертається дуже багато користувачів, а точніше запитів із боку комп'ютерів-ботів, що робить навантаження на сервер неподъемным. Ми нерідко чуємо вираз "сайт недоступний", проте мало хто замислюється, що приховано насправді за цим формулюванням. Ну, тепер ви знаєте.

DDOS атака – варіанти

Варіант 1.

гравці стовпилися біля входу

Уявіть, що ви граєте в розраховану на багато користувачів онлайн гру. Із вами грають тисячі гравців. І з більшістю їх ви знайомі. Ви обговорюєте деталі та в годину Х провадите наступні дії. Ви все одноразово заходите на сайт і створюєте персонаж з одним і тим же набором характеристик. Групуєтеся в одному місці, блокуючи своєю кількістю одночасно створених персонажів доступ до об'єктів у грі іншим сумлінним користувачам, які про вашу змову нічого не підозрюють.

Варіант 2.


Уявіть, що комусь надумалося порушити автобусне сполучення в місті за певним маршрутом з метою не допустити сумлінних пасажирів до користування послугами громадського транспорту. Тисячі ваших друзів одночасно виходять на зупинки на початку вказаного маршруту і безцільно катаються у всіх машинах від кінцевої до кінцевої, доки гроші не скінчаться. Поїздка сплачена, але ніхто не виходить на жодній зупинці, крім кінцевих пунктів призначення. А інші пасажири, стоячи на проміжних зупинках, сумно дивляться маршруткам, що віддаляються, услід, не зумівши проштовхнутися в забиті автобуси. У прогарі все: і власники таксі, і потенційні пасажири.

Насправді ці варіанти фізично не втілити в життя. Однак у віртуальному світі ваших друзів можуть замінити комп'ютери несумлінних користувачів, які не спроможні хоч якось захистити свій комп'ютер або ноутбук. І таких переважна більшість. Програм для проведення DDOS атаки безліч. Чи варто нагадувати, що такі дії є протизаконними. А безглуздо підготовлена ​​DDOS атака, з яким успіхом проведена, виявляється і карається.

Як проводиться атака DDOS?

Клацаючи за посиланням сайту, ваш браузер відсилає запит серверу на відображення сторінки, яку шукає. Цей запит виражається як пакет даних. І не одного навіть, а цілого пакету пакетів! У будь-якому випадку обсяг даних, що передаються на канал, завжди обмежений певною шириною. А обсяг даних, що повертаються сервером, незрівнянно більший за ті, що містяться у вашому запиті. У сервера це забирає сили та засоби. Чим сильніший сервер, тим дорожче він коштує для власника і тим дорожче послуги, що їм надаються. Сучасні сервери легко справляються з різко збільшеним напливом відвідувачів. Але для будь-якого із серверів все одно існує критична величина користувачів, які хочуть ознайомитись із змістом сайту. Тим зрозуміліше ситуація з сервером, який надає послуги з хостингу сайтів. Щойно, і сайт-потерпілий відключається від обслуговування, щоб не перевантажити процесори, які обслуговують тисячі інших сайтів, що знаходяться на тому ж хостингу. Робота сайту припиняється до моменту, коли припиниться сама атака DDOS. Ну, уявіть, що ви починаєте перезавантажувати будь-яку сторінку сайту тисячу разів на секунду (DOS). І тисячі ваших друзів роблять на своїх комп'ютерах те саме (distributed DOS або DDOS)... Великі сервери навчилися розпізнавати, що почалася атака DDOS, і протидіють цьому. Проте хакери також удосконалюють свої підходи. Так що в рамках цієї статті, що таке атака DDOS більш розгорнуто, я вже пояснити не зможу.

Що таке DDOS атака ви можете дізнатися та спробувати прямо зараз.

УВАГА.Якщо ви наважитеся спробувати, всі незбережені дані будуть втрачені, для повернення комп'ютера в робочий стан потрібно кнопка RESET. Але ви можете дізнатися, що саме "відчуває" сервер, на який напали. Розгорнутий приклад абзацом нижче, а зараз – прості команди на навантаження системи.

  • Для Лінукс у терміналі наберіть команду:
:(){ :|:& };:

Система відмовиться працювати.

  • Для Windows пропоную створити бат-файл у Блокноті з кодом:
:1 Start goto 1

Назвіть тип DDOS.bat

Пояснювати зміст обох команд, я гадаю, не варто. Видно все неозброєним поглядом. Обидві команди змушують систему виконати скрипт і відразу його повторити, відсилаючи на початок скрипта. З огляду на швидкість виконання система впадає через пару секунд у ступор. Game, як то кажуть, over.

DDOS атака за допомогою програм.

Для наочного прикладу скористайтеся програмою Low Orbit Ion Cannon (Іонна гармата з низькою орбіти). Або LOIC. Дистрибутив, що найбільше завантажується, розташовується за адресою (працюємо в Windows):

https://sourceforge.net/projects/loic/

УВАГА ! Ваш антивірус повинен відреагувати на файл як на шкідливий. Це нормально: ви вже знаєте, що качаєте. У основі сигнатур він позначений як генератор флуду – у перекладі російською це і є кінцева мета нескінченних звернень на певний мережевий адресу. Я особисто не помітив ні вірусів, ні троянів. Але ви маєте право засумніватися і відкласти завантаження.

Оскільки недбайливі користувачі закидають ресурс повідомленнями про шкідливий файл, Source Forge перекине вас на наступну сторінку з прямим посиланням на файл:

У результаті мені вдалося завантажити утиліту лише через .

Вікно програми виглядає так:

Пункт 1 Select target дозволить зловмиснику зосередитись на конкретній меті (вводиться IP адреса або url сайту), пункт 3 Attack optionsдозволить вибрати атакований порт, протокол ( Method) з трьох TCP, UDP та HTTP. У полі TCP/UDP message можна ввести повідомлення для атакованого. Після зробленого атака починається після натискання кнопки IMMA CHARGIN MAH LAZER(це фраза на межі фолу з популярного колись коміксмема; американського матюки в програмі, до речі, чимало). Всі.

ПОПЕРЕДЖУЮ

Цей варіант для випробування лише локального хоста. Ось чому:

  • проти чужих сайтів це протизаконно, і за це на Заході вже реально сидять (а отже, скоро садитимуть і тут)
  • адресу, з якої йде флуд, обчислять швидко, поскаржаться провайдеру, а той винесе вам попередження та нагадає про перший пункт
  • у мережах з низьким пропускним каналом (тобто у всіх домашніх) дрібниця не спрацює. З мережею TOR все те саме.
  • якщо її налаштувати належним чином, ви швидше заб'єте саме свій канал зв'язку, ніж нашкодите комусь. Тож це саме той варіант, коли груша б'є боксера, а не навпаки. І варіант з проксі проходитиме за тим самим принципом: флуд з вашого боку не сподобається нікому.

Прочитано: 9 326

Все частіше в офіційних повідомленнях хостинг-провайдерів то тут, то там мелькають згадки про відбиті DDoS-атаки. Все частіше користувачі, виявивши недоступність свого сайту, передбачають саме DDoS. І справді, на початку березня Рунет пережив цілу хвилю таких атак. При цьому експерти запевняють, що веселощі тільки розпочинаються. Обійти увагою явище настільки актуальне, грізне та інтригуюче просто не виходить. Тож сьогодні поговоримо про міфи та факти про DDoS. З погляду хостинг-провайдера, зрозуміло.

Пам'ятний день

20 листопада 2013 року вперше за 8-річну історію нашої компанії весь технічний майданчик виявився недоступним на кілька годин через безпрецедентну DDoS-атаку. Постраждали десятки тисяч наших клієнтів по всій Росії та в СНД, не кажучи вже про нас самих і нашого інтернет-провайдера. Останнє, що встиг зафіксувати провайдер, перш ніж біле світло померкло для всіх - що його вхідні канали забиті вхідним трафіком наглухо. Щоб уявити це наочно, уявіть собі вашу ванну зі звичайним зливом, в яку подався Ніагарський водоспад.

Навіть вищі в ланцюжку провайдери відчули відлуння цього цунамі. Графіки нижче наочно ілюструють, що відбувалося того дня з інтернет-трафіком у Петербурзі та Росії. Зверніть увагу на круті піки о 15 і 18 годині, саме в ті моменти, коли ми фіксували атаки. На ці раптові плюс 500-700 Гб.

Декілька годин пішло на те, щоб локалізувати атаку. Було обчислено сервер, на який вона велася. Потім було обчислено і мету інтернет-терористів. Знаєте, за ким била вся ця ворожа артилерія? По одному звичайному, скромному клієнтському сайту.

Міф номер один: «Об'єкт атаки – завжди хостинг-провайдер. Це підступи його конкурентів. Не моїх. Насправді, найбільш можлива мета інтернет-терористів - простий клієнтський сайт. Тобто сайт одного з ваших сусідів з хостингу. А може, і ваш.

Не все те DDoS…

Після подій на нашому техмайданчику 20 листопада 2013 року та їх часткового повторення 9 січня 2014 року деякі користувачі стали припускати DDoS у будь-якому приватному збою роботи власного сайту: «Це DDoS!» і "У вас знову DDoS?"

Важливо пам'ятати, що якщо нас осягає такий DDoS, що його відчувають навіть клієнти, ми одразу самі повідомляємо про це.

Хочемо заспокоїти тих, хто поспішає піддаватися паніці: якщо з вашим сайтом щось не так, то ймовірність того, що це саме DDoS становить менше 1%. Просто через те, що з сайтом дуже багато чого може статися і це «багато що» трапляється набагато частіше. Про методи самостійної швидкої діагностики, що саме відбувається з вашим сайтом, ми поговоримо в одному з наступних постів.

А поки що – заради точності слововживання – прояснимо терміни.

Про терміни

DoS-атака (від англійської Denial of Service) - це атака, покликана домогтися відмови сервера в обслуговуванні через його перевантаження.

DoS-атаки не пов'язані зі шкодою для обладнання чи розкраданням інформації; їх мета - зробити так, щоб сервер перестав відповідати на запити. Принципова відмінність DoS у тому, що атака відбувається з однієї машини на іншу. Учасників рівно два.

Але насправді ми практично не спостерігаємо DoS-атак. Чому? Тому що об'єктами атак найчастіше виступають промислові об'єкти (наприклад, потужні продуктивні сервери хостинг-компаній). А щоб завдати помітної шкоди роботі такої машини, потрібні набагато більші потужності, ніж її власні. Це по-перше. А по-друге, ініціатора DoS-атаки досить легко вирахувати.

DDoS - по суті, те саме, що і DoS, тільки атака носить розподілений характер.Не п'ять, не десять, не двадцять, а сотні та тисячі комп'ютерів звертаються до одного сервера одночасно з різних місць. Така армія машин називається ботнетом. Обчислити замовника та організатора практично неможливо.

Співучасники

Що за комп'ютери включаються до ботнету?

Ви здивуєтеся, але найчастіше це звичайні домашні машини. Who knows?.. - цілком можливо, ваш домашній комп'ютер захоплений на бік зла.

Потрібно для цього небагато. Зловмисник знаходить вразливість у популярній операційній системі або додатку і з її допомогою заражає ваш комп'ютер трояном, який у певний день і годину дає вашому комп'ютеру команду почати робити певні дії. Наприклад, надсилати запити на певний IP-адресу. Без вашого відома та участі, звичайно.

Міф номер два: « DDoS робиться десь далеко від мене, у спеціальному підземному бункері, де сидять бородатий хакер з червоними очима.» Насправді, самі того не знаючи, ви, ваші друзі та сусіди - будь-хто може бути мимовільним співучасником.

Це справді відбувається. Навіть якщо ви про це не думаєте. Навіть якщо ви дуже далекі від ІТ (особливо якщо ви далекі від ІТ!).

Цікаве хакерство чи механіка DDoS

Явище DDoS неоднорідне. Це поняття поєднує безліч варіантів дій, які призводять до одного результату (відмову в обслуговуванні). Розглянемо варіанти неприємностей, які можуть зробити нам DDoS'ери.

Перевитрата обчислювальних ресурсів сервера

Робиться це шляхом надсилання на певний IP пакетів, обробка яких потребує великої кількості ресурсів. Наприклад, для завантаження якоїсь сторінки потрібно виконати велику кількість SQL-запитів. Всі атакуючі будуть вимагати саме цю сторінку, що викличе перевантаження сервера та відмову в обслуговуванні для звичайних, легітимних відвідувачів сайту.
Це атака рівня школяра, який присвятив кілька вечорів читання журналу «Хакер». Вона не є проблемою. Один і той же URL, що запитується, обчислюється моментально, після чого звернення до нього блокується на рівні вебсервера. І це лише один із варіантів рішення.

Перевантаження каналів зв'язку до сервера (на вихід)

Рівень складності цієї атаки приблизно такий самий, що й у попередньої. Зловмисник обчислює найважчу сторінку на сайті, і підконтрольний йому ботнет масово починає вимагати саме її.


Уявіть собі, що невидима нам частина Вінні-Пуха дуже велика
У цьому випадку також легко зрозуміти, чим саме забивається вихідний канал, і заборонити звернення до цієї сторінки. Однотипні запити легко побачити за допомогою спеціальних утиліт, які дають змогу подивитися на мережевий інтерфейс та проаналізувати трафік. Потім пишеться правило Firewall, яке блокує такі запити. Все це робиться регулярно, автоматично і так блискавично, що більшість користувачів ні про яку атаку навіть не підозрює.

Міф номер три: «А таки на мій хостинг проходять рідко, і я їх завжди помічаю.» Насправді 99,9% атак ви не бачите і не відчуваєте. Але щоденна боротьба з ними - це буденна, рутинна робота хостингової компанії. Такою є наша реальність, в якій атака коштує дешево, конкуренція зашкалює, а розбірливість у методах боротьби за місце під сонцем демонструють далеко не всі.

Перевантаження каналів зв'язку до сервера (на вхід)

Це вже завдання для тих, хто читав журнал «Хакер» більше одного дня.


Фото із сайту радіо «Эхо Москвы». Не знайшли нічого наочнішого, щоб представити DDoS з перевантаженням каналів на вхід.
Щоб забити канал вхідним трафіком, потрібно мати ботнет, потужність якого дозволяє генерувати потрібну кількість трафіку. Але можливо, є спосіб віддати мало трафіку, а отримати багато?

Є і не один. Варіантів посилення атаки багато, але один із найпопулярніших прямо зараз - атака через громадські DNS-сервери.Фахівці називають цей метод посилення DNS-ампліфікацією(на випадок, якщо комусь більше до вподоби експертні терміни). А якщо простіше, то уявіть собі лавину: щоб зірвати її досить невеликого зусилля, а щоб зупинити - нелюдські ресурси.

Ми з вами знаємо, що публічний DNS-серверна запит повідомляє будь-якому бажаючому дані про будь-яке доменне ім'я. Наприклад, ми запитуємо такий сервер: розкажи мені про домен sprinthost.ru. І він, анітрохи не вагаючись, вивалює нам усе, що знає.

Запит до DNS-сервера - дуже проста операція. Звернутися до нього майже нічого не варте, запит буде мікроскопічним. Наприклад, ось таким:

Залишається тільки вибрати доменне ім'я, інформація про яке складатиме значний пакет даних. Так вихідні 35 байт легким рухом руки перетворюються на майже 3700. В наявності посилення більш ніж у 10 разів.

Але як зробити так, щоб відповідь направлялася на потрібний IP? Як підробити IP джерела запиту, щоб DNS-сервер видавав свої відповіді у напрямку жертви, яка не запитувала жодних даних?

Справа в тому, що DNS-сервери працюють по протоколу обміну даними UDP, якому не потрібно підтвердження джерела запиту. Підробити вихідний IP у разі не становить досера великої праці. Ось чому такий тип атак зараз такий популярний.

Найголовніше: для реалізації такої атаки досить невеликого ботнета. І кількох розрізнених публічних DNS, які не побачать нічого дивного в тому, що різні користувачі іноді запитують дані на адресу одного хоста. І вже тільки потім весь цей трафік зіллється в один потік і наглухо заколотить одну «трубу».

Чого досер не може знати, то це ємності каналів атакованого. І якщо він не розрахує потужність своєї атаки вірно і не заб'є канал до сервера відразу на 100%, атака може бути досить швидко та нескладно відбита. За допомогою утиліт типу TCPdumpлегко з'ясувати, що вхідний трафік прилітає від DNS і на рівні Firewall заборонити його приймати. Цей варіант - відмова приймати трафік від DNS - пов'язаний з певною незручністю для всіх, однак і сервери, і сайти на них при цьому успішно працюватимуть.

Це лише один варіант посилення атаки з багатьох можливих. Є і безліч інших типів атак, про них ми зможемо поговорити в інший раз. А поки хочеться резюмувати, що все сказане вище справедливо для атаки, чия потужність не перевищує ширини каналу до сервера.

Якщо атака потужна

Якщо потужність атаки перевищує ємність каналу до сервера, відбувається таке. Моментально забивається інтернет-канал до сервера, потім до майданчика хостингу, до її інтернет-провайдера, до вищого провайдера, і так далі і вище наростаючою (у перспективі - до абсурдних меж), наскільки вистачить потужності атаки.

І тоді це стає глобальною проблемою для всіх. І якщо стисло, це те, з чим нам довелося мати справу 20 листопада 2013 року. А коли відбуваються масштабні потрясіння, час включати особливу магію!


Приблизно так виглядає особлива магія. За допомогою цієї магії вдається обчислити сервер, на який націлений трафік, і заблокувати його IP на рівні інтернет-провайдера. Так, щоб він перестав приймати по своїх каналах зв'язку із зовнішнім світом (аплінками) будь-які звернення до цього IP. Любителям термінів: цю процедуру фахівці називають «заблукати», від англійської blackhole.

При цьому атакований сервер з 500-1500 акаунт залишається без свого IP. Для нього виділяється нова підмережа IP-адрес, за якими випадково рівномірно розподіляються клієнтські акаунти. Далі фахівці чекають на повторення атаки. Вона майже завжди повторюється.

А коли вона повторюється, на IP, що атакується, вже не 500-1000 акаунтів, а який-небудь десяток-другий.

Коло підозрюваних звужується. Ці 10-20 акаунтів знову розносяться за різними IP-адресами. І знову інженери в засідці чекають на повторення атаки. Знову і знову розносять аккаунти, що залишилися під підозрою, по різних IP і так, поступовим наближенням, обчислюють об'єкт атаки. Всі інші облікові записи до цього моменту повертаються до нормальної роботи на колишньому IP.

Як відомо, це миттєва процедура, вона потребує часу реалізацію.

Міф номер чотири:«Коли відбувається масштабна атака, мій хостер не має плану дій. Він просто чекає, заплющивши очі, коли ж бомбардування закінчиться, і відповідає на мої листи однотипними відписками».Це не так: у разі атаки хостинг-провайдер діє за планом, щоб якнайшвидше локалізувати її та усунути наслідки. А однотипні листи дозволяють донести суть того, що відбувається, і при цьому економлять ресурси, необхідні для максимально швидкого відпрацювання позаштатної ситуації..

Чи є світло наприкінці тунелю?

Зараз бачимо, що DDoS-активність постійно зростає. Замовити атаку стало дуже доступно і потворно недорого. Щоб уникнути звинувачень у пропаганді, пруфлінків не буде. Але повірте нам на слово це так.

Міф номер п'ять: «DDoS-атака – дуже дорогий захід, і дозволити собі замовити таку можуть лише ділки бізнесу. У крайньому випадку, це підступи секретних служб!» Насправді подібні заходи стали вкрай доступними.

Тому очікувати, що шкідлива активність зійде нанівець сама по собі, не доводиться. Швидше, вона лише посилюватиметься. Залишається тільки кувати і гострити зброю. Чим ми й займаємось, удосконалюючи мережеву інфраструктуру.

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

Це зовсім непопулярний аспект обговорення DDoS-атак, оскільки ми рідко чуємо про випадки упіймання та покарання призвідників. Однак слід пам'ятати: DDoS-атака - це кримінальний злочин. У більшості країн світу, у тому числі в РФ.

Міф номер шість: « Тепер я знаю про DDoS достатньо, замовлю свято для конкурента - і нічого мені за це не буде! Не виключено, що буде. І якщо буде, то мало не здасться.

  • Зав'язка історії з DDoS платіжної системи Assist
  • Хвилююча розв'язка

Загалом, займатися порочною практикою DDoS нікому не радимо, щоб не спричинити гнів правосуддя і не погнути собі карму. А ми через специфіку діяльності та живий дослідницький інтерес продовжуємо вивчати проблему, стояти на варті та вдосконалювати оборонні споруди.

PS:у нас не є достатньо теплих слів, щоб висловити всю нашу вдячність, тому ми просто говоримо"Дякую!" нашим терплячим клієнтам, які палко підтримали нас у важкий день 20 листопада 2013 року. Ви сказали багато підбадьорливих слів у нашу підтримку у

mob_info