Приснится же такое
2015-07-29 12:24![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
Снилось мне, что я участвую в расследовании какой-то сетевой атаки. И то ли нам слали, то ли мы запрашивали что-то с IP-адресов, каких в принципе не может быть. И эти запросы проходили и давали какие-то нежелательные последствия.
Ну и ключевой инсайт, после которого картинка сложилась, был в духе «123.456.78.90 не может быть IP-адресом, значит, это DNS-имя».
Забавно, что наяву две разные версии спецификации URI разрешают эту неоднозначность грамматики по-разному. RFC 2369 §3.2.2:
[…]The rightmost domain label of a fully qualified domain name will never start with a digit, thus syntactically distinguishing domain names from IPv4 addresses[…]
The syntax rule for host is ambiguous because it does not completely distinguish between an IPv4address and a reg-name. In order to disambiguate the syntax, we apply the “first-match-wins” algorithm: If host matches the rule for IPv4address, then it should be considered an IPv4 address literal and not a reg-name.
и ниже:
IPv4address = dec-octet "." dec-octet "." dec-octet "." dec-octet dec-octet = DIGIT ; 0-9 / %x31-39 DIGIT ; 10-99 / "1" 2DIGIT ; 100-199 / "2" %x30-34 DIGIT ; 200-249 / "25" %x30-35 ; 250-255
Таким образом, по более новому RFC 123.456.78.90 — это действительно доменное имя (а в старом — таки IPv4-адрес).
no subject
Date: 2015-07-29 08:26 (UTC)no subject
Date: 2015-07-29 10:45 (UTC)no subject
Date: 2015-07-29 13:36 (UTC)Пожалуй я могу себе представить перехват управления DNS-сервером upstream-провайдера, который сделает такую атаку возможной.
no subject
Date: 2015-07-29 13:50 (UTC)no subject
Date: 2015-07-29 14:29 (UTC)Но можно еще на промежуточном роутере завернуть вообще весь DNS-траффик - хоть к корневым серверам, хоть к серверам Гугля, куда-нибудь к себе и оттуда отвечать.
no subject
Date: 2015-07-29 14:48 (UTC)Один из моих провайдеров (Дом.ru, чтоб ему было стыдно) проводит обе атаки. Если пользоваться его DNS-сервером, то отдаёт на некоторые имена подставной IP’шник, а если обращаться через его маршрутизаторы к гугловому и другим публичным, то перехватывает и тоже отдаёт подставной IP’шник.
Это, правда, атаки против доступности некоторых внешних серверов, а во сне было наоборот — атака на доставку какого-то вредоносного контента.