Cloudflare представила для своего веб-файрвола механизм Full Transaction Detection. Теперь WAF смотрит не только на то, что пришло на сайт, но и на то, что сайт отдал в ответ.
Идея простая: если запрос выглядел подозрительно, а ответ содержит явные признаки утечки, ответ можно заменить страницей блокировки ещё до того, как он дойдёт до атакующего.
Почему одного входящего фильтра мало
Классические правила WAF разбирают адрес, заголовки и тело запроса и пытаются остановить атаку до того, как её обработает приложение. Проблема в том, что «опасные» символы регулярно встречаются и в обычном трафике. Строгие правила дают ложные блокировки, мягкие пропускают реальную эксплуатацию.
Ответ сервера помогает отличить неудачную попытку от настоящего взлома. Cloudflare приводит пример с выходом за пределы каталога через параметр скачивания файла: сам запрос ещё ничего не доказывает, а вот содержимое конфигурационного файла в ответе уже говорит об утечке. В таком случае WAF может отдать вместо него ошибку 403.
Как устроена схема
Обнаружение и реакция разделены. Система записывает результат проверки и уровень уверенности в отдельные поля, а уже управляемые или собственные правила владельца сайта решают, пропускать ответ или нет. Срабатывания видны в Security Analytics и Security Events.
Действие правил можно ограничить конкретными адресами сайта. Это снижает риск сломать легитимные страницы, где похожие данные отдаются штатно.
Комментарий
Проверка ответа не заменяет обновления и аккуратный код, но даёт ещё один шанс, когда уязвимость уже нашли раньше патча. Для сайтов на PHP и CMS, где дыры появляются регулярно, такой слой особенно полезен, а точечная настройка по адресам помогает обойтись без ложных блокировок. Подробности в материале SecurityLab.
