Безопасность в Linux. IP спуффинг
Безопасность в Linux. IP спуффинг Спуффинг включает в себя подделку собственного 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-адрес которой происходит из семейства локальных адресов. Обычно это делается с помощью маршрутизатора.
— Если вы разрешаете соединения извне с узлами, которым вы доверяете, включите шифрование сессии на маршрутизаторе.
Спуффинг-атаки очень опасны, и их трудно заметить. Сейчас они становятся все более популярными, и единственный способ предотвратить их — внедрение мер безопасности, таких как шифрование всего процесса идентификации, чтобы обезопасить вашу сеть.
Статья написана на основесоветов Kapil Sharma
Сначала клиентская система посылает серверу 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-адрес которой происходит из семейства локальных адресов. Обычно это делается с помощью маршрутизатора.
— Если вы разрешаете соединения извне с узлами, которым вы доверяете, включите шифрование сессии на маршрутизаторе.
Спуффинг-атаки очень опасны, и их трудно заметить. Сейчас они становятся все более популярными, и единственный способ предотвратить их — внедрение мер безопасности, таких как шифрование всего процесса идентификации, чтобы обезопасить вашу сеть.
Статья написана на основесоветов Kapil Sharma
Компьютерная газета. Статья была опубликована в номере 13 за 2002 год в рубрике soft :: linux