У разі використовування більш інтелектуальних засобів контролю за мережею адміністратор може відстежувати (у автоматичному режимі) пакети від систем, які в знаходяться в недоступному стані. Втім, що заважає крекеру імітувати роботу системи B відповіддю на ICMP-пакети?
Які способи існують для захисту від IP-spoofing? По-перше, можна ускладнити або зробити неможливим вгадування sequence number (ключовий елемент атаки). Наприклад, можна збільшити швидкість зміни sequence number на сервері або вибирати коефіцієнт збільшення sequence number випадково (бажано, використовуючи для генерації випадкових чисел криптографічний стійкий алгоритм).
Якщо мережа використовує firewall (або інший фільтр IP-пакетів), слід додати йому правила, по яких всі пакети, що прийшли ззовні і мають зворотними адресами з нашого адресного простору, не повинні пропускатися всередину мережі. Крім того, слід мінімізувати довіру машин один одному. У ідеалі не повинні існувати способу, напряму потрапити на сусідню машину мережі, одержавши права суперкористувача на одній з них. Звичайно, це не врятує від використовування сервісів, що не вимагають авторизації, наприклад, IRC (крекер може прикинутися довільною машиною Internet і передати набір команд для входу на канал IRC, видачі довільних повідомлень і т.д.).
Шифрування TCP/IP-потока вирішує в загальному випадку проблему IP-spoofing'а (за умови, що використовуються криптографічний стійкі алгоритми).
Для того, щоб уменьший число таких атак, рекомендується також набудувати firewall для фільтрації пакетів, посланих нашою мережею назовні, але що мають адреси, що не належать нашому адресному простору. Це захистить мир від атак з внутрішньої мережі, крім того, детектування подібних пакетів означатиме порушення внутрішньої безпеки і може допомогти адміністратору в роботі.
IP Hijacking
Якщо у попередньому випадку крекер ініціював нове з'єднання, то в даному випадку він перехоплює весь мережний потік, модифікуючи його і фільтруючи довільним чином. Метод є комбінацією 'підслуховування' і IP spoofing'а.
Опис
Необхідні умови - крекер повинен мати доступ до машини, що знаходиться на шляху мережного потоку і володіти достатніми правами на ній для генерації і перехоплення IP-пакетів.
Нагадаємо, що при передачі даних постійно використовуються sequence number і acknowledge number (обидва поля знаходяться в IP-заголовку). Виходячи з їх значення, сервер і клієнт перевіряють коректність передачі пакетів.
Існує можливість ввести з'єднання в "десинхронізірованноє стан", коли що присилаються сервером sequence number і acknowledge number не співпадатимуть з очікуваним значеніємі клієнта, і навпаки. В даному випадку крекер, "прослуховуючи" лінію, може узяти на себе функції посередника, генеруючи коректні пакети для клієнта і серверу і перехоплюючи їх відповіді.
Метод дозволяє повністю обійти такі системи захисту, як, наприклад, одноразові паролі, оскільки крекер починає роботу вже після того, як відбудеться авторизація користувача.
Є два способи рассинхронізіровать з'єднання
Ø Рання десинхронізація
З'єднання десинхронізіруєтся на стадії його установки.
Крекер прослуховує сегмент мережі, по якому проходитимуть пакети сесії, що цікавить його
Дочекавшися пакету S-SYN від серверу, крекер висилає серверу пакет типа RST (скидання), звичайно, з коректним sequence number, і, негайно, вслід за ним фальшивий C-SYN-пакет від імені клієнта
Сервер скидає першу сесію і відкриває нову, на тому ж порту, але вже з новим sequence number, після чого посилає клієнту новий S-SYN-пакет.
Клієнт ігнорує S-SYN-пакет, проте крекер, прослуховуючий лінію, висилає серверу S-ACK-пакет від імені клієнта.
Отже, клієнт і сервер знаходяться в стані ESTABLISHED, проте сесія десинхронізірована.
Представимо це у вигляді схеми:
Мал. 4. Рання десинхронізація
Природно, 100% спрацьовування у цієї схеми немає, наприклад, вона не застрахована від того, що по дорозі не загубляться якісь пакети, послані крекером. Для коректної обробки цих ситуацій програма повинна бути ускладнена.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.