Более скромная по своим масштабам, но вполне реальная атака может привести к сбоям в работе протокола управляющих сообщений в сети Интернет ICMP (ICMP – Internet Control Message Protocol, протокол управляющих сообщений в сети Internet. Один из четырех протоколов межсетевого уровня семейства TCP/IP, обеспечивающий восстановление связи при сбойных ситуациях в передаче пользовательских пакетов) и перенаправить пакеты по новому маршруту, заставляя некоторые хосты поверить, что наилучший маршрут проходит через IP-адрес злоумышленника. Многие операционные системы при настройке по умолчанию допускают перенаправление ICMP-сообщений. У автора было несколько компьютеров SPARC 2.5.1, настройка которых позволяла им подбирать новые маршруты передачи данных по результатам перенаправления ICMP-сообщений. После подбора маршрута отказаться от него можно было только после перезагрузки. (Некоторые виды ошибок в ядре операционной системы приводили к нестандартным ситуациям, при которых машина отказывалась принимать сообщения об обновлении маршрутов.) Если пользователь не хочет окончательно разорвать соединение (или чтобы это сделала его программа-посредник каким-то образом), ему потребуется позаботиться о перенаправлении пакетов истинному маршрутизатору. Только так они смогут достичь конечной цели. Когда это случится, истинный маршрутизатор, вероятно, пошлет перенаправленные ICMP-пакеты исходному маршрутизатору, информируя его о существовании более подходящего маршрута. Поэтому, если прибегнуть к подобной атаке, то, скорее всего, придется поддерживать поток перенаправленных ICMP-сообщений.
Если злоумышленнику удалось заставить пакеты проходить через свою систему, изменив таблицы маршрутизации, то некоторые из промежуточных маршрутизаторов будут осведомлены об изменении маршрута в результате внесения изменений в таблицы маршрутизации или, возможно, в таблицу протокола разрешения адресов ARP. (Address Resolution Protocol (ARP) – протокол разрешения адресов. Протокол из семейства TCP/IP, обеспечивающий преобразование IP-адреса в MAC-адрес для пакетов IP.) Но если между двумя узлами расположены, по крайней мере, несколько маршрутизаторов, то конечные узлы, как правило, остаются в неведении относительно этой информации. Возможно, узлы смогли бы узнать об изменениях с помощью утилиты отслеживания маршрута, подобной
Фактически, если злоумышленник смог вклиниться в маршрут передачи данных между двумя хостами, то его дальнейшая работа значительно упрощается. В качестве примера предположим, что злоумышленник хочет перехватить HTTP– или FTP-соединение, с помощью которого клиент ищет исполняемый файл с расширением. exe операционной системы Windows. Вполне возможно, хотя это и непросто, написать или скомпоновать все фрагменты кода, необходимые для эмуляции стека IP-протокола и внедрения нового файла внутрь TCP-соединения. Но злоумышленник в этом не нуждается до тех пор, пока не почувствует необходимости принятия экстраординарных мер для предотвращения своего обнаружения. Модификация исходных текстов открытой операционной системы типа UNIX для того, чтобы она не уменьшала счетчик времени жизни пакета TTL и не посылала ICMP-сообщения о недостижимости адресата (ICMP unreachables), потребовала бы проделать большую работу для того, чтобы уклониться от обнаружения средствами трассировки маршрута, подобными утилите
Информацию по настройке Squid для осуществления прозрачного представительства можно найти на странице www.squid-cache.org/Doc/FAQ/FAQ-17.html. Помимо прочего, на странице записаны инструкции по настройке Squid для Linux, BSD, Solaris и даже для IOS Cisco. Обычно Squid обнаруживает себя из-за небольших изменений HTTP-запросов, но программным путем этого можно легко избежать.
Завершающим шагом является модификация кода кэширования Squid для передачи ложного файла с расширением. exe вместо затребованного настоящего. Однажды обманув людей и заставив их поверить в то, что они загружают легитимные исполняемые файлы напрямую с сайта производителя, в то время как на самом деле они загружают файлы злоумышленника, злоумышленник гарантированно сможет внедрить троянского коня в систему защиты атакованного компьютера. Пользователь даже не будет ничего знать о происходящем. Он ни о чем не будет догадываться, поскольку многие современные программы автоматически проверяют обновления и некоторые из них попадутся на описанную уловку также легко, как попадаются на нее пользователи.