Укрепление (hardening) сервера
Тесты на проникновение
Многие поставщики продуктов безопасности распространяют бесплатные инструменты для оценки ИТ-систем (тем самым в действительности они подталкивают вас к покупке их товаров). Эти поставщики проверяют, насколько хорошо укреплена тестируемая система, при помощи так называемого теста на проникновение.
Например, Symantec, создатель антивируса Norton Anti-Virus, предлагает Symantec Security Check" (Проверка безопасности от Symantec), в котором можно найти несколько очень хороших бесплатных услуг. Их можно найти по следующему URL:
http://security.symantec.com/ssc/home.asp
Среди предоставляемых бесплатных услуг инструменты "Scan for Security Risks" (Сканирование на наличие угроз для безопасности, т. е. как раз тест на проникновение), "Scan for Viruses" ("Сканирование на наличие вирусов", очень похож на сам Norton Anti-Virus) и "Trace a Potential Attacker" (Для выслеживания потенциальных взломщиков, данного IP-номера). Эти инструменты очень компетентны в том, что они делают.
- Если система, которую нужно протестировать, уже укреплена, то "Scan for Security Risks" будет прекрасным средством ля проверки того, что работа была выполнена должным образом. Также он определит, нет ли в ИТ-системе нежелательных служб, установленных кем-то из наиболее распространенных троянских коней.
- Если система еще не укреплена или если система укреплена, но только до того момента, когда антивирусный сканер еще не установлен "Scan for Viruses" будет превосходным выбором, с чего начать. Он просканирует файловую систему ИТ-системы на наличие зараженных файлов. После этого, независимо от результатов сканирования, следует установить антивирусный сканер и применить к рабочей станции соответствующие меры по укреплению.
Замечания. Есть два очень важных замечания.
Во-первых, инструменты Symantec подгружают в ИТ-систему содержимое ActiveX. Обычно подобного не следует допускать, кроме тех редких случаев, когда организации, делающей это, можно доверять. Что касается упомянутых здесь специфических инструментов, Symantec – компания, проработавшая долго и упорно в сфере безопасности и более чем завоевавшая себе доверие. Кроме того, ее инструменты действительно работают хорошо и помогают обеспечить лучшую безопасность; не отвергайте их.
Во-вторых, Symantec тем не менее тоже делает ошибки. Например, такая проблема безопасности, как переполнение буфера ActiveX в "Проверке безопасности Symantec" от 25.06.2003, которая была открыта (и исправлена) в компоненте ActiveX, используемом для реализации проверки безопасности. Подробности находятся по адресу:
http://www.sarc.com/avcenter/security/Content/2003.06.25.html
У Symantec нет монополии на подобные устройства. Другие поставщики продуктов безопасности выпускают сходные инструменты, которые для поднятия уровня безопасности ИТ-системы не менее компетентны. Например, Gibson Research Corporation предлагает популярный тест "ShieldsUp!", который является еще одним очень хорошим тестом на проникновение. Он находится по следующему URL:
Важно! Представленные здесь предположительные инструменты выступают в качестве примеров, а не поддержки или рекламы компаний Symantec или Gibson Research. На рынке есть и другие инструменты и поставщики услуг безопасности, на которые тоже стоит обратить внимание, чтобы гарантировать, что к ИТ-системам организации может быть применен достойный уровень укрепления.
9.3.4 Дальнейшее чтение
В этом курсе невозможно охватить все аспекты укрепления серверов и рабочих станций Windows.
Чтобы помочь с укреплением ИТ-систем, как серверов, так и рабочих станций, тем, кто хочет удостовериться, что они все выполнили с надлежащим старанием и получили самую последнюю информацию касательно данного раздела, полезны будут следующие дополнительные источники:
- Безопасность от Microsoft (http://www.microsoft.com/security/)
- "Семь шагов к персональной компьютерной безопасности":
http://www.microsoft.com/security/articles/steps_default.asp
- "Инструменты и контрольные списки безопасности"
- "Семь шагов к персональной компьютерной безопасности":
- Безопасность Windows NT и конфигурационные ресурсы от координационного центра CERT (http://www.cert.org/tech_tips/win-resources.html)
- "Руководство по настройке Windows NT"
http://www.cert.org/tech_tips/win_configuration_guidelines.html
- "Безопасность домашней сети"
- "Ресурсы о компьютерных вирусах"
- "Руководство по настройке Windows NT"
- Читальный зал информационной безопасности в институте SANS (http://www.sans.org/rr/index.php)
- "Вопросы по Windows 2000"
Данные – всего лишь отправная точка. В Web есть множество других сайтов, на которых имеется прекрасная информация.
9.4 Укрепление систем UNIX
В этом разделе мы рассмотрим укрепление UNIX-серверов. Системы UNIX и системы Windows в достаточной мере отличаются друг от друга, чтобы для них требовались совершенно раздельные обсуждения.
Относительно UNIX говорят, что самое замечательное в стандартах – это то, что их так много и можно выбирать. UNIX выпускается целым рядом семейств, два доминирующих из которых произошли от BSD и от AT&T System V. Некоторые из характерных реализаций UNIX в этих двух категориях приведены ниже.
Системы UNIX, полученные из BSD:
- OpenBSD,
- FreeBSD,
- NetBSD,
- BSDi,
- MacOS X,
- SunOS 4.
- Системы UNIX, полученные из System V:
- HP-UX,
- Solaris (SunOS 5).
Замечание. AIX, по сути, подходит к любой категории, поддерживая команды, которые будут работать в стиле либо BSD, либо System V в зависимости от того, как они вызываются. Из-за этого отличия AIX мы посвятили отдельный раздел. См. 9.5, "Укрепление операционной системы AIX".
Из этого возникает вопрос, куда же отнести Linux? Это хороший вопрос, так как Linux не является производным от какого бы то ни было UNIX. Тем не менее – и это полностью зависит от дистрибутива – он придерживается семантики и BSD и System V. Фактически, чтобы не давать неоднозначных ответов, сам по себе Linux – это просто ядро операционной системы и несколько драйверов поддержки. Большинство дистрибутивов Linux использует систему GNU (http://www.gnu.org), из-за чего они называются дистрибутивами GNU/Linux. Существуют сотни доступных дистрибутивов GNU/Linux, но даже "лидирующая пятерка" различается по своим командам по умолчанию, начальным загрузочным скриптам, раскладкам файловой системы, включая утилиты и системы пакетов.
На основании всего этого надо сказать, что, в отличие от Windows NT, Windows 2000 и Windows XP, описание того, как укреплять сервер UNIX или Linux, – намного более сложная задача.
Тем не менее данный раздел дает некоторые общие процедуры, которые можно применять ко всем версиям UNIX и дистрибутивам Linux. После него приведены некоторые ссылки на реальные документы в Интернете, которые отслеживают имеющиеся в наличии данные и релизы, а также углубляются в более детальные описания того, как укреплять сервер для конкретной задачи.
9.4.1 Общие шаги по укреплению серверов UNIX и Linux
Говоря в целом, системное укрепление сервера UNIX (сюда входят и серверы GNU/Linux) – это целая глобальная философия системной безопасности, которая особенно фокусируется не только на обнаружении, но и на предотвращении. Сюда входят и удаление ненужных служб из базовой конфигурации операционной системы, и ограничение пользовательского доступа к системе, и накладывание ограничений на пароли, и контроль прав пользователей и групп, и разрешение системного учета.
Во время процедуры минимизации, описываемой в этом разделе, следует идентифицировать и запретить те компоненты и службы операционной системы, которые не нужны для выполнения текущей задачи.
Например, если система используется в качестве файлового сервера, от разрешения служб электронной почты (e-mail) будет немного пользы. Служба e-mail запускается от имени root, и у взломов, связанных с электронной почтой, долгая история. Процедуры должного системного укрепления взывают к тому, чтобы подобные службы были отключены, что приводит к конечной системе с минимальной вероятностью взлома.
Процесс укрепления серверов UNIX или GNU/Linux начинается с самого момента установки. Соответственно выполняются дополнительные действия, в которые входят:
- как устранение возможных точек атаки остановкой или перенастройкой служб и портов, так и удаление ненужных библиотек;
- добавление устойчивости файловой системе посредством рассмотрения файловой принадлежности и разрешений;
- надлежащая настройка пользовательских учетных записей, чтобы привилегированные учетные записи использовались только тогда, когда они специально определены (и необходимы), и чтобы все учетные записи имели соответствующие нетривиальные пароли.
Некоторые общие рекомендации по конфигурированию серверов UNIX, чтобы сделать их более безопасными по умолчанию, находятся на Web-сайте CERT по следующему URL:
ftp://info.cert.org/pub/tech_tips/UNIX_configuration_guidelines
9.4.2 Разбиение на разделы для лучшей защиты
Обычно, вне зависимости от устанавливаемого клона UNIX, количество дисковых разделов определено и каждый из них имеет свое собственное специальное предназначение, это такие разделы, как SWAP и /tmp. Кроме этих очевидных разделов, следует проделать некоторую работу для защиты от атак типа "отказа от обслуживания" ( denial-of-service ) "нехватка места на диске" ( out-of-disc-space ).
Некоторые типичные атаки пытаются создать непомерное образование журнальных данных: или заполняют файловую систему сервера UNIX большими файлами через FTP, или, если ваш Domino-сервер не настроен должным образом, пытаются послать чрезмерно большие сообщения, которые заставят файл mail.box вырасти соответственно и занять требуемое место на жестком диске.
Самый лучший способ защититься от такого рода атак – это сегментировать иерархию файловой системы на несколько отдельных физических разделов.
Корневой раздел ( "/" ). Этот раздел может быть маленьким, потому что обычно на нем находится только ядро, подразумевающее необходимые файлы, библиотеки и конфигурацию для начальной загрузки, которые находятся в /bin, /sbin, /etc и /lib. Доступ к присоединенным устройствам осуществляется через папки /dev и /devices. Многие дистрибутивы GNU/Linux хранят ядра и символьные данные в папке /boot, в то время как библиотеки ядра расположены в /lib.
Раздел /usr. Как правило, это раздел для хранения приложений, доступных обычному пользователю. Обычно в /usr не содержится никаких данных или файлов конфигурации, способных изменяться; по этой причине – как дополнительная мера безопасности – его можно подсоединять (монтировать, mount) только для чтения.
Раздел /var. На этом разделе хранятся системные журналы и данные таких служб, как почта, Web, базы данных, принтеры, запущенные службы, управление пакетами и т. д. Если под корневым каталогом/создается всего один отдельный раздел, /var как раз и есть один из тех, которые следует создавать отдельно.
Каталог /usr/local ( /opt в Solaris). Эти папки часто содержат локально установленные "по выбору" программное обеспечение, конфигурационные файлы и данные. На каталог /usr/local обычно не влияют обновления операционной системы. В зависимости от того, каким образом эти каталоги используются системой UNIX, они тоже могут быть подсоединены только для чтения.
Детали могут варьироваться в различных версиях UNIX (и дистрибутивах GNU/ Linux), так что для определения наилучшего способа установить их с ориентацией на должный уровень безопасности мы рекомендуем вам прочитать замечания по установке, которые поставляются вместе с той версией UNIX, которая планируется к установке.