Необхідність захисту даних. Класифікація видалених атак на розподілені обчислювальні системи. Характеристика і механізми реалізації типових видалених атак. Принципи створення захищених систем зв'язку в розподілених обчислювальних системах, страница 20

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

Прогноз TCP sequence number

Дана атака була описана ще Робертом Моррісом (Robert T. Morris) в А Weakness in the 4.2BSD Unix TCP/IP Software Англомовний термін - IP-spoofing. В даному випадку мета крекера - прикинутися іншою системою, яку, наприклад, "довіряє" система-жертва (у разі використовування протоколу rlogin/rsh для беспарольного входу). Метод також використовується для інших цілей - наприклад, для використовування SMTP жертви для посилки підроблених листів.

Опис

Пригадаємо, що установка TCP-з'єднання відбувається в три стадії (3-way handshake): клієнт вибирає і передає серверу sequence number (назвемо його C-SYN), у відповідь на це сервер висилає клієнту пакет даних, що містить підтвердження (C-ACK) і власний sequence number серверу (S-SYN). Тепер уже клієнт повинен вислати підтвердження (S-ACK). Схемно це можна представити так:

Мал. 2. Установка TCP-з'єднання

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

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

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

Отже, припустимо, що система А довіряє системі B, так, що користувач системи B може зробити "rlogin А" і виявитися на А, не вводячи пароля. Припустимо, що крекер розташований на системі З. Система А виступає в ролі серверу, системи B і З - в ролі клієнтів.

Перша задача крекера - ввести систему B в стан, коли вона не зможе відповідати на мережні запити. Це може бути зроблено декількома способами, в простому випадку потрібно просто дочекатися перезавантаження системи B. Декількох хвилин, в перебігу яких вона буде непрацездатна, повинно вистачити. Інший варіант - використовування описаними в наступних розділах методів.

Після цього крекер може спробувати прикинутися системою B, для того, що б одержати доступ до системи А (хоча б короткочасний).

Крекер висилає декілька IP-пакетів, що ініціюють з'єднання, системі А, для з'ясування поточного стану sequence number серверу.

Крекер висилає IP-пакет, в якому як зворотна адреса вказана вже адреса системи B.

Система А відповідає пакетом з sequence number, який прямує системі B. Проте система B ніколи не одержить його (вона виведена з ладу), як, втім, і крекер. Але він на основі попереднього аналізу здогадується, який sequence number був висланий системі B

Крекер підтверджує "отримання" пакету від А, виславши від імені B пакет з передбачуваним S-ACK (помітимо, що якщо системи розташовуються в одному сегменті, крекеру для з'ясування sequence number достатньо перехопити пакет, посланий системою А). Після цього, якщо крекеру повезло і sequence number серверу був вгаданий вірно, з'єднання вважається встановленим.

Тепер крекер може вислати черговий фальшивий IP-пакет, який вже міститиме дані. Наприклад, якщо атака була направлена на rsh, він може містити команди створення файлу .rhosts або відправки /etc/passwd крекеру по електронній пошті.

Представимо це у вигляді схеми:

Мал. 3. IP-spoofing

Детектування і захист

Простим сигналом IP-spoofing служитимуть пакети з внутрішніми адресами, що прийшли із зовнішнього світу. Програмне забезпечення маршрутизатора може попередити про це адміністратора. Проте не варто спокушатися - атака може бути і зсередини Вашої мережі.