6 Марта, 2015

СОИБ. Внедрение. Настройка WAF, часть 2

Сергей Борисов
Продолжаем предыдущую статью и настраиваем некий обобщенный WAF:
·        настраиваем политики безопасности:
o   для определенных ранее объектов защиты назначаем политику сетевой безопасности (открыты порты только связанные с webприложением, из подсети управления разрешен так-же трафик для сервисов управления)
o   для каждого webсервиса настраиваем политики защиты webсервиса (могут быть разрешены нестандартные HTTPзапросы, такие как HEAD,  могут быть разрешены SQLкоманды и т.п.), включаем группы сигнатур и  выбираем реакцию на основные типы обнаруженных атак

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

·        для каждого параметра каждой страницы (которые мы определили ранее) желательно так-же определить разрешенные значения и возможность пользователем изменять эти данные. Например, для переменной Loginнам нужно будет ограничить значения как: латинские буквы, _, цифры, длиной до 15 символов; а в пароле нам нужно будет разрешить ещё русские символы и некоторые спецсимволы


·        если предыдущий пункт в ручную выполнить будет трудоемко, то пригодятся возможности автоматического определения и обучения WAF, но и в таком случае нужно будет регулярно (раз в 2 недели) просматривать профиль и принимать найденные изменения

·        возможно наш сайт будет содержать ценные данные и нам нужно настроить дополнительные политики, контролирующие вывод информации
o   определить шаблоны для ценных данных, которые могут содержаться в приложении или в БД; как правило придется применять регэкспы типа:
rgxp="([^d ])(340d)([-.s/=]?)(d{4})([-.s/=]?)(d{3})(d)([-.s/=]?)(d{3}[^d]{1})"
o   определить типы данных (например, номера банковских карт), которые не должны выводится никогда и ни при каких условиях
o   другие типы данных (например ПДн, такие как номер телефона или паспорта) разрешено выводить  только в определенных разделах сайта
o   так-же ценные данные не должны выводится (в место этого заменятся на *) в журналы регистрации WAF

·        создаем дополнительные реакции, кроме блокирования сессии и долгосрочного блокирования ip-адреса источника, можно определить отправку emailна определенные адреса:
o   информацию по критическим нарушениям и заблокированным угрозам – на адрес группы оперативного реагирования на инциденты, владельцам webприложения
o   информацию по остальным нарушениям – на адрес администратора WAF
o   если имеется внешняя система сбора логов или управления событиями ИБ, определим информация по каким нарушениям будет передаваться по SNMPtrap/ syslog/ другому способу интеграции с внешней SIEM

·        создаем автоматическую генерацию и отправку адресатам отчетов:
o   ежедневный анализ нарушений
o   двухнедельный свод по нарушениям
o   дневной перечень заблокированных пользователей/источников
o   двухнедельный отчет по изменению профиля webприложения

·        создаем дополнительные роли и пользователей:
o   операторов для мониторинга окна реагирования
o   разработчиков и владельцев webприложений для просмотра профиля webприложения и отчетов
o   администратров wafи т.п.

На этом с основными настройками закончили, далее остается опытная эксплуатация, отработка построенного профиля webприложения и выявленных событий