Добавить в корзинуПозвонить
Найти в Дзене

Чем DoS атака отличается от DDoS? Какие основные типы бывают? Способы защиты?

DoS (Denial of Service) и DDoS (Distributed Denial of Service) атаки схожи по своей цели, но различаются по способу выполнения и масштабам. DoS — один источник атаки. DDoS — множество источников (обычно распределенных по всему миру).
DoS атаки обычно менее масштабны и проще в обнаружении и блокировке. DDoS атаки могут быть гораздо более мощными и сложными для защиты, так как трафик исходит от множества разных устройств и может быть распределен по многим регионам.
DoS атаки легче заблокировать, так как трафик исходит от одного источника. DDoS атаки сложнее предотвратить, потому что трафик исходит из множества разных мест, что затрудняет блокировку каждого источника.
Принцип работы: Пример: Типы DoS атак: Пример HTTP запроса: GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accep
Оглавление

DoS (Denial of Service) и DDoS (Distributed Denial of Service) атаки схожи по своей цели, но различаются по способу выполнения и масштабам.

1. DoS (Denial of Service):

  • Суть: Атака направлена на то, чтобы сделать ресурс (например, веб-сайт, сервер или сеть) недоступным для законных пользователей. Это достигается за счет отправки большого количества запросов к ресурсу, что перегружает его и делает неспособным обслуживать нормальных пользователей.
  • Источник: Атака исходит от одного источника, то есть один компьютер или сервер генерирует весь трафик для перегрузки системы.
  • Пример: Один компьютер отправляет огромное количество запросов к веб-сайту, что приводит к его перегрузке и недоступности для других пользователей.

2. DDoS (Distributed Denial of Service):

  • Суть: Это распределенная версия DoS атаки, в которой атака исходит не от одного источника, а от множества компьютеров одновременно. Эти компьютеры могут быть частью ботнета — сети зараженных устройств, управляемых злоумышленником.
  • Источник: Атака исходит от множества различных устройств (несколько компьютеров, серверов или даже IoT-устройств). Все эти устройства могут находиться в разных частях мира и одновременно посылать запросы к цели.
  • Пример: Тысячи компьютеров, зараженных вредоносным ПО, начинают одновременно отправлять запросы к одному и тому же серверу, доводя его до перегрузки.

Основные отличия:

  • Количество источников:

DoS — один источник атаки.

DDoS — множество источников (обычно распределенных по всему миру).

  • Масштаб:

DoS атаки обычно менее масштабны и проще в обнаружении и блокировке.

DDoS атаки могут быть гораздо более мощными и сложными для защиты, так как трафик исходит от множества разных устройств и может быть распределен по многим регионам.

  • Сложность отражения:

DoS атаки легче заблокировать, так как трафик исходит от одного источника.

DDoS атаки сложнее предотвратить, потому что трафик исходит из множества разных мест, что затрудняет блокировку каждого источника.

Подробнее

1. DoS атака (Denial of Service)

Принцип работы:

  • Атака направлена с одного источника. Это может быть компьютер или сервер, который генерирует большое количество запросов к целевому серверу или услуге.
  • Сервер не справляется с обработкой всех запросов, и в результате доступ к ресурсу становится затруднён или невозможен для реальных пользователей.

Пример:

  • Представьте себе веб-сайт магазина. Если злоумышленник отправит на сайт тысячи или миллионы запросов одновременно, сервер перегрузится и перестанет отвечать на запросы. Это означает, что покупатели не смогут зайти на сайт и сделать заказ.

Типы DoS атак:

  • HTTP Flood: Отправка большого количества HTTP-запросов к веб-серверу (например, запросы на загрузку страниц или изображений).

Пример HTTP запроса:

GET /index.html HTTP/1.1
Host: www.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
Accept-Language: en-US,en;q=0.5
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
  • SYN Flood: Использует уязвимость в процессе TCP-соединений. Атакующий отправляет множество запросов на установление соединений, но не завершает их, вызывая перегрузку ресурсов сервера.

Пример SYN запроса:

10:00:00.000000 IP 192.168.1.100.45678 > 192.168.1.1.80: Flags [S], seq 1000, win 65535, options [mss 1460], length 0

Здесь:

192.168.1.100.45678: IP-адрес и порт клиента.

192.168.1.1.80: IP-адрес и порт сервера.

Flags [S]: Установлен флаг SYN.

seq 1000: Номер последовательности.

win 65535: Размер окна.

options [mss 1460]: Максимальный сегмент MSS (Maximum Segment Size) — это максимальное количество байт, которое может быть отправлено в одном сегменте.

Этот SYN-запрос является первым этапом в установлении TCP-соединения. В ответ на этот запрос сервер отправляет SYN-ACK, после чего клиент подтверждает соединение с помощью ACK-пакета (или не подтверждает (в этом суть атаки)).

  • ICMP Flood (Ping of Death): Отправка большого количества ICMP-запросов (ping) к серверу, что приводит к его перегрузке.

Пример ICMP запроса:

ping 8.8.8.8

2. DDoS атака (Distributed Denial of Service)

Принцип работы:

  • Атака исходит не с одного, а с множества устройств одновременно. Эти устройства могут быть частью ботнета — сети компьютеров, заражённых вредоносным ПО и управляемых злоумышленником.
  • Основная идея DDoS атаки заключается в том, чтобы распределить нагрузку между многими источниками, что затрудняет её блокировку и делает атаку более мощной.

Пример:

Типы DDoS атак:

  • UDP Flood: Атака использует протокол UDP (User Datagram Protocol), отправляя большое количество пакетов данных на открытые порты сервера с целью перегрузки его сети.

Пример UDP запроса с использованием netcat:

echo "Привет, сервер!" | nc -u {host} {port}
  • DNS Amplification: Атакующий отправляет небольшие запросы к DNS-серверам с поддельным IP-адресом жертвы. DNS-серверы отвечают большими объемами данных на подставной IP, что приводит к перегрузке сети жертвы.

Пример DNS запроса с использованием dig:

dig @8.8.8.8 example.com

здесь @8.8.8.8 - это IP адрес жертвы (на который вернется ответ)

DNS-запрос — это запрос, который клиент (например, веб-браузер или операционная система) отправляет к DNS-серверу для получения IP-адреса доменного имени. Например, когда вы вводите в браузере доменное имя, такое как example.com, ваш компьютер должен узнать, какой IP-адрес соответствует этому имени, и для этого он отправляет DNS-запрос.

Ответ может выглядеть так:
; <<>> DiG 9.16.1-Ubuntu <<>> example.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 12345
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;example.com. IN A

;; ANSWER SECTION:
example.com. 3600 IN A 93.184.216.34

;; Query time: 23 msec
;; SERVER: 8.8.8.8#53(8.8.8.8)
;; WHEN: Fri Oct 6 12:34:56 UTC 2023
;; MSG SIZE rcvd: 56
  • Smurf-атака: Smurf-атака — это специфический тип DDoS-атаки, при которой злоумышленник использует ICMP (протокол управления сообщениями в сети). В ходе атаки злоумышленник отправляет ICMP Echo-запросы (ping) на расширенную сеть (broadcast-адрес) с поддельным обратным адресом (адресом жертвы). Все устройства в сети отвечают на запросы и отправляют ICMP Echo-ответы на поддельный адрес (жертву), перегружая её трафиком.

Пример с использованием hping3:

sudo hping3 -1 -a 192.168.1.100 8.8.8.8

Здесь:

-1 указывает на ICMP Echo Request.

-a 192.168.1.100 — это поддельный IP-адрес отправителя (source IP).

8.8.8.8 — это целевой IP-адрес (DNS-сервер Google).

Примеры известных DDoS атак

1. Атака на GitHub (февраль 2018):

Одна из самых мощных DDoS атак за всю историю. Атака достигла пикового трафика в 1.35 Тбит/с. Она использовала технику Memcached Amplification, при которой злоумышленники отправляют запросы к уязвимым серверам Memcached, которые затем возвращают огромные объемы данных на целевой сервер.

2. Атака на Dyn (октябрь 2016):

В результате этой атаки были выведены из строя такие крупные сайты, как Twitter, Netflix, Reddit и другие. Для атаки использовался ботнет Mirai, который включал в себя огромное количество заражённых IoT-устройств (умные камеры, роутеры и т.д.).

3. Атака на Эстонию (2007 год):

В течение нескольких недель Эстония подверглась крупномасштабной DDoS атаке. Были парализованы сайты правительства, банков, новостных агентств и других важных инфраструктур.

Защита от DoS и DDoS атак

1. Защита от DoS атак:

  • Ограничение частоты запросов (Rate Limiting): Серверы могут ограничивать количество запросов, которые может отправить один пользователь за определённое время.
  • Фильтрация IP-адресов: Можно заблокировать IP-адреса, с которых поступает подозрительный трафик.
  • Web Application Firewall (WAF): WAF помогает фильтровать и блокировать вредоносный трафик, направленный на веб-приложения.

2. Защита от DDoS атак:

  • CDN (Content Delivery Network): Использование CDN помогает распределить нагрузку по множеству серверов, что снижает вероятность перегрузки основного сервера.
  • DDoS Protection Services: Специальные сервисы, такие как Cloudflare, Akamai, Amazon AWS Shield и другие, могут обнаруживать и фильтровать DDoS трафик. Эти службы имеют распределённые сети по всему миру и могут перенаправить трафик через свои узлы для его фильтрации.
  • Anycast Routing: Этот метод маршрутизации направляет трафик на несколько географически распределённых серверов. Это помогает распределить нагрузку, предотвращая перегрузку какого-либо одного сервера.
  • Мониторинг и обнаружение аномалий: Постоянный мониторинг трафика позволяет выявлять и блокировать аномалии, которые могут свидетельствовать о начале DDoS атаки.3. Превентивные меры:
  • Регулярные обновления ПО: Уязвимости в программном обеспечении могут быть использованы злоумышленниками для усиления атак. Регулярное обновление серверов и приложений снижает риски.
  • Сегментация сети: Разделение сети на несколько сегментов может помочь ограничить влияние атаки на весь сервис.
  • Резервирование ресурсов: Использование облачных решений с возможностью масштабирования инфраструктуры может помочь справляться с внезапными нагрузками.

Если Вам интересно, что еще можно найти на канале QA Helper, прочитайте статью: Вместо оглавления. Что вы найдете на канале QA Helper - справочник тестировщика?

Не забудьте подписаться на канал, чтобы не пропустить полезную информацию: QA Helper - справочник тестировщика

Пишите в комментариях какой пункт было бы интересно рассмотреть более подробно.

Обязательно прочитайте: Что должен знать и уметь тестировщик

Также будет интересно почитать: Вопросы которые задают на собеседовании тестировщикам