Защита от хакеров корпоративных сетей
Шрифт:
В большинстве случаев злоумышленник будет пытаться удаленно изменить таблицы маршрутизации. Был проведен ряд исследований в области широкомасштабного изменения таблиц маршрутизации, основанных на экспериментах с пограничным межсетевым протоколом BGP. (Протокол BGP – Border Gateway Protocol, пограничный межсетевой протокол. Усовершенствованный внешний шлюзовой протокол, основанный на опыте использования протокола EGP в магистральной сети NSFNET.) Протокол BGP используется большинством поставщиков услуг Интернет для обмена маршрутами передачи информации между собой. Инсайдеры (лица, имеющие доступ к внутренней информации о корпорации. Обычно инсайдерами являются директора и старшие менеджеры, а также владельцы более 10 % голосов компании) утверждают, что большинство из поставщиков услуг Интернета слишком доверчивы друг к другу, что позволяет одним вносить изменения в маршруты передачи данных других. Обращение Lopht к американскому конгрессу несколько лет назад по большей части основывалось на результатах экспериментов с протоколом BGP.
Более скромная по своим масштабам, но вполне реальная атака может привести к сбоям в работе протокола управляющих сообщений в сети Интернет 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.) Но если между двумя узлами расположены, по крайней мере, несколько маршрутизаторов, то конечные узлы, как правило, остаются в неведении относительно этой информации. Возможно, узлы смогли бы узнать об изменениях с помощью утилиты отслеживания маршрута, подобной traceroute, если бы злоумышленник не предусмотрел этого, запрограммировав соответствующим образом свой маршрутизатор не посылать сообщения ICMP о недостижимости адресата (получателя) и не уменьшать счетчик предписанного времени жизни IP-пакета (TTL counter).
Фактически, если злоумышленник смог вклиниться в маршрут передачи данных между двумя хостами, то его дальнейшая работа значительно упрощается. В качестве примера предположим, что злоумышленник хочет перехватить HTTP– или FTP-соединение, с помощью которого клиент ищет исполняемый файл с расширением. exe операционной системы Windows. Вполне возможно, хотя это и непросто, написать или скомпоновать все фрагменты кода, необходимые для эмуляции стека IP-протокола и внедрения нового файла внутрь TCP-соединения. Но злоумышленник в этом не нуждается до тех пор, пока не почувствует необходимости принятия экстраординарных мер для предотвращения своего обнаружения. Модификация исходных текстов открытой операционной системы типа UNIX для того, чтобы она не уменьшала счетчик времени жизни пакета TTL и не посылала ICMP-сообщения о недостижимости адресата (ICMP unreachables), потребовала бы проделать большую работу для того, чтобы уклониться от обнаружения средствами трассировки маршрута, подобными утилите traceroute. Но после того, как это будет сделано, станет гораздо легче сконфигурировать кэширование программы-посредника так, как это реализовано в Squid для прозрачного представительства (действия по доверенности от имени доверителя).
Информацию по настройке Squid для осуществления прозрачного представительства можно найти на странице www.squid-cache.org/Doc/FAQ/FAQ-17.html. Помимо прочего, на странице записаны инструкции по настройке Squid для Linux, BSD, Solaris и даже для IOS Cisco. Обычно Squid обнаруживает себя из-за небольших изменений HTTP-запросов, но программным путем этого можно легко избежать.
Завершающим шагом является модификация кода кэширования Squid для передачи ложного файла с расширением. exe вместо затребованного настоящего. Однажды обманув людей и заставив их поверить в то, что они загружают легитимные исполняемые файлы напрямую с сайта производителя, в то время как на самом деле они загружают файлы злоумышленника, злоумышленник гарантированно сможет внедрить троянского коня в систему защиты атакованного компьютера. Пользователь даже не будет ничего знать о происходящем. Он ни о чем не будет догадываться,
поскольку многие современные программы автоматически проверяют обновления и некоторые из них попадутся на описанную уловку также легко, как попадаются на нее пользователи.Приоткрывая завесу
«Используй силу, Лука…»
Стандарты – лучшие друзья злоумышленника. Он получает доступ к той же информации, что и пользователь. Фактически все, что происходит в сети пользователя, злоумышленник знает как свои пять пальцев. Если пользователь не знаком c Запросами на комментарии RFC (RFC – Requests for Comments, Запросы на комментарии. Серия документов IETF, начатая в 1969 году и содержащая описания набора протоколов Интернет и связанную с ними информацию) так же хорошо, как ее знает злоумышленник, пользователя ждут большие неприятности. Пользователю следует потратить некоторое время на сосредоточенное изучение руководящей информации по использованию протоколов своей сети, особенно новых стандартов. Хороший источник Запросов на комментарии RFC -rfc-editor.org. Необходимо время на отслеживание последних найденных уязвимостей и слабых мест в системе безопасности компьютеров, так что пользователю следует выделить достаточно времени в своем расписании для лабораторных исследований. В Интернете можно найти много различной информации по изъянам систем защиты. Вот постоянные места встреч злоумышленников:
• конференции (сетевые службы, рассылающие информацию по определенной теме) типа: alt.hackers.malicious, alt.2600 и alt.hacking;
• чаты, посвященные обсуждению проблем взлома компьютерных систем.
Кроме того, полезными могут оказаться такие машины поиска в сети Интернет (инструментальные средства, предназначенные для отсеивания информации, не относящейся к теме запроса), или, другими словами, поисковики, как, например, astalavistabox.sk и securityfocus.com. Они содержат множество ссылок на новейшие сайты. Эти сайты имеют тенденцию постоянно перемещаться, что объясняется расположенной на них информацией. Поэтому ссылки на них должны все время обновляться.
Атаки на протокол разрешения адресов ARP
Другим способом удостовериться злоумышленнику в том, что все пакеты атакованной машины проходят через его машину, является модификация ARP таблицы на машине жертвы (машинах жертв). ARP-таблицы обеспечивают преобразование MAC-адресов (MAC – Media Access Control, протокол управления доступом к передающей среде. Подуровень канального уровня, задающий методы доступа к среде, формат кадров, способ адресации) в IP-адреса на каждой машине. ARP разработан как динамический протокол, поэтому при добавлении новых машин к сети или при присваивании машинам по разным причинам новых MAC-адресов адреса машин в сети обновляются автоматически в течение сравнительно короткого периода времени. В этом протоколе не предусмотрено никакой аутентификации.
Когда машина жертвы выдает широковещательный запрос (передает одно сообщение сразу всем станциям сети) определения MAC-адреса, соответствующего какому-либо IP-адресу (возможно, это IP-адрес шлюза по умолчанию на машине жертвы), все, что нужно сделать злоумышленнику, – это успеть ответить на него до того, как ответит настоящая машина. Это – классическое состояние гонок. Злоумышленник может повысить свои шансы на успех, загрузив истинный шлюз дополнительной работой, чтобы он не смог слишком быстро ответить.
До тех пор, пока злоумышленник будет правильно транслировать трафик машины жертвы (или успешно фальсифицировать факсимиле сервера, с которым пытается общаться жертва), жертва вряд ли заметит какие-либо изменения. Безусловно, если акцентировать внимание, то можно найти определенные различия. Например, после такой атаки каждый пакет проходит один и тот же сегмент локальной сети дважды, что слегка повышает объем пересылаемых по сети данных и само по себе является подозрительным. Но главный недостаток заключается в изменении на машине жертвы ARP-кэша. Это достаточно просто отследить, если заранее подготовиться к этому. Одним из инструментальных средств отслеживания подобных изменения является программа arpwatch, которую можно найти по адресу: ftp:// ee.lbl.gov/arpwatch.tar.gz.
Инструментарием проведения ARP-атак является программа grat_arp, которая из-за отсутствия официального имени так и называется. Программа grat_arp была написана Мудге (Mudge) и некоторыми его неизвестными друзьями, как он сам это утверждает. Ее можно найти в разных местах, например по адресу www.securityfocus.com/archive/82/28493. Хорошая статья на данную тему (вместе с прилагаемой программой send_arp.c) расположена по адресу www.securityfocus.com/archive/1/7665.
В дополнение к вышесказанному может быть использована упоминавшаяся в главе 10 программа arpspoof. Она является частью инструментального средства dsniff, доступного на www.monkey.org/~dugsong/dsniff. Программа arpspoof выполняет большую часть работы в автоматическом режиме.
Некоторые из упомянутых выше функциональных возможностей встроены в программу Hunt, которая будет описана ниже в этой главе, в специально посвященном ей пункте.