„Момчето, което направи сайта ни, вече настрои защита от DDoS.“
„Нали имаме защита от DDoS, защо сайтът падна?“
„Колко хиляди иска Qrator?“
За да отговаряте адекватно на подобни въпроси от клиента/началника, е желателно да знаете какво се крие зад термина «защита от DDoS». Изборът на услуги за защита наподобява повече на избора на лекарство от доктора, отколкото на избора на маса в IKEA.
Занимавам се с поддръжка на сайтове от 11 години, преживял съм стотици атаки на услугите, които поддържам, и сега ще разкажа малко за вътрешната кухня на защитата.
Регулярни атаки. 350k общи заявки, 52k легитимни заявки.
Първите атаки се появиха практически с интернет. DDoS като явление стана масово в края на 2000-те години (вижте ).
Приблизително от 2015-2016 година почти всички хостинг доставчици имплементираха защита от DDoS атаки, както и повечето забележителни сайтове в конкурентни области (направете whois по IP адресите на сайтовете eldorado.ru, leroymerlin.ru, tilda.ws, ще видите мрежите на операторите на защита).
Ако преди 10-20 години повечето атаки можеха да бъдат отблъснати на самия сървър (оценете препоръките на системния администратор на Lenta.ru Максим Мошков от 90-те години: ), сега задачите за защита станаха по-сложни.
Видове DDoS атаки от гледна точка на избора на оператор за защита
Атаки на ниво L3 / L4 (по модела OSI)
— UDP флууд от ботнет (много заявки се изпращат директно от заразени устройства към атакуваната услуга, каналът на сървърите е запълнен);
— DNS/NTP/и т.н. амплификация (много заявки се изпращат от заразени устройства към уязвими DNS/NTP/и т.н., адресът на изпращача е подправен, облак от пакети с отговори на заявките запълва канала на атакувания);
— SYN/ACK флууд (много заявки за установяване на връзка се изпращат към атакуваните сървъри, опашката от връзки се препълва);
— атаки с фрагментиране на пакети, ping of death, ping flood (моля, потърсете);
— и т.н.
Тези атаки целят да „запълнят“ канала на сървъра или да „убият“ способността му да приема нов трафик.
Въпреки че SYN/ACK флууд и амплификацията много се различават, много компании се справят с тях по един и същ начин. Проблемите възникват с атаките от следващата група.
Атаки на L7 (уровень на приложението)
— http flood (ако се атакува уебсайт или някакво http api);
— атака на уязвимите места на сайта (без кеш, много натоварващи сайта и т.н.).
Целта е да накарат сървъра да "работи усилено", да обработва много "уж реални заявки" и да остане без ресурси за истинските заявки.
Въпреки че има и други атаки, тези са най-разпространените.
Сериозните атаки на L7 ниво се създават по уникален начин за всеки атакуван проект.
Защо две групи?
Защото има много хора, които могат да блокират атаки на L3 / L4 ниво, но или изобщо не поемат защита на приложение (L7), или все още се справят по-слабо от алтернативите.
Кой е кой на пазара за защита от DDoS
(лично мнение)
Защита на ниво L3 / L4
За да се отблъснат атаките с амплификация ("заваляване" на канала на сървъра), е достатъчно наличието на широки канали (много от защитните услуги са свързани с повечето големи оператори в Русия и разполагат с канали с теоретична капацитет над 1 Тбит). Не забравяйте, че много редки атаки с амплификация траят повече от час. Ако сте Spamhaus и никой не ви харесва — да, вероятно ще се опитат да затворят каналите за няколко дни, дори с риск за бъдещото оцеляване на използвания световен ботнет. Ако имате просто интернет магазин, дори и да е mvideo.ru — 1 Тбит за няколко дни ще видите много скоро (надявам се).
За да се отблъснат атаките с SYN / ACK flood, фрагментация на пакети и т.н., са необходими оборудване или софтуерни системи за детекция и блокиране на такива атаки.
Такова оборудване произвеждат много компании (Arbor, решения от Cisco, Huawei, софтуерни реализации от Wanguard и др.), много магистрални оператори вече са инсталирали такова и предлагат услуги за защита от DDoS (знам за инсталации при Ростелеком, Мегафон, ТТК, МТС, практически всички големи доставчици, същото правят хостинг компании с тяхната защита a-la OVH.com, Hetzner.de, сам съм се сблъсквал с защита в ihor.ru). Някои компании разработват свои софтуерни решения (технологии като DPDK позволяват обработка на трафик в десетки гигабити на една физическа x86 машина).
От известните играчи, всички малко или много ефективно могат да отразяват L3/L4 DDoS атаки. В момента не мога да кажа кой има най-голямата максимална пропускателна способност (това е инсайдерска информация), но обикновено това не е толкова важно, а разликата е само в това колко бързо сработва защитата (незабавно или след няколко минути даунтайм на проекта, както в Hetzner).
Въпросът е колко качествено се прави това: атаката с амплификация може да бъде отразена, като се блокира трафикът от държави с най-голямо количество вреден трафик, или може да се изхвърля само действително ненужният трафик.
Но на базата на моя опит, всички сериозни играчи на пазара се справят с това без проблеми: Qrator, DDoS-Guard, Kaspersky, G-Core Labs (бившият SkyParkCDN), ServicePipe, Stormwall, Voxility и др.
С защитата от оператори като Ростелеком, Мегафон, ТТК, Билайн не съм се сблъсквал, но по отзиви на колеги, те предлагат тези услуги с достатъчно качество, но засега периодично се усеща недостатък на опит: понякога е необходимо нещо да бъде настроено през техническата поддръжка на защитния оператор.
Някои оператори предлагат отделна услуга „защита от атаки на ниво L3/L4“ или „защита на канали“, която е значително по-евтина от защитата на всички нива.
Как оператор без магистрални канали отбива атаки с стотици Гбит, той няма свои канали?Операторът на защитата може да се свърже с всеки от големите оператори и да отбива атаките 'за тяхна сметка'. За канала трябва да се плаща, но всички тези стотици Гбит не винаги ще бъдат използвани, има варианти за значително намаляване на разходите за канали в този случай, затова схемата остава работоспособна.
Ето такива доклади от по-високата L3/L4 защита редовно получавах, поддържайки системите на хостинг доставчик.
Защита на ниво L7 (приложен ниво)
Атаките на ниво L7 (приложен ниво) стабилно и качествено могат да бъдат отбивани от единици.
Имам реален достатъчно голям опит с
— Qrator.net;
— DDoS-Guard;
— G-Core Labs;
— Kaspersky.
Те вземат такса за всеки мегабит чист трафик, мегабитът струва около няколко хиляди рубли. Ако имате поне 100 мбит чист трафик — ох. Защитата ще бъде много скъпа. Мога да разкажа в следващите статии как да проектирате приложения, за да спестите много на капацитета на защитните канали.
Истинският "цар на планината" е Qrator.net, останалите изостават. Qrator засега е единственият в моята практика, който предлага близък до нула процент фалшиви срабатывания, но в същото време те са няколко пъти по-скъпи от останалите играчи на пазара.
Други оператори също предлагат качествена и стабилна защита. Много услуги, които поддържаме (включително и много известни в страната!) са под защита от DDoS-Guard, G-Core Labs, и са напълно доволни от получените резултати.
Атаки, отбити от Qrator
Има и опит с малки оператори за защита като cloud-shield.ru, ddosa.net, хиляди от тях. Определено няма да препоръчам, тъй като опитът ми не е много голям, но ще разкажа за принципите на тяхната работа. Цената на защитата често е с 1-2 реда по-ниска от тази на големите играчи. Обикновено те закупуват услуга за частична защита (L3/L4) от някой от по-големите играчи + правят собствена защита от атаки на по-високи нива. Това може да е доста ефективно + можете да получите добра услуга за по-малко пари, но все пак става въпрос за малки компании с малък персонал, моля, имайте това предвид.
В какво се състои сложността на отбиването на атаки на ниво L7?
Всички приложения са уникални и е необходимо да се разрешава полезният трафик и да се блокира вредният. Не винаги успяваме да отсеем ботове, затова се налага да използваме много, наистина МНОГО степени на пречистване на трафика.
Някога стигаше модула nginx-testcookie (), и досега е достатъчен за отбиване на голям брой атаки. Когато работех в хостинг индустрията, защитата на L7 я изграждах именно на nginx-testcookie.
Уви, атаките станаха по-сложни. testcookie използва проверки на ботове на база JS, а много съвременни ботове умеят успешно да ги преминават.
Атакуващите ботнети също са уникални и е необходимо да се вземат предвид особеностите на всеки голям ботнет.
Амплификация, директен флуд от ботнет, филтриране на трафика от различни страни (различно филтриране за различни страни), SYN/ACK флуд, фрагментация на пакети, ICMP, http флуд, при това на ниво приложение/http могат да се измислят безброй различни атаки.
В сумата на нивото на защитата на каналите, специализирано оборудване за пречистване на трафика, спец софт, допълнителни настройки за филтриране за всеки клиент могат да бъдат десетки и стотици нива на филтриране.
За да управлявате правилно и да настроите филтърните настройки за различни потребители, е необходима голяма опитност и квалифициран персонал. Дори голям оператор, решил да предоставя услуга за защита, не може просто да "набута проблема с пари": опитът се натрупва на неподдържани сайтове и при фалшиви сработвания на легитимен трафик.
За оператора на защита няма бутон "отбивам DDoS", има множество инструменти, които трябва да умеете да използвате.
И още един бонусен пример.
Сервер без защита беше блокиран от хостинг компанията при атака с капацитет 600 мбит.
("Изчезването" на трафика не е забелязано, тъй като атакуван беше само 1 сайт, временно беше свален от сървера и блокировката беше снята в рамките на час).
Същият сървър под защита. Атакуващите "се предадоха" след ден отбитите атаки. Самата атака се оказа не най-силната.
Атаките и защита L3/L4 са по-тривиални, в основата си те зависят от широчината на каналите, алгоритмите за откриване и филтриране на атаките.
Атаките L7 са по-сложни и оригинални, те зависят от атакуваното приложение, възможностите и фантазията на атакуващите. Защитата срещу тях изисква задълбочени знания и опит, като резултатът може да не се прояви веднага и не е гарантиран. Докато Google не е измислил за защита нова невронна мрежа.
Източник: habr.com
