И целого WAF’а мало: как мы проапгрейдили сервис защиты веб-сайтов 

    Привет! Меня зовут Кирилл, и в центре киберзащиты DataLine я развиваю сервис защиты веб-приложений (WAF): общаюсь со специалистами по ИБ и ИТ от клиента, выясняю их задачи, отвечаю за корректную работу сервиса. За неполный год настройки WAF я убедился: если у вас есть сайт, его будут атаковать. И не всегда так, как вы думаете.

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



    Предыстория сервиса


    Для собственных сайтов мы в свое время выбрали FortiWeb от Fortinet, уже знали тонкости работы с ним. Перед глазами был опыт WAF-as-a-service в облаке у Fortinet. 

    На Западе для WAF распространена модель селф-сервиса. Клиенту отдают выделенный инстанс для самостоятельной настройки в нужном облаке (AWS, Azure и GCP), естественно, не в РФ. У такой модели есть свои трудности: 

    • Специалист по ИБ на стороне клиента должен глубоко понимать особенности защиты веб-приложений. 
    • Специалисту клиента нужно знать возможности и настройки конкретного WAF, чтобы создать профили защиты. По-хорошему, для работы с WAF нужен отдельный инженер, чтобы постоянно вносить изменения в настройки.  
    • Ему нужно все время взаимодействовать с разработчиками сайта и решать, какие уязвимости закрывать на WAF, какие исправлять в самом коде. Все же WAF – это компенсирующая мера, и некоторые проблемы лучше решить на уровне разработки

    Справиться с этими тремя пунктами могут крупные компании с большим штатом. Мы же хотели учесть запросы бизнесов поменьше. Таким клиентам предложили сервис «под ключ» под управлением наших инженеров. Начали собирать его с вопросов архитектуры. 

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


    Сервис WAF тоже попал в скоуп PCI DSS.

    Отдельно продумали отказоустойчивость сервиса. Для FortiWeb вендор предусмотрел несколько вариантов кластера. Мы протестировали разные способы синхронизации сессий и остановились на режиме Active Backup: одна виртуальная машина FortiWeb остается главной и скидывает часть трафика на вторую. В этом случае при падении ноды недоступность сервиса не превышает 10 секунд. Настроили расположение машин так, чтобы они всегда поднимались на разных хостах. 

    Затем решили вопрос с разделением клиентов в облаке. FortiWeb не поддерживает мультитенантность: мы не можем сегментировать WAF на домены, как сделали с нашим NGFW-as-a-Service на базе FortiGate. Остается разделение с помощью политик. Если отдадим такие политики на откуп клиентам, есть риск повлиять на соседей. Поэтому наши ответственные за сервис инженеры по ИБ сами заводят клиентские сайты за WAF и следят за настройками сервиса. А для клиентов предоставляем отдельный инструмент с отчетностью и статистикой.

    Поэтому сам сервис не ограничился только WAF, мы добавили к нему: 

    • сканер уязвимостей от Qualys,
    • защиту от DDoS от Qrator,
    • ELK для сбора статистики, визуализации и анализа данных.

    Расскажу чуть подробнее про каждый компонент.

    Сканируем сайты на уязвимости 


    Для поиска уязвимостей в коде сайтов мы добавили Qualys – решение для сканирования и анализа безопасности веб-приложений. У нас уже был развернут отдельный сервис сканирования уязвимостей, оставалось настроить его совместную работу с WAF. 

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

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

    Разбираемся с очисткой трафика


    FortiWeb хорошо защищает от атак прикладного уровня, например: если веб-приложение будут атаковать с помощью большого числа GET-запросов, поможет DoS-Protection на WAF. Но в дополнение к нему нужно отдельное решение для DDoS-атак уровнем ниже, например, SYN-flood. У некоторых клиентов есть свой анти-DDoS, который мы интегрируем с нашим сервисом WAF. Но это, скорее, частный случай.

    Для остальных случаев в сервисе появился Qrator.Ingress – решение для защиты инфраструктуры от DDoS-атак. Оно защищает канал с L2 по L4, анализирует и очищает трафик. 

    Мы создали 10-гигабитные стыки с Qrator, чтобы отправлять на WAF уже очищенный трафик через защищенный канал. Схема сервиса стала выглядеть так:



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

    1. У нас есть «белая» подсеть, которую мы анонсируем в канал с Qrator.  
    2. Мы выделяем клиенту 1 новый IP-адрес из этой подсети . 
    3. На WAF создаем для сайта политики Server Policy и HTTP Content routing, добавляем туда доменные имена и указываем, куда их направлять. 
    4. FortiWEB терминирует на себе TLS-соединения, так что подгружаем цепочку сертификатов на него. 
    5. Затем просим клиента изменить DNS-запись сайта и для нужных доменных имен указать в ней IP-адрес из сети Qrator’а. 

    Что в итоге? Когда пользователь запускает браузер и обращается к ресурсу, защищенному WAF, его трафик по DNS сначала направляется в центры очистки в Qrator. Дальше по защищенному каналу трафик идет на WAF. И только после проверки пользователь получает доступ к веб-серверу клиента. Вот весь путь: 



    Но если даже сайт заведен за WAF, это еще не значит, что он защищен. Нужно настроить Web Protection Profile – набор правил и настроек защиты для сайта. Это делается отдельно под каждого клиента. 

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

    Работаем в команде: изучаем атаки с клиентом


    Администрирование сервиса со стороны наших инженеров включает настройку политик и – при необходимости – блокировку атак вручную. За это отвечают специалисты по FortiWeb, которые понимают нюансы защиты веб-сайтов. Но в то же время наши инженеры не могут знать всю логику работы клиентского приложения. Если будем сразу блокировать любую подозрительную активность, можем случайно заблокировать легитимного пользователя. Так что мы работаем в связке со специалистами клиента и вырабатываем совместную стратегию отражения атак. 

    Среди клиентов есть компании без больших подразделений по ИТ и ИБ. Разработку приложений для них часто выполняют аутсорсеры, так что исправление уязвимостей в коде занимает некоторое время. На WAF же можно предложить обходные пути и быстро нейтрализовать возникшие атаки. На этот случай мы разработали регламенты и прописали, когда считать ситуацию критичной и сразу принимать меры, а когда – согласовывать блокировки  с клиентом. 

    Отслеживать критичные ситуации нам помогает мониторинг в связке с ELK. В прошлый раз мы уже рассказывали, как это устроено технически. ELK позволяет нам управлять информацией о безопасности без добавления в сервис дорогостоящей системы SIEM (Security information and event management). 

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

    Если же клиент сам готов мониторить работу WAF, мы предоставляем ему доступ к системе анализа на базе ELK. В этом решении мы настраиваем права доступа к определенным индексам. Клиент будет управлять аналитикой и отчетами без влияния на сам WAF.

    Что в итоге, и как это будет развиваться дальше 


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

    На будущее мы заложили запас для масштабирования. Для балансировки подключим FortiADC – контроллер для доставки приложений и распределения нагрузки в высокопроизводительных системах. Он поддерживает SSL-разгрузку серверов и увеличивает производительность веб-приложений.

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

    Если интересно узнать подробности, с удовольствием отвечу на вопросы в комментариях. Или регистрируйтесь на семинар по WAF 26 ноября – будет возможность задать вопросы не только нам, но и техническим специалистам Qualys, Fortinet и Qrator.
    DataLine
    Экосистема ИТ-сервисов

    Комментарии 2

      0

      Звучит очень круто! Сколько это стоит для сайта с 1млн посещений и ~10TB трафика?

        0
        Для тяжелых сайтов лучше рассмотреть приватное решение.
        Для этого уточню у вас несколько вопросов в ЛС.

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

      Самое читаемое