Краткое руководство по борьбе с DDOS-атаками на веб-сервер
DDoS-атаки бывают разных типов — злоумышленники могут атаковать как сервер в целом, так и отдельный сайт. Сегодня мы подробнее остановимся на атаках уровня L7, его еще называют уровнем приложений. В случае с сайтами, такая атака направлена на http/https-сервер и проявляется, как правило, в том, что на веб-сервере запускается огромное количество процессов — нагрузка возрастает и сервер начинает тормозить или становится недоступен по причине исчерпания ресурсов.
Далее расскажем о том, как выявить проблемный сайт на сервере и восстановить работоспособность сайтов при атаках.
- Диагностика на наличие атаки
- Определяем наличие атаки
- DoS-атаки и выявление источника атаки по логам
- Простой, но важный способ снижения нагрузки от атак
- Защита от DDoS-атак
- С помощью ISPmanager
- Точечная блокировка в ISPmanager
- Блокировка по странам
- Ручные настройки
- Корректировка параметров apache
- Модули nginx
- Переменные sysctl
- С помощью ISPmanager
- Подключение DDoS-защиты
- Если нужен сервис защиты, но бюджет не позволяет
Диагностика на наличие атаки
В первую очередь нам необходимо понять, есть ли DDoS-атака.
Если это атака на канальном уровне, то, скорее всего, ваш сервер будет недоступен, так как сетевой канал забит, и попасть на сервер можно будет только через VNC.
Однако в данной статье мы говорим об атаках на веб-сервер — в этом случае, если есть возможность — зайдите на сервер по ssh.
Определяем наличие атаки
Командами ps и top вы можете выявить главный признак атаки — большое количество процессов httpd (apache2), php-fpm или nginx (реже).
Если на сервер по ssh войти не удается, то вполне возможно еще удастся попасть через окно VNC в панели VMmanager (бессетевой доступ к VDS).
Также можно перезагрузить сервер через VMmanager и попробовать зайти по ssh. Если возрастает количество процессов веб-сервера, то необходимо остановить его либо, как вариант, можно «убить» все процессы веб-сервера командой:
killall -9 <имя демона-процесса веб-сервера>
Посмотреть, какой процесс запускается в качестве веб-сервера, можно с помощью команды (если утилиты netstat нет, то необходимо предварительно ее установить):
netstat -na | grep ':80 '
netstat -na
Посмотреть количество процессов веб-сервера и количество подключений на 80-ый порт:
ps aux | grep -с <имя демона-процесса веб-сервера>
netstat -na | grep -с ":80 "
Эти команды считают количество процессов веб-сервера и количество подключений на 80 порт (если у вас используется SSL-сертификат, то вместо “80” необходимо указывать “443”, оптимально использовать оба варианта).
Если количество соединений превышает среднестатистическое, вероятно, это DoS/DDoS-атака.
DoS-атаки и выявление источника атаки по логам
DoS-атаки случаются даже чаще,чем DDoS, и если говорить максимально упрощенно, то их отличает то, что они:
- либо направлены с одного источника,
- либо не приводят к полной недоступности ресурса — только к высокой нагрузке,
- либо их основная цель использовать уязвимость на сайте или ином веб-ресурсе.
Посмотреть, какие источники подключений к 80-му (443-му) порту присутствуют, можно с помощью команды:
netstat -an | grep -E '\:80 |\:443 '| awk '{print $5}' | grep -Eo '[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}' | sort | uniq -c | sort -n
Команда выведет список по возрастанию в виде строк: количество подключений — ip-адрес источника.
Данная команда также поможет в выявлении DoS/DDoS. Tcpdump запишет в файл ddos.log первые 200 пакетов, которые соединений на 80/443 порту:
tcpdump -nr ddos. log | awk '{print $3}' |grep -oE '[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}\.[0-9]{1,}' |sort |uniq -c |sort -rn
Если атака временно прекратилась или вы хотите узнать, откуда больше всего подключались, можно проанализировать access-лог веб-сервера командой:
grep `date +%d/%b/%Y` /var/www/httpd-logs/*.access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -n 10
Она выведет список 10 наиболее «активных» IP-адресов. Также по логу можно выявить, на какой сайт идет очень много обращений.
Выяснить, не было ли однотипных обращений, можно командой:
grep `date +%d/%b/%Y` /var/www/httpd-logs/*.access.log | awk '{print $1" "$7}' | sort | uniq -c | sort -rnk1 | head -n 10
Для этой же цели многие предпочитают использовать модуль mod_status.
Mod_status позволяет в реальном времени осуществлять мониторинг загрузки сервера.
Например, в случае apache 2.4 необходимо отредактировать файл /etc/apache2/mods-enabled/status. conf
Поменять секцию:
<Location /server-status> SetHandler server-status Require local #Require ip 192.0.2.0/24 </Location>
на
<Location /server-status> SetHandler server-status </Location>
Затем проверить, чтобы следующая строка строка была не закомментирована, т.е. присутствовала в файле именно в таком виде:
ExtendedStatus On
Перезапустите apache.
Теперь по адресу http://ip-aдрес.сервера/server-status доступна статистика запросов к нему.
Нас интересует следующее:
0-0 86795 0/31/31 W 0.54 0 0 0.0 0.09 0.09 89.18.166.89 example.com GET / HTTP/1.0 1-0 86796 0/19/19 W 0.30 0 0 0.0 0.06 0.06 79.140.78.68 example.com GET / HTTP/1.0 2-0 86801 0/9/9 W 0.15 0 0 0.0 0.03 0.03 89.18.166.89 example. com GET / HTTP/1.0 3-0 86802 0/9/9 W 0.14 0 0 0.0 0.03 0.03 82.12.33.48 myhost.com GET /server-status/ HTTP/1.1 4-0 86805 0/4/4 W 0.07 1 0 0.0 0.01 0.01 79.140.78.68 example.com GET / HTTP/1.0 5-0 86806 0/3/3 W 0.06 2 0 0.0 0.01 0.01 89.18.166.89 example.com GET / HTTP/1.0 6-0 86807 0/4/4 W 0.07 0 0 0.0 0.01 0.01 89.18.166.89 example.com GET / HTTP/1.0 7-0 86808 1/4/4 C 0.08 0 2015 3.0 0.01 0.01 89.18.166.89 example.com GET / HTTP/1.0 8-0 86811 0/1/1 W 0.02 0 0 0.0 0.00 0.00 89.18.166.89 example.com GET / HTTP/1.0 9-0 86812 0/1/1 W 0.02 0 0 0.0 0.00 0.00 89.18.166.89 example.com GET / HTTP/1.0 10-0 86813 0/1/1 W 0.02 0 0 0.0 0.00 0.00 89.18.166.89 example.com GET / HTTP/1.0
В данном случае атака идет пустыми запросами GET / к серверу example. com. Вам следует его отключить. Выполнить это лучше всего в панели управления: зайдя в раздел с сайтами, выбрать сайт (в данном случае example.com) и нажать сверху кнопку Файлы конфигурации
, где вы увидите внизу конфигурационный файл nginx. Найдите отрывок такого вида:
server { listen 80; server_name example.com www.example.com;
Пропишите ниже server_name
строку
deny all;
Аналогично сделайте в секции, где указано listen 443
;
Если у вас нет nginx, а только apache, то перейдите в корневую директорию сайта и создайте файл .htaccess с содержимым:
Deny from All
Теперь при обращении к сайту будет выдаваться ошибка 403 Forbidden
, и нагрузка на остальные сайты значительно снизится.
Простой, но важный способ снижения нагрузки от атак
Как правило, флуд-боты обращаются по доменному имени, но могут перебирать и IP-адреса. В этом случае необходимо создать домен-заглушку. Но не забудьте для него в файлах конфигурации nginx указать deny all;
(как в примере выше) или, если у вас только apache, в корневой директории заглушки добавить такой же файл .htaccess с содержимым:
Deny from All
Это не самый эффективный способ борьбы с атаками, но крайне полезный, так как он решает помимо этого много проблем с индексацией сайта, со сканом сайтов по IP-адресу и другие случаи. Однако далее мы рассмотрим уже целенаправленные способы фильтрации атак.
Защита от DDoS-атак
С помощью ISPmanager
В панели ISPmanager есть функция, позволяющая ограничить количество подключений к сайту с одного IP-адреса. При этом IP-адрес блокируется по всем портам, поэтому если ваш IP-адрес попадёт в бан, то вы потеряете связь с сервером на 5 минут.
Приступаем к настройке.
Заходим в ISPmanager — раздел «Сайты» (в старом меню это «Домены-WWW-домены») — выделить домен — кнопка «Изменить». Ищем подраздел «Оптимизация» и «защита от DDos» и ставим галочку «Включить защиту от DDoS-атаки» — следом появятся параметры защиты от атаки.
А именно:
«Количество запросов в секунду» — при достижении указанного количества подключений, IP блокируется только в Nginx.
«Максимальный размер всплеска» — при достижении указанного количества подключений, IP блокируется по всем портам на 5 минут.
Обратите внимание! Данный модуль всего лишь метод сглаживания слабых атак силами веб-сервера. Если атака серьезная и полностью выводит из строя веб-сервер своей нагрузкой, то данный модуль никак не спасет. Также не указывайте экстремально низкие значения (меньше 30-20), так как архитектура некоторых сайтов подразумевает, что при одном клике на сайте к серверу уйдет несколько запросов, следовательно, повышается риск заблокировать легитимного пользователя.
Точечная блокировка в ISPmanager и блокировка по странам
Выше мы уже описывали варианты поиска источника нагрузки, когда атакующих IP-адресов немного. В этом случае их проще всего точечно заблокировать в панели ISPmanager в разделе «Администрирование» — «Брандмауэр», нажав кнопку «Создать» и указав адрес:
В этом же разделе есть возможность включить блокировку по определенным странам, нажав сверху кнопку «Страны». Стоит учитывать, что географическая привязанность IP-адресов всегда условна и может быть не точна. По этой причине для более-менее рабочей точности геораспределения адреса используются платные базы IP-адресов, в ISPmanager это работает именно так, и блокировка будет доступна, если вы зарегистрируетесь и приобретете ключ доступа к базам сервиса Maxmind:
Ручные настройки
Чтобы точечно зафильтровать 80 порт для ip xxx.xxx.xxx.xxx, используйте команду:
iptables -A INPUT -p tcp --src xxx.xxx.xxx.xxx --dport 80 -j DROP
Эти и последующие команды можно и нужно аналогично использовать и для 443-го порта.
Можно использовать ipset (нужен соответствующий модуль):
ipset -N ddos iphash iptables -A INPUT -p tcp -m tcp --dport 80 -m set --set ddos src -j DROP while true; do tail -10000 /var/www/httpd-logs/site.ru.access.log | sort | cut -f 1 -d " " | uniq -c | awk '($1>50){print $2}' | xargs -tl -I _ ipset -A ddos _;sleep 30; done
Закрываем icmp (поможет при icmp-flood):
iptables -A INPUT -p icmp -j DROP --icmp-type 8
Ограничение максимального числа «полуоткрытых» соединений с одного IP к конкретному порту (необходим соответствующий модуль):
iptables -I INPUT -p tcp --syn --dport 80 -m iplimit --iplimit-above 10 -j DROP
Ограничение максимального числа соединений с одного IP к конкретному порту:
/sbin/iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 3 -j REJECT
Корректировка параметров apache
Если в качестве веб-сервера используется apache, в качестве дополнительных средств можно корректировать параметры, влияющие на количество создаваемых процессов в системе.
Откройте любым удобным текстовым редактором конфигурационный файл /etc/httpd/conf/httpd.conf
(если Centos) и /etc/apache2/mods-available/mpm_prefork.conf
(если Debian/Ubuntu):
<IfModule mpm_itk_module> StartServers 1 MinSpareServers 1 MaxSpareServers 1 MaxClients 150 MaxRequestsPerChild 100 </IfModule>
Измените MaxClients (максимальное число процессов) в меньшую сторону до количества процессов, которые не забивают ресурсы вашего сервера до отказа. Каждый процесс apache занимает в среднем 4-8 мегабайт памяти. А лучше узнать точно, сколько памяти в среднем на вашем сервере занимает один процесс apache/httpd так:
top -d 1 | grep -E 'http|apache' | awk '{a+=$7}END{print a/(1024*NR) " Mb"}'
Необходимо, чтобы суммарное количество помещалось в оперативной памяти.
Отредактируйте /etc/httpd/conf/httpd.conf
(если Centos) и /etc/apache2/apache2. conf
(если Debian/Ubuntu)
Следует уменьшить параметры:
Timeout 300
MaxKeepAliveRequests 100
до 60 и 50 соответственно, чтобы как можно скорее старые процессы apache прекращали свое существование.
Модули Nginx
Если панели ISPmanager нет, но используется веб-сервер nginx, проверьте, чтобы nginx был собран с модулями http limit req и GeoIP. С их помощью аналогичным образом, как в панели ISPmanager, только вручную в конфигурационных файлах, можно блокировать доступ для IP-адресов, превысивших ограничение на количество подключений. Также можно заблокировать и доступ по странам. Ввиду возможных особенностей ручных конфигураций, рекомендуем самостоятельно изучить документацию nginx по модулю HTTP limit req и GeoIP.
Переменные sysctl
Системные переменные, которые могут быть полезны, при DDoS.
ICMP-FLOOD
Команда ниже поможет при отражении атаки типа icmp-flood:
sysctl net.ipv4.icmp_echo_ignore_all=1
SYN-FLOOD
Уменьшает время удержания «полуоткрытых» соединений:
sysctl -w net. ipv4.tcp_synack_retries=1
Включает TCP syncookies:
sysctl -w net.ipv4.tcp_syncookies=1
Увеличивает размер очереди полуоткрытых соединений, по умолчанию — 512:
sysctl -w net.ipv4.tcp_max_syn_backlog=4096
Проверяет TCP-соединение каждую минуту. Если на другой стороне — легальная машина, она сразу ответит. По умолчанию — 2 часа:sysctl -w net.ipv4.tcp_keepalive_time=60
Повторяет проверку через 20 секунд:
sysctl -w net.ipv4.tcp_keepalive_intvl=20
Количество проверок перед закрытием соединения:
sysctl -w net.ipv4.tcp_keepalive_probes=3
Изменяет время ожидания приема FIN:
sysctl -w net.ipv4.tcp_fin_timeout=10
Обратите внимание! Эти настройки будут работать до первой перезагрузки сервера, для постоянного использования параметры необходимо внести в системный конфиг sysctl.conf
Подключение DDoS-защиты
Этот раздел статьи должен был быть, пожалуй, самый первым, так как является самым эффективным и главным способом бороться с DDoS-атаками.
Как уже упоминалось, указанные выше меры могут спасти только от небольших атак или атак с источников-«одиночек».
Для качественной защиты и избавления от дополнительных манипуляций стоит подключать профессиональную DDoS-защиту. Есть много сервисов, которые не привязаны к хостингу и могут помочь защитить ваш сайт.
Мы, в свою очередь, предлагаем готовое решение от наших партнеров DDoS-Guard по подключению защищенного канала (для атак на канальном уровне) и защиты L7 (для атак на уровне приложений), обе защиты по одной стоимости, подробнее здесь.
Если нужен сервис защиты, но бюджет не позволяет
Стоит упомянуть и еще один сервис, который допускает вариант бесплатной защиты от DDoS (как вы понимаете, «бесплатно» означает, что это будет не настолько же эффективно) — Cloudflare.
Базово, на этом сервисе можно добавить свой домен, направив его на предоставляемые ими NS. Также по умолчанию, направив домен на их NS, в качестве А-записей на стороне Cloudflare предлагается указать «проксирующий» IP-адрес, который будет отдаваться по домену глобально и принимать на себя все запросы и пропускать их через фильтр бесплатной защиты.
Помимо того, что более эффективная фильтрация будет платной, есть еще «узкое горлышко» в том, что сам VDS при наличии доменов с Cloudflare не избавляется от угрозы прямой атаки по IP-адресу. Как правило, IP-адрес скрывают, стараются, чтобы по доменам нигде не «светились» старые DNS-записи, ведущие сразу на IP-адрес VDS и т.д.
Но есть более кардинальное и рекомендуемое решение в данном случае — запретить в фаерволе доступ по 80-му и 443-му портам для всех адресов, кроме адресов из подсетей cloudflare, тем самым пуская к веб-серверу только трафик, уже прошедший фильтрацию сервиса.
На примере Iptables это можно сделать следующими командами:
iptables -I INPUT -p tcp -m multiport --dports 80,443 -j DROP
ip6tables -I INPUT -p tcp -m multiport --dports 80,443 -j DROP
wget -O - https://www.cloudflare.com/ips-v4 | while read subnet; do iptables -I INPUT -s $subnet -j ACCEPT; done
wget -O - https://www.cloudflare. com/ips-v6 | while read subnet; do ip6tables -I INPUT -s $subnet -j ACCEPT; done
Это только базовая настройка, которую можно кастомизировать, в том числе и для случаев без Cloudflare, ограничив доступ атакующих источников, или ограничить доступ к DNS, и по почтовым портам, добавив правила для доступа ваших рабочих и других легитимных IP-адресов и т.д.
В целом, грамотная настройка фаервола и веб-сервера может помочь справляться с базовыми атаками даже без участия Cloudflare. Однако никакие бесплатные решения не помогут от серьезных и мощных DDoS-атак.
DDoS-атаки: типы атак и уровни модели OSI
Основополагающими концепциями кибер-безопасности являются доступность, целостность и конфиденциальность. Атаки «отказ в обслуживании» (DoS) влияют на доступность информационных ресурсов. Отказ в обслуживании считается успешным, если он привел к недоступности информационного ресурса. Успешность атаки и влияние на целевые ресурсы отличаются тем, что влияние наносит жертве урон. Например, если атакуется интернет-магазин, то длительный отказ в обслуживании может причинить финансовые убытки компании. В каждом конкретном случае DoS-активность может либо непосредственно причинить вред, либо создать угрозу и потенциальный риск нанесения убытков.
Первая D в DDoS означает distributed: распределённая атака типа «отказ в обслуживании». В этом случае речь идёт об огромной массе злонамеренных запросов, поступающих на сервер жертвы из множества разных мест. Обычно такие атаки организуются посредством бот-сетей.
В этой статье мы подробно рассмотрим, какие типы DDoS-трафика и какие виды DDoS-атак существуют. Для каждого вида атак будут приведены краткие рекомендации по предотвращению и восстановлению работоспособности.
- Типы DDoS-трафика
- Классификация и цели DDoS-атак по уровням OSI
- Устранение атак
Типы DDoS-трафика
Самый простой вид трафика — HTTP-запросы. С помощью таких запросов, например, любой посетитель общается с вашим сайтом посредством браузера.
HTTP-заголовок. HTTP заголовки — это поля, которые описывают, какой именно ресурс запрашивается, например, URL-адрес или форма, или JPEG. Также HTTP заголовки информируют веб-сервер, какой тип браузера используется. Наиболее распространенные HTTP заголовки: ACCEPT, LANGUAGE и USER AGENT.
Запрашивающая сторона может использовать сколько угодно заголовков, придавая им нужные свойства. Проводящие DDoS-атаку злоумышленники могут изменять эти и многие другие HTTP-заголовки, делая их труднораспознаваемыми для выявления атаки. В добавок, HTTP заголовки могут быть написаны таким образом, чтоб управлять кэшированием и прокси-сервисами. Например, можно дать команду прокси-серверу не кэшировать информацию.
HTTP GET
- HTTP(S) GET-запрос — метод, который запрашивает информацию на сервере. Этот запрос может попросить у сервера передать какой-то файл, изображение, страницу или скрипт, чтобы отобразить их в браузере.
- HTTP(S) GET-флуд — метод DDoS атаки прикладного уровня (7) модели OSI, при котором атакующий посылает мощный поток запросов на сервер с целью переполнения его ресурсов. В результате сервер не может отвечать не только на хакерские запросы, но и на запросы реальных клиентов.
HTTP POST
- HTTP(S) POST-запрос — метод, при котором данные помещаются в тело запроса для последующей обработки на сервере. HTTP POST-запрос кодирует передаваемую информацию и помещает на форму, а затем отправляет этот контент на сервер. Данный метод используется при необходимости передавать большие объемы информации или файлы.
- HTTP(S) POST-флуд — это тип DDoS-атаки, при котором количество POST-запросов переполняют сервер так, что сервер не в состоянии ответить на все запросы. Это может привести к исключительно высокому использованию системных ресурсов, и, в последствии, к аварийной остановке сервера.
Каждый из описанных выше HTTP-запросов может передаваться по защищенному протоколу HTTPS. В этом случае все пересылаемые между клиентом (злоумышленником) и сервером данные шифруются. Получается, что «защищенность» тут играет на руку злоумышленникам: чтобы выявить злонамеренный запрос, сервер должен сначала расшифровать его. Т.е. расшифровывать приходится весь поток запросов, которых во время DDoS-атаки поступает очень много. Это создает дополнительную нагрузку на сервер-жертву.
SYN-флуд (TCP/SYN) устанавливает полуоткрытые соединения с узлом. Когда жертва принимает SYN-пакет через открытый порт, она должна послать в ответ SYN-ACK пакет и установить соединение. После этого инициатор посылает получателю ответ с ACK-пакетом. Данный процесс условно называется рукопожатием. Однако, во время атаки SYN-флудом рукопожатие не может быть завершено, т.к. злоумышленник не отвечает на SYN-ACK сервера-жертвы. Такие соединения остаются полуоткрытыми до истечения тайм-аута, очередь на подключение переполняется и новые клиенты не могут подключиться к серверу.
UDP-флуд чаще всего используются для широкополосных DDoS-атак в силу их бессеансовости, а также простоты создания сообщений протокола 17 (UDP) различными языками программирования.
ICMP-флуд. Протокол межсетевых управляющих сообщений (ICMP) используется в первую очередь для передачи сообщений об ошибках и не используется для передачи данных. ICMP-пакеты могут сопровождать TCP-пакеты при соединении с сервером. ICMP-флуд — метод DDoS атаки на 3-м уровне модели OSI, использующий ICMP-сообщения для перегрузки сетевого канала атакуемого.
MAC-флуд — редкий вид атаки, при котором атакующий посылает множественные пустые Ethernet-фреймы с различными MAC-адресами. Сетевые свитчи рассматривают каждый MAC-адрес в отдельности и, как следствие, резервируют ресурсы под каждый из них. Когда вся память на свитче использована, он либо перестает отвечать, либо выключается. На некоторых типах роутеров атака MAC-флудом может стать причиной удаления целых таблиц маршрутизации, таким образом нарушая работу целой сети.
Классификация и цели DDoS-атак по уровням OSI
Интернет использует модель OSI. Всего в модели присутствует 7 уровней, которые охватывают все среды коммуникации: начиная с физической среды (1-й уровень) и заканчивая уровнем приложений (7-й уровень), на котором «общаются» между собой программы.
DDoS-атаки возможны на каждом из семи уровней. Рассмотрим их подробнее.
7-й уровень OSI: Прикладной
Тип данных | Данные |
Описание уровня | Начало создания пакетов данных. Присоединение и доступ к данным. Пользовательские протоколы, такие как FTP, SMTP, Telnet, RAS |
Протоколы | FTP, HTTP, POP3, SMTP и шлюзы, которые их используют |
Примеры технологий DoS | PDF GET запросы, HTTP GET, HTTP POST (формы веб-сайтов: логин, загрузка фото/видео, подтверждение обратной связи) |
Последствия DDoS-атаки | Нехватка ресурсов. Чрезмерное потребление системных ресурсов службами на атакуемом сервере. |
Что делать: Мониторинг приложений — систематический мониторинг ПО, использующий определенный набор алгоритмов, технологий и подходов (в зависимости от платформы, на котором это ПО используется) для выявления 0day-уязвимостей приложений (атаки 7 уровня). Идентифицировав такие атаки, их можно раз и навсегда остановить и отследить их источник. На данном слое это осуществляется наиболее просто.
6-й уровень OSI: Представительский
Тип данных | Данные |
Описание уровня | Трансляция данных от источника получателю |
Протоколы | Протоколы сжатия и кодирования данных (ASCII, EBCDIC) |
Примеры технологий DoS | Подложные SSL запросы: проверка шифрованных SSL пакетов очень ресурсоемка, злоумышленники используют SSL для HTTP-атак на сервер жертвы |
Последствия DDoS-атаки | Атакуемые системы могут перестать принимать SSL соединения или автоматически перегружаться |
Что делать: Для уменьшения вреда обратите внимание на такие средства, как распределение шифрующей SSL инфраструктуры (т.е. размещение SSL на отличном сервере, если это возможно) и проверка трафика приложений на предмет атак или нарушение политик на платформе приложений. Хорошая платформа гарантирует, что трафик шифруется и отправляется обратно начальной инфраструктуре с расшифрованным контентом, находившимся в защищенной памяти безопасного узла-бастиона.
5-й уровень OSI: Сеансовый
Тип данных | Данные |
Описание уровня | Управление установкой и завершением соединения, синхронизацией сеансов связи в рамках операционной системы через сеть (например, когда вы выполняете вход/выход) |
Протоколы | Протоколы входа/выхода (RPC, PAP) |
Примеры технологий DoS | Атака на протокол Telnet использует слабые места программного обеспечения Telnet-сервера на свитче, делая сервер недоступным |
Последствия DDoS-атаки | Делает невозможным для администратора управление свитчем |
Что делать: Поддерживать прошивки аппаратного обеспечения в актуальном состоянии для уменьшения риска появления угрозы.
4-й уровень OSI: Транспортный
Тип данных | Сегменты |
Описание уровня | Обеспечение безошибочной передачи информации между узлами, управление передачей сообщений с 1 по 3 уровень |
Протоколы | Протоколы TCP, UDP |
Примеры технологий DoS | SYN-флуд, Smurf-атака (атака ICMP-запросами с измененными адресами) |
Последствия DDoS-атаки | Достижение пределов по ширине канала или по количеству допустимых подключений, нарушение работы сетевого оборудования |
Что делать: Фильтрация DDoS-трафика, известная как blackholing — метод, часто используемый провайдерами для защиты клиентов (мы и сами используем этот метод). Однако этот подход делает сайт клиента недоступным как для трафика злоумышленника, так и для легального трафика пользователей. Тем не менее, блокировка доступа используется провайдерами в борьбе с DDoS-атаками для защиты клиентов от таких угроз, как замедление работы сетевого оборудования и отказ работы сервисов.
3-й уровень OSI: Сетевой
Тип данных | Пакеты |
Описание уровня | Маршрутизация и передача информации между различными сетями |
Протоколы | Протоколы IP, ICMP, ARP, RIP и роутеры, которые их используют |
Примеры технологий DoS | ICMP-флуд — DDos-атаки на третьем уровне модели OSI, которые используют ICMP-сообщения для перегрузки пропускной способности целевой сети |
Последствия DDoS-атаки | Снижение пропускной способности атакуемой сети и возможная перегруженность брандмауэра |
Что делать: Ограничить количество обрабатываемых запросов по протоколу ICMP и сократить возможное влияние этого трафика на скорость работы Firewall и пропускную способность интернет-полосы.
2-й уровень OSI: Канальный
Тип данных | Кадры |
Описание уровня | Установка и сопровождение передачи сообщений на физическом уровне |
Протоколы | Протоколы 802. 3, 802.5, а также контроллеры, точки доступа и мосты, которые их используют |
Примеры технологий DoS | MAC-флуд — переполнение пакетами данных сетевых коммутаторов |
Последствия DDoS-атаки | Потоки данных от отправителя получателю блокируют работу всех портов |
Что делать: Многие современные свитчи могут быть настроены таким образом, что количество MAC адресов ограничивается надежными, которые проходят проверку аутентификации, авторизации и учета на сервере (протокол ААА) и в последствии фильтруются.
1-й уровень OSI: Физический
Тип данных | Биты |
Описание уровня | Передача двоичных данных |
Протоколы | Протоколы 100BaseT, 1000 Base-X, а также концентраторы, розетки и патч-панели, которые их используют |
Примеры технологий DoS | Физическое разрушение, физическое препятствие работе или управлению физическими сетевыми активами |
Последствия DDoS-атаки | Сетевое оборудование приходит в негодность и требует ремонта для возобновления работы |
Что делать: использовать систематический подход к мониторингу работы физического сетевого оборудования.
Устранение крупномасштабных DoS/DDoS-атак
Хотя атака возможна на любом из уровней, особой популярностью пользуются атаки на 3-4 и 7 уровнях модели OSI.
- DDoS-атаки на 3-м и 4-м уровне — инфраструктурные атаки — типы атак, основанные на использовании большого объема, мощного потока данных (флуд) на уровне инфраструктуры сети и транспортном уровне с целью замедлить работу веб-сервера, «заполнить» канал, и в конечном счете помешать доступу других пользователей к ресурсу. Эти типы атак как правило включают ICMP-, SYN- и UDP-флуд.
- DDoS атака на 7-м уровне — атака, заключающаяся в перегрузке некоторых специфических элементов инфраструктуры сервера приложений. Атаки 7-го уровня особенно сложны, скрыты и трудны для выявления в силу их сходства с полезным веб-трафиком. Даже самые простенькие атаки 7-го уровня, например, попытка входа в систему под произвольным именем пользователя и паролем или повторяющийся произвольный поиск на динамических веб-страницах, могут критически загрузить CPU и базы данных. Также DDoS злоумышленники могут неоднократно изменять сигнатуры атак 7-го уровня, делая их еще более сложными для распознавания и устранения.
Устройство | Уровень | Оптимизирована для | DDoS-защита |
Брандмауэр | 4-7 | Проверка потока, глубокая проверка | Экраны, ограничения сеанса, SYN cookie |
Роутер | 3-4 | Пакетная проверка, фреймовая проверка | Линейные списки контроля доступа, ограничение скорости |
Некоторые действия и оборудование для устранения атак:
- Брандмауэры с динамической проверкой пакетов
- Динамические механизмы SYN прокси
- Ограничение количества SYN-ов за секунду для каждого IP-адреса
- Ограничение количества SYN-ов за секунду для каждого удаленного IP-адреса
- Установка экранов ICMP флуда на брандмауэре
- Установка экранов UDP флуда на брандмауэре
- Ограничение скорости роутеров, примыкающих к брандмауэрам и сети
Ошибка сервера: объяснение распределенных атак типа «отказ в обслуживании» (DDoS)
Цель распределенных атак типа «отказ в обслуживании» (DDoS) — перегрузить и отключить серверы. Успешные могут иметь огромные финансовые потери для своих целей, будь то корпорации, малые предприятия, правительства, школы, больницы, финансовые учреждения или отдельные лица.
В 2022 году DDoS-атаки поразили онлайн-видеоигры и веб-сайты иностранных правительств. Google утверждает, что 1 июня удалось отразить рекордную атаку, которая достигла пика в 46 миллионов запросов в секунду. В этом году Cloudflare и Microsoft также боролись с DDoS-атаками.
Как работают DDoS-атаки? Вот что вам нужно знать.
Что такое DDoS-атака?
(Источник: Насанбуйн/Викисклад)
Когда вы загружаете веб-страницу, вы отправляете запрос данных на этой странице на IP-адрес сервера, на котором размещена информация. В зависимости от размера сервера слишком много запросов, поступающих на один и тот же IP-адрес в одно и то же время, могут увеличить его пропускную способность и сделать его неспособным принимать какие-либо новые запросы.
Целью DDoS-атаки является искусственное моделирование этого сценария путем перегрузки целевого сервера трафиком, отказа в доступе, прерывания операций и, в конечном итоге, вывода его из строя. Успешная атака не позволит пользователям загружать страницы или использовать службы, связанные с уязвимым сервером. Вместо ожидаемого результата люди получали сообщение об ошибке.
Ассоциация индустрии вычислительных технологий заявляет, что DDoS-атаки в настоящее время являются одной из четырех основных угроз кибербезопасности(Открывается в новом окне) наряду с программами-вымогателями, атаками на цепочки поставок и социальной инженерией. И они становятся все более распространенными, что приводит к росту схем DDoS как услуги.
Для этого злоумышленнику необходим доступ к нескольким компьютерам или устройствам, которые можно использовать для отправки запросов на целевой сервер. Обычно это достигается путем заражения устройств вредоносными программами, а затем удаленного управления этими машинами. Эта группа зараженных устройств, называемая ботнетом, затем используется для переполнения целевого сервера плохим трафиком и отказа в обслуживании реальных пользователей.
Поскольку компьютеры, находящиеся под контролем злоумышленника, обычно представляют собой такие устройства, как настольные компьютеры, ноутбуки или сотовые телефоны, запросы считаются законными, и от них может быть трудно защититься. Однако есть способы снизить угрозу DDoS-атаки.
Различные типы DDoS-атак
(Фото: ComputerLanguage.com)
DDoS-атаки могут быть нацелены на определенные части сети, будь то места, где люди взаимодействуют со своими устройствами, где данные передаются по сети, или сетевые средства защиты, такие как брандмауэр. Каким бы ни был метод, цель одна: перегрузить ресурсы цели и оставить ее неработоспособной.
Чтобы понять различные типы DDoS-атак, полезно ознакомиться с моделью взаимодействия открытых систем (OSI), которая представляет семь уровней сетевого подключения. Он наглядно показывает, как мы подключаемся к Интернету и как различные устройства, из которых состоит Интернет, передают информацию.
Модель OSI используется в качестве эталона для многих видов кибератак, а не только DDoS. Но DDoS-атаки часто фокусируются на седьмом уровне OSI, прикладном уровне, где пользователи запрашивают информацию через свои устройства. Объемные атаки, при которых сервер заполняется поддельным трафиком с, казалось бы, законных IP-адресов, являются примером атаки седьмого уровня. Он использует зараженные машины для имитации взаимодействия пользователей с Интернетом на прикладном уровне.
Тем не менее, третий и четвертый уровни также могут быть выбраны. На этих уровнях — сетевом и транспортном уровнях соответственно — система решает, какой физический путь используется для передачи данных и какие протоколы данных используются для их отправки.
Многие хакеры могут также сосредоточиться на нескольких уровнях одновременно, в зависимости от сложности их атаки. Атака истощения состояния, с другой стороны, ослабляет всю систему, истощая защитные ресурсы, такие как брандмауэры и балансировщики нагрузки.
При атаке на протокол хакер отправляет пакеты данных с поддельными IP-адресами. Когда сервер получает запросы от этих поддельных IP-адресов, он отправляет запрос на подтверждение перед отправкой каких-либо данных. Если IP-адрес не ведет к реальному устройству, сервер не может получить подтверждение, поэтому он застревает в бесконечном цикле запросов, которые никогда не получат ответа. Чем больше поступает фальшивых запросов, тем хуже становится проблема.
Как остановить DDoS-атаку
(Кредит: Cloudflare)
DDoS-атаки становятся все более масштабными и распространенными, поэтому стоит потратить время и ресурсы на принятие соответствующих защитных мер, особенно если вы используете профессиональную сеть. В дополнение к основным передовым методам кибербезопасности рассмотрите возможность использования дополнительных серверов, внедрения брандмауэров и составления плана действий в чрезвычайных ситуациях для отражения атаки.
Рекомендовано нашей редакцией
Google отразил рекордную DDoS-атаку
Поддельные страницы защиты от DDoS-атак на сайтах WordPress обслуживают вредоносные программы
Житель Иллинойса получил 2 года за использование службы подписки на DDoS-атаку
Когда происходит DDoS-атака, ваш первый шаг должен состоять в том, чтобы определить, какой трафик является реальным, а какой исходит от злоумышленника, что может быть непросто. Установление базового уровня трафика вашей сети поможет вам узнать, что считается нормальным уровнем активности, чтобы вы могли выявлять всплески трафика из неизвестных источников.
Это также поможет определить время, когда всплеск активности является нормальным. Интернет-магазин, например, ожидает довольно большой всплеск трафика в связи с Черной пятницей, поэтому он будет знать, что не следует паниковать и отключать весь трафик сайта, когда это произойдет.
Также важно выяснить, какие слои вашей сети являются целью. DDoS-атаки могут принимать различные формы: от одноуровневых атак до сложных многовекторных угроз, которые одновременно атакуют несколько уровней сети. После того, как вы определили плохой трафик и выяснили, где злоумышленник пытается вас атаковать, можно переходить к методам защиты.
Одним из способов защиты от кибератак такого типа является маршрутизация через черную дыру, при которой трафик сбрасывается в нулевое место назначения и полностью удаляется из сети. Этот вариант доступен для всех сетевых администраторов и вашего интернет-провайдера, но он может быть не идеальным, поскольку он будет сбрасывать обычный трафик сайта вместе с трафиком злоумышленника. Согласно Cloudflare (открывается в новом окне), это, по сути, дает злоумышленнику то, что он хочет.
Ограничение количества запросов, которые сервер может принять в течение определенного периода времени, также может помочь отразить определенные типы атак. Например, объемная атака грубой силы, предназначенная для того, чтобы нагрузить сервер как можно большим количеством запросов, может быть смягчена путем ограничения скорости. Однако это не поможет против атак, нацеленных на уровни протокола.
Также можно использовать другие методы, такие как брандмауэр веб-приложений(открывается в новом окне) или сетевое распространение, которое распределяет трафик по группе распределенных серверов.
Нравится то, что вы читаете?
Подпишитесь на информационный бюллетень SecurityWatch , чтобы получать наши главные новости о конфиденциальности и безопасности прямо на ваш почтовый ящик.
Этот информационный бюллетень может содержать рекламу, предложения или партнерские ссылки. Подписка на информационный бюллетень означает ваше согласие с нашими Условиями использования и Политикой конфиденциальности. Вы можете отказаться от подписки на информационные бюллетени в любое время.
Спасибо за регистрацию!Ваша подписка подтверждена. Следите за своим почтовым ящиком!
Подпишитесь на другие информационные бюллетениПонимание атак типа «отказ в обслуживании» | CISA
Что такое атака типа «отказ в обслуживании»?
Атака типа «отказ в обслуживании» (DoS) происходит, когда законные пользователи не могут получить доступ к информационным системам, устройствам или другим сетевым ресурсам из-за действий злоумышленника. Затронутые службы могут включать электронную почту, веб-сайты, учетные записи в Интернете (например, банковские услуги) или другие службы, которые полагаются на затронутый компьютер или сеть. Состояние отказа в обслуживании достигается путем переполнения целевого хоста или сети трафиком до тех пор, пока цель не сможет ответить или просто выйдет из строя, препятствуя доступу законных пользователей. DoS-атаки могут стоить организации времени и денег, в то время как ее ресурсы и услуги недоступны.
Каковы распространенные атаки типа «отказ в обслуживании»?
Существует множество различных методов проведения DoS-атаки. Наиболее распространенный метод атаки возникает, когда злоумышленник заливает сетевой сервер трафиком. В этом типе DoS-атаки злоумышленник отправляет несколько запросов на целевой сервер, перегружая его трафиком. Эти запросы на обслуживание являются незаконными и имеют сфабрикованные обратные адреса, которые вводят сервер в заблуждение, когда он пытается аутентифицировать запрашивающую сторону. Поскольку нежелательные запросы обрабатываются постоянно, сервер перегружен, что вызывает состояние DoS для законных запрашивающих.
- В ходе атаки Smurf Attack злоумышленник отправляет широковещательные пакеты протокола управляющих сообщений Интернета на несколько хостов с поддельным исходным адресом интернет-протокола (IP), который принадлежит целевой машине. Затем получатели этих поддельных пакетов ответят, и целевой хост будет завален этими ответами.
- SYN-флуд происходит, когда злоумышленник отправляет запрос на подключение к целевому серверу, но не завершает соединение с помощью так называемого трехэтапного рукопожатия — метода, используемого в сети протокола управления передачей (TCP)/IP. для создания соединения между локальным хостом/клиентом и сервером. Незавершенное рукопожатие оставляет подключенный порт в занятом состоянии и недоступным для дальнейших запросов. Злоумышленник будет продолжать отправлять запросы, заполняя все открытые порты, чтобы законные пользователи не могли подключиться.
Отдельные сети могут быть затронуты DoS-атаками без прямой атаки. Если сетевой поставщик интернет-услуг (ISP) или поставщик облачных услуг стал мишенью и атакован, сеть также перестанет работать.
Что такое распределенная атака типа «отказ в обслуживании»?
Распределенная атака типа «отказ в обслуживании» (DDoS) происходит, когда несколько компьютеров работают вместе для атаки на одну цель. Злоумышленники DDoS часто используют ботнет — группу захваченных устройств, подключенных к Интернету, для проведения крупномасштабных атак. Злоумышленники используют уязвимости системы безопасности или слабые места устройств для управления многочисленными устройствами с помощью программного обеспечения для управления и контроля. Получив контроль, злоумышленник может дать команду своему ботнету провести DDoS на цель. В этом случае зараженные устройства также становятся жертвами атаки.
Ботнеты, состоящие из скомпрометированных устройств, также могут быть сданы в аренду другим потенциальным злоумышленникам. Часто ботнет предоставляется службам «атак по найму», которые позволяют неквалифицированным пользователям запускать DDoS-атаки.
DDoS позволяет отправлять к цели экспоненциально большее количество запросов, тем самым увеличивая мощность атаки. Это также увеличивает сложность атрибуции, поскольку истинный источник атаки сложнее определить.
Масштабы DDoS-атак увеличились по мере того, как все больше и больше устройств подключаются к Интернету через Интернет вещей (IoT) (см. Безопасность Интернета вещей). Устройства IoT часто используют пароли по умолчанию и не обеспечивают надежную защиту, что делает их уязвимыми для компрометации и эксплуатации. Заражение устройств IoT часто остается незамеченным для пользователей, и злоумышленник может легко скомпрометировать сотни тысяч таких устройств, чтобы провести крупномасштабную атаку без ведома владельцев устройств.
Как не стать частью проблемы?
Несмотря на то, что невозможно полностью избежать атаки DoS или DDoS, администраторы могут предпринять упреждающие действия, чтобы уменьшить последствия атаки на свою сеть.
- Зарегистрируйтесь в службе защиты от DoS-атак, которая обнаруживает аномальные потоки трафика и перенаправляет трафик из вашей сети. Трафик DoS отфильтровывается, и чистый трафик передается в вашу сеть.
- Создайте план аварийного восстановления, чтобы обеспечить успешную и эффективную связь, смягчение последствий и восстановление в случае атаки.
Также важно принять меры для повышения уровня безопасности всех ваших подключенных к Интернету устройств, чтобы предотвратить их компрометацию.
- Установка и обслуживание антивирусного программного обеспечения.
- Установите брандмауэр и настройте его для ограничения трафика, входящего и исходящего с вашего компьютера (см. Общие сведения о брандмауэрах для дома и малого офиса).
- Оцените настройки безопасности и следуйте передовым методам обеспечения безопасности, чтобы свести к минимуму доступ других людей к вашей информации, а также управлять нежелательным трафиком (см. Хорошие привычки безопасности).
Как узнать о нападении?
Симптомы DoS-атаки могут напоминать непреднамеренные проблемы с доступностью, такие как технические проблемы с определенной сетью или техническое обслуживание системного администратора. Однако следующие симптомы могут указывать на DoS- или DDoS-атаку:
- Необычно низкая производительность сети (открытие файлов или доступ к веб-сайтам),
- Недоступность определенного веб-сайта или
- Невозможно получить доступ к любому веб-сайту.
Лучшим способом обнаружения и идентификации DoS-атаки является мониторинг и анализ сетевого трафика. Сетевой трафик можно отслеживать с помощью брандмауэра или системы обнаружения вторжений. Администратор может даже настроить правила, которые создают предупреждение при обнаружении аномальной нагрузки трафика и определяют источник трафика или отбрасывают сетевые пакеты, соответствующие определенным критериям.
Что делать, если вам кажется, что у вас приступ?
Если вы считаете, что вы или ваш бизнес подверглись DoS- или DDoS-атаке, важно обратиться за помощью к соответствующим техническим специалистам.
- Обратитесь к сетевому администратору, чтобы узнать, вызвано ли отключение службы техническим обслуживанием или внутренней проблемой сети. Сетевые администраторы также могут отслеживать сетевой трафик, чтобы подтвердить наличие атаки, определить источник и смягчить ситуацию, применяя правила брандмауэра и, возможно, перенаправляя трафик через службу защиты от DoS-атак.
Ваш комментарий будет первым