Донецкий техникум промышленной автоматики

DDoS по пунктам: коли раптом все разом починають голосити

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

Що таке атака «відмова в обслуговуванні» (denial of service?) Існують дві її різновиди: «проста» і розподілена. В чому різниця?

В чому різниця

Уявіть собі, що ви розмовляєте з ким-то, і раптом він без попередження починає на вас кричати, причому ще на дикій швидкості - 1274 слова в хвилину, наприклад, що вдвічі перевищує поточний рекорд Гіннесса.

Швидше за все, ви оглухне, і безумовно не розберете ні слова і не зможете відповісти.

Приблизно так і виглядає «звичайна» DoS-атака; зауважте, що нападник - один.

Тепер - розподілена DoS-атака: ось, уявіть собі, що ви виступаєте перед значною аудиторією - понад 1000 осіб. І раптом вони все - кожен з них - починає розмовляти особисто з вами, задавати питання, вимагати негайних відповідей. Вони можуть навіть говорити в звичайному темпі і на звичайній гучності. Але - все разом, одночасно.

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

Це - розподілена DoS-атака.

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

Цим зловмисники і користуються.

Найбільш поширеним типом атак є флуд. Найпростіші випадки - Ping Flood або UDP Flood: зловмисники бомблять мішень величезною кількістю пакетів ICMP Echo Request (ping) або User Datagram Protocol (UDP), завантажуючи ними всю лінію з'єднання, в той час як сервер-мішень сумлінно намагається обробити кожен пакує.

У випадку з UDP-флуд, зловмисник посилає величезну кількість UDP-пакетів на рандомний порти віддаленого хоста, який перевіряє у відповідь наявність додатка, «слухача» дані з цього порту, не знаходить його і відповідає пакетом відмови: ICMP Destination Unreachable. Атакуючий, швидше за все, фальсифікує вихідний IP, так що зворотні пакети йдуть в нікуди.

Інший приклад - Smurf Attack ( «Смурф-атака»; отримала назву від початкового коду програми для проведення атак smurf.c, опублікованого ще в 1997 році).

При подібних атаках велика кількість широкомовних ICMP-пакетів (ICMP - Internet Control Message Protocol, протокол передачі контрольних повідомлень в інтернеті) від імені жертви засилають у велику комп'ютерну мережу. Відповіді від комп'ютерів в цій мережі перевантажують канал зв'язку; машина, яка намагається відповісти на всі ці запити, сповільнюється до продуктивності старого калькулятора.

Природно, всі ці пакети будуть безглуздим сміттям.

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

При SYN-флуд атакуючий (шкідливий клієнт) або не посилає очікуваного ACK і продовжує слати SYN, збільшуючи кількість «напіввідкритих" з'єднань, або відправляє серверу фальсифікований IP, куди і йдуть SYN-ACK. При цьому, оскільки з того IP команди SYN не правили, то і ACK не зробить.

Через деякий час весь канал виявляється забитий.

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

В останні кілька місяців експерти з безпеки виявили кілька «екзотичних» DDoS-атак, які використовували уразливі NTP-сервери для посилення сміттєвого трафіку. І оскільки таких серверів дуже багато, атаки подібного роду виявляються досить проблематичною справою.

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

DDoS також активно використовують «хактивісти» - в якості мережевого аналога вуличних протестів (по крайней мере, так говорить Річард Столлман). Нерідко зустрічаються і політично-вмотивовані атаки, націлені на придушення тих чи інших ЗМІ і т.д.

Ну, і як «брудного» зброї в конкурентній боротьбі в комерційній сфері такі атаки теж іноді використовуються.

Так виглядає проблема. А рішення?

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

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

Для боротьби з DDoS доводиться залучати експертів з боку і іноді навіть переносити всю інфраструктуру під захист спеціалізованих сервісів.

Дуже важливим елементом боротьби з DDoS-атаками (які зараз відбуваються з частотою 28 атак на годину) - це ліквідація самих ботнетів. В одному з наших наступних постів мова піде саме про це.

Denial of service?
В чому різниця?
А рішення?