Реализация атаки DNS Rebinding | Прикладная дискретная математика. Приложение. 2015. № 8.

Реализация атаки DNS Rebinding

The possibility of DNS Rebindng attack realization in modern browsers is researched. This attack is directed at bypassing Same Origin Policy. The conditions for successful attack realization when the target host is located in a local network are studied. A list of the most vulnerable browsers is produced. The attack is implemented in the BeEF (Browser Exploitation Framework) being a tool for penetration testing. Some advices for protection against this attack are given.

Implementation of DNS rebinding.pdf Исследована акутальность атаки DNS Rebinding в современных браузерах. Атака направлена на обход концепции одинакового источника (Same Origin Policy). Цель работы - исследование применимости атаки для доступа к узлам локальной сети пользователя. Составлен список браузеров, наиболее подверженных атаке. В инструмент для тестов на проникновение BeEF встроено расширение, позволяющее реализовать атаку на практике. Сформулированы условия, при которых данная атака успешно реализуется, и рекомендации по защите. Существует важная концепция веб-безопасности, которой руководствуются современные браузеры при исполнении сценариев - концепция одинакового источника (Same Origin Policy) [1]. Сценарий - это программа, исполняемая на стороне пользователя. Пользователь получает сценарий при обращении к некоторому веб-серверу, который будем называть источником. Обычно сценарии написаны на языке JavaScript и предназначены для оформления веб-страниц или выполнения на стороне пользователя обработки перед отправкой данных на сервер. Концепция разрешает сценарию доступ к данным источника, если и только если сценарий получен с этого источника. Источник характеризуется тремя признаками: доменным именем, портом, протоколом. Два источника считаются одинаковыми, если у них совпадают все три признака. При запросе к веб-серверу браузер пользуется системой DNS, преобразующей доменное имя веб-сервера в его сетевой адрес (IP-адрес). DNS реализуется распределённой системой серверов, выполняющих данное преобразование. Владелец веб-сервера может иметь собственный DNS-сервер, отвечающий за доменное имя веб-сервера. Основная идея атаки DNS Rebinding в том, что в концепции одинакового источника в характеристики источника не входит сетевой адрес. Злоумышленник может выполнить свой сценарий с данными другого источника, будем называть его целевым, если доменному имени веб-сервера злоумышленника будет соответствовать не один, а два сетевых адреса - адрес веб-сервера злоумышленника и адрес целевого веб-сервера. Заметим, что система DNS позволяет такое неоднозначное соответствие. В данной работе рассматривается возможность доступа к целевым веб-серверам, находящимся в локальной сети пользователя. Таковыми могут быть, например, роутеры, практически все из которых имеют веб-интерфейс. Приведём общую схему атаки. 1) Пользователь обращается к веб-серверу злоумышленника с помощью доменного имени. 2) Браузер пользователя формирует запрос к DNS-серверу злоумышленника с целью получить сетевой адрес, соответствующий доменному имени. DNS-сервер отвечает парой сетевых адресов. 3) Браузер пользователя обращается по первому сетевому адресу, который считает основным, и получает веб-страницу злоумышленника вместе со сценарием. 4) Злоумышленник блокирует дальнейшие обращения пользователя к своему вебсерверу (например, с помощью межсетевого экрана). 5) Сценарий в браузере пользователя инициирует повторное обращение к веб-серверу злоумышленника с помощью доменного имени, но вследствие блокировки веб-сервера не получает ответа по первому сетевому адресу и обращается по второму, который является адресом целевого веб-сервера в локальной сети пользователя. Браузер пользователя разрешает это обращение, поскольку не изменился ни один из трёх признаков источника. В современных браузерах существует два типа реакций на полученный от DNS-сер-вера ответ, содержащий локальный IP-адрес. Некоторые браузеры считают его основным, некоторые - второстепенным. Первый тип реакции более безопасен, он предотвращает приведённую выше схему атаки, поскольку исключает получение сценария с веб-сервера злоумышленника. Протестированы реакции современных веб-браузеров на получение подобных запросов: Браузер Версия Тип реакции Opera 27.0 Второй Android Browser 4.2 Второй Google Chrome 40 Второй Google Chrome 41 Первый Firefox 35.0.1 Первый Атака реализована в инструменте для тестов на проникновение - BeEF (The Browser Exploitation Framework). Это проект с открытым исходным кодом. Похожая реализация атаки была сделана на языке С в виде отдельного приложения [2]. BeEF состоит из двух основных частей. Первая часть - серверная и устанавливается на компьютере тестировщика на проникновение, будем называть его исследователем. Вторая часть - JavaScript-сценарий на компьютере пользователя, локальная сеть которого является объектом исследования. Для реализации атаки написаны модуль (module) и расширение (extension). Это предусмотренные разработчиками BeEF средства для добавления новой функциональности в проект. Модуль отвечает за то, как действует JavaScript в браузере пользователя (вторая составная часть BeEF). Расширение отвечает за то, как реагирует на эти действия BeEF (первая составная часть BeEF). Написанные части вместе позволяют исследователю взаимодействовать с целевым веб-сервером из локальной сети пользователя так же, как если бы исследователь имел прямой доступ к серверу. Написанное расширение состоит из двух частей - веб-сервера и прокси-сервера. Веб-сервер при обращении к нему возвращает сценарий пользователю и блокирует дальнейшие его обращения, то есть реализует п. 3 и 4 приведённой схемы атаки. Прокси-сервер необходим для интерактивной двусторонней связи исследователя со сценарием, выполняющимся в браузере пользователя. С помощью этого сервера исследователь может отправлять или получать данные с целевого веб-сервера в локальной сети пользователя. Главная часть модуля - это JavaScript-сценарий. Он состоит из трёх асинхронных запросов. Первый запрос регулярно обращается к прокси-серверу за очередным запросом исследователя к целевому серверу. Второй отправляет полученный запрос к целевому серверу и обрабатывает ответ. Третий отправляет результат обратно прокси-серверу. Вторая задача модуля - это занесение в DNS-сервер исследователя соответствия «доменное имя веб-сервера исследователя - сетевые адреса», необходимого для реализации п. 2 атаки. Для того чтобы проведение исследования было возможным, должны выполняться следующие условия: 1) браузер пользователя не должен содержать открытых соединений с целевым веб-сервером; 2) браузер пользователя не должен содержать TCP-соединений с состоянием TIME WAIT с сетевым адресом целевого веб-сервера; 3) браузер пользователя не должен содержать в DNS-кэше других сетевых адресов, связанных с доменом веб-сервера исследователя. При невыполнении хотя бы одного из этих условий не будет выполнен п. 3 схемы атаки. Браузер пользователя будет считать сетевой адрес целевого веб-сервера основным и не сможет получить сценарий. Для защиты от данной атаки необходимо правильно настроить веб-сервер, который может оказаться атакуемым. Для того чтобы нарушить п. 5 схемы атаки, веб-сервер не должен отвечать на запросы, у которых заголовок Host содержит произвольный сетевой адрес.

Ключевые слова

Web application security, pentesting, HTTP

Авторы

ФИООрганизацияДополнительноE-mail
Милованов Тимофей ИгоревичНациональный исследовательский Томский государственный университетстудент кафедры защиты информации и криптографииtimcess@gmail.com
Всего: 1

Ссылки

http://code.google.com/p/rebind/ - DNS Rebinding Tool.
https://tools.ietf.org/html/rfc6454 - The Web Origin Concept.
 Реализация атаки DNS Rebinding | Прикладная дискретная математика. Приложение. 2015. № 8.

Реализация атаки DNS Rebinding | Прикладная дискретная математика. Приложение. 2015. № 8.