Страницы

Domain fronting


Domain fronting весьма любопытная техника обхода сетевых средств мониторинга, которая эксплуатирует особенности современной архитектуры крупных интернет узлов (Google, Amazon...). Домеин фронтинг использовал Тор, использовал Телеграмм чтобы мимикрировать свой трафик под гуглозапросы, но лавочку прикрыли. Точнее не прикрыли, а сузили до родных сервисов.

В кратце суть такова:

Как работает HTTPS:

curl -H "Host: <real-host.com>" "https://www.host.com/path"

Весь пакет HTTP целиком со всеми хэдэрами шифруется. При этом "www.host.com" копируется в открытом виде в SNI header (это, кстати, опционально). Именно SNI хэдэр - это то, что вы видите на файрволе/прокси/DNS если не заглядываете в HTTPS.

Если вам нужен любой из сервисов Гугла (Ютюб, Драйв, ДНС..) - вы кидаете пакеты на один и тот же центральны сервер-терминатор SSL Гугла, и он уже дальше роутит траффик внутри локальной сети ГуглоДЦ. Этот SSL терминатор использует "Host" хэдэр из тела HTTP пакета чтобы определить, куда отправить пакет дальше.

Вот мы и добрались к самому интересному: СЗИ работает с SNI хэдэром (который есть копия домена из URL), а сервера Гугла работают с Хост хэдэром (который часть HTTPS пакета и зашифован по пути до ).

То же самое справедливо для всех крупных облачных провайдеров.

Для чего оно надо?
  • во-первых для малвари чтобы скрытно качать/выкладывать файлы с/на Google Drive, маскируя траффик под YouTube (я такое, пока что, не встречал)
  • во-вторых для DNS-over-HTTPS если компания блокирует гуглоDNS (8.8.8.8).  Можно спокойно достучаться до гуглоДНС так:
curl -s -H 'Host: dns.google.com' 'https://youtube.com/resolve?name=internetbadguys.com'

такой запрос сгенерирует один DNS пакет с доменом youtube.com, в ответ вебсервер вернёт вам IP заблокированного сайта internetbadguys.com. К сожалению/к счастью, браузеры пока такой фокус не поддерживают :( / :)