“Помилився MAC-Адресою”


Багато хто впевнені, що убезпечити комп’ютер від вторгнення можна тільки за допомогою засобів операційної системи. Це не зовсім так. Адже мережні пакети, перш ніж потрапити на ваш ПК, проходять через різні пристрої.
У локальній мережі взаємне розпізнавання комп’ютерів відбувається по декількох ознаках. Причиною тому - тривала еволюція мережних технологій і протоколів. Втім, на сьогодні TCP/IP, будучи найбільш гнучким і універсальним протоколом мережних комунікацій, практично витиснув своїх конкурентів (NetBEUI, IPX).
Одним з переваг TCP/IP є інкапсуляція:
властиво, сам IP-Пакет, як мотрійка, складається з декількох частин, вкладених друг у друга. Це дозволяє передавати по мережі всілякі дані, не піклуючись про те, щоб мережні пристрої були знайомі з їхнім форматом. У місці призначення така мотрійка розкривається - і додаток витягає звідти призначені для нього дані.
Така архітектура пакета, хоча і є досить ефективної, таїть певну погрозу безпеки. Щоб розібратися із цим питанням докладніше, розглянемо, як відбувається впізнавання одного ПК іншим.

По ім’ю
У мережах Windows кожний комп’ютер має унікальне ім’я - “smb name” або “nebios name”, що ви задаєте самостійно разом з ім’ям групи. Доступ до ресурсів мережі Windows відбувається відповідно до їхніх імен. А як відбувається прив’язка мережного ім’я комп’ютера до IP-Адреси його мережної карти? При завантаженні ОС відбувається реєстрація комп’ютера: Microsoft придумала для цього спеціальний протокол, відповідно до якого в мережному сегменті є комп’ютер, що зберігає таблицю імен ресурсів у мережі. Називається такий хост “головним браузером мережі”. Кожний комп’ютер звертається до такого браузера й говорить: “Я комп’ютер VASYA. Моя адреса 192.168.0.43″. При випадковому збігу імен або адрес опреационная система автоматично оключит мережні функції на неправильно сконфигурированном ПК.

По IP-Адресі
На більше низькому рівні (згадаємо “мотрійку”) адресація ресурсів буде вироблятися по IP-Адресі. Ім’я комп’ютера - занадто загальне поняття, що не дає можливості задіяти всі функції транспортного протоколу. Наприклад, IP-Адресація позвляет використовувати маршрутизацію пакетів з однієї мережі в іншу або використовувати засоби фільтрації (брандмауер). Як відбувається визначення IP-Адреси комп’ютера по його ім’ю, ви вже знаєте. А якщо вже доводилося інсталювати Windows, те знаєте також, що адреса мережної карти можна ввести або вручну, або за допомогою автоматичних засобів. Однак IP-Адреса - це ще не останній рівень мережної адресації.

По фізичній адресі мережної карти
Кожна мережна карта маркірується унікальним у межах мережі MAC-Адресою - 12-значным шестнадцатеричным числом. Перш ніж відправити пакет у локальну мережу, драйвер мережної карти визначає по IP-Адресі крапки призначення фізична адреса мережної карти комп’ютера адресата й позначає пакет цим MAC-Адресою. З іншої сторони мережі мережна карта, що одержала пакет зі своїм MAC-Адресою, приймає його й пропускає по ланцюжку: драйвер - операційна система - додаток.

Яким образом можна довідатися MAC-Адреса за адресою IP? Для цього теж існує відповідний протокол - ARP (Adress Resolution Protocol). Працює він по методу широкомовного розсилання. Коли потрібно довідатися фізичну адресу мережної карти, ініціюється посилка пакета із запитом: “А який MAC-Адреса в ресурсу з адресою 192.168.0.xxx?”. Відповідній цій адресі комп’ютер поверне відповідь із запитуваною фізичною адресою. Далі певне в такий спосіб співвідношення ” IP-Адреса - MAC-адреса” буде занесене в ARP-Таблицю мережної карти, і наступний широкомовний запит буде вже не потрібний.

Захист IP-Адрес

Як бачите, ідентифікація відбувається багато в чому на довірчій основі. Спочатку визначається відповідність мережного ім’я й IP-Адреси. На цьому етапі можливе шахрайство: комп’ютер зловмисника може зареєструватися під чужим ім’ям, а може й просто ввести ПК, инциирующий запит smb-ім’я, в оману, відіславши йому своя адреса. У результаті безліч мережних з’єднань буде встановлено з підробленим комп’ютером.

Така атака зветься “людин у середині”. Вона стає можливої в результаті підробки IP-Адреси, а її зміст у тім, що між комп’ютерами, що спілкуються по мережі, вклинюється - непомітно для обох - хост хакера. Якщо ви збираєтеся убезпечити свою мережу від злому, то на першому етапі повинне стояти забезпечення правильної відповідності Windows-Імен і мережних адрес.

Взагалі, система стандартів описує чотири типи мережних вузлів по типі дозволу адрес. Вузли “b” і “m” використовують для цього широкомовні розсилання, а тому становлять потенційну погрозу безпеки. Інші вузли - “p” і “h” - використовують захищені механізми для визначення адрес. Ці механізми включають звертання до сервера WINS і використання файлу LMHOSTS. Тип вузла даного комп’ютера можна перевірити в ключі реєстру
Hkey_Local_Machine\System\CurrentControlSet\Services\Vx\MSTCP\n odeType:
° 1 - b-вузол;
° 2 - p-вузол;
° 4 - m-вузол;
° 8 - h-вузол.

Кращий спосіб уникнути проблем з підміною IP-Адрес - завести в мережі сервер Windows-Імен. У такому випадку комп’ютер-клієнт буде реєструвати своє ім’я на такому сервері - і всі інші ПК не будуть користуватися широкомовним запитом, а стануть звертатися прямо до сервера й одержувати в нього потрібну інформацію. На малюнку нижче показано, як настроїти свій комп’ютер на роботу із сервером імен.

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

Ще один спосіб уникнути проблем з дозволом імен - використовувати в мережі DNS-Сервер і позбутися від клієнтів Win9x. У системах Windows 2000/XP можна задіяти сервер інтернет-імен для іменування хостов у мережі. Правда, у цьому випадку можна зштовхнутися з іншою проблемою - “штормом udp-екетов”. Така атака заснована на неможливості перевірити правильність повернутого сервером DNS відповіді. Так що з погляду безпеки переважніше використовувати WINS.

Адреси мережних карт під погрозою

Ми говорили, що на самому нижньому рівні адресації лежить фізична адреса мережної карти. Погано те, що в той час, коли драйвер мережної карти спробує визначити MAC-Адреса мережного пристрою, щоб підписати пакет, будуть задіяні довірчі відносини. А саме: ARP-Протокол.

чи Можна методами, аналогічними тим, які використовують “p”- і “h”-вузли, зробити роботу протоколу ARP безпечної? Відповідь негативний. На сьогоднішній момент немає навіть спроб створити щось на зразок сервера MAC-Адрес. З іншого боку, існують ще деякі (більше заморочливі, чим використання централизированного механізму) способи підвищення безпеки мережі. Головні можливості закладені в системній утиліті arp, що поставляється з ОС Windows. За допомогою цієї утиліти можна жорстко задати таблицю ARP-Адрес. Тобто системний адміністратор може написати скрипт (начебто того, що наведено нижче), щоб комп’ютер хакера не зміг у результаті широкомовного запиту надіслати свій MAC-Адреса для іншого IP-Адреси:

rem очищаємо всю таблицю
arp -d *
rem жорстко задаємо mac-адреси
arp -s 192.168.0.1 cc-dd-e1

arp -s 192.168.0.9 cc-dd-e9

На жаль, такий скрипт потрібно буде прописати на кожному хосте. А якщо в якому-небудь комп’ютері ви поміняєте мережну картку або її IP-Адреса, прийде зробити відповідні зміни на всіх комп’ютерах мережі. Чи згодні ви платити таку ціну за безпеку? До речі, це ще не все…

Липові фізичні адреси

На самому початку розвитку локальних мереж була почата спроба створити унікальну ідентифікацію мережних пристроїв по їх апаратному (MAC) коду. Кожний виробник мав свій діапазон таких адрес і стежив, щоб мережні пристрої з однаковим аппартным адресою в одній локальній мережі не зустрічалися.

Здавалося б, при такій системі фізична адреса є досить надійною ознакою ідентифікації пристрою в мережі. Але це не так. В архітектурі комп’ютерів IBM будь-яка апаратна змінна виглядає як комірка пам’яті, що може бути підмінена програмно. Так можна поміняти й MAC-Адреса своєї мережної карти. Деякі драйвери дозволяють зробити це, просто задавши відповідне значення в діалозі; для інших випадків варто задіяти програмні інструменти зломщика.

Втім, висновок залишається тим же: навіть якщо вам удалося забезпечити адекватне визначення соответсвий “ім’я ресурсу - його IP-Адреса - фізична адреса”, у хакера однаково залишається ще один козир. Причому з погляду системи підміна MAC-Адреси є самої небезпечної - адже це, можна сказати, паспорт мережного пристрою, його унікальний ідентифікатор. В ОС немає можливості перевірити правильність того або іншого MAC-Адреси, на відміну від правильності ім’я ресурсу або його IP-Адреси.

Що ж почати?

Комутатор як основа мережної безпеки

Ми прийшли до висновку, що забезпечити безпека мережі одними тільки програмними методами неможливо. Основою, базисом, на який будуть опиратися засобу захисту ОС, повинне стати мережне встаткування.

Сьогодні в гнітючому числі випадків локальні мережі будуються з використанням комутаторів (switch). Цей пристрій має ряд корисних властивостей, які роблять локальну мережу більше ефективної й безпечної. По-перше, комутатор відсилає мережні пакети за принципом ” крапка-крапка” - тобто вони не попадають у загальний цикл, де можуть бути проаналізовані хакером. По-друге, у нього є власна таблиця ARP - таблиця фізичних і IP-Адрес. Заповнюється вона автоматично: як тільки комп’ютер включається, він реєструється в мережі - і комутатор використовує дану інформацію для формування таблиці.

Що це дає? Припустимо, комп’ютеру потрібно довідатися фізичну адресу ресурсу з IP 192.168.0.1. Він формує відповідний широкомовний запит і відсилає його в мережу. Комутатор перехоплює запит і, використовуючи свою таблицю, відсилає його одному лише комп’ютеру з адресою 192.168.0.5. Хост хакера залишається на голодному пайку. У такий спосіб комутатор, припиняючи широкомовні розсилання, значно збільшує надійність мережних з’єднань.

А як бути з MAC-Адресами? Дійсно, у зломщика залишається можливість підміни цього ідентифікатора. І отут самий час помітити, що комутатори бувають керованими й не керованими. Саме останні придбали - завдяки своїй ціні - широке поширення. Всі дані, що ставляться до мережних адрес, не керованими комутаторами заповнюються автоматично. Крім того, ці свитчи не мають у своєму розпорядженні методи контролю MAC-Адрес.

Так що, якщо необхідно забезпечити безпеку на найвищому рівні, варто зупинити свій вибір на керованому комутаторі. Крім іншого, таке пристрій дозволяє прив’язати MAC-Адреса сетвой карти до певного порту комутатора. Наприклад, можна вказати, що мережна карта з адресою 00-a0-00-00-00-e1 підключена до п’ятого порту. А це зв’язує руки зломщикові - адже пакети, що відправляються на певну фізичну адресу, будуть доставлені потрібному комп’ютеру. При такій схемі принцип безпеки мережі виглядає так: за допомогою WINS забезпечуємо правильний дозвіл IP-Адреси по ім’ю ресурсу, комутатор (керований і не керований) забезпечує визначення MAC-Адреси по його IP, і, нарешті, керований комутатор прив’язує відповідний MAC-Адреса до потрібного комп’ютера.



Leave a Reply

You must be logged in to post a comment.