Программы типа "троянский конь"
Контрмеры: защита от анализаторов
Существует три основных подхода к защите от анализаторов, которые могут быть внедрены в вашу сеть или уже внедрены в нее.
Переход на сеть с коммутируемой топологией
Сети Ethernet с совместно используемыми линиями связи чрезвычайно уязвимы для анализаторов, поскольку все данные передаются по сети от узла к узлу в виде широковещательных сообщений, попадая таким образом не только на тот компьютер, которому они предназначены, но и на остальные компьютеры сегмента. Сети Ethernet с коммутируемой топологией позволяют поместить каждый узел в отдельный домен разрешения конфликтов, поэтому на сетевой адаптер того или иного узла такой сети поступают только те данные, которые предназначены этому узлу (ну и, конечно, данные, рассылаемые широковещательно).
Кроме безопасности, коммутируемые сети позволяют увеличить и производительность. Учитывая, что стоимость сетевого оборудования для коммутируемых сетей не намного превышает стоимость оборудования для сетей с общей шиной, выбор последней не может быть оправдан никакими соображениями. Если бухгалтерский отдел вашей компании все же имеет иную точку зрения на эту проблему, покажите им список их паролей, перехваченных с помощью одной из приведенных выше программ. Мы уверены, что это подействует.
Несмотря на то что сеть с коммутируемой топологией позволяет предотвратить атаки неопытных взломщиков, другие злоумышленники могут без проблем прослушивать локальную сеть. Программа типа arpredirect из пакета dsniff (http://www.monkey.org/~dugsong/dsniff/) может свести на нет все старания обеспечить безопасность с реализацией коммутируемой сетевой топологии. Более подробно программа arpredirect рассматривается в главе 10.
Обнаружение анализаторов
Существует два основных подхода к обнаружению анализаторов – на уровне узла и на уровне сети. На уровне узла самый простой метод заключается в определении того, работает ли сетевой адаптер системы в промискуитетном режиме. В системе UNIX для ответа на этот вопрос можно воспользоваться несколькими программами, включая программу Check Promiscuous Mode (cpm), разработанную специалистами университета Carnegie Mellon University (эту программу можно найти по адресу ftp://info.cert.org/pub/tools/).
Кроме того, анализаторы отображаются в списке активных процессов и со временем, как правило, приводят к созданию файлов журналов огромного объема. Поэтому довольно простой сценарий UNIX, в котором используются команды ps, Isof и grep, может обнаружить деятельность, напоминающую работу анализатора. Однако, учитывая то, что опытные взломщики обычно стараются как можно тщательнее замаскировать процесс анализа сетевых пакетов, а также скрыть журналы в специально созданном скрытом каталоге, данный подход нельзя назвать очень эффективным.
Методы обнаружения анализаторов на уровне сети очень долго существовали только теоретически. Лишь относительно недавно они были реализованы в виде программного обеспечения. К таким средствам относится программа AntiSnifT, разработанная группой исследования безопасности L0pht (http://www.10pht.com/). К сожалению, ее первая версия работает только под управлением системы Windows, однако технические комментарии достаточно подробны для того, чтобы создать центральный пункт, из которого можно выполнять сканирование всей сети и осуществлять в ней поиск находящихся в промискуитетном режиме сетевых адаптеров. Кроме программы AntiSnifT, в системе UNIX можно запустить программу sentinel (http://www.packetfactory.net/Projects/Sentinel/), которая предоставляет дополнительные возможности поиска анализаторов на уровне сети.
Шифрование (SSH, IPSec)
Давно известным методом борьбы с прослушиванием сетей является шифрование. Только шифрование на уровне получателя и отправителя может обеспечить уровень практически полной конфиденциальности. Необходимая длина ключа должна определяться на основании того, как долго данные остаются важными. Короткие ключи (длиной до 40 бит) допустимо использовать для шифрования потоков данных только в тех случаях, когда данные быстро устаревают. Кроме того, применение коротких ключей позволяет повысить производительность.
В тех случаях, когда в системе UNIX необходимо обеспечить безопасное удаленное подключение к сети, используется протокол Secure Shell (SSH). Бесплатные версии соответствующего программного обеспечения для некоммерческого использования можно найти по адресу http://www.ssh.org/download.html, а коммерческую версию, названную F-Secure Tunnel & Terminal, которая распространяется компанией Data Fellows, – по адресу http://www.datafellows.com/.
В настоящее время в качестве нового стандарта предлагается протокол IPSec (IP Security Protocol), который позволяет обеспечить аутентификацию и шифрование потока данных на уровне протокола IP. Десятки компаний-разработчиков уже реализовали поддержку IPSec в своих продуктах, так что обратитесь к своему поставщику сетевого оборудования и получите у него все необходимые сведения по этому вопросу. Пользователи Linux могут обратиться по адресу http://www.freeswan.org/intro.html, где содержатся данные о проекте FreeSWAN, и получить всю информацию о свободно распространяемой реализации протоколов IPSec и IKE, которая была разработана в рамках модели открытого кода.