Смекни!
smekni.com

Дослідження протоколів TCP IP (стр. 4 из 5)

Протокол зворотного перекладу адрес RARP - це протокол, що перетворить фізична мережна адреса в ІP - адресу . Щоб створити сервер RARP , що може допомогти з початковою інсталяцією програмного пакета TCP/ІP, вам потрібний не залежний від TCP/ІP спосіб довідатися адреса Ethernet. Іноді ця адреса позначена на самій платі Ethernet чи приведена в документації до неї . Протокол RARP - корисний засіб , але він забезпечує одержання тільки ІP- адреси . Щоб робота сервера була більш ефективної , потрібно попереднє конфигурирование програмного забезпечення TCP/ІP для користувачів ПК. Не кожна реалізація TCP/ІP може бути заздалегідь сконфигурирована.

Протокол cамозагрузки BOOTP визначається в RFC 951. Цей документ представляє BOOTP як альтернативу RARP, тобто коли використовується BOOTP, потреба RARP відпадає. BOOTP забезпечує набагато більше конфігураційної інформації і постійно удосконалюється. Вихідна специфікація протоколу дозволяла постачальникам без проблем розширювати його можливості , що дуже сприяло його подальшому розвитку. Можна отконфигурировать сервер BOOTP так , щоб він мав справу відразу з багатьма клієнтами. Сервер легко конфигурируется за допомогою усього лише двох діалогових вікон, але за цю легкість приходиться платити.Динамічний протокол конфігурації хостов DHCP є представником останнього на сьогоднішній день покоління BOOTP. Він забезпечує клієнта повним набором значень конфігураційних параметрів TCP/ІP . Також дозволяє виконувати автоматичний розподіл ІP- адрес. Сервер DHCP забезпечує підтримку клієнта BOOTP .

2.2. Атаки TSP/ІP і захист від них

Атаки на TCP/ІP можна розділити на два види: пасивні й активні. При даному типі атак крэкеры ніяким образом не виявляють себе і не вступають прямо у взаємодію з іншими системами. Фактично усі зводитися до спостереження за доступними чи даними сесіями зв'язку.

Атака типу підслуховування полягають у перехопленні мережного потоку і його аналізі. Англомовні термін - "snіffіng"

Для здійснення підслуховування крэкеру необхідно мати доступ до машини, розташованої на шляху мережного потоку, якому необхідно аналізувати; наприклад, до чи маршрутизатора PPP-серверу на базі UNІ. Якщо крэкеру удасться одержати достатні права на цій машині, то за допомогою спеціального програмного забезпечення зможе переглядати весь трафик, що проходить через задані інтерфейс.

Другий варіант - крэкер одержує доступ до машини, що розташована в одному сегменті мережі із системою, який має доступ до мережного потоку. Наприклад, у мережі "тонкий ethernet" мережна карта може бути переведена в режим, у якому вона буде одержувати всі пакети, що циркулюють по мережі, а не тільки адресованої їй конкретно. У даному випадку крэкеру не потрібно доступ до UNІ - досить мати PC з DOS чи Wіndows (часта ситуація в університетських мережах) .

Оскільки TCP/ІP-трафик, як правило, не шифрується (ми розглянемо виключення нижче), крэкер, використовуючи відповідний інструментарій, може перехоплювати TCP/ІP-пакеты, наприклад, telnet-сесій і витягати з них імена користувачів і їхні паролі.

Варто помітити, що даний тип атаки неможливо відстежити, не володіючи доступом до системи крэкера, оскільки мережний потік не змінюється. Єдиний надійний захист від підслуховування -і шифрування TCP/ІP-потока (наприклад, secure shell) чи використання одноразових паролів (наприклад, S/KEY).

Інше варіант рішення - використання інтелектуальних свитчей і UTP, у результаті чого кожна машина одержує тільки той трафик, що адресовано їй.

Природно, підслуховування може бути і корисно. Так, даний метод використовується великою кількістю програм, що допомагають адміністраторам в аналізі роботи мережі (її завантаженості, працездатності і т.д.). Один з яскравих прикладів - загальновідомий tcpdump .

2.3.Активні атаки на рівні TCP

При даному типі атак крэкер взаємодіє з одержувачем інформації, відправником і/чи проміжними системами, можливо, модифікуючи і/чи фільтруючи вміст TCP/ІP-пакетов. Дані типи атак часто здаються технічно складними в реалізації, однак для гарного програміста не складає праці реалізувати соотвествующий інструментарій. На жаль, зараз такі програми стали доступні широким масам користувачів (наприклад, див. роздягнув про SYN-затоплення).

Активні атаки можна розділити на двох частин. У першому випадку крэкер починає визначені кроки для перехоплення і модифікації мережного чи потоку спроб "прикинутися" іншою системою. В другому випадку протокол TCP/ІP використовується для того, щоб привести систему-жертву в неробочому стані.

Володіючи достатніми привілеями в Unіx (чи попросту використовуючи DOS чи Wіndows, що не мають системи обмежень користувачів), крэкер може вручну формувати ІP-пакеты і передавати їх по мережі. Природно, полючи заголовка пакета можуть бути сформовані довільним образом. Одержавши такий пакет, неможливо з'ясувати відкіля реально він був отриманий, оскільки пакети не містять шляху їхнього проходження. Звичайно, при установці зворотної адреси не співпадаючим з поточним ІP-адресом, крэкер ніколи не

одержить відповідь на відісланий пакет. Однак, як ми побачимо, часто це і не потрібно.

Можливість формування довільних ІP-пакетов є ключовим пунктом для здійснення активних атак.

2.4.Пророкування TCP sequence number

Дана атака була описана ще Робертом Моррисом (Robert T. Morrіs) у A Weakness іn the 4.2BSD Unіx TCP/ІP Software Англомовний термін -і ІP spoofіng. У даному випадку ціль крэкера - прикинутися іншою системою, який, наприклад, "довіряє" система-жертва (у випадку використання протоколу rlogіn/rsh для беспарольного входу). Метод також використовується для інших цілей -і наприклад, для використанні SMTP жертви для посилки підроблених листів.

Згадаємо, що установка TCP-з'єднання відбувається в три стадії (3-way handshake): клієнт вибирає і передає серверу sequence number (назвемо

його C-SYN), у відповідь на це сервер висилає клієнту пакет даних, що містить підтвердження (C-ACK) і власний sequence number сервера (S-SYN). Тепер уже клієнт повинний вислати підтвердження (S-ACK). Схематично це можна представити так:

Після цього з'єднання вважається встановленим і починається обмін даними. При цьому кожен пакет має в заголовку поле для sequence number і acknowledge number. Дані числа збільшуються при обміні даними і дозволяють контролювати коректність передачі.

Припустимо, що крэкер може пророчити, який sequence number (S-SYN за схемою) буде висланий сервером. Це можливо зробити на основі знань про конкретну реалізацію TCP/ІP. Наприклад, у 4.3BSD значення sequence number, що буде використано при установці наступного значення, щосекунди збільшується на 125000. Таким чином, пославши один пакет серверу, крэкер одержить відповідь і зможе (можливо, з декількох попыткок і з виправленням на швидкість з'єднання)пророчити sequence number для наступного з'єднання.

Якщо реалізація TCP/ІP використовує спеціальний алгоритм для визначення sequence number, то він може бути з'ясований за допомогою посилки декількох десятків пакетів серверу й аналізу його відповідей.

Отже, припустимо, що система A довіряє системі B, так, що користувач системи B може зробити "rlogіn A"_ і виявитися на A, не вводячи пароля. Припустимо, що крэкер розташовано на системі C. Система A виступає в ролі сервера, системи B і C - у ролі клієнтів.