Практически каждый сайт в интернете был атакован злоумышленниками. Большая часть часть атак завершилась успешно — злоумышленники смогли скомпрометировать веб-приложение, получить доступ к серверу или базе данных. В этой статье я расскажу о механизме защиты сайтов от хакерских атак — Web Application Firewall.
Наличие в свободном доступе большого количества инструментария для проведения атак на веб-приложения, мануалов и видео-демонстраций атак, а также кажущаяся безнаказанность за свои действия дает современную картину «дикого интернета» — многие пытаются пробовать свои силы «во взломе» сайтов, используя чужие ресурсы в качестве тренировочных площадок, средств повышения самооценки или монетизации.
Также существует довольно много людей, превративших взлом сайта в довольно прибыльный, но незаконный бизнес. Это могут быть как целевые атаки сайтов, для извлечения информации для продажи или на заказ, или нецелевой, когда сайты ломаются исходя из наличия одной-двух уязвимостей в массовом порядке (например после появления т.н. эксплоитов 0 дня).
До владельцев сайтов информация о том, что тот или иной компонент уязвим доходит обычно уже после взлома — злоумышленники здесь на шаг впереди по ряду причин:
- отслеживают bugtraq летны о наличии уязвимостей;
- посещают ресурсы, связанные с веб-безопасностью;
- делятся или обмениваются приватной информацией об уязвимостях;
- проводят собственные изыскания по изучению кода приложений для выявления уязвимостей.
У зломышленников также существует «окно возможности взлома» — время от публикации уязвимости до исправления разработчиками и внедрения патча на веб-приложении. Например уязвимость в компоненте Apache Struts2 позволила злоумышленникам скпопрометировать множество сайтов. Даже при наличии патча не всегда есть возможность его моментального развертывания на «боевых серверах».
Во всех случаях необходима дополнительная мера защиты, для того чтобы перекрыть злоумышленникам возможность эксплуатации уязвимостей, в том числе и нулевого дня.
Уязвимости
Если взять мировую статистику часто используемых CMS, то порядок будет следующим:
- WordPress;
- Joomla!;
- Magento;
- Drupal;
- vBulletin;
- ModX.
Если взять статистику уязвимостей, то видно, что уязвимости в этих CMS или их компонентах находят каждую неделю, более того, критичные уязвимости самих CMS обнаруживают приблизительно раз в 2-3 месяца.
Пример недавних уязвимоcтей:
- 30.01.17 В WordPress пропатчены три уязвимости, в том числе возможности для межсайтового скриптинга и внедрения SQL-кода. Релиз 4.7.2
- 31.10.16 В Joomla, начиная с версии 3.4.4 и заканчивая версией 3.6.3, обнаружена критическая уязвимость, позволяющая обходить запрет на регистрацию пользователей на сайте и повышать группу доступа зарегистрированных пользователей.
- 26.01.17 В Magento устранено 20 уязвимостей, включая критические.
Даже наличие современных «защищенных» фреймворков, множества рекомендация по созданию безопасного кода не может уберечь от ошибок.
Web Application Firewall
Web Application Firewall — защитный экран уровня приложений, предназначенный для выявления и блокирования современных атак на веб-приложения, в том числе и с использованием уязвимостей нулевого дня. Такой защитный механизм позволяет блокировать атаки категории OWASP TOP 10, их совокупности и комбинации.
Если для десктопных и серверных систем хорошим тоном считается использование защитных программных средств (антивирус, фаервол и т.д.), то для веб-приложений такая картина не наблюдается вовсе. Только в последнее время наблюдается тенденция внедрения таких защитных средств, например указание в 3.2 редакции PCI DSS:
PCI DSS compliance: Web application firewalls (WAFs)
Web application firewalls (WAFs) are one option for those seeking compliance with requirement 6.6 of the PCI DSS.
Каким образом средства Web Application Firewall позволяют выявлять и блокировать атаки?
В первую очередь это подход к проектированию защитного средства: от составления математической модели угрозы до проверки методов обхода защитных средств при наличии той или иной уязвимости.
Немаловажен и анализ угрозы: комбинированные методы обнаружение атак на основе сигнатур и машинного обучения (выявления нелигитимных действий пользователя, отличающих его от легитимных посетителей сайта).
Cистематическое обновление базы сигнатур
База сигнатур так защитных средств агрегируется из нескольких источников. Например, для Nemesida WAF используются следующие источники:
- атаки на защищаемые веб-приложения клиентов с общим трафиком: 300-800 Mbps;
- атаки на инфраструктуру Pentestit;
- атаки на специализированные лаборатории тестирования на проникновение «Test lab» с «чистым» трафиком атак до 30 Mbps;
- собственные исследования;
- специализированные ресурсы и security-рассылки, изучение исследований;
- база атак на веб-приложения отдела анализа защищенности Pentestit (в 8 из 10 случаев аудита безопасности сайтов обнаружены уязвимости со статусом «критичный») ;
- а также машинное обучение, позволяющее выявлять аномалии в поведении пользователей сайта.
В качестве примера работы Web Application Firewall предлагаю всем желающим ознакомится с видеозаписью вебинара:
Автор: LukaSafonov