UPDATE: в актуальном Firefox 68 уязвимость уже исправлена(спасибо Dukat).
Тришта Тивари(Trishita Tiwari) и Ари Трахтенберг(Ari Trachtenberg) из Бостонского университета опубликовали работу, показывающую новый метод атаки для сканирования портов на хостах внутренней сети пользователя или на локальном хосте(CVE-2019-11728). Атака осуществляется с помощью HTTP заголовка Alt-Svc, введённого в RFC-7838 HTTP Alternate Services(утверждён в 2016 году).
HTTP заголовок Alt-Svc позволяет перенаправить запрос на новый хост и порт. Это используется для балансировки нагрузки. Например:
Alt-Svc: http/1.1="other.example.com:443";ma=200;persist=1
предписывает браузеру для получения запрошенной страницы соединиться с хостом other.example.org на порту 443 используя HTTP/1.1. Параметр "ma" задаёт максимальное время действия перенаправления. Кроме HTTP/1.1, поддерживаются протоколы HTTP/2-over-TLS (h2), HTTP/2-over plain text (h2c), SPDY(spdy) и QUIC (quic), использующий UDP.
Атакующий хост может последовательно перебирать адреса внутренней сети и сетевые порты, используя в качестве признака задержку между повторными запросами: при недоступности перенаправляемого ресурса браузер мгновенно получает в ответ пакет RST и сразу помечает альтернативный сервис недоступным и обнуляет заданное в запросе время жизни перенаправления. Если сетевой порт открыт то для завершения соединения требуется больше времени (будет предпринята попытка установки соединения с соответствующим обменом пакетами) и браузер отреагирует не мгновенно.
В том числе это позволяет обойти ограничения на соединения к портам, которые браузеры считают небезопасными для соединения(Firefox, Chrome), например порты почтовых и DNS сервисов.
Возможные способы применения атаки, кроме сканирования портов:
- DDoS атаки с усилением. Например, TLS хендшейк для не-HTTP сервисов заставляет сервер передать клиенту информацию о сертификате, вынуждая сервер ответить в 60 раз большим количеством данных, чем было запрошено.
- Обход защиты от вредоносного и фишингового ПО при помощи Google Safe Browsing. Перенаправление на вредоносный хост при помощи Alt-Svc не приводит к выводу предупреждения.
- Отслеживание пользователя в обход средств защиты от трекеров. Используется iframe, вызывающий в Alt-Svc на внешний обработчик отслеживания перемещения. Также может применяться для отслеживания пользователя провайдерами, имеющими веб страницу для входа, например WiFi captive portal. Браузер пользователя запоминает уникальный Alt-Svc для iframe отслеживающего домена. При следующем посещении этой страницы можно увидеть на сетевом уровне, куда обратится браузер клиента.
- Если сайт использует Alt-Svc перенаправление, то ISP(или любой другой man-in-the-middle), при переходе пользователя на определённую страницу, может установить факт предыдущего посещения этого сайта.
- Засорения логов IDS ложными срабатываниями
Для Firefox обработка Alt-Svc может быть отключена следующим образом: about:config -> network.http.altsvc.enabled: false (за совет спасибо Анониму с opennet).
Dukat
Стоило добавить, что в актуальном Firefox 68 уязвимость уже устранена.
selivanov_pavel Автор
Спасибо, добавил