Слабкі сторони технології WPAD

У процесі аналізу щомісячних оновлень від Microsoft мою увагу привернув бюлетень MS09-008, а точніше, його частина, в якій фігурує ім'я WPAD. Цей бюлетень виправляє цілий ряд вразливостей в службах Microsoft DNS і Microsoft WINS, серед яких значиться "Вразливість реєстрації WPAD", проте це ім'я не вперше зустрічається в повідомленнях з безпеки. Вперше про слабкі сторони WPAD заговорили в 1999 р., в 2007 р. був опублікований широкий спектр проблем, пов'язаних з цією технологією, в тому ж році на конференції ShmooCon 2007 Кріс Пейджет (Chris Paget) представив практичні приклади експлуатації вразливостей WPAD. Зараз, через 10 років, Microsoft продовжує випускати заплатки, що закривають дірки даної технології, а питання про безпеку мереж, в яких застосовується WPAD, так і залишилося відкритим. Успішна атака на 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


Файл 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 в корпоративній мережі

Принцип роботи WPAD




Сценарії атак на Web Proxy Auto Discovery


У Internet Explorer WPAD включений за замовчуванням, що робить уразливим до атак величезну кількість користувачів, що віддають перевагу даному браузеру, а також браузерам, що імпортують його налаштування. За даними SpyLog за квітень 2009 р. Internet Explorer, Apple Safari та Google Chrome разом використовують 55% користувачів Рунету


Найбільш вразливим місцем в технології WPAD є пошук місця розташування PAC-файлу. Якщо зловмисникові вдається переконати клієнта в тому, що необхідний файл конфігурації знаходиться на мережевому вузлі, підконтрольному атакуючому, атаку можна вважати відбулася.


Для успішної атаки зловмисникові необхідно мати:



У рамках даної статті не будуть розглядатися атаки, засновані на впровадженні в мережу помилкового DHCP-сервера, так як така атака дозволяє повністю контролювати всі настроювання мережевої підсистеми клієнта, в тому числі і WPAD. Далі по тексту передбачається, що місце розташування PAC-файлу в даній мережі по DHCP не поширюється. Локальні файли hosts і lmhosts будемо вважати недоступними для зловмисника.


Атака з використанням DNS-сервера


Система DNS підтримує динамічні оновлення записів, що дозволяє клієнтам автоматично реєструвати свої імена та IP-адреси на DNS-сервері при вході в мережу або зміні IP-адрес за допомогою сервера DHCP. Якщо в атакується зоні дозволені нерозпізнаних динамічні оновлення, то для реєстрації запису достатньо одного спеціального DNS-пакета.


:

Сценарій атаки з використанням DNS-сервера


На схемі показаний загальний випадок, під час атаки проксі-сервер зловмисника і точка розповсюдження PAC-файлів може перебувати на одному і тому ж мережевому вузлі.



  1. Зловмисник реєструє на DNS-сервер наступний запис:

wpad. <атакується домен> IN A <IP-адрес злоумишленніка>.



  1. Клієнт запитує в DNS-сервера IP-адресу сайту з ім'ям wpad. <Домен>;

  2. DNS-сервер у відповідь на цей запит повертає IP-адресу зловмисника;

  3. Клієнт запитує PAC-файл (wpad.dat);

  4. Клієнт налаштовує браузер відповідно до PAC-файлом;

  5. Далі весь трафік клієнта проходить через проксі-сервер, контрольований зловмисником.

Примітки: Якщо DNS-сервер працює в складі домену Active Directory, можлива більш безпечна конфігурація, що дозволяє динамічне оновлення записів тільки для аутентіфіцированний користувачів. Для успішної атаки в цьому випадку зловмисникові необхідно мати коректну обліковий запис в атакується домені. [4]


Даний клас атак актуальний тільки в мережах, що мають доменну структуру, так як в мережі на базі робочих груп пошук PAC-файлу за допомогою запиту до DNS-сервера не використовується. Атакам, описаним далі, схильні як доменні, так і однорангові мережі.


Атака з використанням WINS-сервера


Реєстрація імен комп'ютерів, що входять в мережу, є штатною функцією WINS-сервера. Як і у випадку з DNS-сервером реєстрація здійснюється за допомогою одного спеціального пакету.

Сценарій атаки з використанням WINS-сервера


Атака в доступній підмережі


Якщо місце розташування PAC-файлу не знайдено шляхом запиту до DNS-або WINS-серверів, відповідно до стандарту WPAD Web-клієнти роблять широкомовний NetBIOS-запит імені WPAD по всій підмережі згідно мережевий масці.


Цей вектор атаки доступний, якщо у зловмисника є фізичний доступ до підмережі клієнта.

Сценарій атаки в доступній підмережі



Описаний вище клас атак легко реалізується в більшості мереж, де відсутня сувора політика безпеки. Як приклад можна навести будинкові мережі, мережі невеликих провайдерів, WiFi-інтернет в кафе і торгових центрах, де WINS-сервери не використовуються, а NetBIOS-трафік не фільтрується на мережевих пристроях.


Використання WPAD в службах Microsoft


Крім браузерів технологію WPAD для пошуку проксі-сервера використовують і ряд системних компонентів Microsoft:



Ці служби задіють WPAD завжди незалежно від налаштувань Internet Explorer.


Примітка: Windows Update і Crypto API передають лише підписані дані, тому не схильні до атак класу "людина посередині". При організації однієї з наведених вище атак можна викликати некоректну роботу даних служб.



Усунення "Уразливості реєстрації WPAD" від Microsoft


У бюлетені 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

Схожі статті:


Сподобалася стаття? Ви можете залишити відгук або підписатися на RSS , щоб автоматично отримувати інформацію про нові статтях.

Коментарів поки що немає.

Ваш отзыв

Поділ на параграфи відбувається автоматично, адреса електронної пошти ніколи не буде опублікований, допустимий HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

*

*