Domain IP Lookup

Публичное и приватное адресное пространство

Публичный IP

192.0.2.10

глобально уникален — маршрутизируется отовсюду

Приватные диапазоны

10.0.0.0/8172.16.0.0/12192.168.0.0/16

не маршрутизируются в публичном интернете

Безопасность

Почему частные диапазоны IP никогда не должны разрешаться публично

3 мин чтения

RFC 1918 выделил три диапазона IPv4 — 10.0.0.0/8, 172.16.0.0/12 и 192.168.0.0/16 — специально для использования внутри частных сетей, именно потому, что публичных адресов IPv4 не хватает, чтобы у каждого устройства в каждой частной сети был глобально уникальный. Эти диапазоны одновременно повторно используются внутри миллионов не связанных между собой сетей по всему миру. Ваш домашний роутер почти наверняка выдаёт адреса 192.168.x.x; так же делает практически любой другой.

Что значит, когда публичный домен разрешается в такой диапазон

Поскольку эти адреса имеют смысл только внутри той локальной сети, которая спрашивает, публичный домен, разрешающийся в один из них, — в лучшем случае ошибка конфигурации, а в худшем — намеренная попытка заставить обращённую к публике систему отправить запрос тому, что оказывается по этому адресу в её собственной внутренней сети. У публичного интернета нет единого представления о том, на что вообще указывает 10.0.0.5: это разная машина в зависимости от того, какая сеть спрашивает.

ДиапазонНазваниеПочему блокируется
10.0.0.0/8Частный (RFC 1918)Повторно используется внутри миллионов не связанных сетей
172.16.0.0/12Частный (RFC 1918)То же, что выше
192.168.0.0/16Частный (RFC 1918)То же, что выше: распространённый диапазон домашних роутеров
127.0.0.0/8LoopbackУказывает обратно на саму запрашивающую машину
169.254.0.0/16Link-localВключает 169.254.169.254, конечную точку облачных метаданных
100.64.0.0/10Общее адресное пространство (RFC 6598)Carrier-grade NAT: часто отсутствует в самодельных списках блокировки
0.0.0.0/8НеопределённыйНе является настоящим маршрутизируемым адресом назначения
192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24Диапазоны для документацииЗарезервированы для примеров, никогда не предназначены для рабочего использования
  • У законного публичного домена нет причин когда-либо разрешаться в адрес из частного диапазона: если вы такой видите, считайте это сигналом, который стоит расследовать, а не нормальным результатом.
  • В IPv6 есть собственные эквивалентные частные и зарезервированные диапазоны — уникальные локальные адреса (fc00::/7) и link-local (fe80::/10), — которые требуют такого же обращения.

Отфильтровывать эти диапазоны в момент разрешения, а не полагаться на то, что домен, выглядящий публичным, всегда разрешается в публично выглядящий адрес, — базовое ожидание от любого инструмента, который разрешает домены от имени пользователя.

Диапазон, о котором забывает большинство списков блокировки

100.64.0.0/10 — «общее адресное пространство», определённое в RFC 6598 — не пользуется и близко такой известностью, как 10.0.0.0/8 или 192.168.0.0/16, хотя так же немаршрутизируем в публичном интернете. Он существует специально для carrier-grade NAT, позволяя провайдеру адресовать большое число клиентских соединений внутри сети, не расходуя публичное пространство IPv4 на каждое из них. Поскольку он новее и менее известен, чем классические диапазоны RFC 1918, именно его чаще всего не оказывается в самодельном списке блокировки — это именно тот пробел, который обнаруживается только тогда, когда кто-то намеренно направляет домен на адрес внутри него.

«Отказ в безопасную сторону» важен не меньше, чем сам список

Список блокировки хорош лишь настолько, насколько хорошо то, что происходит, когда адрес вообще не удаётся разобрать. Некорректный ввод, необычная запись или значение, которое чётко не соответствует ни одному известному диапазону, никогда не должны по умолчанию считаться «вероятно, нормальными»: безопасное поведение по умолчанию — отклонять всё, что нельзя уверенно классифицировать как публичное, а не отклонять только адреса, которые заведомо совпадают с известным плохим диапазоном. Именно такая установка «отказ в безопасную сторону» (fail closed) делает список блокировки устойчивым к диапазонам, о которых пока никто не подумал, а не только к хорошо известным, уже включённым в него.

Нужно проверить публичные DNS-адреса домена? Воспользуйтесь инструментом Domain IP Lookup.

Бесплатные инструменты по этой теме

Читайте также

SSRF превращает сервер в невольного прокси

Атакующий

готовит URL запроса

Уязвимый сервер

обманут SSRF, запрашивает его

169.254.169.254

эндпоинт метаданных

Учётные данные

возвращаются атакующему

Безопасность

Эндпоинты метаданных в облаке: скрытая поверхность атаки

Один на вид нерутируемый IP-адрес открывает облачным инстансам доступ к учётным данным и конфигурации и часто становится целью SSRF-атак.

3 мин чтения

Один и тот же адрес — четыре способа записи

127.0.0.1Стандартная десятичная запись с точками
2130706433Тот же адрес в виде целого числа
0x7f.0.0.1Тот же адрес в шестнадцатеричной записи
127.1Тот же адрес в краткой форме
Безопасность

SSRF-атаки: как злоумышленники используют DNS

Подделка запросов на стороне сервера часто начинается с обычного доменного имени, которое ваш сервер обманом заставили разрешить и запросить.

3 мин чтения

Один домен — два разных ответа

Первый запрос

разрешается в публичный IP

Проверка

пройдена — выглядит безопасно

Истекает TTL

через несколько секунд

Второй запрос

разрешается в 127.0.0.1

Безопасность

Что такое DNS rebinding и почему это важно

Домен, который сначала разрешается в безопасный адрес, а затем во внутренний: DNS rebinding превращает сам DNS в поверхность атаки.

3 мин чтения