Брандмауэр прикладного уровня для WebSockets?
Моя команда создала портал для интрасети в Amazon AWS для клиента, и на нем мы использовали WebSockets для таких вещей, как уведомления и другие мелочи. В основном мы отправляем события с сервера, но мы также используем его, чтобы клиент мог быстро уведомить сервер о присутствии пользователя.
Одно из требований клиента состояло в том, что мы используем брандмауэр уровня приложения, чтобы отсеивать вредоносные запросы и тому подобное. Мы установили Sophos UTM, чтобы справиться с этим. Для трафика HTTP это прекрасно работает. Тем не менее, UTM не поддерживает WebSockets, поэтому нам пришлось настроить его так, чтобы он проходил через вслепую через прокси-запросы. По причинам, которые я не до конца понимаю (даже после нескольких часов отладки), это было огромным узким местом и делало все медленно (даже при том, что загрузка процессора и памяти была в порядке).
Затем мы решили, что если UTM все равно не фильтрует трафик, давайте добавим nginx, чтобы разделить трафик сокетов, и пусть UTM будет обрабатывать обычный трафик. Эта настройка работает очень хорошо, а производительность просто фантастическая.
Однако сотрудник службы безопасности клиента обеспокоен тем, что трафик WebSocket не проверяется.
Таким образом, у меня есть три связанных вопроса:
Это беспокойство? Если нет, могу ли я показать что-нибудь, что объяснит это лучше, чем я?
Если это проблема, существуют ли какие-либо брандмауэры приложений, которые могут помочь нам? Я действительно не знаю, против чего мы будем фильтровать, но, надеюсь, это работа брандмауэра.
РЕДАКТИРОВАТЬ: Я был не прав, мы на самом деле делаем двунаправленную связь на сокетах, хотя это все еще довольно тривиально. Это такие вещи, как "пользователь просматривает эту вкладку", "пользователь подтвердил уведомление" и т. Д.