Вчера в одном профильном чатике возникла любопытная дискуссия на тему того, нужен ли в современных реалиях WAF. Тема изъезженная, и тем не менее всегда есть, что обсудить.
Были озвучены десятки «ЗА» и «ПРОТИВ», и вот пожалуй самые интересные из них:
ЗА - Виртуальный патчинг WAF позволяет закрыть что-то экстренное, когда у разработчиков на это нет времени. - Сложно постоянно полагаться на качество кода вашей команды разработки, завтра может произойти что угодно: от ухода всей команды, до каких-то «срочных» нововведений по запросу от менеджмента. - Не стоит забывать, что появление багов и уязвимостей циклично, одного харденинга будет недостаточно. - Какой бы «тупой» WAF не был, он всегда мешает, и как следствие — увеличивает стоимость атаки. - Масса «ЗА» касались мониторинга и быстрого детектирования атак, даже если WAF стоит не в режиме блокирования, оперативная сработка правил позволяет быстрее работать по инцидентам, разбирать L7 DDoS, логи, блокировать ботов и пр. Особенно если никаких других мониторингов нет. - «Имхо, ваф — маст хэв, как антивирус и Яндекс браузер. То есть некоторым это не нужно, а родителям поставлю.» - Для малого и среднего бизнеса, где нет ИБ подразделения, либо с его небольшой численностью, будет оптимальным решением какое-нибудь недорогое облачное коробочное решение, для энтерпрайза этого скорее всего будет недостаточно.
ПРОТИВ - Внедрение WAF приведет к тому, что на багам перестанут уделять должное внимания со стороны разработки, а менеджмент расслабится. - Если основная задача установки WAF связана с защитой API, лучше уделить внимание хенделингу API, будет дешевле. Или воспользоваться каким-то универсальным облачным решением, например CloudFlare. - Построение полноценного CI/CD с должным уровнем код ревью и хорошими тестами (включая SAST, DAST, OAST и пр.) будет намного эффективнее WAF, но безусловно трудозатратнее. - WAF требует много человеческих ресурсов при внедрении и сопровождении, может фолзить, влиять на стабильность защищаемых приложений. - На практике вы сталкнетесь с тем, что WAF почти всегда будет «ломать» логику ваших приложений. Нужно быть готовым с этим работать.
АЛЬТЕРНАТИВНЫЕ МНЕНИЯ - Конечно же ни одна дискуссия не обходится без обсуждения opensorce, здесь не исключение. Например посмотреть в сторону Naxsi под Nginx или ModSecurity. - За годовую стоимость, сопоставимую с закупкой WAF у популярного вендора, можно создать/нанять «крутую» команду безопасников и используя opensource решения, реализовать отличные контроли, тесты, дашборды, запустить bug bounty, выстроить процессы со своей командой разработки.
ИТОГ Как вы понимаете универсального решения нет, все индивидуально и сильно зависит от потребностей, возможностей и рисков.
БОНУС Ребята из Wallarm опубликовали чеклист с актуальными критериями, помогающими выбрать современное решение для защиты ваших приложений и API.
P.S Кстати, ребята собираются каждую субботу в Clubhouse (формат еще определяется) и трут за безопасность, при желании всегда можно поучаствовать в дискуссии.