Обеспечение защиты сетей UNIX

Рамон Дж. Онтаньон

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

Как ни странно, среди специалистов в области систем защиты компьютерных сетей сплошь и рядом встречаются ошибочные мнения, в том числе и об операционной системе UNIX. Вот несколько широко распространенных мифов об изъянах в ее защите: меньшая безопасность в сравнении с другими ОС; сильная уязвимость некоммерческих версий; трудность организации на ее основе надежного брандмауэра из-за огромного числа поддерживаемых сетевых служб.

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

Что касается свободно распространяемых версий UNIX, то они уязвимы не более своих коммерческих собратьев. При этом, несмотря на то что у поставщиков коммерческих продуктов проблемами безопасности занимаются специальные подразделения, разработчики некоммерческих систем (Linux, FreeBSD и др.) зачастую более оперативно распространяют свои пакеты с исправлениями вследствие большей эффективности их каналов дистрибуции. Однако, вне зависимости от качества предоставляемой технической поддержки, весь груз ответственности за нахождение программных "заплаток" к последним обнаруженным "дырам" для конкретной версии UNIX лежит исключительно на плечах администратора.

Утверждение о том, что на базе UNIX нельзя построить хороший брандмауэр, также ошибочно. Понятно, что качество брандмауэра в первую очередь определяется надежностью операционной системы, под управлением которой он работает. Поэтому, если вы хотите иметь хороший брандмауэр, то отключите все сетевые службы, кроме тех, которые жизненно необходимы для его функционирования (обычно это IP-маршрутизация и поддерживаемые службы TCP). Хотя по сравнению с другими операционными системами UNIX действительно имеет большое число сетевых служб, это вовсе не означает его заведомую уязвимость. Наоборот, уместно напомнить, что стек ТСР/IP для UNIX доказал за почти 30 лет существования свою надежность.

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

ИЗГНАНИЕ "ЗЛЫХ ДУХОВ"

Хотя средства массовой информации пытаются убедить нас в том, что попытки взлома защиты предпринимаются неуправляемыми тинэйджерами, статистика говорит нечто противоположное: главная опасность исходит изнутри — от работников компании и ее филиалов (с классификацией типов сетевых атак вы можете познакомиться, прочитав врезку "Типология сетевых атак").

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

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

Не менее важным является введение практики подробного протоколирования и мониторинга событий. Большинство приобретаемых вами приложений UNIX способно фиксировать события с помощью системного процесса Syslog — главного средства протоколирования этой операционной системы. Содержимое журнальных файлов следует просматривать ежедневно (/var/adm/messages), при этом Syslog лучше сконфигурировать на перенаправление информации о высокоприоритетных событиях (типа crit, alert и emerg) на чей-либо пейджер. Кроме того, важные данные о неудачных попытках установления соединений содержит журнал работы утилиты TCP Wrappers (более подробно о работе с TCP Wrappers я расскажу немного позже).

Пароли — следующая область вашего внимания. Помимо использования надежных паролей (включения в них специальных символов, определения минимальной длины пароля и др.) я советую регулярно проверять их устойчивость к взлому путем запуска программы Crack. Эта утилита позволяет отгадывать "слабые" пароли путем слепого перебора вариантов с помощью небольшого встроенного многоязыкового словаря. Для оценки надежности своих паролей программу следует испытать на собственном файле паролей /etc/passwd. Некоторые эксперты в области компьютерной безопасности могут не согласиться с такой методикой, но если эту операцию не проделаете вы, то это вполне может сделать кто-то другой. Тем пользователям, чей пароль был отгадан, предложите выбрать другой, более надежный.

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

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

ЗАТЫКАНИЕ ДЫР

С самого своего рождения операционная система UNIX развивалась как система с открытой архитектурой, с интегрированными возможностями поддержки коммуникационных средств. Такие ее свойства порой доставляют сильную головную боль тем, кто хочет использовать UNIX в сетевых средах с чрезвычайно высокими требованиями к безопасности. Вы, наверное, слышали "страшные истории" о том, что некоторые разработчики диалектов UNIX поставляют свои продукты в изначально незащищенных конфигурациях с известными (или секретными) паролями для входа и активизированными анонимными службами.

Однако любая система UNIX может быть превращена во вполне защищенную. Это делается путем ужесточения требований к ее конфигурации, когда только реально требующиеся для работы сетевые компоненты оставляются активными. Начните с отключения всех сетевых служб. Затем постепенно включайте только абсолютно необходимые. Убедитесь, что для каждой службы запущен демон (daemon) самой последней версии (программа, выполняющая прослушивание сообщений этой службы), установите все последние пакеты обновлений, которые распространяет поставщик конкретного демона.

Укрепление сервера UNIX поднимает планку профессиональных знаний и количества усилий, которые злоумышленнику потребуется предпринять для взлома вашей сети. Это сильно охладит пыл любителей легких побед. Вместе тем анализ неудавшихся атак — тоже ценный материал, на котором можно многому научиться. Регистрировать как удачные, так и неудачные попытки взлома сервера позволяет большое число свободно распространяемых программ. Зафиксировав подозрительную сетевую активность, вы получаете шанс предотвратить вторжение в сеть со стороны потенциального взломщика. Что еще более важно — вы можете отследить (а иногда и идентифицировать) злоумышленника, который совершил атаку на сеть.

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

Telnet. Самым распространенным способом взлома защиты telnet является неавторизованный доступ, выполняемый методом слепого подбора пароля. Это чрезвычайно просто — написать сценарий, который будет периодически осуществлять попытки соединения по telnet с удаленным сервером с указанием каждый раз нового пароля. Защититься от такого нападения можно, если настроить демон telnet таким образом, чтобы он запрещал установление соединения на предопределенное время после заданного числа неудачных попыток. Идеальным вариантом было бы увеличение времени задержки, пропорциональное числу попыток регистрации.

NFS. В ранних версиях протокола NFS (Network File System) обмен данными между клиентом и сервером осуществлялся с помощью вызова удаленных процедур (Remote Procedure Call, RPC). Это делало сервер NFS уязвимым для неавторизованного доступа, поскольку процедуры RPC используют примитивные формы идентификации пользователя. Чтобы никто не мог замаскироваться под клиента NFS, все серверы NFS на базе UNIX вашей сети должны поддерживать протокол SecureRPC. В отличие от традиционного RPC, SecureRPC для идентификации каждого удаленного запроса к NFS использует стандарт шифрования DES (Data Encryption Standard) и экспоненциальный обмен ключами.

FTP. Основной угрозой защите при работе с протоколом FTP (File Transfer Protocol) является наличие анонимного сервера FTP, с помощью которого пользователь может зарегистрироваться и загрузить (а иногда и передать) нужные ему файлы. Если вам не требуется предоставлять подобные услуги, то уберите из файла /etc/passwd пользовательское имя FTP. Помимо этого, обязательно удалите соответствующий домашний каталог. Если же ваша организация в обязательном порядке должна иметь анонимный сервер FTP, то разместите его на компьютере вне своей сети Intranet, в так называемой "демилитаризованной зоне" (Demilitarized Zone, DMZ).

Другой разновидностью сетевой атаки является "отказ в обслуживании" (Denial-of-Service, DoS), когда атакующий инициирует множество сеансов связи с анонимным сервером FTP в попытке занять всю его пропускную способность. Чтобы снизить остроту ситуации, многие версии серверов FTP предоставляют возможность задать максимальное число поддерживаемых ими одновременно сеансов связи. Если поставщик UNIX не поддерживает эту функцию, то вы можете воспользоваться одной из общедоступных версий сервера FTP (см. врезку "Ресурсы Internet").

POP3. Использование третьей версии протокола POP (Post Office Protocol) сопряжено с серьезной опасностью для системы защиты, поскольку почтовые пароли пользователей передаются по сети открытым текстом. Применяя стандартные средства прослушивания сети, атакующий может легко перехватить комбинацию "имя пользователя/пароль" и воспользоваться ею для неавторизованного доступа ко многим другим сетевым ресурсам. Противодействовать этому можно путем установки сервера РОР3, поддерживающего работу с командой АРОР (Authenticated POP). Данная команда является изящным расширением набора команд протокола РОР3. Она дает пользователю возможность выполнения уникальной односторонней процедуры шифрования пароля перед его передачей серверу. Например, компания Qualcomm предлагает бесплатный демон РОР3 для UNIX, реализующий эту команду. Загрузить его можно с сервера РОР Qpopper этой компании по адресу: http://eudora.qualcomm.com/free/servers.html.

Sendmail. Старые версии агента передачи сообщений Sendmail изобиловали дырами в системе защиты, некоторые из них были очень серьезными и открывали злоумышленнику легкий путь проникновения в систему. Сегодня большинство поставщиков диалектов UNIX используют версии Sendmail оригинального дистрибутива UC Berkeley, свободно распространяемые некоммерческим Sendmail Consortium. Секрет защиты Sendmail — в установке последней версии со всеми "заплатками" для предотвращения проникновения в сеть через какую-либо из ранее выявленных "дыр". Учитывая факт появления коммерческих версий с задержкой, наиболее правильным подходом будут установка и конфигурация самой последней (бесплатной) версии, полученной с узла рассылки Sendmail (http://www.sendmail.org/ ).

Если по каким-то причинам вы не можете использовать Sendmail, то загрузите и установите Qmail — более современный, более быстрый и более простой в конфигурации агент передачи сообщений. Эта программа поддерживает большинство известных функций Sendmail. Кроме того, Qmail может устанавливаться на место Sendmail. Получить утилиту можно с официального узла Qmail: http://www.qmail.org/ .

WWW. Хорошей практикой защиты сервера НТТР от излишне любопытных пользователей Web является предотвращение возможности просмотра закрытых разделов сервера. При этом сервер не должен функционировать с полномочиями корня (root permissions), поскольку большинство атак нацелено на получение привилегированного доступа ко всем ресурсам компьютера. Вы также должны знать, что демон НТТР, выпущенный Национальным центром по разработке приложений для суперкомпьютеров (National Center for Supercomputing Applications, NCSA) в марте 1995 года, содержит ошибку, дающую возможность запускать на сервере любые команды.

Поскольку самым распространенным в мире сервером Web сейчас является Apache, то вероятность обновления его демона HTTP при обнаружении дыры выше, чем у других. Поэтому, если вы серьезно заботитесь о защите своего сервера Web, я рекомендую загрузить и установить с сервера http://www.apache.org/ самую последнюю версию Apache.

Независимо от того, какой сервер НТТР вы выбрали, будьте особенно внимательны при работе со сценариями CGI (Common Gateway Interface). Эти исполняемые программы обычно располагаются в каталоге CGI-BIN на сервере. Ваш сервер Web должен быть сконфигурирован таким образом, чтобы исполняемые сценарии могли размещаться только в этом каталоге. Благодаря этому они всегда будут находиться под неусыпным контролем.

БАЗОВЫЙ ИНСТРУМЕНТАРИЙ СИСТЕМЫ БЕЗОПАСНОСТИ UNIX

После укрепления защиты UNIX вам потребуется лишь небольшая помощь в поддержании ее в "пуленепробиваемом" состоянии. Такую помощь вам могут предоставить несколько бесплатных утилит.

Написанный Тату Йоненом из Хельсинского технологического института пакет Secure Shell (SSH) представляет собой хорошую альтернативу таким традиционным протоколам удаленного доступа, как telnet и rlogin. Его последняя версия (1.2.х) обеспечивает надежную аутентификацию удаленного хоста, сводя к минимуму вероятность обмана при регистрации, совершаемого путем ввода чужого DNS-имени или IP-адреса. Помимо этого, SSH поддерживает несколько сквозных протоколов шифрования (DES, Triple-DES, IDEA и Blowfish), что гарантирует конфиденциальность сеансов связи начиная с момента передачи пароля.

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

Я настоятельно рекомендую вам отключить службы telnet и rlogin в пользу SSH. Версия SSH для UNIX распространяется бесплатно и включает как клиентскую, так и серверную часть. Кроме того, несколько качественных бесплатных реализаций клиента SSH имеется и для ПК. Загрузить SSH можно с узла http://www.ssh.fi/ .

Если же по ряду причин вам обязательно нужно использовать telnet для удаленного доступа, то хорошим способом защиты от прослушивания паролей будет однократное применение пароля. Так, например, в соответствии с этим принципом перемещающиеся с места на место пользователи системы s/Key получают набор паролей, а затем поочередно вводят их для удаленного доступа к серверам UNIX (при этом им не надо иметь специализированное клиентское программное обеспечение).

Сильная сторона алгоритма аутентификации s/Key в том, что, даже узнав текущий пароль, подслушивающий не в состоянии определить, каким будет следующий. Единственной проблемой этого метода является способ генерации и рассылки списка паролей. Обычно решение состоит в написании сценария, с помощью которого пользователь может запросить список паролей и распечатать его на заданном по умолчанию принтере. Это гарантирует, что пароли не будут перехвачены при их пересылке по сети простым текстом. (Более подробную информацию об s/Key вы найдете на узле http://yak.net/skey/

Другим, не менее полезным, механизмом защиты паролей является программа Crack. Как уже говорилось, Crack — это простая, но чрезвычайно мощная программа угадывания паролей. Она читает стандартный файл паролей UNIX /etc/passwd и пытается подобрать пароль для каждой записи методом слепого перебора. Хотя работа Crack и может продолжаться несколько дней (или даже недель), она выполняется в фоновом режиме с очень низким приоритетом.

Crack представляет собой великолепный инструмент по идентификации слабых паролей и может запускаться как в системах с поддержкой теневых паролей (/etc/shadow), так и с общими парольными картами NIS (Network Information System). Используйте Crack для периодического аудита системы защиты и сообщайте пользователям о наличии уязвимых паролей. (Crack можно загрузить с сервера ftp://ftp.cert.org/pub/tools/crack/.)

Возможно, наиболее мощной бесплатной утилитой в области защиты UNIX является TCP Wrappers. Программа выполняет две важнейшие функции обеспечения сетевой безопасности: мониторинг и фильтрацию. Утилита контролирует работу основного сетевого демона UNIX (inetd) и может быть запрограммирована на разрешение или запрет любых TCP-соединений, в зависимости от нескольких факторов, включая номер порта TCP или IP-адрес как отправителя, так и получателя. Звучит впечатляюще, не так ли? Удивительно, но конфигурировать TCP Wrappers легче легкого, а ее работа создает либо самую минимальную нагрузку на сеть, либо вообще никакой. (Загрузить утилиту можно с сервера ftp://ftp.win.tue.nl/pub/security/.)

Возможности TCP Wrappers по мониторингу не менее полезны. Информация обо всех попытках установления ТСР-соединений (как успешных, так и неудачных) может быть занесена в текстовый файл, включая данные об адресах отправителя и получателя, портах ТСР и времени запроса.

ПОСЛЕДНИЕ СОВЕТЫ

Ни одну систему нельзя сделать надежной на все сто процентов. Реализуя надлежащие меры по обеспечению защиты серверов UNIX, вы снизите риск взлома сети, но никогда не исключите его полностью. При выборе конкретной платформы UNIX важно выяснить, насколько оперативно ее поставщик ликвидирует выявляемые изъяны в системе защиты. Признает ли он наличие проблемы, незамедлительно распространяя соответствующую "заплатку", или же прячет голову в песок, всячески отрицая ее существование?

Ключ к успеху при организации обороны по периметру — диверсификация мер в области защиты. После укрепления безопасности на сетевом IP-уровне (путем установки брандмауэра для фильтрации сетевых пакетов) защиту следует ввести и на транспортном (TCP), а также и на прикладном уровне. UNIX — сложная операционная система, поэтому и атаки против нее бывают самыми разными.

Согласно данным отчета "Компьютерные преступления и проблемы безопасности", который Институт компьютерной безопасности США (Computer Security Institute, CSI) опубликовал совместно с ФБР в 1998 году, финансовые потери компаний из-за наличия брешей в системах их сетевой защиты в последнем квартале отчетного года катастрофически выросли. Общая сумма потерь, приходящаяся на 241 компанию, анализ деятельности которых приведен в отчете, составила 136 822 000 долларов. Таким образом, по сравнению с 1997 годом, когда аналогичная цифра составляла 100 115 555 долларов, финансовые потери увеличились на 36%. Помимо экономической стороны дела вы должны учесть и вероятность нарушения принятых компанией обязательств, а также тот общественный резонанс, который всегда сопутствует случаям нарушения защиты.

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

Рамон Дж. Онтаньон — инженер по внешней безопасности сети UUNET. С ним можно связаться по адресу: [email protected].

Защита информационных ресурсов

Как избежать подслушивания передаваемых по сети данных, предотвратить проникновение в сеть и не дать помешать нормальной работе ее пользователей? Это лишь некоторые из вопросов, которые вам придется себе задать, приступая к организации защиты самого ценного имущества своей компании: информации.

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

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

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

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

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

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


Типология сетевых атак

Итак, против чего конкретно вы собираетесь обороняться? Большинство сетевых атак на системы защиты подпадают под следующие категории.

Отказ в обслуживании. Задавшись целью блокировать работу конкретного сетевого ресурса, атакующий использует какой-либо разрушительный алгоритм, делающий этот ресурс временно (или постоянно) недоступным. Обычно атаки такого типа хакеры осуществляют посредством подачи запросов TCP/IP с фальшивых адресов или путем отправки большого числа запросов одновременно (данная технология также известна под именем "лавинная рассылка"). Этот вид атак особенно неприятен для узлов, специализирующихся на электронной коммерции, поскольку невозможность установления связи с клиентами для них просто губительна.

Перебор вариантов. Этот вид атаки нацелен на сетевые ресурсы с доступом по паролю, а также на ресурсы с зашифрованной информацией. Вооружившись мощным процессором, злоумышленник начинает перебирать варианты паролей (или криптографических ключей) до тех пор, пока один из них не окажется верным. Такой подход обычно предусматривает так называемую "словарную" атаку (dictionary attack), когда диапазон поиска ограничивается наиболее часто используемыми буквенно-цифровыми сочетаниями (словами).

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

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


Ресурсы Internet

Информацию об уязвимых местах защиты UNIX вы найдете на сервере http://www.infilsec.com/vulnerabilities/ .

На дистрибутивном узле http://www.wuftpd.org/ размещен бесплатный пакет сервера FTP.

С узла консорциума Sendmail Consortium (http://www.sendmail.org/ ) можно загрузить бесплатную версию Sendmail.

Упомянутый в статье совместный отчет Института компьютерной безопасности и ФБР размещен по адресу: http://www.gocsi.com/prelea11.htm .

Обширный список ресурсов по проблемам защиты сетей UNIX вы можете найти в интерактивном справочнике Network Security Roadmap института SANS на Web-странице http://www.sans.org/roadmap.htm