Курс лекций для студентов специальности 050501 Профессиональное обучение (по отраслям) специализация Программное обеспечение вт и ас

Вид материалаКурс лекций

Содержание


Защита хоста
7.7.3. Средства автоматизированного контроля безопасности
Программа SATAN
Internet Scaner (ISS)
Оценка безопасности Internet
Подобный материал:
1   ...   11   12   13   14   15   16   17   18   19

Защита хоста


Проанализировав причины, по которым происходят успешные нападения на хосты UNIX, будет сформулируем те принципы, на которых будет строиться защита. При этом будем придерживаться следующих концепций:
  • актуальность - защищаться надо от реальных атак, а не от фантастических или, наоборот, времен вируса Морриса;
  • разумность затрат - поскольку 100% защиты мы все равно не обеспечим, надо найти тот рубеж, за которым затраты на дальнейшее повышение безопасности оказываются выше стоимости той информации, которую может украсть кракер.

Итак, ниже приводится список очень простых правил и действий за которым следует процент отсеченных на этом этапе кракеров. Поставив перед собой цель защитить свой хост на N процентов, вы можете сами решить, на каком из них вам остановиться:

  1. Прочитайте, наконец, руководство по администрированию вашей системы, и наверняка вы найдете там некоторые полезные советы, которые захотите применить.
  2. Поставьте последние версии sendmail, ftpd и httpd. Этим вы сразу отсеете до 30% (самых невежественных или ленивых) кракеров.
  3. Запустите программу автоматизированного контроля вашего хоста, типа SATAN или ISS. Почему типа? Дело в том, что на сегодняшний день эти программы явно устарели (см. п. 8.9), а новых мы пока не можем вам предложить. Из этого не следует, что, когда вы будете читать эти строки, таковых не появится. Вероятно, они сделают то же, что и предлагается ниже, только вам это будет стоить гораздо меньше.
  4. Проверьте настройки вашего NFS-сервиса, а также содержимое файлов /etc/hosts.equiv и .rhosts (или подобных) для каждого пользователя. У NFS не должно быть экспорта любых каталогов для everyone, а необходимость включения каждого доверенного хоста должна быть еще раз проверена. Уже до 50% кракеров не смогут забраться к вам.
  5. Сходите в CERT или CIAC (см. адреса в приложении) и внимательно прочитайте их бюллетени за последнее время. Установите все рекомендуемые патчи (patch). Этим вы отсеете еще 20% взломщиков, так что уже 70% вы сможете остановить.
  6. Правильно настройте (или установите) ваш файрвол. Из этого не следует, что вы должны запретить все и всем, запретите лишь все неиспользуемые вами порты и протоколы. Поставьте сетевой монитор безопасности IP-Alert 1 (см. п. 7.2.2.2). Уже более 80% злоумышленников будет скрежетать зубами от злости.
  7. Станьте на несколько часов хакером и напустите на файл /etc/passwd (или затененный (shadow) аналог / etc/ shadon) последний взломщик паролей. Здесь у вас большое преимущество перед хакерами - этот файл слишком просто получить, и грех не воспользоваться такой удачей. С теми пользователями, пароли которых были вскрыты автоматически, надо усилить разъяснительную работу. Не забудьте затенить ваш файл паролей. Еще 10% кракеров будет убито наповал, и вы победили уже 90% из них.
  8. Проверьте настройки всех остальных служб, особенно использующих доверие (типа NIS или X-Window). Откажитесь от них по возможности - и празднуйте победу над около 95% взломщиков.
  9. Сходите еще раз в CERT или CIAC и прочитайте ВСЕ их бюллетени. Установите все рекомендуемые ими и производителями вашего UNIX патчи. Да, это потребует много времени, но вы будете вознаграждены тем, что 97% кракеров для вас перестанут быть опасными.
  10. Попросите разрешения у администраторов всех доверенных хостов, найденных вами на шаге 4, просканировать их хосты на предмет безопасности. Для этого можно воспользоваться тем же SATAN'ом, но вам нужно смотреть в первую очередь не на найденные им уязвимости (они вряд ли уже актуальны), а на список использованных сервисов и программ-демонов, их поддерживающих. Это можно сделать, вручную проанализировав файл с результатами работы SATAN. Если вы найдете уязвимую программу там, попросите соседнего администратора обновить ее. Если он не зря занимает свое место, то он с благодарностью это сделает. Итак, 99% кракеров никогда не попадут на ваш, уже почти полностью безопасный хост.

Остальные меры, направленные на отлов последнего процента самых достойных кракеров, являются превентивными в том смысле, что не направлены конкретно на ту или иную службу. Возможно, они будут сопряжены с более или менее значительной переделкой вашего хоста.

  1. Придумайте какую-нибудь собственную изюминку, очень простую, но которая сможет привести слишком умных кракеров в тупик, типа переименования какой-нибудь важной команды или сообщения на входе "FSB host. Vvedite vashe imya i zvanie:" .
  2. Поставьте монитор всех входящих соединений (типа tcp_wrapper). Этим вы сможете если не остановить, то хоть увидеть следы кракера и понять его логику для дальнейшего закрытия этой лазейки.
  3. Избавьтесь от sendmail, поставьте другой SMTP-демон.
  4. Выкиньте некоторые малоиспользуемые службы (типа finger, talk, rpc) и ужесточите настройки вашего файрвола.
  5. Поставьте proxy-сервер для дополнительной аутентификации извне, а также для скрытия адресов и топологии внутренней подсети.
  6. Перенесите весь сервис, требующий входящих соединений (http, SMTP), на отдельную машину и оставьте ее в открытой сети. Удалите с этой машины все программы и информацию, не относящуюся к ее назначению. Все остальные машины спрячьте за файрволом с полным отключением входящего трафика.
  7. Поставьте защищенную версию UNIX или другой операционной системы

7.7.3. Средства автоматизированного контроля безопасности


Мы уже говорили о полезности средства автоматизированного контроля безопасности отдельного компьютера, а также всей подсети, за которую он отвечает, для системного администратора. Естественно, что такие средства уже появлялись, и чаще других встречаются названия ISS (Internet Security Scaner), COPS (Computer Oracle and Password System) и, конечно, SATAN (Security Administrator Tool for Analizyng Networks). К сожалению, им обычно присущи следующие недостатки:

  1. системозависимость - обычно они рассчитаны на вполне конкретную ОС или даже ее версию;
  2. ненадежность и неадекватность - если эти программы сообщают, что все "О'key" , это совсем не значит, что так на самом деле и есть; и наоборот - некая "уязвимость" , с их точки зрения, может оказаться специальным вариантом конфигурации системы;
  3. малое время жизни - т. к. с момента обнаружения уязвимости до ее искоренения проходит не очень большое время (порядка года), программа быстро устаревает;
  4. неактуальность - более того, с момента выхода программы в свет все новые (поэтому самые опасные) уязвимости оказываются неизвестными для нее, и ее ценность быстро сводится к нулю. Этот недостаток является самым серьезным;
  5. наконец, это возможность их использования с прямо противоположными целями - для поиска изъянов в вашей системе.

Можно заметить явную аналогию этих программ с антивирусными сканерами первого поколения - те знали лишь строго определенный набор вирусов, новые вирусы добавлялись только в следующем выпуске программы. Если посмотреть на возможности современных антивирусных программ - это и оперативное лечение вирусов, и автоматизированное пополнение базы вирусов самим пользователем, и поиск неизвестных вирусов, - то можно пожелать, чтобы хороший сканер интернета смог позаимствовать некоторые из них. В первую очередь - это возможность пополнения базы новыми уязвимостями. Причем в наши дни это несложно сделать - стоит лишь скачивать информацию с источников, занимающихся как раз сбором таких сведений, типа CERT или CIAC.

Программа SATAN

После общего введения мы посчитали невозможным не ознакомить читателя в общих чертах с таким нашумевшим средством, как SATAN, которое иногда считается чуть ли ни самой опасной программой из когда бы то ни было написанных, начиная от своего зловещего названия до возможности влезть чуть ли не в самый защищенный компьютер. Насчет названия сразу подчеркнем, что в момент инсталляции с помощью специальной процедуры вы можете поменять его на SANTA (Security Analysis Network Tool for Administrator), а заодно и зловещего сатану на симпатичного Деда Мороза. А что касается влезания в компьютер (не любой, конечно) - если подобная программа и имеется у хакеров или спецслужб, то она никогда не стала бы свободно распространяться по интернету, как это происходит с SATAN.

На самом деле SATAN - это добротно сделанная, с современным интерфейсом, программа для поиска брешей в вашей подсети (Intranet, как модно говорить в последнее время), написанная на машинно-независимых языках Perl и С, поэтому она в некоторой мере преодолевает первый из вышеописанных недостатков. Она даже допускает возможность для расширения и вставки новых модулей. К сожалению, во всем остальном ей присущи указанные недостатки, в т.ч. и самый главный - она уже устарела, и не может сейчас серьезно использоваться ни администраторами, ни хакерами. Поэтому непонятен мистический страх перед всемогуществом SATAN'а. Авторы, готовя материал для данной книги, сами столкнулись с таким отношением и были немало этим удивлены.

Однако на момент выхода это была достаточно актуальная программа. Она содержала в себе поиск большинства уязвимостей, описанных нами в п. 8.5.2 и была построена на статье [16] (или эта статья вылилась из рабо-ты над SATAN'ом). В частности, программа ищет уязвимости в:
  • FTP и TFTP;
  • NFS и NIS;
  • rexd;
  • sendmail;
  • r-службах;
  • X-Window.

Существуют также более поздние версии SATAN'а, в которые включен поиск и других уязвимостей.

Для этого она сначала всевозможным образом собирает информацию о вашей системе, причем уровень этого конфигурируется пользователем и может быть: легкий, нормальный и жесткий. Легкий уровень, по утверждению авторов программы, не может быть никак обнаружен атакуемой стороной (по крайней мере, такая активность программы никак не может быть принята за враждебную) и включает в себя DNS-запросы для выяснения версии операционной системы и другой подобной информации, которая может быть легально получена с использованием DNS. Далее она посылает запрос на службу RPC (remote procedure call) для выяснения, какие rpc-сервисы работают. Нормальный уровень разведки включает в себя все эти запросы, а также дополняет их посылкой запросов (сканированием) некоторых строго определенных портов, таких как FTP, telnet, SMTP, NNTP, UUCP и др. для определения установленных служб. Наконец, жесткий уровень включает в себя все предыдущие уровни, а также дополняется полным сканированием всех (возможных) UDP- и TCP-портов для обнаружения нестандартных служб или служб на нестандартных портах. Авторы предостерегают, что такое сканирование может быть легко зафиксировано даже без специальных программ - например, на консоли могут появляться сообщения от вашего файрвола.

Другой важной опцией, задаваемой при настройке SATAN'a, является глубина просмотра подсетей (proximity). Значение 0 означает только один хост, 1 - подсеть, в которую он входит, 2 - все подсети, в которые входит подсеть данного хоста, и т. д. Авторы подчеркивают, что ни при каких обстоятельствах это число не должно быть более 2, иначе SATAN выйдет из-под контроля и просканирует слишком много внешних подсетей.

Собственно, ничем более страшным, кроме как сканированием портов и обнаружением работающих служб и их конфигурации, SATAN не занимается. При этом, если находятся потенциальные уязвимости, он сообщает об этом. Как пишут сами авторы, фаза проникновения в удаленную систему не была реализована.

Авторы SATAN'а используют очень современный интерфейс - все сообщения программы оформляются в виде HTML-страниц. Поэтому работа с SATAN'ом мало чем отличается от плавания (surf) по интернету в своем любимом броузере (SATAN поддерживает любой из них, будь то lynx, Mosaic или Netscape). Пользователь может отсортировать найденные уязвимости (по типу, серьезности и т. п.) и тут же получить развернутую информацию по каждой из них. Для поддержки броузеров в SATAN входит собственный http-сервер, выполняющий ограниченное число запросов, а связь с этим сервером осуществляется c использованием случайного 32-битного числа (magic cookie), которое служит для дополнительной аутентификации http-клиента. Иначе говоря, оно служит для предотвращения перехвата конфиденциальной информации броузером, отличным от запущенного SATAN'ом, а также вообще против любого взаимодействия с http-сервером SATAN'а. Любопытно, что в версиях до 1.1.1 в этой схеме аутентификации тоже была ошибка, которая даже попала в один из бюллетеней CERT.

Итак, типичный сценарий работы с SATAN заключается в следующем:

  1. настроить желаемые параметры, в том числе глубину сканирования;
  2. задать адрес цели и уровень сканирования;
  3. просмотреть полученные результаты и получить по ним более подробную информацию;
  4. устранить найденные уязвимости.

Администратору безопасности рекомендуется просканировать на жестком уровне все свои хосты, а также все доверенные хосты, обязательно спросив на это разрешение у их администраторов. Это рекомендуется сделать даже сегодня, несмотря на то, что SATAN устарел - вы сможете быстро получить список используемых сетевых служб и их версий и проверить, нет ли среди них уязвимых, воспользовавшись материалами CERT или CIAC.

Internet Scaner (ISS)

Уже после того, как была написана эта глава, мы столкнулись с программой, которая более-менее удовлетворяет перечисленным требованиям к современному средству автоматизированной проверки безопасности хоста. По крайней мере, она регулярно обновляется. Она оригинально называется Internet Scaner SAFESuite и распространяется компанией Internet Security Systems (ISS - не путать с Internet Security Scaner) по адресу et. Как вы уже догадались, эта программа не бесплатна, в отличие от SATAN, что в данном случае и неплохо - это несколько ограничит число потенциальных кракеров. Для запуска она требует ключ, пересылаемый вам при покупке пакета, а в оценочную (evaluation) версию включен ключ, который разрешит вам сканирование только своего собственного хоста.

Эта программа реализована под 6 платформ:
  • Windows NT,
  • HP/UX 9.x и 10.x,,
  • AIX 3.2.5 и 4.1,
  • Linux (ELF),
  • SunOS 4.1.3,
  • Solaris (SPARC) 2.x,

при этом любая из реализаций знает уязвимости и других платформ.

Функционально она состоит из трех частей: сканер файрвола, Web-сканер и сканер Intranet. При этом, как и в SATAN, пользователь настраивает уровень сканирования. При этом он имеет возможность редактировать следующие любопытные классы уязвимостей:
  • в NFS,
  • в RPC,
  • в Sendmail/FTP,
  • в X Windows,
  • IP Spoofing (включая возможность предсказания TCP-последовательности и атаки на r-службы),
  • отказ в обслуживании (различные способы),
  • наличие пользователей по умолчанию,
  • тестирование стандартных демонов и правильности их настроек,
  • правильность настроек файрвола,
  • наличие ошибок и правильность администрирования Web-сервера.

К сожалению, мы не успели проверить качество работы и адекватность тестирования этой программой, но, видимо, на сегодняшний день она является одной из лучших.

Оценка безопасности Internet

Исходно сеть создавалась как незащищенная открытая система, предназначенная для информационного общения все возрастающего числа пользователей.

При этом подключение новых пользователей должно было быть максимально простым, а доступ к информации — наиболее удобным. Все это явно противоречит принципам создания защищенной системы, безопасность которой должна быть описана на всех стадиях ее создания и эксплуатации, а пользователи — наделены четкими полномочиями.

Создатели сети не стремились к этому, да и требования защиты настолько бы усложнили проект, что сделали бы его создание едва ли возможным.

Вывод: Internet создавался как незащищенная система, не предназначенная для хранения и обработки конфиденциальной информации. Более того, защищенный Internet не смог бы стать той системой, которой он сейчас является и не превратился бы в информационный образ мировой культуры, ее прошлого и настоящего. В этом самостоятельная ценность Сети и, возможно, ее небезопасность есть плата за такое высокое назначение.

Следствие: Имеется множество пользователей, заинтересованных в том, чтобы Internet стал системой с категорированной информацией и полномочиями пользователями, подчиненными установленной политике безопасности.

Однако наиболее яркие творения человеческого разума через некоторое время начинают жить самостоятельной жизнью, развиваясь и выходя за первоначальные замыслы создателей. Поэтому слабая защищенность сети с течением времени стала все больше беспокоить ее пользователей.

На наш взгляд, в Сети не должна находиться информация, раскрытия которой приведет к серьезным последствиям. Наоборот, в Сети необходимо размещать информацию, распространение которой желательно ее владельцу. При этом всегда необходимо учитывать тот факт, что в любой момент эта информация может быть перехвачена, искажена или может стать недоступной. Следовательно, речь должна идти не о защищенности Internet, а об обеспечении разумной достаточности информационной безопасности Сети.

Конечно, это не отменяет необходимости ознакомления пользователя с богатым и все время возрастающим арсеналом программных и аппаратных средств обеспечения информационной безопасности сети. Тем не менее отметим, что они не в состоянии превратить Internet в защищенную среду, что означило бы изменение ее природы.