Битсквоттинг — регистрация доменных имен, которые отличаются на один бит от оригинальных. Битсквоттинг по форме похож на тайпосквоттинг, но придуман совершенно для других целей. Если вкратце, то тайпосквоттеры обманывают отдельных пользователей, в то время как битсквоттинг рассчитан на «ловлю ошибок» в миллиардах устройств, подключенных к Сети. Это как ловля сетью против рыбалки с удочкой.
Тайпосквоттеры рассчитывают, что пользователь опечатается при вводе URL или не заметит отличия на один символ в ссылке. Битсквоттинг делает ставку на то, что какое-нибудь из подключенных к интернету устройств случайно ошибется и изменит один нужный бит в запросе к DNS-серверу, так что трафик пойдет вместо оригинального сайта к злоумышленнику. Это похоже на лотерею, и шансы на «правильную» ошибку в конкретном устройстве чрезвычайно малы. Но нужно учитывать, что к Сети подключено более пяти миллиардов устройств.
Каждый компьютер в интернете ежедневно генерирует около полутора тысяч DNS-запросов, из них только три пользователь вводит вручную.
Сбои происходят постоянно на каждом устройстве. Это может быть ошибка в стеке TCP / IP, в памяти маршрутизатора, в браузере и так далее, на любом этапе обработки запроса. Ошибки в ОЗУ возникают из-за перегрева, скачков напряжения, дефектов оборудования, даже космического излучения.
Теоретически к такой атаке уязвимы абсолютно все платформы и все версии ОС, сбой может произойти в любом оборудовании. Например, для ПК с 4 ГБ DRAM количество ошибок составляет от трех в час до трех в месяц. Можно самостоятельно посчитать, сколько сбоев происходит во всех компьютерах мира.
Например, вот бинарное представление адреса «ВКонтакте»:
01110110 01101011 00101110 01100011 01101111 01101101 (vk.com) Запишем 16 альтернативных вариантов, каждый из которых отличается от оригинала на один бит.
11110110 01101011 00101110 01100011 01101111 01101101 (ok.com)
00110110 01101011 00101110 01100011 01101111 01101101 (6k.com)
01010110 01101011 00101110 01100011 01101111 01101101 (Vk.com)
01100110 01101011 00101110 01100011 01101111 01101101 (fk.com)
01111110 01101011 00101110 01100011 01101111 01101101 (~ k.com)
01110010 01101011 00101110 01100011 01101111 01101101 (rk.com)
01110100 01101011 00101110 01100011 01101111 01101101 (tk.com)
01110111 01101011 00101110 01100011 01101111 01101101 (wk.com)
01110110 11101011 00101110 01100011 01101111 01101101 (ve.com)
01110110 00101011 00101110 01100011 01101111 01101101 (V + Ком)
01110110 01001011 00101110 01100011 01101111 01101101 (vK.com)
01110110 01111011 00101110 01100011 01101111 01101101 (V {Ком)
01110110 01100011 00101110 01100011 01101111 01101101 (vc.com)
01110110 01101111 00101110 01100011 01101111 01101101 (vo.com)
01110110 01101001 00101110 01100011 01101111 01101101 (vi.com)
01110110 01101010 00101110 01100011 01101111 01101101 (vj.com)
На практике реально зарегистрировать мы не сможем ни один из этих доменов, так что «ВКонтакте» - один из немногих сайтов в интернете, который защищен от битсквоттерской атаки. Чего не скажешь о microsoft.com (72 варианта для битсквоттинга), amazon.com (48 вариантов) и прочих.
КТО ЭТО ПРИДУМАЛ
Выдвинул идею и озвучил ее на конференции Black Hat в августе 2011 года хакер Артем Динабург (Артем Динабург). Он подготовил доклад, который произвел настоящий фурор.
Действительно, подобная атака отличается исключительной дешевизной и не требует никакой технической подготовки. Дешево и сердито: за сотню долларов ты расставляешь сеть ловушек - и остается только ждать рыбу.
Автор объясняет, что для такого типа атаки нужно выбирать домены CDN и рекламных сетей, контент с которых подгружается на тысячи популярных сайтов. Это такие домены, как fbcdn.net, 2mdn.net и akamai.com. Для проверки своей теории Динабург зарегистрировал 32 домена методом битсквоттинга, в том числе домены CDN и рекламных сетей. Список адресов, которые принимали участие в эксперименте: ikamai.net, aeazon.com,-azon.com, amazgn.com, microsmft.com, micrgsoft.com, miarosoft.com, iicrosoft.com, microsnft.com, mhcrosoft.com , eicrosoft.com, mic2osoft.com, micro3oft.com, li6e.com, 0mdn.net, 2-dn.net, 2edn.net, 2ldn.net, 2mfn.net, 2mln.net, 2odn.net, 6mdn.net , fbbdn.net, fbgdn.net, gbcdn.net, fjcdn.net, dbcdn.net, Руп-servers.net, doublechick.net, do5bleclick.net.
РЕЗУЛЬТАТ ЭКСПЕРИМЕНТА
Безусловно, идея выглядит красиво. Но как мы можем знать, что на битсквоттерские сайты реально придет трафик? Можно ли действительно рассчитывать на случайные ошибки в оперативной памяти маршрутизаторов и прочего оборудования, где не используется ECC?
Эксперимент Динабурга показывает, что смысл есть. К сайтам действительно поступали DNS-запросы и HTTP-запросы и подключались сторонние устройства. За семь с половиной месяцев эксперимента с сентября 2010 года по апрель 2011 года поступило в общей сложности 52 317 запросов с 12 949 уникальными IP-адресами. Если не считать трех искусственных всплесков трафика, то в среднем запросы шли с 59 уникальных IP-адресов в день.
Артем Динабург до сих пор продолжает анализировать данные, полученные в ходе эксперимента, и публикует свежие результаты в блоге dinaburg.org. Недавно он выложил в открытый доступ запись всех пакетов (PCAP), поступивших на его серверы в ходе эксперимента: dinaburg.org/data/dnslogs.tar.7z. Там есть и автоматически сгенерированные краш-репорты с неправильным битом в адресе, и запросы обновления Windows. Эти примеры показывают, что причиной запросов были действительно ошибки в битах, а не неправильно введенный вручную URL.
В качестве бонуса: скрипт на Python для генерации битсквоттерских доменов: dinaburg.org/data/bitsquat.py.