Ж у р н а л   о   к о м п ь ю т е р н ы х   с е т я х   и   т е л е к о м м у н и к а ц и о н н ы х   т е х н о л о г и я х
СЕТИ И СИСТЕМЫ СВЯЗИ on-line
  ПОИСК: ПОДПИСКА НА НОВОСТИ: НОМЕР:
    ДОМОЙ • Архив: Новостей | Конференций | НомеровПодписка
 
   
 
   
    
РЕДАКЦИЯ
 
Все о журнале
Подписка
Как проехать
Где купить
Отдел рекламы
График выхода журнала
Адреса в Интернет

РУБРИКАТОР
   
• Инфраструктура
• Информационные
   системы

• Сети связи
• Защита данных
• Кабельные системы
• Бизнес
• Колонка редактора
• Электронная
   коммерция

• Только на сервере
• Системы
   учрежденческой
   связи

• Новые продукты


Rambler's Top100

  

Задраить люки!

Питер Морриси

Вам нужна абсолютная гарантия того, что ваши компьютеры никогда не станут объектом нападения со стороны Интернет?

Что ж, тогда немедленно отключите их от Сети. Если же выбирать менее радикальный способ, то наилучшим, пожалуй, окажется установка правильно сконфигурированного межсетевого экрана. Однако, как только вы открываете доступ к службам на одной из машин, вы тем самым сразу же создаете благоприятные условия для проникновения в вашу сеть. Ниже мы рассмотрим способы усиления безопасности Unix-хостов — наиболее распространенных мест размещения служб Интернет — и расскажем, как следует выбирать соответствующие средства их защиты.

Место установки

Чтобы обеспечить безопасность сети, в первую очередь необходимо правильно разместить хосты. Для начала сконфигурируйте межсетевой экран таким образом, чтобы он пропускал только тот трафик, который поступает в ответ на запрос из внутренней сети. Такой подход позволяет добиться высокой степени защиты и удобен для пользователей, желающих “путешествовать” по Web. При желании (или необходимости) организовать собственные службы придется так или иначе разрешить доступ к ним. Уровень этого доступа часто бывает вполне достаточным для того, чтобы “квалифицированный” взломщик, воспользовавшись им, “проверил на прочность” расположенный в вашей внутренней сети хост. Если он оказывается уязвимым, то обеспечиваемая межсетевым экраном защита ослабевает и у злоумышленника появляется возможность проникнуть и на другие внутренние хосты.

Для предотвращения этой угрозы желательно разместить Unix-хост в так называемой демилитаризованной зоне (ДМЗ), например в промежутке между внешним маршрутизатором (выполняющим функции фильтрации трафика) и межсетевым экраном. Другой вариант — выделить для хоста отдельный интерфейс межсетевого экрана. В этом случае экран не только защищает хост, но и создает изолированную сеть на тот случай, если этот хост подвергнется нападению (см. “Способы изоляции Unix-хостов”).

Имейте в виду, что значения параметров, задаваемые по умолчанию при инсталляции любой коммерческой ОС, включая Unix, с точки зрения безопасности отнюдь не являются оптимальными. Разобраться с ними — дело нелегкое, но в случае успеха процесс отслеживания соответствующих изменений в новых версиях ОС значительно упростится. Если же вы новичок в системном администрировании, то “открывать” свою систему для доступа из Интернет не следует до тех пор, пока вы не будете уверены в том, что достаточно защищены. При выборе же ОС для определенного приложения стоит предварительно проверить ее на предмет обеспечения безопасности в рамках своей организации. Фирмы-поставщики постоянно модифицируют свои программные продукты путем разного рода исправлений и дополнений, позволяющих “залатывать” вновь обнаруживаемые “дыры”. И разумеется, вам следует позаботиться о том, чтобы все установленные у вас ОС были снабжены самыми свежими “заплатами”. Впрочем, ограничиваться одним только “латанием” не следует — нужно самостоятельно отслеживать факты выявления новых “дыр” (для этого в Интернет имеются очень полезные ресурсы, например по адресам http://www.l0pht.com и http://www.rootshell.com). Кроме того, организация Computer Emergency Response Team (CERT) поддерживает список почтовой рассылки по этой теме, но информация от нее поступает только после того, как появляются соответствующие “заплаты”.

Web-узел данной организации (http://www.cert.org) содержит обширный архив описаний обнаруженных “дыр”. Журнал Network Computing вскоре также предложит услугу по информированию специалистов в области сетевой безопасности и сетевых администраторов — Network Computing Security Express. Вы тоже можете воспользоваться ею, подписавшись по адресу http://www.networkcomputing.com/express/.

Мечта хакера

Один из самых распространенных способов взлома — атака посредством переполнения буфера (buffer overflow attack), в ходе которой организуется поток входных данных для определенного серверного приложения. Если их объем не ограничен приложением, то эти данные записываются в системную память. Там они могут образовать некую последовательность символов, воспринимающуюся системой как исполняемый код.

Другой, менее изощренный способ, иногда называемый “взлом ядра” (kernel bashing), заключается в создании программы, предназначенной для выполнения другой программы в привилегированном режиме. (К таким программам относится и команда setuid, о которой речь будет идти ниже, в разделе “Задание ограничений”.) Kernel bashing вызывает прерывание исполнения программы во время ее работы, что приводит к переходу в привилегированный режим (root) и таким образом обеспечивает злоумышленнику полный доступ к системе. Такую атаку может предпринять только зарегистрировавшийся в системе пользователь.

В идеале для защиты сети от атак подобного рода при ее создании следует ограничиться только самыми необходимыми приложениями. Если же вы имеете дело с уже работающей сетью, то ее необходимо “очистить” от всех ненужных приложений. С этой целью, во-первых, просмотрите командные файлы запуска (startup script file). В ОС Solaris, как правило, для системных приложений таким файлом является /etc/rc2, а для пользовательских — /etc/rc3. В них вы найдете команды запуска на выполнение всех файлов, расположенных в соответствующих каталогах /etc/rcn.d с именами, начинающимися с буквы S. Например, в файле /etc/rc2 вы можете обнаружить строку for f in/etc/rc2.d/S*.

В каталоге rc2.d вы увидите ряд сценариев или программ с именами на букву S — они-то и будут выполняться по вышеуказанной команде. Переименуйте все файлы, выполнение которых вы хотите отменить. Поскольку в ОС Unix регистр букв является значимым, то вам достаточно поменять в именах файлов заглавные буквы S на строчные.

Файл /etc/inetd.conf содержит список процессов (приложений), запускающихся уже после старта системы. Процесс inetd принимает запросы на установление сетевых соединений с процессами, перечисленными в файле inetd.conf, и управляет многими распространенными приложениями Интернет, такими, как FTP и telnet.

Задание ограничений

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

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

Различные утилиты и сценарии тоже могут быть причиной для беспокойства, особенно если они выполняются в привилегированном режиме. Команда setuid в ряде случаев временно предоставляет работающей программе любые полномочия, в том числе и администратора. При написании собственных программ и сценариев всячески избегайте предоставления временных полномочий администратора. Список всех файлов в вашей системе, предоставляющих администраторские полномочия, вы можете получить с помощью команды find/-user root -perm -4000 -print.

Выполнив команду ls -l для всех этих файлов, вы обнаружите, что их владельцем является администратор и что все они имеют букву S в колонке полномочий. Это означает, что программа получает временные полномочия привилегированного доступа в процессе своего исполнения вне зависимости от того, какой пользователь ее запустил. Отказать программе в таком доступе можно командой chmod. Неудобство такого подхода состоит в том, что, поскольку программе необходим доступ этого уровня, она не сможет работать, если запустивший ее пользователь не был зарегистрирован в качестве администратора.

Автоматизация защиты

Еще один способ обеспечения безопасности Unix-хоста состоит в использовании продукта типа AutoSecure Access Control for Unix фирмы Platinum Technology, реализованного на базе ПО SeOS фирмы Memco Software. Он специально разработан для противодействия атакам типа “переполнение буфера”, для чего им выполняется “перемешивание” системной памяти в случайном порядке, так что сформировать нужную кодовую последовательность в результате переполнения буфера становится невозможно. Продукт также обеспечивает значительно более высокую степень точности контроля и мониторинга, чем стандартные ОС, и способен уменьшить ущерб от атаки на приложение. AutoSecure Access Control изолирует и защищает приложения и файлы регистрации, препятствуя таким образом проникновению в систему злоумышленника. Если вашему Unix-хосту требуется максимальная защита, мы рекомендуем использовать именно этот продукт.

Для тестирования AutoSecure Access Control мы воспользовались программой ufs2, которая в обычной ситуации заставляет ОС предоставлять любому зарегистрированному пользователю привилегированный доступ.

Эта программа на языке Си вызывает общесистемную программу Unix ufsrestore, во время своей работы обычно получающую привилегированный доступ. Для осуществления атаки типа kernel-bashing программа ufs2 запускает ufsrestore и инициирует преждевременное прекращение ее работы, предоставляя пользователю административные полномочия. В ходе тестирования программа ufs2 запускалась на машине UltraSPARC 10, работающей под управлением ОС Solaris 2.6. Хотя на нее были поставлены все самые свежие “заплаты”, тем не менее в результате нам удалось получить привилегированный доступ к системе, несмотря на то, что мы были зарегистрированы в обычном режиме.

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

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

Запакуйте всехорошенько

Программа TCP Wrapper позволяет осуществлять фильтрацию соединений на основе IP-адреса отправителя и ассоциированного порта приложения-получателя. Такая функция может показаться избыточной при условии, что ваш межсетевой экран уже сконфигурирован для выполнения такой задачи. Однако если кому-то все же удастся преодолеть ваш межсетевой экран, то благодаря TCP Wrapper вы по-прежнему сможете контролировать доступ к Unix-хосту. Ограничив таким образом доступ к определенным машинам в вашей внутренней сети, вы добьетесь того, что при возникновении угрозы безопасности какого-либо хоста атака не сможет распространиться на “упакованный” хост. Но при этом вам придется создать конфигурационные файлы для всех хостов, которым требуется защита, и последующая работа с ними может оказаться весьма обременительной. Получить программу TCP Wrapper вы сможете по адресу http://ftp.porcupine.org/pub/security/.

Если в вашей сети имеется целый ряд Unix-хостов, то вам стоит обратить внимание на ПО сетевого сканирования. Продукты этого типа с успехом справляются с инспектированием сетевых хостов, генерируют реестр обнаруженных точек уязвимости и предлагают способы для их устранения. Это, в частности, изменение конфигурации ПО и/или получение свежих “заплат” от фирмы-поставщика. Однако, когда дело касается открытых для доступа из Интернет хостов полагаться на эти продукты уже нельзя, так как их базы данных обычно обновляются только раз в несколько месяцев. За это время наверняка появятся новые “дыры”, и они вполне могут быть использованы для проникновения в вашу сеть, прежде чем вы узнаете о их существовании.

Возможно, вас также заинтересуют средства обнаружения сетевых вторжений. Такое ПО поможет вам идентифицировать трафик, который характерен для попыток проникновения в сеть (см.: Сети и системы связи. 1999. № 11. С. 108). Впрочем, это всего лишь половина дела: конечно, все эти продукты смогут предупредить вас о возможной попытке проникновения, но это совсем не означает, что они способны ее пресечь.





  
14 '1999
СОДЕРЖАНИЕ

колонка редактора

• "Детские болезни" пакетных сетей

локальные сети

• Маркировка кабельной проводки: задача простая, но очень важная

• Кабельная проводка для жилых зданий

• Техника безопасности при работе с оптическими кабелями

• ZENworks и NDS - в тесном содружестве

интернет и интрасети

• IP адресация: игра в имена

защита данных

• Задраить люки!

• Биометрические средства аутентификации: руководство для покупателей

новые продукты

• ATOMIC 25+ - российский продукт АТМ!; Avidia - уже в России!

корпоративные сети

• Переключатели KVM

• Грядет год стандарта H.323?

• Серверы проявляют свой "характер"

услуги сетей связи

• Шоу высоких технологий

• Сигнализация в сетях IP-телефонии (Часть II)

• Трафик с разными уровнями приоритета

• Узел вторичного поставщика услуг Интернет

• Интерактивные электронные биллинговые системы

• Сетевые процессоры будут работать на терабитовых скоростях

• Хороший стандарт - плохой стандарт



 Copyright © 1997-2007 ООО "Сети и Системы Связи". Тел. (495) 234-53-21. Факс (495) 974-7110. вверх