Ідентифікація брандмауерів
Майже кожен брандмауер має свої відмітні особливості. Тому за допомогою сканування портів, інвентаризації і збору ідентифікаційних маркерів зломщики можуть правильно визначити тип, версію і набір правил практично кожного брандмауера в мережі. Чому така важлива подібна ідентифікація? Як тільки вся ця інформація буде отримана, зломщик може приступати до її аналізу, пошуку вразливих місць і подальшого їх використання.
Пряме сканування
Найпростіший спосіб пошуку брандмауерів полягає в скануванні певних портів, використовуваних ними за умовчанням. Деякі сучасні брандмауери можна унікально ідентифікувати, виконавши просте сканування портів. Для цього необхідно лише знати, що саме ви хочете знайти. Наприклад, брандмауери Firewall-1 компанії Checkpoint чекають надходження запитів з TCP-портов 256, 257 і 258, а Proxy Server компанії Microsoft зазвичай прослуховує TCP-порты з номерами 1080 і 1745. Володіючи такою інформацією, пошук цих типів брандмауерів виявиться тривіальним, якщо скористатися сканером портів, таким як утиліта nmap.
nmap -n -vv -P0 -p256,1080,1745 192.168.50.1-60.254
Параметр -P0
відключає передачу тестових ICMP-пакетов перед скануванням. Це виявляється дуже важливим, оскільки багато брандмауерів не реагують на тих, що поступають ехо-запроси ICMP.
Щоб знайти всі проломи в захисті прикордонних пристроїв вашої мережі, як початківець, так і досвідчений зломщик удасться до сканування широкого діапазону портів. Проте найбільш небезпечні зловмисники постараються виконати сканування якомога більш непомітно. При цьому для того, щоб уникнути викриття, вони можуть скористатися будь-яким з численних прийомів, включаючи ping-прослушивание випадково вибраних адрес, довільних портів, а також використання помилкових вузлів і виконання розподіленого сканування.
Якщо ви сподіваєтеся, що система виявлення вторгнень
(IDS - Intrusion -> Detection System) зможе виявити подібні атаки, то оціните потенційну небезпеку ще раз. Більшість систем IDS настроєна таким чином, що вони здатні виявити лише найбільш "галасливе" або прямолінійне сканування портів. Якщо систему IDS не набудувати належним чином, більшість зловмисників залишаться абсолютно непоміченими. Сканування довільних портів можна реалізувати за допомогою сценарію
Perl.
Контрзаходи: захист від прямого сканування
Способи
запобігання скануванню портів брандмауера багато в чому збігаються з методами, розглянутими в розділі 2. Необхідно заблокувати спроби такого сканування на прикордонному маршрутизаторі або скористатися одним із засобів виявлення вторгнень (вільно поширюваним або комерційним). Проте і в цьому випадку не можна запобігти простому скануванню портів, оскільки за умовчанням більшість систем IDS не дозволяють виявити подібну діяльність. Отже перед їх використанням необхідно виконати відповідне налаштування.
Виявлення
Для
того, щоб безпомилково виявити факт сканування портів по випадковому закону або із застосуванням помилкових вузлів, потрібно тонко набудувати відповідну сигнатуру. Для отримання додаткової інформації з цього питання уважно вивчите документацію, що входить в комплект постачання використовуваної системи IDS.
Для того, щоб виявити сканування портів з попереднього прикладу з використанням системи Realsecure 3.0, потрібно додатково підвищити її чутливість, модифікувавши спеціальні параметри. Ми рекомендуємо внести наступні зміни.
1. Виберіть і набудуйте політикові Network Engine Policy.
2. Виберіть команду Port Scan і клацніть на кнопці Options.
3. У полі Ports внесіть значення 5.
4. У полі Delta задайте інтервал 60 секунд.
При використанні брандмауера Firewall-1 системи UNIX для виявлення спроб сканування можна скористатися утилітою Ланца Спітзнера. Як згадувалося в розділі 2, його сценарій alert.sh допоможе набудувати брандмауер компанії Checkpoint і здійснити моніторинг сканування портів, а при виявленні такої діяльності згенерує повідомлення, встановлене користувачем.
Запобігання
Для того, щоб запобігти скануванню портів брандмауера з Internet, потрібно заблокувати ці порти на маршрутизаторі, розташованому перед брандмауером. Якщо ці пристрої управляються вашим провайдером послуг Internet, то це питання доведеться погоджувати з ним. Якщо ж ви самостійно управляєте маршрутизатором, то для явного блокування спроб сканування скористайтеся наступним списком ACL компанії Cisco.
access-list 101 deny tcp any any eq 256 log! Блокування сканування
Firewall-1
access-list 101 deny tcp any any eq 257 log!
Блокування сканування Firewall-1
access-list 101 deny tcp any any eq 258 log! Блокування сканування
Firewall-1
access-list 101 deny tcp any any eq 1080 log!
Блокування сканування Socks
access-list 101 deny tcp any any eq 1745 log!
Блокування сканування
Winsock
Якщо ви заблокуєте порти Checkpoint (256-258) на прикордонних маршрутизаторах, то не зможете управляти брандмауером по Internet.
Адміністратор Cisco може без особливих проблем застосувати вищеперелічені правила. Потрібно просто перейти в режим редагування параметрів і ввести по черзі попередні рядки. Після цього необхідно вийти з режиму редагування і ввести команду write, щоб внесені зміни були внесені до конфігураційного файлу.
Крім того, на всіх маршрутизаторах у будь-якому випадку має бути задане правило очищення (якщо вони не перешкоджають надходженню пакетів за умовчанням), яке має той же сенс, що і приведена нижче операція.
access-list 101 deny ip any any log! Заборона і реєстрація будь-якого пакету, що
задовольняє приведеному списку ACL
Відстежування маршруту
Більш прихований і витончений метод пошуку брандмауерів в мережі полягає у використанні утиліти traceroute. Для пошуку кожного сегменту шляху до цільового вузла можна скористатися утилітою traceroute системи UNIX або аналогічною утилітою tracert.exe системи NT. Потім на підставі отриманої інформації можна зробити деякі логічні припущення. У версії утиліти traceroute з системи Linux є параметр -i, при вказівці якого для пошуку сегментів посилатимуться пакети ICMP, а не UDP-пакеты, використовувані за умовчанням.
[sm]$ traceroute -i 192.168.51.100
traceroute to 192.168.51.101 (192.168.51.100), 30 hops max, 40 byte
packets
1 attack-gw (192.168.50.21) 5.801 ms 5.105 ms 5.445 ms
2 gwl.smallisp.net (192.168.51.1)
3 gw2.smallisp.net (192.168.52.2)
13 hssi.bigisp.net (10.55.201.2)
14 seriall.bigisp.net (10.55.202.1)
15 192.168.51.101 (192.168.51.100)
На
особливу увагу заслуговує сегмент, передуючий цільовому вузлу (10. 55.202 .1). Майже напевно за цією адресою знаходиться брандмауер, проте для повної упевненості в цьому необхідно виконати деякі додаткові дослідження.
Попередня команда
надасть велику кількість інформації, якщо маршрутизатор, розташований між цільовим сервером і комп'ютером зломщика, відповідає на пакети, час життя яких, визначуване значенням TTL (Time-to-live), закінчилося. Проте деякі маршрутизатори і брандмауери настроєні таким чином, що вони не повертають lCMP-пакеты у відповідь на ICMP-, що поступили, і UDP-пакеты з минулим часом TTL. Все, що в даному випадку можна зробити, — це скористатися утилітою traceroute і подивитися на останній сегмент отриманого маршруту. Цей вузол може виявитися повнофункціональним брандмауером або, як мінімум, першим маршутізатором шляху, з якого почалося блокування пакетів з минулим часом TTL. У приведеному нижче прикладі відбулося блокування передачі ICMP-пакетов джерелу призначення. Як наслідок, дані про маршрутизатори, розташовані на шляху до цільового вузла далі за маршрутизатор client-gw.smallisp.net, у отриманій інформації відсутні.
1 stoneface (192.168.10.33) 12.640 ms 8.367 ms
2 gwl.localisp.net (172.31.10.1) 214.582 ms 197.992 ms
3 gw2.localisp.net (172.31.10.2) 2C6.627 ms 38.931 ms
4 dsl.localisp.net (172.31.12.254) 47.167 ms 52.640 ms
14 Atm6.LAX2.BIGISP.NET (10.50.2.1) 250.030 ms 391.716 ms
15 Atm7.SDG.BIGISP.NET (10.50.2.5) 234.668 ms 384.525 ms
16 client~gw.smallisp.net (10.50.3.250) 244.065 ms!X * *
17 * * *
18 * * *
Контрзаходи: захист від відстежування маршруту
Для
того, щоб запобігти отриманню інформації за допомогою утиліти traceroute, забороните передачу у відповідь пакетів на пакети з минулим часом TTL на всіх брандмауерах і маршрутизаторах, на яких це можливо. Проте пам'ятаєте про те, що повністю вирішити це питання можна далеко не завжди, оскільки багато маршрутизаторів можуть опинитися під управлінням вашого провайдера послуг Internet.
Виявлення
Спроби отримання маршрутів з використанням стандартних засобів можна виявити на межах мережі в процесі моніторингу ICMP- і UDP-пакетов із значенням TTL, рівним 1. Це можна здійснити за допомогою пакету Realsecure 3.0, вибравши ім'я Trace_ ROUTE серед параметрів безпеки Security Events політики Network Engine Policy.
Запобігання
Для того, щоб запобігти можливості відстежування маршрутів на межі мережі, маршрутизатори необхідно набудувати так, щоб вони не відправляли пакети у відповідь на повідомлення з часом TTL, рівним 0 або 1. На маршрутизаторах Cisco для цього можна скористатися наступним списком ACL.
access-list 101 deny ip any any 11 0 ! Час ttl закінчився
Проте краще всього повністю заблокувати передачу пакетів UDP на прикордонних маршрутизаторах.
Збір маркерів
Сканування
портів дозволяє визначити місцеположення брандмауерів, проте багато хто з них, подібно до продуктів компаній Checkpoint і Microsoft, не прослуховує порти, встановлені за умовчанням. Отже для підтвердження наявних відомостей потрібно отримати додаткові дані. В розділі 3 детально розглядалися методи отримання імен запущених застосувань і їх версій. Для цього необхідно підключитися до активних служб і витягувати пов'язані з ними ідентифікаційні маркери. Багато популярних брандмауерів надають всю необхідну інформацію відразу ж після установки з ними з'єднання. Багато проміжних вузлів інформують зловмисника про те, що вони є брандмауерами, а деякі з них додатково повідомляють свій тип, а також версію. Наприклад, при підключенні за допомогою утиліти netcat до порту 21 (FTP) вузла, який, очевидно, є брандмауером, можна отримати деяку важливу інформацію.
C:\>nc -v -n 192.168.51.129 21
(UNKNOWN) [192.168.51.129] 21 (?) open
220 Secure Gateway FTP server ready.
Повідомлення Secure Gateway FTP server ready дозволяє зробити вивід про те, що ми маємо справу із старим пристроєм Eagle Raptor. Подальше підключення до порту 23 (telnet) надає ще один доказ цього припущення.
C:\>nc -v -n 192.168.51.129 23
(UNKNOWN) [192.168.51.129] 23 (?) open
Eagle Secure Gateway.
Hostname:
І нарешті, якщо ви все ще не зовсім упевнені в тому, що досліджуваний вузол є брандмауером, можна підключитися за допомогою утиліти netcat до порту 25 (SMTP). Після цього всі сумніви розсіються остаточно.
C:\>nc -v -n 192.168.51.129 25
(UNKNOWN) [192.168.51.129] 25 (?) open
421 fw3.acme.com Sorry, the firewall does not
provide mail service to you.
Як видно з приведених прикладів, в процесі ідентифікації брандмауерів надзвичайно важливою може опинитися інформація про маркери. Після її аналізу можна скористатися добре відомими вадами або широко поширеними помилками в налаштуванні.
Контрзаходи: захист від збору маркерів
Для
того, щоб уникнути просочування інформації, необхідно обмежити кількість даних, що надаються по зовнішніх запитах. До кожного маркера можна додати також повідомлення про юридичну відповідальність, а, крім того, всі спроби отримання цієї інформації повинні реєструватися в системних журналах. Специфіка зміни маркерів, використовуваних за умовчанням, сильно залежить від типу використовуваного брандмауера, так що перед виконанням подібних дій уважно прочитайте документацію або проконсультуйтеся з виробником.
Запобігання
Для того, щоб запобігти можливості збору маркерів зловмисником і, як наслідок, отриманню ним докладній інформації про брандмауер, можна змінити відповідні конфігураційні файли. Конкретні рекомендації залежать від типу брандмауера. Наприклад, для брандмауерів Eagle Raptor можна модифікувати маркери FTP і telnet, змінивши файли повідомлень з подіями дня (message-of-the day) ftp.motd і telnet.motd.
|