Сканування
Операційна система
Windows 2000 прослуховує список портів, багато хто з яких не був задіяний в Windows NT 4 і з'явилися лише в цій версії операційної системи. У таблиці. 6.1 приводиться список деяких портів, що прослуховуються за умовчанням контроллером домена Windows 2000. Кожен з них є потенційною точкою входу в систему.
Список номерів портів TCP і UDP, використовуваних службами і програмами компанії Microsoft, можна знайти в переліку ресурсів за адресою http://www.microsoft.com/windows2000/ library/resouces/reslcit/ samplechapters/default.asp.
Таблиця
6.1. Список портів, що прослуховуються за
умовчанням контроллером домена Windows 2000
Порт
|
Служба
|
TCP 25
|
SMTP
|
TCP 21
|
FTP
|
Tcp/udp 53
|
DNS
|
TCP 80
|
WWW
|
Tcp/udp 88
|
Kerberos
|
TCP 135
|
Rpc/dce Endpoint mapper
|
UDP 137
|
Служба імен NETBIOS
|
UDP 138
|
Служба дейтаграмм NETBIOS
|
TCP 139
|
Служба сеансів NETBIOS
|
Tcp/udp 389
|
LDAP
|
TCP 443
|
HTTP поверх Ssl/tls
|
Tcp/udp 445
|
Microsoft Smb/cifs
|
Tcp/udp 464
|
Kerberos kpasswd
|
UDP 500
|
IKE (Internet Кеу Exchange) (згідно протоколу Ipsec)
|
TCP 593
|
HTTP RPC Endpoint mapper
|
TCP 636
|
LDAP поверх Sslдls
|
TCP 3268
|
Глобальний каталог служби активних
каталогів
|
TCP 3269
|
Глобальний каталог служби активних
каталогів поверх SSL
|
TCP 3389
|
Термінальний сервер Windows
|
Контрзаходи: відключення служб і блокування портів
Якнайкращий спосіб запобігання всіляким атакам — це блокування доступу до цих служб як на рівні мережі, так і на рівні окремих комп'ютерів.
Зовнішні пристрої контролю доступу до мережі (перемикачі, маршрутизатори, брандмауери і так далі) потрібно конфігурувати так, щоб присікти будь-які спроби доступу ззовні до всіх вказаних портів, (Зазвичай це робиться таким чином. Відключаються всі протоколи для всіх доменів, а потім підключаються тільки деякі служби для вибраних доменів.) При цьому, звичайно, необхідно пам'ятати про очевидні виключення: порт 80 або 443 потрібно залишити для роботи Web-серверов. Жоден з цих портів не має бути доступний за межами мережі, і лише деякі можуть надаватися для використання перевіреними користувачами внутрішніх підмереж. Особливо це стосується контроллера домена. На це є дві причини.
- В розділі 3 було показано, як можна
підключитися до портів TCP 389 і TCP 3268 через службу LDAP і глобальний
каталог відповідно і отримати дані з сервера.
- Як наголошувалося в розділі 3, служба сеансів NETBIOS Session Service, що працює через порт TCP 139, є одним з джерел просочування інформації і потенційного злому мережі під управлінням Windows NT. Більшість дій, описаних в розділі 5, виконуються виключно через з'єднання по протоколу NETBIOS. Дані операційної системи Windows 2000 можуть також бути отримані через порт TCP 445.
He забудьте прочитати розділ " Відключення служб Netbios/smb в Windows 2000" нижче в цьому розділі.
Має сенс
також захистити порти, що знаходяться в стані очікування запитів, окремих комп'ютерів. Такий "захист в глибину" значно утрудняє можливість мережевих атак. Класична рада в зв'язку з цим зводиться до завершення роботи всіх непотрібних служб за допомогою програми services.msc і їх відключенню. Особливу увагу слід приділити котроллерам доменів під управлінням Windows 2000: коли контроллеру домена делегуються права сервера (Server) або розширеного сервера (Advanced Server) за допомогою команди dcpromo.exe, на нім автоматично встановлюються служба активного каталога, DNS і сервер DHCP, а також відкриваються відповідні порти. Контроллери доменів — це найважливіші компоненти мережі, тому вони вимагають особливого звернення. Більшість додатків, файлові служби і служби друку краще встановлювати на інших комп'ютерах. Прагнення до мінімуму — перший принцип безпеки.
Щоб обмежити доступ до портів окремих комп'ютерів, можна використовувати перевірені часом фільтри для протоколу Tcp/ip. Доступ до цих параметрів можна отримати через вкладку Options діалогового вікна, що відкривається за допомогою команди Network and
Dial-up Connections>properties>lnternet Protocol (Tcp/ip) Properties>advanced. Проте тут збереглися старі недоліки. Фільтри протоколу Tcp/ip застосовуються відразу до всіх адаптерів. Їх установка приведе до неможливості завантаження даних, ініційованого навіть легітимними з'єднаннями, і зробить неможливим звичайний перегляд Web-страниц в броузере системи. Крім того, для коректного набуття чинності внесених змін потрібно перенавантажувати систему.
Проведене авторами тестування Windows 2000 показало, що установка фільтрів Tcp/ip не блокує ехо-пакетов ICMP (протокол 1), навіть якщо відключити всі протоколи IP, окрім 6 (TCP) і 17 (UDP).
Фільтри Ipsec
Для установки фільтрів на порти окремих комп'ютерів краще використовувати фільтри протоколу Ipsec. Ці фільтри з'явилися побічним результатом нової реалізації протоколу Ipsec для Windows 2000 і були з успіхом використані командами розробників мереж Openhack і windows2000test.com. Фільтри Ipsec обробляють пакети в стеку мережі і попросту викидають ті з них, які не задовольняють характеристикам фільтру. На відміну від фільтрів Tcp/ip фільтри Ipsec можна застосовувати до окремих інтерфейсів. Крім того, вони блокують запити ICMP (проте вони не настільки "тонкі", щоб блокувати окремі підтипи запитів ICMP, скажімо, луна, відгуки на ехо-запроси, тимчасові мітки і так далі). Для набуття чинності фільтрів Ipsec перезавантаження не потрібне (хоча зміна параметрів фільтрів може привести до розриву існуючих з'єднань Ipsec). Такі фільтри забезпечують вирішення проблеми для сервера і непридатні як засіб забезпечення функціональності брандмауера для робочих станцій, оскільки подібно до фільтрів Tcp/ip вони блокуватимуть завантаження інформації, ініційоване навіть допустимими з'єднаннями (якщо не будуть відкриті всі порти з вищими номерами).
Фільтри Ipsec можна створити за допомогою аплета Administrative Tools^local Security Policy (secpol .msc). Клацніть правою кнопкою на елементі Ipsec Policies On Local Machine в лівій панелі вікна, а потім виберіть з контекстного меню команду Manage IP Filter Lists And Filter Actions.
Для управління
фільтрами Ipsec автор книги вважає за краще використовувати утиліту командного рядка ipsecpol.exe. Її можна застосовувати при створенні сценаріїв, а, крім того, користуватися нею набагато простіше, ніж утилітою
управління політикою Ipsec з графічним інтерфейсом. Утиліту ipsecpol.exe можна знайти за адресою
http:/www.microsoft.com/technet/security/tools.asp серед засобів конфігурації безпеки Windows 2000 Internet Server. Наступні команди утиліти ipsecpol. ехе дозволяють залишити відкритим на даному комп'ютері тільки порт 80.
ipsecpol \\имя_компыотера -w REG -p "Web" -о
ipsecpol \\имя_компьютера -х -w REG -p "Web"-r
"Blockall" -n BLOCK -f 0+* ipsecpol
\\імл_комльютера -х -w REG -p "Web" -r
"OKHTTP" -n PASS -f 0:80+*::tcp
Дві останні команди
створюють політикові Ipsec під назвою Web, що включає два правила фільтрації. Перше з них, Blockall, блокує всі протоколи повідомлень, що поступають і витікаючих, для даного комп'ютера і всіх інших комп'ютерів, а друге, OKHTTP, вирішує трафік через порт 80 даного і решти всіх комп'ютерів. Якщо потрібно вирішити використання утиліти ping, або інших програм, що працюють на базі протоколу ICMP (чого ми настійно не рекомендуємо робити без особливої необхідності), то в політику Web можна включити таке правило.
ipsecpol \\имя_компыотера -х -w REG -p "Web" -r "OKICMP" -n PASS -f
0+*::icmp
В даному прикладі політика встановлюється для всіх адрес, проте її можна легко модифікувати на випадок однієї IP-адреса за допомогою ключа -f (таблиця. 6.2) і направити дію цього правила на один інтерфейс. Якщо система конфігурована за допомогою цього прикладу, то при скануванні портів буде видний тільки порт 80. Після відключення політики всі порти знову стануть доступними.
Опис всіх аргументів, використаних в прикладі, приводиться в таблиці. 6.2 (для отримання повної інформації про можливості утиліти ipsecpol запустите команду ipsecpol -?).
Таблиця 6.2. Параметри утиліти ipsecpol, використовувані для фільтрації трафіку через комп'ютери під управлінням Windows 2000
Параметр
|
Опис
|
-w REG
|
Переводить
утиліту ipsecpol в статичний режим (static mode), при якому виконується запис політики у вказане місцеположення (на відміну від використовуваного за умовчанням динамічного режиму, який діє тільки під час функціонування служби Policy Agent). Параметр REG визначає, що політика буде записана в системний реєстр і підходить для Web-серверов, що окремо стоять (інший параметр, DS, дозволяє записувати політику в каталог)
|
-P
|
Задає довільне ім'я (наприклад, web) для даної політики. Якщо вже існує політика з таким ім'ям, то дане правило додається до неї. Наприклад, в третьому рядку до політики Web додається правило ОШТТР
|
-r
|
Задає довільне ім'я для правила. Якщо політика вже включає правило з таким ім'ям, то нове правило його замінить
|
-n
|
У статичному режимі може приймати одне з трьох значень: BLOCK, PASS і IN PASS. Конкретні значення параметра описуються нижчим
|
BLOCK
|
Виключає решту значень параметра -п і створює фільтри блокування. Ця команда аналогічна вибору перемикача Block в програмі управління політикою Ipsec з графічним інтерфейсом
|
PASS
|
Виключає
решту значень параметра -п і створює фільтри, що забезпечують передачу даних через порти. Ця команда аналогічна вибору перемикача Permit в програмі управління політикою Ipsec з графічним інтерфейсом
|
-f
|
Задає список,
що складається з одного або декількох IP-фильтров. Правила фільтрації задаються в наступному форматі, що отримав назву специфікації фільтру (filterspec):
А . B . C . D/ маска: порт=а .B.C. D/ маска : порт:ipprotocol
де в лівій частині рівності завжди задається адреса джерела, а в правій — адреса одержувача. Якщо знак = замінити на символ +, то будуть створений два дзеркальні (mirrored) фільтри, поодинці в кожному напрямі. Маску і номер порту задавати необов'язково. Якщо вони не вказані, то як маска підмережі використовується 255. 255. 255.
255, а як номер порту — будь-який порт. Комбінацію А . у .
C . D/ маска можна замінити наступними символами:
0 задає
адресу локальної системи
* позначає довільну адресу
ім'я ONS (відмітимо, що множинний дозвіл ігнорується).
Тип IP-протокола
(наприклад, ICMP) задавати необов'язково. Якщо він не вказаний, то мається на увазі будь-який IP-протокол. Щоб задати конкретний IP-протокол, перед його назвою необхідно точно вказати номер порту або символ : :
|
-x
|
Необов'язковий параметр, активізуючий політику у разі її запису в системний реєстр локальної машини (він використовувався в попередньому прикладі при визначенні першого правила. По якихось причинах цей параметр працює тільки при створенні першого фільтру політики)
|
-у
|
Необов'язковий параметр, що відключає
політику у разі її запису в системний реєстр локальної машини
|
-о
|
Необов'язковий
параметр, що видаляє політику, ім'я якої задане параметром -р. (Відмітимо, що при цьому віддаляються всі аспекти вказаної політики. Його не слід використовувати, якщо інші політики посилаються на об'єкти даної політики)
|
Слід
зазначити, що фільтри Ipsec не блокують порт 500 (UDP) або, на контроллерах домена Win 2000, порт 88 (Tcp/udp), використовувані для аутентифікації Ipsec (порт 88 застосовується протоколом Kerberos, а 500 — для обміну ключами IKE (Internet Кеу Exchange)). Сервісний пакет Service Pack 1 включає новий параметр реєстру, що дозволяє закрити порти Kerberos шляхом відміни привілеїв для драйвера Ipsec:
Hklm\system\currentcontrolset\
Services\ipsec\nodefaultexempt
Type: DWORD
Max: 1
Min: 0
Default: 0
Трафік IKE завжди був привілейованим, і параметри системного реєстру на нього не впливали. Якщо ж цей параметр реєстру приймає значення 1, то всі "пільги" для протоколів Kerberos і RSVP відміняються за умовчанням.
Автор висловлює подяку Майклу Ховарду (Michael Howard) з групи забезпечення безпеки Windows 2000 за допомогу у вивченні команди ipsecpol і нового параметра системного реєстру.
Оскільки
утиліта ipsecpol використовує синтаксис командного рядка, з нею потрібно звертатися дуже обережно. У розглянутому вище прикладі передбачається, що список фільтрів обробляється зверху вниз. Проста зміна порядку проходження записів в списку може привести до неправильної роботи фільтрів. Крім того, утиліта не дозволяє задати діапазон портів для джерела або призначення. Отже не дивлячись на значні поліпшення, що забезпечуються фільтрами Ipsec в порівнянні з фільтрами Tcp/ip, з ними потрібно звертатися дуже акуратно. Інакше бажання блокувати порти так і залишиться лише бажанням. Відзначимо ще декілька особливостей, виявлених процесі інтенсивного тестування утиліти
ipsecpol.
- Для відміни політики іноді доводиться
відключати її за допомогою ключа -у до або після її видалення з
використанням параметра -о. Авторові доводилося стикатися з ситуацією,
коли навіть видалена політика продовжує діяти до моменту її відключення.
- При зміні політики необхідно
користуватися або тільки утилітою командного рядка ipsecpol, або
виключно програмою з графічним інтерфейсом. Якщо політика була створена
за допомогою програми ipsecpol, а потім відредагована в іншій програмі,
то при її роботі можливі збої і проломи в захисті.
- Не забувайте видаляти непотрібні фільтри, щоб уникнути конфліктів. Це завдання краще виконувати за допомогою програми з графічним інтерфейсом, оскільки в ній відображається список всіх існуючих фільтрів.
|