Спуффинг включает в себя подделку собственного IP-адреса — это использование одной машины, чтобы выдать себя за другую. Многие приложения и утилиты в UNIX при идентификации полагаются на IP-адрес; для обеспечения безопасности в своих сетях многие разработчики используют контроль доступа, основанный на имени вызывающего компьютера (его IP-адресе). IP-адрес — это уникальный идентификатор, но в таких ситуациях на него нельзя полагаться, ведь его легко подделать. Чтобы понять процесс спуффинга, рассмотрим сначала процесс идентификации TCP и IP, а потом то, как нападающий может проникнуть в вашу сеть.
Сначала клиентская система посылает серверу SYN-сообщение (от слова синхронизация). Сервер подтверждает получение SYN-сообщения, посылая клиенту сообщение SYN-ACK (подтверждение синхронизации). Клиент завершает процесс установки соединения посылкой ACK-сообщения (подтверждение). После этого соединение между клиентом и сервером установлено. Теперь сервер и клиент могут обмениваться данными. TCP использует последовательные номера пакетов. Когда между двумя машинами установлен виртуальный канал связи, TCP присваивает каждому пакету номер в качестве идентифицирующего индекса. Обе машины используют этот номер для проверки ошибок и для сообщения друг другу об ошибках. Rik Farrow в своей статье "Sequence Number Attacks" объясняет систему последовательной нумерации пакетов так: "Последовательный номер используется для подтверждения получения данных. В начале TCP соединения клиент посылает TCP пакет с начальным номером, но не подтверждение. Если на другом конце соединения запущено серверное приложение, сервер посылает в ответ TCP пакет с его собственным начальным номером и подтверждение: начальный номер клиентского пакета + 1. Когда клиентская система получает этот пакет, она должна послать свое собственное подтверждение: начальный последовательный номер сервера + 1." Поэтому у атакующего есть две проблемы: 1. он должен подделать исходный адрес; 2. он должен поддерживать правильную последовательность номеров с объектом атаки. Вторая задача — самая сложная, потому что когда сервер устанавливает начальный последовательный номер, атакующий должен послать правильный ответ. Как только атакующий правильно угадает последовательный номер, он сможет синхронизироваться с сервером и установить действительную сессию. Службы, уязвимые для IP-спуффинга: — RPC (Remote Procedure Call services) — службы удаленного вызова процедур; — Любая служба, которая использует идентификацию по IP-адресу; — Система X-Window; — Набор программ, начинающихся с R (remote): rlogin, rsh и т.д. Инструменты для TCP- и IP-спуффинга: 1. Mendax for Linux — легкий в использовании инструмент для угадывания последовательных номеров TCP и обмана rshd; 2. spoofit.h — хорошо комментированная библиотека для включения функциональности IP-спуффинга в ваши программы; 3. ipspoof — утилита для TCP- и IP-спуффинга; 4. hunt — сниффер (программа, которая анализирует сетевой трафик в поисках необходимой пользователю информации), который также имеет многие функции для спуффинга; 5. dsniff — набор инструментов для тестирования сетевого аудита и возможности проникновения в сеть. Включает в себя dsniff, filesnarf, mailsnarf, msgsnarf, urlsnarf и webspy, который пассивно просматривает сеть в поисках интересных данных (пароли, адреса e-mail, файлы и т.д.). arpspoof, dnsspoof и macof облегчают перехват сетевого трафика. Меры для предотвращения атак с использованием IP-спуффинга: — Избегайте идентификации по клиентскому IP-адресу. Применяйте шифрование процесса идентификации во всей системе. — Сконфигурируйте вашу сеть так, чтобы отвергать пакеты (reject packets) из Сети, IP-адрес которой происходит из семейства локальных адресов. Обычно это делается с помощью маршрутизатора. — Если вы разрешаете соединения извне с узлами, которым вы доверяете, включите шифрование сессии на маршрутизаторе. Спуффинг-атаки очень опасны, и их трудно заметить. Сейчас они становятся все более популярными, и единственный способ предотвратить их — внедрение мер безопасности, таких как шифрование всего процесса идентификации, чтобы обезопасить вашу сеть. |