Пишу, по большей части, про историю, свою жизнь и немного про программирование.

DNS rebinding

Меня восторгает атака «DNS rebinding», вострогает своей простотой. Суть такова. Как известно, у страницы в браузере есть стотыщьмильёнов способов получить содержимое произвольного URL, но с одним условием — получить данные можно только с того же хоста, на том же порту и по тому же протоколу.

Хакер заманивает жертву на свой сайт — example.org, DNS этого сайта настроен так, что выдаёт то настоящий IP этого сайта, то 192.168.0.1. Страница обращается по URL на своём хосте, браузер проверяет — протокол, доменное имя, порт совпадает, разрещает запрос, но запрос попадает не на внешний сайт, а на адрес 192.168.0.1. В домашних сетях там, чаще всего, находится интерфейс роутера.

Дальше уже зависит от фантазии взломщника.

Защищиться от атаки очевидным способом (запретив запрос, если сменился IP) нельзя — есть масса сайтов (например, «Яндекс») снижающих нагрузку, распределяя пользователей по нескольким IP-адресам.

У IE есть такое понятие как «зоны безопасности», там локальные сайты выделены в отдельную зону. Мне кажется хорошим методом запрещать доступ по XHR/Flash/Java, если зоны у страницы, которая запрашивает и у URL, который запрашивается, различаются.

5 комментариев
alpha.fm 2010

А разве на клиенте IP после резолвинга не кешируется?
Мне казалось что round robin dns в данном случае должен таки одного клиента привязать к одному IP, по крайней мере на некоторое время.
Хотя, конечно можно ttl выставить минимальный...

Да, нужно поисследовать.

Евгений Степанищев (bolknote.ru) 2010

Комментарий для alpha.fm:

Хотя, конечно можно ttl выставить минимальный...

Именно так и делается.

Да, нужно поисследовать.

Добрые люди уже поисследовали :) См. rebind ( http://code.google.com/p/rebind/ )

praeivis (praeivis.lt) 2010

Пару дней назад в ЛасВегасе уже показали куда это можеть привести:
http://www.securityweek.com/hacker-uses-xss-and-google-streetview-data-determine-physical-location
Видео обезательно посмотрите.

Artemy Tregubenko (arty.name) 2010

опера тоже при редиректе на локальные сайты спрашивает подтверждение, хотя не знаю, как поведёт себя в такой ситуации

Евгений Степанищев (bolknote.ru) 2010

Комментарий для arty.name:

опера тоже при редиректе на локальные сайты спрашивает подтверждение, хотя не знаю, как поведёт себя в такой ситуации

Сделает всё молча.