Атаки DDoS на ниво приложение, и как могат да бъдат смекчени

DDoS (разпределено отказване на услуга) и DoS (отказ от услуга) атаките могат да бъдат широко класифицирани в три категории въз основа на слоевете на OSI модела, към който са насочени: мрежов слой (Слой 3), транспортен слой (Слой 4), и приложен слой (Слой 7).
Слой 3 и слой 4 атаките обикновено са по-малко сложни–въпреки че може да са много трудни за смекчаване–и включват наводняване на мрежовия и транспортния слой с трафик, претоварвайки ресурсите на целевата система и я прави недостъпна за законни потребители. Тези видове атаки могат да бъдат стартирани с помощта на различни техники като ICMP наводнения, TCP SYN наводнения, или UDP наводнения.
ICMP наводнение например, е слой 3 атака, при която голям брой ICMP пакети се наводняват в целевата система, оставяйки го без отговор. TCP SYN наводнение, от друга страна, е слой 4 атака, която използва начините за установяване на TCP връзки.
При SYN flood атака, нападателят изпраща много SYN пакети към целевата система, но никога не изпраща ACK пакет за завършване на връзката. Това кара системата да разпределя ресурси за всеки опит за свързване, което в крайна сметка претоварва системата и я прави недостъпна за законни потребители. UDP наводнението изпраща голям брой UDP пакети към целевата система, консумира ресурсите му и го кара да не реагира.
Атаки DDoS на ниво приложение
Атаките на приложния слой са по-сложни и по-трудни за смекчаване от слоя 3 и слой 4 атаки. Тези атаки са насочени към приложния слой (слой 7) на целевата система и да използват уязвимости в самото приложение. Слой 7 атаките могат да нанесат повече щети, защото могат директно да засегнат приложенията и основната инфраструктура. Няма да можете да смекчите слоя 7 DDoS атаки със слой 3 или слой 4 инструменти като мрежови защитни стени.
HTTP наводнения, Slowloris атакува, и атаките с усилване на DNS са слой 7 атаки за отказ на услуга. Тези атаки изискват по-сложни защити, като защитни стени на ниво приложение, системи за предотвратяване на проникване, и CDN (мрежи за доставка на съдържание).
HTTP наводнения
HTTP flood атаките се извършват с помощта на GET или POST заявки за претоварване на целевия сървър. Flood атаките, използващи GET заявки, обикновено са по-прости и изискват по-малко ресурси, тъй като искат информация само от сървъра. POST заявки, от друга страна, обикновено изискват изпращане на големи количества данни.
Една от причините HTTP flood атаките да са трудни за смекчаване е, че те често се стартират от голям брой източници, което затруднява идентифицирането и блокирането на целия злонамерен трафик. Допълнително, нападателите могат да използват техники като IP spoofing, за да прикрият истинската си самоличност и да направят още по-трудно проследяването на източника на техните атаки.
Защитата срещу HTTP flood атаки може да бъде сложна. Различните видове атаки изискват различни стратегии за смекчаване. Обичайните защити срещу HTTP flood атаки включват ограничаване на скоростта, черен списък, и защитни стени за уеб приложения. Въпреки това, тези техники могат да изискват много ресурси и може да не са достатъчни за осуетяване на по-сложни атаки.
Slowloris атакува
Slowloris е вид flooding атака, при която се насочва начинът, по който уеб сървърите обработват клиентските връзки. Тази атака работи чрез отваряне на голям брой връзки към сървъра, но изпращане на заявките с бавна скорост, като държи всяка връзка отворена възможно най-дълго. Този тип атака може да консумира всички налични ресурси на сървъра и позволява на атакуващите да консумират процесора, памет, или честотна лента на мрежата, и т.н. без дори да задейства типичното ограничаване на скоростта и механизми за филтриране на трафик, които обикновено се използват за откриване и блокиране на други видове DDoS атаки.
Да извърши атака на Slowloris, нападателите обикновено използват скриптове или инструменти, които изпращат HTTP заявки към сървър, но умишлено забавят изпращането на последващи заявки. Искането е проектирано да изглежда като законно искане, но с непълен хедър, който държи връзката отворена за неопределено време. С течение на времето, сървърът ще има много отворени връзки, чакащи допълнителни данни от клиента, което кара сървъра да спре да отговаря на легитимен трафик.
Атаките на Slowloris могат да бъдат трудни за откриване поради техния скрит дизайн и относително ниска честотна лента. Това го прави ефективен инструмент за нападатели, които искат да саботират своите сървъри, без да задействат предупреждения или да създават подозрение. За защита срещу атаки на Slowloris, уеб сървърите могат да прилагат няколко контрамерки. например, ограничете броя на връзките, които могат да бъдат установени от един IP адрес или задайте таймаут за непълни заявки. Някои защитни стени на уеб приложения и услуги за ограничаване на DDoS имат вградена защита срещу Slowloris атаки, използвайки алгоритми, които могат да открият и блокират такъв трафик в реално време.
Слой 7 Смекчаване на DDoS
Ограничаване на скоростта
Ограничаването на скоростта включва задаване на праг на броя заявки, които могат да бъдат направени от конкретен IP адрес или потребителски агент за определен период от време. Концепцията е много подобна на ограничаването на скоростта в слоя 3 но трябва да се внедри на слой 7.
Целта на ограничаването на скоростта е да попречи на атакуващ да претовари уеб приложението с голям брой заявки, причинява прекъсване на сървъра. Ограничаването на скоростта може да се приложи на различни слоеве от архитектурата на вашето уеб приложение, на уеб сървър, балансьор на натоварването, или защитна стена на приложението. Реализациите обикновено включват проследяване на броя на заявките, направени от определен IP адрес или потребителски агент, и блокиране на следващи заявки, когато бъде достигнат предварително определен праг.
Често срещан подход за прилагане на ограничаване на скоростта в уеб приложенията е използването на междинен софтуер или добавки, които проследяват броя на заявките, направени от всеки клиент, и блокират по-нататъшни заявки, когато прагът бъде надвишен. Тези добавки могат да бъдат конфигурирани да прилагат различни политики за ограничаване на скоростта въз основа на фактори като типа на заявката, потребителски агент, или клиентски IP адрес.
например, проста политика за ограничаване на скоростта може да ограничи заявките от един IP адрес до максимум 10 заявки за минута. Ако клиент надхвърли този праг, последващите заявки се блокират до изтичане на периода.
Продуктите за ограничаване на скоростта на ниво приложение са налични за популярни уеб сървъри и облачни услуги, включително:
Apache
Apache има няколко модула, които могат да се използват за ограничаване на скоростта, като например mod_limitipconn, което ограничава броя на едновременните връзки от даден IP адрес, И mod_qos, който осигурява различни контроли на качеството на услугата, включително ограничаване на скоростта.
Освен това, Защитна стена за уеб приложения ModSecurity има функция за ограничаване на скоростта, която може да блокира клиенти, превишаващи определен праг. В допълнение към споменатите по-горе модули, Apache също предоставя mod_evasive. Това е модул, който може да се използва за ограничаване на скоростта и блокиране на клиенти, които надхвърлят определен праг. Откривайте и блокирайте измамни клиенти, като използвате различни техники, включително проследяване на IP и потребителски агент.
Nginx
Nginx предоставя ngx_http_limit_req модул. Това може да се използва за ограничаване на честотата на заявките от определени клиенти въз основа на IP адрес или други фактори. Този модул използва алгоритъм за кофа за токени, за да разпредели токени за всеки клиент въз основа на политика за ограничаване на скоростта. Освен модула ngx_http_limit_req, Nginx също така предоставя модул ngx_http_limit_conn. Това може да се използва за ограничаване на броя на връзките от конкретни клиенти или IP адреси. Този модул използва алгоритъм за кофа за токени, за да разпределя токени въз основа на политики за ограничаване на скоростта.
IIS
Интернет информационните услуги на Microsoft (IIS) включва a модул за динамично IP ограничаване които могат да се използват за ограничаване на скоростта. Този модул може да бъде конфигуриран да блокира заявки от IP адреси, които надвишават предварително зададени прагове и може също така да предоставя предупреждения и регистрационни файлове за наблюдение. В допълнение към модула за динамично ограничаване на IP, IIS също така предоставя модул за филтриране на заявки, който може да се използва за ограничаване на честотата на заявките на конкретни клиенти въз основа на различни критерии като IP адрес, потребителски агент, и метод на заявка.
AWS
Amazon Web Services (AWS) предлага няколко услуги, които могат да се използват за ограничаване на скоростта, включително AWS WAF с ограничаване на скоростта като функция.
AWS Shield предлага DDoS защита, включително базирани на скорост правила, които могат да блокират заявки от IP адреси над определен праг. В допълнение към AWS WAF и AWS Shield, AWS също предлага AWS Еластичен балансьор на натоварването. Той включва различни политики за ограничаване на скоростта, които могат да бъдат конфигурирани да блокират клиенти над предварително зададени прагове.
Лазурно
Microsoft Azure предлага няколко услуги, които могат да се използват за ограничаване на скоростта, включително Azure Application Gateways. Той включва защитна стена за уеб приложение, която може да бъде конфигурирана да ограничава скоростта на входящите заявки. Допълнително, Оферти на Azure Front Door функция за ограничаване на скоростта които могат да блокират заявки от IP адреси над предварително определен праг. В допълнение към Azure Application Gateway и Azure Front Door, Azure предлага и Azure Firewall. Това може да се използва за ограничаване на скоростта и блокиране на клиенти, надвишаващи определен праг.
GCP
Google Cloud Platform (GCP) предлага Cloud Armor, защитна стена за уеб приложение с възможности за ограничаване на скоростта, която може да блокира заявки от клиенти, които надхвърлят определен праг.
Тези продукти за ограничаване на скоростта на приложния слой могат ефективно да смекчат HTTP flood атаките, като ограничат броя на заявките от измамни клиенти. Въпреки това, важно е те да са правилно конфигурирани, за да не блокират легитимен трафик и да се използват заедно с други мерки за сигурност, като защитни стени и услуги за смекчаване на DDoS, за да осигурят цялостна защита срещу DDoS атаки.
Време за изчакване за непълни заявки
По-долу са някои методи за смекчаване на приложния слой на Slowloris, които са изброени за Apache, Nginx, и IIS уеб сървъри, и балансьори на натоварването и допълнителни функции за AWS, Лазурно, и GCP услуги:
Apache
В допълнение към споменатите по-горе модули, Apache също предоставя модул, mod_reqtimeout, който може да се използва за задаване на таймаут за входящи заявки. Ако клиентът изпрати заявка, която отнема повече от определеното време за изчакване, сървърът ще затвори връзката. Това ще предотврати атаките на slowloris.
Nginx
Освен ngx_http_limit_conn модул и ngx_http_limit_req модул, Nginx също предоставя своя модул ngx_http_request. Това може да се използва за ограничаване на времето, необходимо на сървъра нагоре по веригата да обработи заявката. Ако сървърът нагоре по веригата отнеме повече от определеното време за изчакване, Nginx ще затвори връзката.
IIS
Допълнително към модулите за динамични IP ограничения и филтриране на заявки, IIS също така предоставя драйвер за режим на ядрото HTTP.sys. Това ви позволява да зададете време за изчакване за входящи заявки. Ако клиентът изпрати заявка, която отнема повече от определеното време за изчакване, сървърът ще затвори връзката.
AWS
В допълнение към AWS WAF и AWS Shield, AWS допълнително предоставя Elastic Load Balancer, който включва множество правила за изчакване на връзката, които могат да бъдат конфигурирани да затварят връзки, които отнемат повече от предварително определен праг.
Лазурно
В допълнение към Azure Application Gateway и Azure Front Door, Azure допълнително предоставя Azure Load Balancer, който включва конфигурируема характеристика за изчакване на неактивност, която може да се използва за затваряне на връзки, които може да са неактивни за предварително определен период.
GCP
Google Cloud Platform (GCP) дава многобройни алтернативи за прекъсване на връзката за своите услуги, които включват балансиране на облачното натоварване, който включва конфигурируема характеристика за изчакване, която може да се използва за затваряне на връзки, които отнемат повече от предварително определен праг.
Заключение
В заключение, DDoS и DoS атаките могат да бъдат класифицирани въз основа на слоевете на OSI модела, към който са насочени, като мрежовия слой (Слой 3), транспортен слой (Слой 4), и приложен слой (Слой 7).
Докато слой 3 и слой 4 атаките наводняват мрежата и транспортните слоеве с трафик, слой 7 атаките са по-сложни и използват уязвимости в самите приложения. HTTP наводнения и Slowloris атаки са примери за слой 7 атаки за отказ на услуга. Контрамерките срещу тези атаки включват ограничаване на скоростта, черен списък, и защитни стени за уеб приложения. Идентифицирането и ограничаването на атаки в реално време изисква цялостна, многопластова отбранителна стратегия, която включва наблюдение, откриване, и способности за реакция.
Допълнително, нападателите могат да персонализират техниките си и да приспособят атаките си, за да избегнат откриването и мерките за сигурност. Следователно, наложително е организациите да прилагат цялостна, многопластова отбранителна стратегия, която включва наблюдение, откриване, и способности за реагиране за бързо идентифициране и ограничаване на атаки в реално време. Това може да включва използване на усъвършенствани алгоритми за машинно обучение и поведенчески анализи за откриване и блокиране на модели на злонамерен трафик.
След отказ от отговорност
Мненията, информация, или изразените мнения са единствено на автора и не представляват непременно тези на неговия работодател или на организациите, с които е свързан.
Информацията, съдържаща се в този пост, е само с обща информационна цел. Информацията се предоставя от Фархад Мофиди и докато той се стреми да поддържа информацията актуална и точна, той не дава никакви изявления или гаранции от какъвто и да е вид, ясни или косвени, относно пълнотата, точността, надеждността, пригодността или наличността на уебсайта. Фархад не прави никакви изявления или гаранции. или за каквато и да е информация, продукти или свързана графика, съдържаща се в който и да е пост за каквато и да е цел.
Също така, AI може да се използва като инструмент за предоставяне на предложения и подобряване на някои от съдържанията или изреченията. Идеи, мисли, мнения, и крайните продукти са оригинални и създадени от човека автор.