В этой статье мы поговорим об архитектуре WPAD и основных принципах функционирования данной технологии в корпоративных и домовых сетях, рассмотрим реальные примеры атак, а также разработаем рекомендации для рядовых пользователей и системных администраторов, позволяющие обезопасить себя от действий злоумышленников.
Автор: Сергей Рублев
Эксперт по информационной безопасности "Positive Technologies"
PDF версия статьи доступна по адресу:
www.ptsecurity.ru/download/wpad_weakness.pdf
Скачать сетевую утилиту для проверки наличия потенциально опасных записей в серверах имен DNS и WINS можно по адресу:
www.ptsecurity.ru/freeware.asp
В процессе анализа ежемесячных обновлений от Microsoft мое внимание привлек бюллетень MS09-008, а точнее, его часть, в которой фигурирует имя WPAD. Этот бюллетень исправляет целый ряд уязвимостей в службах Microsoft DNS и Microsoft WINS, среди которых значится «Уязвимость регистрации WPAD», однако данное имя не первый раз встречается в уведомлениях по безопасности. Впервые о слабых сторонах WPAD заговорили в 1999 г., в 2007 г. был опубликован широкий спектр проблем, связанных с этой технологией, в том же году на конференции ShmooCon 2007 Крис Пейджет (Chris Paget) представил практические примеры эксплуатации уязвимостей WPAD. Сейчас, спустя 10 лет, Microsoft продолжает выпускать заплатки, закрывающие бреши данной технологии, а вопрос о безопасности сетей, в которых применяется WPAD, так и остался открытым. Успешная атака на WPAD гарантирует злоумышленникам полный контроль над пользовательскими данными, передаваемыми в Интернет, что может привести к краже критической информации, такой как пароли или номера банковских карт. На потенциальную опасность WPAD во многом влияют два фактора: во-первых, использование в конфигурации «по умолчанию», во-вторых, слабая осведомленность рядовых пользователей в данном вопросе.
В этой статье мы поговорим об архитектуре WPAD и основных принципах функционирования данной технологии в корпоративных и домовых сетях, рассмотрим реальные примеры атак, а также разработаем рекомендации для рядовых пользователей и системных администраторов, позволяющие обезопасить себя от действий злоумышленников.
WPAD (Web Proxy Auto Discovery) – протокол, позволяющий Web-клиентам автоматически определять местоположение файла настроек браузера для работы через прокси-сервер. В 1999 г. Microsoft представила данный протокол на рассмотрение в IETF, однако в качестве стандарта WPAD так и не был принят. В настоящее время WPAD поддерживается семейством браузеров Internet Explorer и Mozilla Firefox (Google Chrome и Apple Safari используют настройки прокси-серверов браузера Internet Explorer, т.е. также поддерживают WPAD). Поддержка WPAD присутствует и в семействе открытых операционных систем, например, в браузере Konquerror в ОС Linux.
Включение WPAD в Microsoft Internet Explorer
По сути WPAD – это протокол обнаружения в сети специального файла (сценария). В спецификации WPAD перечислены способы и протоколы, с помощью которых осуществляется поиск. Для понимания технологии WPAD необходимо более детально познакомиться со сценариями автоматической настройки браузеров.
Файл Proxy Auto Configuration (далее PAC-файл) используется в корпоративных сетях для централизованного распространения настроек, которые применяются при работе через прокси-сервер для браузеров пользователей.
По сути PAC представляет собой сценарий на языке JavaScript.
В нем должна быть определена функция FindProxyForURL(url, host), где
url – запрашиваемый адрес;
host – часть url в формате «имя хоста:порт».
Пример PAC файла:
function FindProxyForURL(url, host)
{
return "PROXY proxy.example.com:8080; DIRECT";
}
Этот конфигурационный файл дает указание браузеру использовать прокси-сервер proxy.example.com для получения всех Web-страниц. Более подробное описание синтаксиса PAC-файлов можно найти в [3].
PAC-файлы могут использоваться как совместно с WPAD, так и обособленно, в этом случае в Интернет-браузере необходимо явно указать сетевой путь к данному файлу.
WPAD предоставляет пользователю возможность получения месторасположения PAC-файла одним из следующих способов:
При использовании WPAD к PAC-файлу предъявляются следующие требования:
Принцип работы WPAD
В Internet Explorer WPAD включен по умолчанию, что делает уязвимым к атакам огромное число пользователей, отдающих предпочтение данному браузеру, а также браузерам, импортирующим его настройки. По данным SpyLog за апрель 2009 г. Internet Explorer, Apple Safari и Google Chrome вместе используют 55% пользователей Рунета
Наиболее уязвимым местом в технологии WPAD является поиск месторасположения PAC-файла. Если злоумышленнику удается убедить клиента в том, что необходимый файл конфигурации находится на сетевом узле, подконтрольном атакующему, атаку можно считать состоявшейся.
Для успешной атаки злоумышленнику необходимо иметь:
В рамках данной статьи не будут рассматриваться атаки, основанные на внедрении в сеть ложного DHCP-сервера, так как такая атака позволяет полностью контролировать все настройки сетевой подсистемы клиента, в том числе и WPAD. Далее по тексту предполагается, что месторасположение PAC-файла в данной сети по DHCP не распространяется. Локальные файлы hosts и lmhosts будем считать недоступными для злоумышленника.
Система DNS поддерживает динамические обновления записей, что позволяет клиентам автоматически регистрировать свои имена и IP-адреса на DNS-сервере при входе в сеть или изменении IP-адресов с помощью сервера DHCP. Если в атакуемой зоне разрешены неаутентифицированные динамические обновления, то для регистрации записи достаточно одного специального DNS-пакета.
:
Сценарий атаки с использованием DNS-сервера
На схеме показан общий случай, во время атаки прокси-сервер злоумышленника и точка распространения PAC-файлов может находиться на одном и том же сетевом узле.
wpad.<атакуемый домен> IN A <IP-адрес злоумышленника>.
Примечания: Если DNS-сервер работает в составе домена Active Directory, возможна более безопасная конфигурация, позволяющая динамическое обновление записей только для аутентифицированных пользователей. Для успешной атаки в этом случае злоумышленнику необходимо иметь корректную учетную запись в атакуемом домене. [4]
Данный класс атак актуален только в сетях, имеющих доменную структуру, так как в сети на базе рабочих групп поиск PAC-файла при помощи запроса к DNS-серверу не используется. Атакам, описанным далее, подвержены как доменные, так и одноранговые сети.
Регистрация имен компьютеров, входящих в сеть, является штатной функцией WINS-сервера. Как и в случае с DNS-сервером регистрация осуществляется при помощи одного специального пакета.
Сценарий атаки с использованием WINS-сервера
Если месторасположение PAC-файла не найдено путем запроса к DNS- или WINS-серверам, согласно стандарту WPAD Web-клиенты делают широковещательный NetBIOS-запрос имени WPAD по всей подсети согласно сетевой маске.
Данный вектор атаки доступен, если у злоумышленника есть физический доступ к подсети клиента.
Сценарий атаки в доступной подсети
Описанный выше класс атак легко реализуется в большинстве сетей, где отсутствует строгая политика безопасности. Как пример можно привести домовые сети, сети небольших провайдеров, WiFi-интернет в кафе и торговых центрах, где WINS-серверы не используются, а NetBIOS-трафик не фильтруется на сетевых устройствах.
Помимо браузеров технологию WPAD для поиска прокси-сервера используют и ряд системных компонентов Microsoft:
Эти службы задействуют WPAD всегда независимо от настроек Internet Explorer.
Примечание: Windows Update и Crypto API передают только подписанные данные, поэтому не подвержены атакам класса «человек посередине». При организации одной из приведенных выше атак можно вызвать некорректную работу данных служб.
В бюллетене MS09-008 исправляются следующие уязвимости:
Несмотря на название, установка исправлений не вносит никаких изменений в сам процесс регистрации имен, некоторые коррективы вносятся только в процесс разрешения (resolving) DNS- и NetBIOS-имени соответственно. До поиска в базе DNS- и WINS-серверы выполняют поиск запрашиваемого имени по «черному списку». Если имя находится в списке, то клиенту возвращается код ошибки «имя не найдено», иначе продолжается штатная работа сервера. Внедрение «черных списков» только сужает потенциальный масштаб атаки, а именно, возможность использования злоумышленником собственных записей на DNS- и WINS-сервере, однако атака на доступную подсеть все равно может быть реализована. Специалисты Microsoft объясняют такое поведение заботой о клиентах, которые внедрили и активно используют технологию WPAD.
«Черные списки» хранятся в следующих ключах реестра:
Состав «черных списков» по умолчанию:
Для DNS-сервера - «wpad isatap»;
Для WINS-сервера - «WPAD WPAD. ISATAP».
Обратите внимание, что если на момент установки исправления в базе WINS или DNS существовали некоторые из вышеперечисленных записей, то они не добавляются в указанные списки.
«Черные списки» распространяются только на динамические записи, таким образом, у администратора есть возможность организовать работу WPAD путем регистрации статической записи в базах DNS и WINS соответственно.
Примечание: динамические записи добавляются в базу DNS- и WINS-сервера с помощью специального запроса регистрации, а статические – через консоль управления сервером.
Рассмотрим чуть подробнее имена, добавляемые в «черные списки». Именам WPAD посвящена вся данная статья. WPAD. (WPAD с точкой) используется компонентами Windows Updates и Crypto API, а ISATAP запрашивается для поиска маршрутизаторов, поддерживающих одноименный протокол. ISATAP (Intra-Site Automatic Tunnel Addressing Protocol) - протокол туннелирования пакетов IPv6 в пакетах IPv4, используемый для связи сегментов сети IPv6 через сегмент IPv4. Атаки с использованием имени ISATAP в статье не рассматриваются ввиду малой распространенности протокола IPv6.
В силу специфики уязвимостей более подверженными атакам являются сети, не использующие Web Proxy Auto Discovery, чем сети, где WPAD штатно работает. Для повышения уровня защищенности сети можно предпринять следующие действия:
В домене Active Directory существуют способы дополнительного повышения уровня безопасности:
Основным фактором, делающим атаки на WPAD такими опасными, является его повсеместное использование в конфигурации «по умолчанию». В настоящее время корпорация Microsoft активно пропагандирует подход Secure by Default (безопасность по умолчанию) как один из основополагающих принципов SDL (Security Development Lifecycle – цикл разработки безопасных приложений), однако конфигурация прокси-серверов в Internet Explorer служит ярким примером нарушения данного принципа.
О слабых сторонах протокола WPAD известно еще с 1999 года, однако он продолжает использоваться и по сей день. Во многом на это повлияло доминирующее положение Microsoft на рынке Интернет-браузеров, и даже отсутствие стандартизации не смогло приостановить распространение данной технологии.
В статье описаны лишь самые простые атаки на WPAD, но существуют и более трудоемкие, требующие от атакующего дополнительных мер по противодействию средствам защиты. Подмена IP-адреса в пакетах регистрации или временный вывод из строя корпоративного DNS-сервера может помочь обойти ряд ограничений по эксплуатации уязвимости. Выбирая защитные механизмы, сетевым администраторам необходимо учитывать существование довольно большого спектра возможных векторов атаки, а также тот факт, что исправления от Microsoft закрывают уязвимость лишь частично.
Слабые места в использовании WPAD до сих пор не устранены, а значит, у злоумышленников есть широкий простор для атакующих действий.
Возможно, пока вы читаете эту статью, ваш браузер ищет по сети волшебное имя WPAD
Об авторе:
От классики до авангарда — наука во всех жанрах