Атаки типу DDoS на рівні додатків, і як їх можна пом'якшити

DDoS (розподілений відмова в обслуговуванні) та DoS (відмова в обслуговуванні) атаки можна умовно класифікувати на три категорії залежно від шарів моделі OSI, на які вони спрямовані: мережевий шар (шар 3), транспортний шар (шар 4), та прикладний шар (шар 7).
шар 3 та шар 4 атаки зазвичай менш складні–even though that they might be very challenging to mitigate–and involve flooding the network and transport layer with traffic, overburdening the target system’s resources and making it unavailable to legitimate users. These types of attacks can be launched using various techniques such as ICMP floods, TCP SYN floods, or UDP floods.
An ICMP flood for example, is a Layer 3 attack in which a large number of ICMP packets are flooded into to the target system, rendering it unresponsive. A TCP SYN flood, on the other hand, is a layer 4 attack which exploits the ways TCP connections are established.
In a SYN flood attack, the attacker sends many SYN packets to the target system, but never sends an ACK packet to complete the connection. This causes the system to allocate resources for each connection attempt which eventually overloading the system and making it unavailable to legitimate users. A UDP flood sends a large number of UDP packets to a target system, consuming its resources and making it unresponsive.
Атаки типу DDoS на рівні додатків
Application layer attacks are more complex and harder to mitigate than layer 3 and layer 4 attacks. These attacks target the application layer (layer 7) of the target system and exploit vulnerabilities in the application itself. шар 7 attacks can do more damage because they can directly impact applications and underlying infrastructure. You won’t be able to mitigate layer 7 DDoS attacks with layer 3 or layer 4 tools such as with network firewalls.
HTTP floods, Slowloris attacks, and DNS amplification attacks are Layer 7 denial of service attacks. These attacks require more sophisticated defenses such as application-layer firewalls, intrusion prevention systems, and CDN (content delivery networks).
HTTP floods
HTTP floods attacks are performed using GET or POST requests to overwhelm the target server. Flood attacks using GET requests are usually simpler and require fewer resources because they only ask for information from the server. POST requests, on the other hand, typically require sending large amounts of data.
One of the reasons HTTP flood attacks are difficult to mitigate is that they are often launched from a large number of sources, making it difficult to identify and block all malicious traffic. Additionally, attackers can use techniques such as IP spoofing to disguise their true identities and make it even more difficult to trace the source of their attacks.
Defending against HTTP flood attacks can be complicated. Different types of attacks require different mitigation strategies. Common defenses against HTTP flood attacks include rate limiting, blacklisting, and web application firewalls. However, these techniques can be resource-intensive and may not be sufficient to thwart more sophisticated attacks.
Slowloris attacks
Slowloris is a type of flooding attack in which the way web servers handle client connections is targeted. This attack works by opening a large number of connections to the server, but sending the requests at a slow rate, keeping each connection open as long as possible. This type of attack can consume all available resources of the server and allows attackers to consume CPU, memory, or network bandwidth, etc. without even triggering the typical rate limiting and traffic filtering mechanisms commonly used to detect and block other types of DDoS attacks.
To carry out a Slowloris attack, attackers typically use scripts or tools that send HTTP requests to a server, but deliberately delay sending subsequent requests. The request is designed to look like a legitimate request, but with an incomplete header that keeps the connection open indefinitely. Over time, the server will have many open connections waiting for additional data from the client, causing the server to stop responding to legitimate traffic.
Slowloris attacks can be difficult to detect due to their covert design and relatively low bandwidth. This makes it an effective tool for attackers who want to sabotage their servers without triggering alerts or creating suspicion.To defend against Slowloris attacks, web servers can implement several countermeasures. For example, limit the number of connections that can be established from a single IP address or set a timeout for incomplete requests. Some web application firewalls and DDoS mitigation services have built-in protection against Slowloris attacks, using algorithms that can detect and block such traffic in real time.
шар 7 DDoS mitigations
Rate limiting
Rate limiting involves setting a threshold on the number of requests that can be made from a specific IP address or user agent in a specific period of time. The concept is very similar to rate limiting in layer 3 але це має бути реалізовано на рівні 7.
Мета обмеження швидкості запитів полягає в запобіганні перевантаження веб-застосунку великою кількістю запитів з боку нападника, що призводить до збою сервера. Обмеження швидкості запитів можна реалізувати на різних рівнях архітектури вашого веб-застосунку, на веб-сервері, балансувальнику навантаження, або веб-фаєрволі для застосунку. Реалізація зазвичай включає відстеження кількості запитів, зроблених певною IP-адресою або агентом користувача, та блокування подальших запитів при досягненні заздалегідь визначеного порогу.
Поширений підхід для реалізації обмеження швидкості запитів у веб-застосунках — використовувати проміжне програмне забезпечення (middleware) або плагіни, які відстежують кількість запитів, зроблених кожним клієнтом, та блокують подальші запити при перевищенні порогу. is to These plugins can be configured to apply different rate limiting policies based on factors such as the type of request, user agent, or client IP address.
For example, a simple rate limiting policy can limit requests from a single IP address to a maximum of 10 requests per minute. If a client exceeds this threshold, subsequent requests are blocked until the period expires.
Application-layer rate limiting products are available for popular web servers and cloud services, including:
Apache
Apache has several modules that can be used for rate limiting, such as mod_limitipconn, which limits the number of simultaneous connections from a given IP address, and mod_qos, which provides various quality of service controls including rate limiting.
Furthermore, ModSecurity Web Application Firewall має функцію обмеження швидкості, яка може блокувати клієнтів, які перевищують визначений поріг. На додаток до вищезгаданих модулів, Apache також надає mod_evasive. Це модуль, який можна використовувати для обмеження швидкості та блокування клієнтів, які перевищують визначений поріг. Виявляти та блокувати шахрайських клієнтів за допомогою різних методів, включаючи відстеження IP та user-agent.
Nginx
Nginx надає модуль ngx_http_limit_req. Це можна використовувати для обмеження швидкості запитів від певних клієнтів на основі IP-адреси або інших факторів. Цей модуль використовує алгоритм 'бакет токенів', щоб виділити токени кожному клієнту відповідно до політики обмеження швидкості. Окрім модуля ngx_http_limit_req, Nginx також надає модуль ngx_http_limit_conn. Це можна використовувати для обмеження кількості підключень від конкретних клієнтів або IP-адрес. Цей модуль використовує алгоритм токен-бакета для виділення токенів на основі політик обмеження швидкості.
IIS
Інформаційні служби Інтернету Microsoft (IIS) включає модуль динамічного обмеження IP який можна використовувати для обмеження швидкості. Цей модуль можна налаштувати для блокування запитів з IP-адрес, які перевищують заздалегідь визначені пороги, а також може надавати сповіщення та журнали для моніторингу. На додаток до модуля Динамічного обмеження IP, IIS також надає модуль фільтрації запитів, який можна використовувати для обмеження швидкості запитів конкретних клієнтів на основі різних критеріїв, таких як IP-адреса, user agent, та метод запиту.
AWS
Amazon Web Services (AWS) пропонує кілька сервісів, які можна використовувати для обмеження швидкості, including AWS WAF з обмеженням швидкості як функцією.
AWS Shield пропонує захист від DDoS, включаючи правила на основі ставок, які можуть блокувати запити з IP-адрес вище певного порогу. Додатково до AWS WAF та AWS Shield, AWS також пропонує AWS Elastic Load Balancer. Включає різні політики обмеження швидкості, які можна налаштувати для блокування клієнтів понад визначені пороги.
Azure
Microsoft Azure пропонує кілька сервісів, які можна використовувати для обмеження швидкості, включаючи Azure Application Gateways. Включає міжмережевий екран веб-додатків, який можна налаштувати для обмеження частоти вхідних запитів. Additionally, Azure Front Door пропонує функція обмеження швидкості яка може блокувати запити з IP-адрес вище заздалегідь визначеного порогу. Окрім Azure Application Gateway та Azure Front Door, Azure також пропонує Azure Firewall. Це можна використовувати для обмеження частоти запитів і блокування клієнтів, які перевищують визначений поріг.
GCP
Платформа Google Cloud (GCP) пропонує Cloud Armor, веб-аплікаційний брандмауер з можливістю обмеження частоти запитів, який може блокувати запити від клієнтів, що перевищують визначений поріг.
Ці продукти обмеження частоти на рівні застосунків можуть ефективно зменшувати атаки типу HTTP flood, обмежуючи кількість запитів від зловмисних клієнтів. However, Важливо, щоб вони були належним чином налаштовані, щоб не блокувати легітимний трафік, і використовувалися разом з іншими заходами безпеки, такими як брандмауери та сервіси захисту від DDoS, для забезпечення комплексного захисту від DDoS-атак.
Тайм-аути для незавершених запитів
Нижче наведено деякі методи пом'якшення атак на прикладі Slowloris на рівні застосунків, які представлені для веб-серверів Apache, Nginx, та IIS, і балансувальники навантаження та додаткові функції для AWS, Azure, і служби GCP:
Apache
На додаток до вищезгаданих модулів, Apache також надає модуль, mod_reqtimeout, який можна використовувати для встановлення таймауту для вхідних запитів. Якщо клієнт надсилає запит, який триває довше за вказаний таймаут, сервер закриє з'єднання. Це запобігатиме атакам типу slowloris.
Nginx
Окрім модулів ngx_http_limit_conn та ngx_http_limit_req, Nginx також надає свій модуль ngx_http_request. Це можна використовувати для обмеження часу, який потрібен серверу upstream для обробки запиту. Якщо сервер upstream займе більше часу, ніж вказаний таймаут, Nginx закриє з'єднання.
IIS
Окрім модулів Dynamic IP Restrictions та Request Filtering, IIS також надає драйвер у режимі ядра HTTP.sys. Це дозволяє встановити таймаут для вхідних запитів. Якщо клієнт надсилає запит, який триває довше за вказаний таймаут, сервер закриє з'єднання.
AWS
На додаток до AWS WAF та AWS Shield, AWS також надає Elastic Load Balancer, який містить численні правила тайм-ауту з'єднання, які можна налаштувати для закриття з'єднань, що тривають довше заданого порогу.
Azure
Окрім Azure Application Gateway та Azure Front Door, Azure також надає Azure Load Balancer, який має настроювану характеристику тайм-ауту простою, яка може бути використана для закриття з'єднань, що простоюють протягом заданого періоду.
GCP
Платформа Google Cloud (GCP) надає численні варіанти тайм-ауту з'єднання для своїх сервісів, які включають Cloud Load Balancing, який має настроювану характеристику тайм-ауту, що може бути використана для закриття з'єднань, які тривають довше заданого порогу.
Висновок
На завершення, DDoS та DoS атаки можна класифікувати на основі шарів моделі OSI, на які вони спрямовані, такі як мережевий шар (шар 3), транспортний шар (шар 4), та прикладний шар (шар 7).
У той час як шар 3 and layer 4 атаки перевантажують мережевий та транспортний рівні трафіком, layer 7 атаки є більш складними та використовують уразливості самих додатків. HTTP-флуди та атаки Slowloris є прикладами атак на рівні 7 denial of service attacks. Заходи протидії цим атакам включають обмеження швидкості, blacklisting, and web application firewalls. Виявлення та локалізація атак у реальному часі вимагає комплексної, багаторівневої стратегії захисту, що включає моніторинг, виявлення, та реагування.
Additionally, зловмисники можуть налаштовувати свої техніки та адаптувати атаки, щоб уникнути виявлення та обійти заходи безпеки. Тому, необхідно, щоб організації впроваджували комплексну, багаторівневої стратегії захисту, що включає моніторинг, виявлення, і можливості реагування для швидкого виявлення та локалізації атак у реальному часі. Це може включати використання передових алгоритмів машинного навчання та аналітики поведінки для виявлення та блокування шкідливих шаблонів трафіку.
Після дисклеймеру
Погляди, інформація, або думки, висловлені належать виключно автору і не обов'язково відображають позицію його роботодавця чи організацій, з якими він пов'язаний.
Інформація, що міститься в цьому дописі, призначена лише для загального ознайомлення. Інформація надається Фархадом Мофіді, і хоча він прагне підтримувати її актуальною та точною, він не робить жодних заяв чи гарантій будь-якого виду, прямих чи непрямих, щодо повноти, точності, надійності, придатності або доступності вебсайту. Фархад не робить жодних заяв чи гарантій. щодо будь-якої інформації, продуктів або пов'язаних графічних матеріалів, що містяться в будь-якому дописі, для будь-якої мети.
Також, ШІ може використовуватися як інструмент для надання пропозицій та вдосконалення деякого вмісту або речень. Ідеї, думи, погляди, і кінцеві продукти є оригінальними та створеними людиною автором.