Как стать автором
Поиск
Написать публикацию
Обновить

WAF для Вебсокетов: рабочее решение или иллюзия?

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров2.2K
Всего голосов 7: ↑6 и ↓1+7
Комментарии8

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

Socket.IO для Node.JS это не имплементация websocket, это грубо говоря кастомный протокол, который работает поверх нескольких типов транспорта, включая вебсокеты. К нативным вебсокетам нельзя подключиться клиентом Socket.IO и наоборот.

Ценное замечание, поправил.

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

В общем, слишком сферически-вакуумная статья. Слабо представляю реализацию защиты веб-сокетов на практике.

Если бы все разработчики реализовывали надежные методы фильтрации входящих данных, то WAF не были бы нужны и для HTTP. Люди допускают ошибки, и WAF - это дополнительный рубеж обороны.

Для нормального WAF не важно, какой JSON, сложно структурированный или попроще, - он должен парситься. А вот если у вас свой формат, то да, вы правы: WAF про него ничего не знает и, скорее всего, не сможет корректно распарсить.

Не только мы заявляем о поддержке вебсокетов; есть множество других вендоров. В статье описан вариант, как можно протестировать качество защиты вебсокетов, если для вас это актуально.

Для нормального WAF не важно, какой JSON

А как он узнает, какие поля надо проверять, а какие нет? И как он узнает правила проверки этих полей?

Скорее всего, WAF должен проверять все поля JSON по-умолчанию. Не могу сказать за всех, но наш делает именно так.

Я вот уверен, что в большинстве веб-приложений проверять все поля не нужно и даже вредно. А вот какой-либо настройки на ваших скриншотах я не увидел.

Требования к защите WebSockets в стандарте ASVS (см. раздел V13.5) - https://github.com/OWASP/ASVS/blob/master/5.0/en/0x21-V13-API.md

Сценарии тестирования защищённости WebSockets в руководстве WSTG - https://github.com/andrettv/WSTG/blob/master/WSTG-ru/4-Web_Application_Security_Testing/11-Client-side_Testing/10-Testing_WebSockets.md

Зарегистрируйтесь на Хабре, чтобы оставить комментарий