Защита сайта от DDoS-атак: как это работает

16_9 Как защитить свой сайт.jpg

Базовые методы защиты сайтов и особенности их реализации на стороне пользователя и сервера

В материале приведены базовые методы защиты сайтов. Описан механизм работы защиты сайта. Рассказали на каких уровнях веб-приложения используются те или иные инструменты защиты и углубились в особенности реализации защиты на стороне сервера (в рамках веб-приложения).

Для упрощённого ознакомления с основными методами защиты сайта ниже по тексту представлены две таблицы. В них систематизированы виды атак, их цели, элементы, на которые они направлены, а также соответствующие меры защиты. Первая таблица описывает методы защиты на уровне пользователя, вторая — меры защиты на уровне инфраструктуры управления сайтом.

Все нижеперечисленные методы универсальны и помогут укрепить безопасность сайта вне зависимости от его типа, языка программирования, на котором был написан веб-ресурс или CMS. 

Используйте защищенный протокол передачи данных HTTPS

HTTPS шифрует информацию, которую как получают, так и отправляют пользователи в сети. Это могут быть номера карт, пароли и другие чувствительные данные. HTTPS безопаснее протокола HTTP, так как использует дополнительную защиту (протоколы TLS, SSL).

Ставьте надежные пароли и двухфакторную аутентификацию

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

Защитите код от SQL-инъекций и XSS-атак

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

Обновляйте ПО

Регулярно устанавливайте обновления серверов, CMS, библиотек и плагинов.

Создавайте резервные копии

Регулярно создавайте бэкапы и храните их отдельно, чтобы быстро восстановить сайт в случае атаки или технической ошибки.
 

Уровень взаимодействия с пользователем

Защита сайта начинается не только с технических решений, но и с того, как пользователи взаимодействуют с ресурсом. Грамотно выстроенные механизмы защиты по типу: аутентификации, проверки действий и информирования посетителей — помогают предотвратить большинство атак еще на уровне интерфейса.

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

Самостоятельные методы не всегда оптимальны как для вас, так и для ваших клиентов. В сети можно встретить советы по «блокировке подозрительных IP-адресов при возросшей нагрузке на сервер». Использование подобных инструментов требует глубоких знаний

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

 

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

Для защиты сайтов используется технология обратного проксирования (Reverse Proxy), при которой весь входящий трафик перенаправляется на защищенные узлы. Реальный IP-адрес сервера скрывается и заменяется защищенным публичным IP, что минимизирует атаки на реальный адрес.

Профессиональные решения используют геораспределенную сеть узлов фильтрации, что позволяет обрабатывать трафик максимально близко к источнику запроса, снижая задержки и повышая эффективность защиты.

Входящий веб-трафик последовательно проходит через несколько уровней фильтрации, каждый из которых блокирует определенные типы угроз:

Этап 1. Первичная проверка на сетевом уровне

Все входящие HTTP/HTTPS-запросы сначала проверяются на базовую корректность. Система анализирует, соответствует ли запрос стандартам RFC, правильно ли сформированы заголовки и структура запросов. Некорректные или явно аномальные запросы на этом этапе отправятся на прохождение проверки с кодом 403 (доступ запрещён сервером). Легитимный трафик автоматически перенаправляется с HTTP на HTTPS (код 301) для обеспечения защищенного соединения (только если клиент сам указал такое перенаправление).

Этап 2. Фильтрация по спискам доступа и географии

Запросы, прошедшие первичную проверку, далее сверяются с настроенными правилами доступа:

  • Белые списки: IP-адреса из белого списка пропускаются в обход последующих проверок напрямую к веб-приложению
  • Черные списки: заблокированные IP немедленно получают ответ 403 (доступ запрещен)
  • Геофильтр: определяется географическое расположение источника запроса по базе GeoIP; трафик из запрещенных стран блокируется
  • Специальные категории: отсеиваются запросы из сетей Tor или от нежелательных ботов
  • Лимит запросов (Rate Limiter): устанавливает лимит на кол-во запросов от одного источника, в целях предотвращения перегрузки сервера.

Прошедший фильтрацию трафик направляется на следующий уровень анализа.

Этап 3. Поведенческий анализ и DDoS-фильтрация

На этом этапе система оценивает характер запросов и поведение источника:

  • Анализ запроса - выявляются аномальные паттерны (резкие всплески, однотипные запросы)
  • Подозрительные клиенты получают JavaScript Challenge — задачу, которую может выполнить только настоящий браузер, но не бот

Боты и автоматизированные скрипты, не прошедшие проверку, блокируются. Легитимные пользователи после успешного прохождения Challenge получают временную метку доверия и продолжают работу без повторных проверок.

Этап 4. Глубокий анализ на уровне приложений (WAF)

Оставшийся трафик подвергается детальному анализу содержимого запросов:

  • Правила защиты: применяются кастомные условия фильтрации с заданными приоритетами (проверка конкретных параметров, заголовков, путей)
  • WAF-модуль: сканирует тело запроса, параметры, cookies на наличие признаков атак:
    • SQL-инъекции
    • Cross-Site Scripting (XSS)
    • Попытки эксплуатации уязвимостей
    • Аномальные данные в полях форм

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

Модуль WAF — отдельная технология, которая реализована не у всех провайдеров защиты

Этап 5. Передача чистого трафика к веб-приложению

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

Преимущества защиты сайта от DDoS — DDoS-Guard

Статический и частично динамический контент (HTML, CSS, JavaScript, изображения) кэшируется на распределённых узлах CDN, географически приближённых к пользователю. Это позволяет отдавать контент без обращения к основному серверу, снижая сетевые задержки, нагрузку на сервер и сайт. 

Система использует TTL и механизмы инвалидации кэша для контроля актуальности данных. Повторяющиеся запросы обслуживаются непосредственно с edge-узлов, что сокращает время ответа и уменьшает потребление серверных ресурсов.

Оптимизированная DNS-конфигурация ускоряет разрешение доменных имён. Для этого используются отказоустойчивые DNS-серверы с минимальным временем отклика и поддержкой anycast.

TTL-параметры подбираются таким образом, чтобы сократить задержки при резолвинге и обеспечить быструю реакцию на изменения инфраструктуры. Это снижает нагрузку на основной сервер и уменьшает общее время установления соединения.

Распределение входящих запросов между серверами с помощью алгоритмов балансировки. В зависимости от конфигурации применяются алгоритмы round-robin, least connections или weighted balancing.

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

Ранее мы уже упоминали протокол HTTPS как одну из основ безопасности. Однако важно помнить, что он защищает только передачу данных, но не их хранение. Поэтому необходимы дополнительные меры. Например, можно подключить симметричное шифрование AES-256. Если же ваша организация подпадает под требования законодательства о защите персональных данных, потребуется использование TDE-шифрования. Эта технология применяется на уровне жестких дисков и баз данных. Благодаря тому, что она не влияет на работу приложений и не требует действий от пользователя, ее называют «прозрачной». При этом TDE остается одним из самых надежных методов защиты данных: информация будет зашифрована даже в случае утраты дисков, файлов или резервных копий.

Отдельное внимание следует уделить паролям. Их не всегда нужно шифровать, но необходимо хранить только в виде хешей, созданных «медленными» криптографическими алгоритмами — bcrypt, Argon2 или scrypt. Такие алгоритмы намеренно усложняют и замедляют попытки перебора, делая брутфорс-атаки практически бесполезными.

Защита от атак CSRF/XSRF

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

Чтобы защититься от подобного типа атак, нужно внедрить механизм генерации секретных токенов CSRF. После авторизации создаётся уникальный CSRF-токен, сохраняемый в сессии. При каждом изменяющем состоянии запросе (POST, PUT, DELETE) клиент передаёт этот токен; сервер сравнивает его с сессионным. Несовпадение блокирует запрос.

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

Загружаемые файлы — один из популярных каналов атаки. Чтобы злоумышленник не смог внедрить и запустить вредоносный код, при наличии базовых технических знаний вы можете выполнить следующие шаги по запрету скриптов:

  • Отключить на уровне сервера
    В директории для загрузок отключите выполнение любых скриптов — через .htaccess (Apache) или location-директивы Nginx.
  • Хранить файлы вне корневой директории сайта
    Тогда к ним не будет прямого веб-доступа, а выдача осуществляется безопасно — через серверную обработку.
  • Проверять типы и размеры файлов на клиенте и сервере
    При клиентской проверке обращайте внимание на удобство, а при серверной — на безопасность. Не забывайте про магические числа — реальный формат файла по байтовой сигнатуре, а не по расширению.
  • Очищать метаданные
    Очистка EXIF-данных предотвращает внедрение вредоносных скриптов в метаданные. Для этого можно использовать онлайн-сервисы или встроенные средства операционной системы. Рекомендуем отдавать предпочтение второму варианту, так как он более надежный и минимизирует попадание ваших данных в руки третьих лиц. 

Cookies хранят различную информацию о действиях пользователя, которую злоумышленники могут использовать в своих целях — идентификаторы сессии, токены доступа. Помимо этого, важно правильно настроить cookies, так как если будут некорректные параметры, есть риск потерять личные данные или перехватить сессии.  

Для защиты куки разработчики придумали специальные маркеры, которые добавляются к файлам куки и помогают их защитить:

  • HttpOnly блокирует доступ к cookie из JavaScript. Даже если на сайте найдется XSS-уязвимость, злоумышленник не сможет прочитать cookie.
  • Secure гарантирует, что cookie отправляется только по HTTPS, защищая его от перехвата.
  • SameSite используют, чтобы настроить условия, при которых браузер будет прикреплять куки к межсайтовым запросам, таким образом, параметр SameSite ограничивает риск CSRF-атак.

Эти и другие атрибуты значительно повышают безопасность аутентификации и защищают пользователей от перехвата сессии.

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

  1. Устанавливайте таймауты неактивности, чтобы пользователь не оставался авторизованным бесконечно.
  2. Обновляйте идентификатор сессии после входа, чтобы предотвратить фиксацию сессии (session fixation).
  3. Корректно уничтожайте сессии при выходе или истечении времени.
  4. Ограничивайте число активных сессий или мест авторизации, если это оправдано.

Используйте защиту от спамных атак

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

  • Инструменты CAPTCHA/reCAPTCHA — для форм входа, регистрации, восстановления пароля и отправки комментариев.

Капча — неотъемлемый элемент эффективной защиты от DDoS-атак. Мы уже говорили о том, почему CAPTCHA не враг пользователю, а помощник, и как именно она работает с негативным воздействием ботов и людей. 

Пользователи сервиса DDoS-Guard могут выбрать инструмент — капча DG, который мы создали специально для наших клиентов, учитывая потребности и пожелания, собранные за несколько месяцев. О том, как мы создавали собственную капчу, читайте в нашем подробном разборе на Хабре.

 

  • Настройте проверку скорости запросов (rate limiting) — чтобы ограничить число попыток входа.
  • Анализируйте поведение пользователей — для этого можно использовать скоринговые инструменты, которые будут изучать, как двигается мышь, как печатает пользователь, сколько времени тратит на заполнение форм. Современные боты уже давно умеют имитировать действия человека, поэтому важно постоянно отслеживать действия на сайте. 

Модуль Testcookie проверяет наличие уникального cookie, сгенерированного сервером, а JavaScript-тесты (вычисления, события мыши) подтверждают человечность. Боты не проходят, так как не исполняют JS или не хранят куки. Это эффективно останавливает ботнеты, пропуская реальных пользователей.

Таблица — способы защиты по элементам сайта

ЭлементЦели атак на сайтКлючевые атаки на сайтОсновные способы защиты
База данных (Database)Хранит конфиденциальную информацию (пароли, личные данные)SQL-инъекции (SQLi), RCE (удаленное выполнение кода),
Неправильные права доступа
Защита от SQL-инъекций (экранирование, параметризованные запросы), 
Шифрование конфиденциальных данных, 
Принцип наименьших привилегий
Формы ввода (Input Fields)Поля для регистрации, входа, комментариев, поискаМежсайтовый скриптинг (XSS), CSRF (подделка запросов), 
Спам-боты
Защита от XSS (валидация и санитизация данных),
Использование CAPTCHA/reCAPTCHA, Токены CSRF

Система управления контентом (CMS/Code)

 

Ядро, плагины, темы и кастомный код сайтаУязвимости в ПО/CMS (необновлённые компоненты),
Логические ошибки, Внедрение бэкдора
Регулярное обновление ПО (CMS, плагинов), 
Сканирование на уязвимости (регулярный аудит кода)
Учётные записи пользователей/админовЛогины и пароли для доступа к личному кабинету или админ-панелиВзлом учетных записей (Брут-форс, кража паролей), 
Социальная инженерия
Сильные и уникальные пароли + двухфакторная аутентификация (2FA), 
Ограничение попыток входа, а также ротация паролей
Сессии пользователей (Cookies)Временные данные для авторизацииКража сессий, 
Перехват данных
Использование HTTPS / SSL-сертификата, Настройка защищённых заголовков Cookies (httpOnly, Secure).
Ограниченное время жизни сессии (в какой-то момент сессия затухает, так как прошло ее время)
Загружаемые файлы (Uploads)Папки для медиафайлов и документовЗагрузка вредоносных исполняемых файлов,
Переполнение диска
Валидация и санитизация данных (проверка типа и размера), 
Безопасная файловая система (запрет выполнения скриптов в папке загрузки)

Уровень взаимодействия с сервером

Далее перечислим несколько пунктов, которые станут основой безопасности вашего сервера. 

Настройка веб-сервера

Стандартные настройки Nginx, Apache —  часто включают в себя лишние модули, которые могут выдать служебную информацию:

  • Отключите неиспользуемые модули (mod_status, mod_info) для оптимизации и минимизации рисков.
  • Настройте строгие заголовки безопасности: 
    • HSTS — обязывает браузер всегда подключаться к сайту через защищенное HTTPS-соединение
    • CSP — блокирует выполнение подозрительных скриптов, защищая от XSS-атак
    • X-Content-Type-Options — запрещает браузеру угадывать тип файла, предотвращая ситуации, когда безобидный файл выполняется как опасный скрипт.
  • Скройте версии ПО в заголовках ответов, и, конечно, проверьте, установили ли вы последние обновления безопасности. 

Неиспользуемых модулей может быть гораздо больше, полный список подбирается специалистами индивидуально для каждого отдельного веб-ресурса. 

 

Выбирайте хостера, который соблюдает стандарты безопасности

Отдавайте предпочтение тем, кто соблюдает стандарты безопасности вроде ISO 27001 и предлагает регулярное резервное копирование, а также инструменты изоляции, такие как приватные сети (VPC) и брандмауэры. Подробнее о том, как выбрать хостинг с защитой от DDoS, а также о видах хостинга, которые подойдут для вашего проекта, читайте в нашем блоге. 

Ограничивайте права доступа

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

Используйте WAF

Инструмент WAF — это гибкий фильтр, который благодаря правильной настройке сможет анализировать HTTP-трафик, защитить от атак, которые смогли обойти сетевые экраны (SQL-инъекции, XSS или CSRF). Однако важно подчеркнуть, что WAF будет эффективным только в умелых руках, так как при неверных параметрах настройки, этот инструмент может навредить: появятся ложные срабатывания, блокировка легитимного трафика или пропуск вредоносных запросов.  

Самый простой и эффективный способ внедрения — облачный WAF, который разворачивается перед вашим приложением. 

Разработайте план реагирования на инциденты

Четко прописанный план с распределением ролей и действий для критической ситуации может спасти вашу команду в случае киберинцидента. Он может минимизировать возможный ущерб и соблюсти юридические обязательства (например, по уведомлению госорганов об утечке данных). Документ должен регулярно обновляться и четко определять как роли, так и ответственность каждого сотрудника. Для удобства снабдите план чек-листами первоочередных действий: изоляция систем, смена паролей, сбор логов и так далее.

О том, как составить эффективный план реагирования, читайте в блоге. 

Используйте сервисы по контролю уязвимостями

Чтобы обнаружить и вовремя закрыть уязвимые места в IT-инфраструктуре потребуется комплексная проверка — пентест. Однако можно использовать не менее эффективные инструменты для обнаружения фишинговых рассылок и других видов атак — онлайн-сервисы по контролю уязвимостей. Все найденные угрозы будут ранжироваться по степени критичности, а эксперты по кибербезопасности дадут четкие рекомендации по их устранению.

Контроль уязвимостей

Сервис DDG VM соблюдает требования ФСТЭК и ФСБ к проверкам ресурсов на уязвимости и поможет вашему бизнесу оценить готовность инфраструктуры к возможному сетевому нападению

 

Таблица — способы защиты инфраструктуры управления Веб-приложений

ЭлементЦели атак на инфраструктуруКлючевые атаки на инфраструктуруОсновные способы защиты
Веб-сервер и ОС (Apache, Nginx, Linux)ПО, отвечающее за работу сайта и его окружениеНебезопасная настройка сервера, Уязвимости самого ПО (обновленные версии), Неправильные права доступа к системным ресурсам, конфигурационным файлам самого сервера (Apache/Nginx/ОС) или к управлению службамиБезопасная настройка веб-сервера (отключение ненужных модулей, строгие заголовки), 
Безопасная файловая система (правильные права chmod)
Сетевой трафикКанал связи между пользователем и серверомПерехват данных (Man-in-the-Middle), DDoS-атаки (нагрузка на канал)Использование HTTPS / SSL-сертификата (шифрование), 
Защита от DDoS-атак (через специализированные сервисы)

Хостинг / Облако

 

Физические или виртуальные ресурсы, где размещен сайтАтаки на сетевой уровень хостинга, Компрометация соседних сайтов (на общем хостинге)Выбор надежного хостинг-провайдера, 
Использование Веб-приложения межсетевого экрана (WAF)
Файловая система / КонфигурацияФайлы на сервере (изображения, конфиги)Несанкционированный доступ к конфигурационным файлам, Утечка информации о системеПроверка прав доступа, Сокрытие информации о системе (маскировка версий ПО), 
Мониторинг и анализ логов
Бэкапы (Резервные копии)Копии сайта и данныхУдаление, шифрование или кража бэкапов в случае взлома основного сервераРезервное копирование (хранение копий на удаленном от сервера носителе), 
План реагирования на инциденты

Защита сайта — это многоуровневая система мер безопасности, которая без профессиональной помощи и экспертизы не сможет гарантировать надежный результат. Мы рекомендуем отдавать предпочтение специализированным сервисам, созданным для удобства пользователя и соответствующим современным вызовам со стороны злоумышленников. По мере роста вашего проекта вы сможете выбрать расширенный тариф и воспользоваться его возможностями, не тратя время на самостоятельное внедрение новых инструментов безопасности.

При этом не стоит пренебрегать базовыми правилами, которые легко поддерживать самостоятельно: подключайте двухфакторную аутентификацию, храните пароли корректно, регулярно обновляйте ПО. Более сложные задачи по кибербезопасности лучше доверять специалистам — так вы сможете сосредоточиться на развитии бизнеса, а не на постоянном противодействии угрозам.