ICMP-туннель
ICMP -туннель [1] устанавливает скрытое соединение между двумя удаленными компьютерами (клиентом и прокси), используя эхо-запросы ICMP и ответные пакеты. Примером этого метода является туннелирование всего TCP- трафика через запросы и ответы ping.
Технические детали
[ редактировать ]Туннелирование ICMP работает путем введения произвольных данных в эхо-пакет, отправляемый на удаленный компьютер. Удаленный компьютер отвечает таким же образом, вставляя ответ в другой пакет ICMP и отправляя его обратно. Клиент выполняет всю связь, используя пакеты эхо-запроса ICMP, а прокси-сервер использует пакеты эхо-ответа.
Теоретически возможно, чтобы прокси-сервер использовал пакеты эхо-запроса (что значительно упрощает реализацию), но эти пакеты не обязательно пересылаются клиенту, поскольку клиент может находиться за преобразованным адресом ( NAT ). Этот двунаправленный поток данных можно абстрагировать с помощью обычной последовательной линии.
Туннелирование ICMP возможно, поскольку RFC 792 , определяющий структуру пакетов ICMP, допускает произвольную длину данных для любого типа ICMP-пакетов 0 (эхо-ответ) или 8 (эхо-сообщение).
Использование
[ редактировать ]Туннелирование ICMP можно использовать для обхода правил межсетевых экранов путем запутывания фактического трафика. В зависимости от реализации программного обеспечения туннелирования ICMP этот тип соединения также можно отнести к категории зашифрованного канала связи между двумя компьютерами. Без надлежащей глубокой проверки пакетов или просмотра журналов сетевые администраторы не смогут обнаружить этот тип трафика в своей сети. [2]
смягчение последствий
[ редактировать ]Один из способов предотвратить этот тип туннелирования — заблокировать ICMP-трафик за счет потери некоторых сетевых функций, которые люди обычно воспринимают как должное (например, определение того, что партнер находится в автономном режиме, может занять десятки секунд, а не почти мгновенно). Другой метод смягчения атак этого типа — пропускать через межсетевые экраны только ICMP-пакеты фиксированного размера, что может затруднить или устранить такой тип поведения. [3]
ICMP-туннели иногда используются для обхода межсетевых экранов, блокирующих трафик между локальной сетью и внешним миром. Например, коммерческими службами Wi-Fi, которые требуют от пользователя оплаты за использование, или библиотекой, которая требует от пользователя сначала войти на веб-портал. Если оператор сети сделал ошибочное предположение, что достаточно блокировать только обычные транспортные протоколы, такие как TCP и UDP , но не базовые протоколы, такие как ICMP, то иногда можно использовать ICMP-туннель для доступа в Интернет, несмотря на то, что он не был разрешен доступ к сети. Шифрование и правила для каждого пользователя, которые запрещают пользователям обмениваться пакетами ICMP (и всеми другими типами пакетов, возможно, с использованием IEEE 802.1X ) с внешними узлами до авторизации, решают эту проблему.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Дэниел Стёдле. «Ping Tunnel: Для тех случаев, когда все остальное заблокировано» .
- ^ http://protocol.korea.ac.kr/publication/Covert%20Channel%20Detection%20in%20the%20ICMP%20Payload%20Using%20Support%20Vector%20Machine.pdf [ постоянная мертвая ссылка ]
- ^ «ICMP-туннелирование: защита от уязвимости». 2003. CiteSeerX 10.1.1.61.5798 .
Внешние ссылки
[ редактировать ]- RFC 792 , Протокол управляющих сообщений Интернета
- itun Простой IP через туннель ICMP
- Туннель Hans ICMP для Linux (сервер и клиент) и BSD MacOSX (только клиент)
- ICMP-Shell — протокол, подобный telnet, использующий только ICMP.
- PingTunnel Туннель TCP через ICMP
- ICMP Crafting от Стюарта Томаса
- Использование инструмента туннелирования ICMP Ping Tunnel
- Project Loki Статья о пинг-туннелировании во Phrack
- ICMP-туннель с исходным кодом C#
- icmptunnel IP через ICMP-туннель от Дхавала Капила