Защита операционной системы осуществляется посредством процесса, называемого укреплением (hardening), в котором берется стандартная "боксовая" конфигурация (т. е. та, которая поставляется производителем для процесса установки со значениями параметров, выставленными по умолчанию) и закрываются все известные уязвимые места и потенциальные "дыры" безопасности файловой системы, фоновых служб и конфигурации сетевых служб.
В этой лекции мы рассмотрим "укрепление" тех операционных систем, на которых обычно Lotus-технологии и работают, а именно:
Наше обсуждение коснется рабочих станций, так же как и серверов, поскольку вопросы безопасности включают в себя все аспекты инфраструктуры, а не только ее наиболее видимых частей.
В этом разделе мы объясним некоторые фундаментальные принципы "укрепления". Необходимо понимать эти основы до того, как мы сможем обсуждать реальное "укрепление" ИТ-системы организации.
Если и существует наилучшее место, с которого следует начинать процесс "укрепления", так это операционная система. Это связано с тем, что ОС представляет собой ядро ИТ системы. В конце концов, именно ОС отвечает за то, чтобы пользователи были надежно аутентифицированы и контролировались. К счастью, "укрепление" ОС – не сложная задача, хотя первичные действия могут показаться утомительными. В этой лекции мы сделаем обзор общих методов и концепций, которые можно использовать для "укрепления" любой ОС.
С того самого момента, как только планируется установка ОС, безопасности следует придавать наивысший приоритет. К сожалению, этого часто не происходит, результатом чего являются неполноценные установки, что в конечном итоге приводит к скомпромитированным системам. Следующие разделы описывают в общих чертах те шаги, которым надо следовать каждому администратору или пользователю во время установки.
Во время установки ОС она должна быть физически отсоединена от любой сети, особенно от Интернета. Хотя результаты статистики варьируются в зависимости от того, кто предоставляет их, подсчитано, что установка ОС по умолчанию, будь то Windows или Linux, будет просканирована и взломана в течение часа после подсоединения к Интернету. К сожалению, для установки всех корректных
Ирония в том, что этим самым операционным системам требуется тем или иным способом быть подключенными к Интернету для того, чтобы иметь возможность загрузить необходимые патчи безопасности. Решение этой проблемы – использовать отдельную машину для загрузки необходимых патчей и затем применять эти загруженные патчи к той машине, на которой происходит новая установка.
Существует почти 100% вероятность, что установка "по умолчанию" приведёт к тому, что такая машина, или конфигурация, будет иметь как минимум одно уязвимое место, которое может быть использовано взломщиком для получения неавторизированного доступа.
Чтобы помешать этому, администратору следует быть готовым к установке всех подходящих патчей и обновлений. Это означает знание наперед, какие основные обновления доступны для данной ОС. Обновления часто бывают в форме пакетов обновлений (service pack) или обновленных релизов, которые доступны в пригодном для загрузки формате, что позволяет подготовить необходимые обновления на записываемом CD (компакт-диске) или ленте еще до установки.
После того как ОС с текущими обновлениями установлена, важно поддерживать ее в состоянии, всегда соответствующем последним обновлениям и исправлениям. Службы обновления предлагаются большинством производителей ОС (такие, как утилита up2date компании Red Hat и Windows Update Tool компании Microsoft). Эти инструменты должны использоваться с осторожностью, и вам следует понимать, что именно сделает с системой конкретный патч, полученный при помощи такой утилиты, до того, как он будет установлен.
Операционная система – это лишь небольшая часть ИТ-системы. Подключенные дополнительные службы могут дать дополнительную функциональность, не входящую в "боксовую" конфигурацию, но, с другой стороны, могут стать причиной некоторой головной боли в плане безопасности. Например, одна из наиболее известных таких служб для ОС Windows Server – Internet Information Server (IIS, Информационный сервер Интернета), который стал источником огромного количества хорошо известных "дыр".
Точно также, как и саму ОС, все службы и программы сторонних производителей на компьютере следует проверять, чтобы гарантировать то, что они самой последней версии и безопасны в использовании. Как это ни странно, но далеко не все системные администраторы понимают этот принцип и предпринимают усилия для удаления нежелательных служб; более того, некоторые даже не знают, какие именно службы запущены на их системах.
Пока мы в этой лекции разбираемся со специфическими инструментами и методиками, есть быстрый и легкий способ закрыть некоторые уязвимые места – проверить, какие коммуникационные порты "слушают" входящие данные. Это делается при помощи следующей команды в командной строке:
netstat –an
Кроме того, инструменты, такие, как Nessus, Nmap и
После того как ИТ-система пропатчена и закрыта, следующий важный шаг, который следует предпринять до того, как открывать ее миру, – это установить надлежащий базовый уровень для этой ИТ-системы.
Главным образом это означает, что должна существовать полная документация тех изменений, которые были выполнены с ИТ-системой. Любые изменения, сделанные с базовым уровнем, могут быть проконтролированы, и приняты соответствующие меры безопасности. Этим также устанавливается в организации единый стандарт конфигурации ИТ-систем, и любые необходимые корректировки могут быть сделаны быстро и единообразно, избегая тем самым самого понятия "самое слабое звено". (То есть такой системы, которая значительно отличается своей базовой конфигурацией и в которой нечаянно оставлены открытыми службы и порты. Такая система может быть использована для подготовки атак на другие системы организации.)
К тому же надлежащая безопасность полагается на соответствующую документацию. Именно по этой причине для организации должен существовать соответствующий ПСОНМ (политики, стандарты, общее направление мероприятий) (PSPG – Policies, Standards, Procedures
Инструменты защиты – один из самых главных элементов, который обеспечивает буфер безопасности между ИТ-системами и теми людьми, которые пытаются взломать их. Этот инструментарий включает в себя антивирусные сканнеры, фильтры приложений, брандмауэры и другие инструменты.
Стоит упомянуть, что инструменты защиты только уменьшают вероятность того, что взломщики успешно получат доступ к ИТ-системе. Исходя из того, что существует множество способов проведения атак, вам не следует слишком полагаться на эти инструменты и рассматривать их, скорее, как сдерживающие средства, нежели как средства предохранения от взлома
Детальное описание брандмауэров, их архитектуры и того, как наилучшим образом их использовать, дано в 4.1, "Инфраструктура компонентов". В этом разделе мы рассмотрим лишь некоторые базовые концепции брандмауэров.
Брандмауэр – это такое устройство, которое тщательно просматривает входящий сетевой трафик и, опираясь на набор правил, либо пропускает его, либо нет. Брандмауэры, как правило, стоят по периметру сети организации, защищая ее от Интернета,
В наши дни брандмауэры стали настолько обыденным явлением, что люди стали чрезмерно полагаться на них, и многие системные администраторы считают, что брандмауэры обеспечивают всю требуемую безопасность сети. Хуже того, некоторые системные администраторы думают, что могут достать брандмауэр из коробки, подключить его, никогда больше на него не смотреть и рассчитывать на то, что он все еще будет защищать их систему.
Брандмауэры эффективны ровно настолько, насколько эффективны их базис правил, конфигурация и системные администраторы, следящие за ними. Брандмауэры должны конфигурироваться соответствующим набором правил и постоянно патчиться, чтобы быть в курсе вновь возникающих уязвимостей. Кроме того, за ними надо постоянно наблюдать, чтобы отслеживать
Подобно брандмауэрам, фильтры приложений ограничивают поток данных согласно некоторому набору правил. В действительности некоторые устройства совмещают в себе брандмауэр и фильтр приложений. (Примером этого может быть Microsoft
Однако брандмауэр и фильтр приложений, по сути, совершенно разные вещи, поскольку функционируют на разных уровнях TCP-стека. Вместо отслеживания и управления трафиком на основе IP-адреса и порта (что делают брандмауэры) фильтр приложений контролируют данные, основываясь на используемом программном или коммуникационном протоколе или на фактических данных, передаваемых в пакет.
Например, если организация хочет ограничить использование
Помимо управления службами, фильтры приложений часто используются для блокирования доступа пользователей к сомнительным или нелегальным Web-сайтам посредством либо проверки URL-адреса в базе данных запрещенных адресов, либо сканирования каждой запрошенной Web-страницы на предмет наличия определенных ключевых слов.
Хотя фильтры приложений и важны для контроля того, какие данные входят и выходят из сети, тем не менее они ненадежны. Например, Web-сайты могут менять адреса и даже просто быть доступными по IP-адресу, тем самым обходя любые проверки URL-адресов. Кроме того, сайт, не содержащий ни единого слова (только рисунки), мог бы легко обойти проверку и пройти к запросившему пользователю, внезависимости от того, какие рисунки в нем содержатся.
Внутри любой информационной системы существует множество устройств, которые могут быть использованы или злоупотреблены взломщиком для получения неавторизированного доступа к данным. Сюда входят незащищенные концентраторы и коммутаторы, гостевая учетная запись, открытые беспроводные сети и даже сети Bluetooth.
К примеру, открытая беспроводная сеть могла бы позволить хакеру полностью обойти все другие защитные устройства и получить свободную власть во внутренней сети.
Вот почему системные политики и обучение являются ключевыми предохранительными инструментами.
Всякий раз, когда компания нанимает нового пользователя, его обычно сопровождают к офису или комплексу, дают имя пользователя и пароль и затем предлагают приступить к работе. В более сознательных в плане безопасности организациях, новонанятого могут попросить прочитать и подписать соглашение о соответствующем применении компьютерной системы.
К сожалению, как правило, настолько широко распространено и совершенно лишено смысла то, что у пользователей иногда складывается такое впечатление, будто до тех пор, пока они не раскрывают свой пароль, любая игра будет честной, включая пользование
Независимо от того как хорошо и всеобъемлюще написана политика безопасности, она бесполезна, если конечный пользователь не читает и не понимает ее. Обязательно прочитайте лекцию 2, "Методики построения систем безопасности", особенно те разделы, в которых говорится о политиках безопасности, о компетентности и обучении пользователей, о проверке на соответствие.
Сканер безопасности NMap (сокращение от
NMap – это продукт
NMap также имеет возможность создавать и отправлять узлу сети фрагментированные пакеты. Используя опцию –f (фрагментирование), можно заставить NMap выполнить сканирование фрагментированными IP-пакетами. В режиме фрагментирования NMap расщепляет TCP-заголовок на несколько пакетов, чтобы усложнить обнаружение сканирования
Хотя этот метод и не сможет одурачить брандмауэры, которые поддерживают целостность пакетов, многие сети не способны справиться с перегрузками при отслеживании фрагментов и, таким образом, не поддерживают этого.
В конце концов такие инструменты, как Nessus, используют NMap в своем ядре, что делает NMap еще более популярным.
В этом разделе были очень кратко рассмотрены несколько популярных техник укрепления ИТ-системы и то, о чем следует помнить системным администраторам и вообще всем тем, кто имеет дело с ИТ-безопасностью. Дальнейший материал лекции более глубоко раскроет намеченные концепции и объяснит в частности техники и методы укрепления ИТ-инфраструктуры так, как это должно быть.
Операционная система определяет все то, что может быть сделано с ИТ-системой, и то, каким образом это будет делаться. То ли происходит взаимодействие с файловой системой, то ли отправка электронной почты посредством Lotus Notes, то ли разговор с кем-нибудь через Sametime – за всем этим стоит "закулисная" работа операционной системы по обеспечению пользователя соответствующей технической поддержкой для интерпретации его запросов в нечто такое, с чем ИТ-система способна работать.
И хотя операционные системы различаются на многих уровнях, наиболее общие из них определяют нечто намного большее, чем простой интерфейс между пользователем и машиной. В них входят программы, дающие пользователю многочисленные дополнительные возможности: от простых
Многие пользователи тесно знакомятся с аксессуарами операционной системы (такими, как игры, идущими в комплекте с ОС), но совершенно забывают о тех средствах безопасности, которые входят в поставку, чтобы помочь им поддерживать свою операционную среду надежной и безопасной. В результате многие ИТ-системы так и находятся в небезопасном состоянии, что оставляет их подверженными опасности заражения вирусом или даже полной компрометации взломщиком.
Данный раздел посвящен вопросам безопасности операционной системы. Его цель – рассказать о таких специальных программах настолько подробно, чтобы процесс их укрепления был легок как для понимания, так и для выполнения. Это важно, поскольку достаточно всего лишь одного вируса или программы-"трояна", чтобы запустить цепную реакцию заражения компьютеров и компрометации ИТ-систем.
Прежде чем углубляться в то, что называется безопасностью в операционной системе, необходимо знать, где же собственно ОС начинается и где заканчивается. Наш краткий обзор описывает функциональность и предназначение операционной системы, а также то, как она используется для создания компьютерного опыта.
Кратко говоря, операционная система должна обеспечить выполнение двух основных функций. ОС должна:
Первая функция имеет особенно критических характер, поскольку именно она определяет то, каким образом приложения получают доступ к системным ресурсам. Посредством контроля различных аспектов использования аппаратуры и программного обеспечения ОС гарантирует, что каждое приложение получит возможность использовать процессор.
Вторая функция определяет методы, посредством которых приложение может получить доступ к этим ресурсам. Поскольку ОС зачастую выступает в качестве буфера между выполняющейся программой и аппаратурой, нужны какие-то средства, позволяющие приложениям получать доступ к ресурсам без необходимости знать всю топологию компьютерной системы.
Есть четыре основных вида операционных систем, классифицируемых согласно типам программ, которые они поддерживают, и способу взаимодействия этих программ с пользователями:
Операционная система отвечает за широкий спектр задач внутри компьютерного окружения. Именно эти задачи часто являются тем, что делает одну операционную систему надежнее и легче в использовании по сравнению с другой. То, как ОС управляется с этими задачами, определяет реальные возможности операционной системы.
Это было очень краткое резюме тех основных задач, с которыми следует управляться операционной системе.
Следующие разделы описывают вопросы безопасности, с которыми должна иметь дело операционная система для поддержания конфиденциальности, целостности и доступности системных ресурсов. Мы пройдемся по двум наиболее известным семействам операционных систем и по присущим им особенностям реализации систем безопасности. Еще мы опишем наиболее часто встречающиеся методы взлома или обхода этих систем, а также то, каким образом можно защитить себя от подобных видов атак.
С этого момента мы будем ссылаться на две ключевые книги по безопасности, которые в своей библиотеке следует иметь каждому администратору систем Windows или UNIX, а именно:
В этих книгах находится настоящее богатство полезных мыслей по поводу слабых и сильных мест в системах безопасности Windows и Linux.
Уже достаточно долгое время Microsoft Windows имеет репутацию системы с неадекватным уровнем безопасности, но многие эксперты в сфере безопасности полагают, что в действительности Windows отнюдь не слаба. Всю вину они возлагают непосредственно на плечи системных администраторов, которые отвечают за эти системы. Другими словами, при должном сопровождении и настройке вполне возможно сделать операционную систему Windows относительно безопасной.
Тем не менее есть несколько областей, в которых, как известно, Windows действительно уязвима, например в следующих:
1) Где это начинается и где заканчивается; и 2) Как надлежащим образом все это использовать и настраивать.
Из этого краткого обзора вопросов безопасности Windows становится очевидным, что для обеспечения безопасности этой операционной системы требуется очень основательный системный администратор. Абсолютно все, от патчей до понимания соответствующих процедур установки для гарантии того, что системные файлы и службы попали в поле зрения, является ключом к обеспечению того, что сервер Windows находится в безопасности.
Невозможно, да это и не является целью настоящей лекции, подробно описать все уязвимые места Windows. Напротив, читателю предлагается обратиться к следующим сайтам за текущими обновлениями в этой области:
При помощи информации, содержащейся на этих сайтах, можно оперативно идентифицировать слабые и уязвимые места и применить соответствующие патчи. Справедливости ради надо сказать, что Windows не единственная операционная система со слабыми местами. В Linux также имеются некоторые "дырки", которые мы рассмотрим дальше.
Многими Linux рассматривается как операционная система для компьютерных "фанатиков". Хотя когда-то подобное и было справедливо, сейчас операционные системы Linux для всех практических целей эволюционировали до той точки, когда они стали привлекательны и для обычного пользователя. От самых базовых машин Lindows и до выхода файлового сервера Red Hat-система, Linux делает значительные шаги в продвижении на основной рынок, приобретая также безусловную поддержку IBM. К сожалению, это означает, что растет также и число неопытных пользователей Linux.
Одно из самых распространенных утверждений относительно Linux – она более безопасна, чем Windows. К сожалению, такое утверждение само по себе не совсем корректно и заставило не одного ИТ-работника поверить в то, что ИТ-инфраструктура будет безопаснее, исходя только из самого того факта, что они используют Linux. Хотя это и действительно может быть правдой, что Linux может быть сделана более безопасной, чем другие операционные системы, в руках пользователей ей присущи многие из тех же самых проблем, что и для других ОС. Основные вопросы безопасности для Linux следующие:
Системным администраторам Linux-систем следует регулярно заходить на Web-сайты используемых ими дистрибутивов (например, Caldera, Red Hat, SUSE, Turbolinux) за консультациями по уязвимым местам и соответствующими патчами, а также в раздел UNIX сайта SecurityFocus (http://www.securityfocus.com/unix), тоже за консультациями по вопросам безопасности, за инструментами и техниками для борьбы с уязвимостями.
В итоговом разделе мы попытались представить ясный и сбалансированный обзор потенциальных вопросов безопасности в Linux и Windows. Это сделано для того, чтобы показать, что в обоих семействах операционных систем есть слабые места и что сознательному в плане безопасности системному администратору не следует расслабляться в чувстве комфорта от того, что он использует одну систему в противовес другой.
В следующих разделах мы рассмотрим специфику укрепления Windows и Linux, а заодно Solaris и AIX, так как все это такие операционные системы, на которых работает и поддерживается Domino.
Domino также работает и на таких ОС, как zOS (OS/390®) и OS/400® (которые предназначены для
В этом разделе мы рассмотрим процесс укрепления систем Windows (на базе Win32). Это те системы, которые включены в линейку NT-продуктов Windows, а именно:
Сюда мы включили и Windows XP Professional, так как Windows применяется большинством пользователей в качестве настольной системы (Linux в этой области медленно догоняет ее и все более и более привлекает к себе внимание), и, таким образом, как нам кажется, руководство по укреплению рабочих станций было бы хорошей идеей.
Хотя укрепление сервера Windows является несколько утомительным процессом, реализовать его относительно легко, и для него, как правило, не требуются от организации какие-либо расходы на дополнительное программное или аппаратное обеспечение. Как упоминалось ранее в этой лекции, процесс достаточно прямолинеен: 1) укрепить базу операционной системы и 2) предпринять аналогичные меры к любым службам, которые планируется запускать на данной ИТ-системе. В конечном итоге это не поможет укрепить базу операционной системы и оставит зияющие "дыры" в Web-сервере и сервере баз данных. Стоит еще раз повторить, что с каждым установленным в операционную систему продуктом возрастает вероятность, что взломщики получат доступ к ИТ-системе.
За долгие годы Windows NT 4.0 стала для Microsoft основной рабочей лошадкой. И хотя в настоящее время доступны более богатые своими возможностями замены ей, тем не менее до сих пор есть достаточно много причин, почему может быть развернута именно Windows NT 4.0. Тот факт, что большинство клиентов уже создали под нее стабильную и надежную основу, является, пожалуй, наиболее общераспространенным. Поэтому схема укрепления старого флагманского продукта будет рассмотрена в первую очередь. Многое из того, что будет здесь рассмотрено, применимо и к более новым версиям Windows, поэтому прочтение данного раздела очень рекомендуется.
При установке Windows NT 4.0 Server лучше всего следовать приведенным здесь рекомендациям настолько точно, насколько только возможно. Отдельные отклонения от нижеизложенного могут привести к тому, что будет удалена необходимая функциональность, требующаяся для приложения. Если подобное произойдет, мы встанем перед трудным выбором. В частности, если данная функциональность должна быть сохранена, от системных администраторов потребуется намного больше работы для защиты сервера, возможно даже придется использовать некоторые дополнительные инструменты и техники, упоминавшиеся ранее в этой лекции.
Начнем для начала с того, что следует делать, и отложим обсуждение того, чего делать не следует, на некоторое время. Этим будет гарантировано то, что смогут быть выработаны некие наиболее подходящие практические методы, а также то, что все необходимое для них будет установлено. Лучше всего начать с должным образом настроенной базы, чем потом встать перед необходимостью корректировки неправильной установки.
Итак, при установке Windows NT 4.0 в целях безопасности вам следует сделать следующее:
Замечание. Некоторые системные администраторы предпочитают устанавливать файловую систему FAT, а уже затем, после установки, преобразовывать ее в файловую систему NTFS. Подобный способ действий не рекомендуется, поскольку в этом случае ACLs по умолчанию применены не будут.
Удаление этих служб может сильно повлиять на функциональность сервера. Для планируемой конфигурации следует проверить требования программного обеспечения или, что еще лучше, провести пробную установку и протестировать конфигурацию до ее фактического размещения в реальном рабочем окружении.
Указанные службы могут быть удалены последовательным выбором: Панель управления -> Сеть -> Службы (Control Panel -> Network -> Services):
Хотя это и удобно для удаленного администрирования сервера, лучше всего не добавлять дополнительные службы, включая службы удаленного управления, такие, как telnetd и FTP. Ни одна из них не осуществляет шифрования, таким образом учетные записи, пароли и другая информация запросто могут быть собраны прямо по сети. Если все же эти службы должны быть разрешены, системным администраторам следует принять иные меры предосторожности, такие, как доступ только через брандмауэр из внутренней сети и применение фильтров IP-безопасности к тем серверам, на которых эти службы работают.
Удалите данный ключ, а вместе с ним удалятся все нижележащие ключи, относящиеся к подсистеме OS/2 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OS/2 Subsystem for N.
Уберите значение Os2LibPath из ключа Environment:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\EnvironmentOs2LibPath.
Уберите ключи Optional, POSIX и OS/2 из ключа "Подсистемы менеджера сессии":
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems.
После этих изменений в регистре необходимо вручную удалить директорию %WINNT%\system32\os2 вместе со всеми вложенными папками.
Это был действительно длинный список того, что фактически должно быть сделано, но на котором многие системные администраторы почему-то спотыкаются, поскольку не осознают всего того, что им следует делать при установке операционной системы.
Теперь перейдем к тому, чего не следует делать. Это еще один немаленький список, хотя и не совсем такой длинный, как список того, что следует делать.
Замечание. Internet Explorer 4.01 SP1® идет в поставке Windows NT на компакт-диске с опциональными компонентами (Option Pack CD), а Internet Explorer 4.01 SP2® доступен для скачивания по сети.
Есть несколько функций и особенностей Windows NT, которыми можно управлять исключительно через настройки реестра. При правке реестра следует быть особо осторожным, поскольку это быстро и легко может покалечить всю систему. Нижеследующие изменения реестра однозначно сделают Windows NT более безопасной.
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\Winlogin DontDisplayLastUserName
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Lsa RestrictAnonymous
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SecurePipeServers\winreg
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\FileSystem NtfsDisable8dot3NameCreation
ADMIN$, C$ и т. д.). (Убедитесь, что вы собственноручно удалили эти ресурсы из списка разделяемых (для общего доступа) запуском команды net share /d.):HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\LanmanServer\Parameters AutoShareServer
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Eventlog\Application \CurrentControlSet\Services\Eventlog\Security \CurrentControlSet\Services\Eventlog\System RestrictGuestAccess
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\Winlogon CachedLogonsCount
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWAR \Microsoft\Windows\CurrentVersion\RunOnceEx HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\AeDebug HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\WinLogon
В Windows NT 4.0 есть несколько встроенных автоматических служб журналирования. Большинство служб пользуются EventLogs, с которой следует быть знакомым едва ли не каждому хорошему администратору систем Windows.
Замечание. Описанные здесь особенности журналирования применимы и к более поздним версиям операционной системы Windows, но рассказывается о них только в этом разделе.
Если на сервере запускаются какие бы то ни было службы Интернета (такие, как FTP, HTTP, SMTP и т. д.), их журналирование происходит посредством разных механизмов. Очень вероятно, что для настройки или отладки сервера будет использоваться приложение "Монитор производительности" (Performance Monitor). Это приложе- ние не пользуется услугами журнала приложений службы EventLog, а вместо этогведет свой собственный набор журналов.
И наконец, один из наиболее важных аспектов системы – расписание автоматически выполняемых заданий – ведет свой журнал посредством еще одной службы. Поскольку в Windows NT нет нормальной централизованной службы ведения журналов, каждый должен заботиться сам о себе.
Самое первое, что нужно сделать, – это вынести все журналы на отдельный журнальный раздел. Было бы удобно, хотя и не обязательно на все 100 %, использовать в качестве такого раздела отдельный диск, чтобы не влиять на производительность работы с частью данных на сервере. После того как журнальный раздел создан, следующий шаг – перенести туда все журналы из их мест размещения по умолчанию.
Зачем все это? Если все журналы собраны в одном месте, процедура поддержки работающего сервера становится намного легче. Это дает возможность выполнять автоматическое резервное копирование и архивирование для последующего разбора и обработки.
EventLogs – это встроенные в Windows NT журналы событий, которые используются по умолчанию и могут быть просмотрены через обозреватель событий (Event Viewer). В Windows NT EventLogs является эквивалентом службы syslogs в операционной системе UNIX.
Сама служба EventLog состоит из журнала приложений (Application Log), журнала безопасности (
Эта задача выполняется редактированием следующих ключей реестра:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Eventlog\Application \CurrentControlSet\Services\Eventlog\Security \CurrentControlSet\Services\Eventlog\System
Значения параметров "File" следует установить в новое имя папки раздела журнальных файлов. После редактирования этих значений сервер должен быть перезапущен, чтобы изменения вступили в силу.
Службы, предоставляемые инфраструктурой Windows IIS Web-сервера, генерируют журналы для каждой из них: Web, FTP и SMTP. Журналы службы Интернета уникальны в том смысле, что для автоматического перехода к новому журналу можно настроить временной интервал. А имя журнального файла может основываться на определенном периоде времени.
Для изменения размещения этих журнальных файлов отредактируйте свойства корневой папки Web или FTP. Выберите свойства файла журнала и в диалоговое окно "Свойства" (Properties) введите новое размещение раздела журнальных файлов.
Журналы производительности создаются счетчиками монитора производительности (Performance Monitor). По умолчанию они находятся в %SystemDrive%\PerfLogs. Это значение может быть изменено редактированием параметра DefaultLogFileFolder в следующем ключе реестра:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\SysmonLog DefaultLogFileFolder
Служба планировщика обычно находится в %SystemRoot%\SchedLgU.Txt. Журнал службы планировщика определяет все запланированные и выполняемые задачи, а также то, когда каждая из них началась и закончилась. Местонахождение этого файла может быть изменено редактированием значения LogPath в ключе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\SchedulingAgent LogPath
Этим завершается наше обсуждение укрепления Windows NT. Как уже упоминалось ранее, многое из рассмотренного здесь применимо и к новым версиям Windows. Однако, исходя из того факта, что после NT 4.0 в Windows было сделано множество улучшений, важно также рассмотреть и эти новые версии и наметить некие наиболее подходящие практические методы обеспечения безопасности с точки зрения процесса укрепления.
Windows 2000 является намного более большим и сложным продуктом, чем Windows NT 4.0, и, по сути, для полного анализа ее установок безопасности по умолчанию и защиты от любых недочетов требуется гораздо больше времени. Исходя из этого, рекомендации по укреплению, приведенные в настоящей лекции, следует рассматривать как некий след во времени, поэтому в текущий момент они могут оказаться и не совсем корректными. Таким образом, самые лучшие практические советы здесь ссылаются на несколько реально существующих документов, опубликованных Microsoft в своей библиотеке Technet, которые предоставят самую последнюю информацию.
При установке Windows 2000 лучше всего следовать данному методическому указанию настолько точно, насколько возможно. Везде, где это только применимо, используйте рекомендации, приводившиеся в предыдущем разделе, наряду с обсуждаемыми здесь указаниями, специфичными для Windows 2000.
При установке Windows 2000 лучше всего попытаться уменьшить число устанавливаемых компонентов Windows 2000. По умолчанию Windows 2000 предлагает намного больше функциональных возможностей, чем Windows NT 4.0. Многое из этой функциональности лучше вообще НЕ предоставлять людям как внутри организации (если машина каким-либо образом доступна из Интернета), так и тем более кому бы то ни было снаружи.
По умолчанию в установку Windows 2000 входит множество аксессуаров, утилит, мультимедийных приложений и схем, а также приложений коммуникации. Можно, конечно, впасть в искушение установить набор программного обеспечения, предлагаемого по умолчанию. Однако лучше все-таки уделить время для определения того, что действительно стоит устанавливать, а что нет. Не будет лишним повторить: чем больше установлено программного обеспечения, тем выше вероятность быть взломанным.
Так же, как это делали в разделе о Windows NT 4.0, здесь мы расскажем о том, что делаем и чего не делаем при установке Windows 2000 в плане обеспечения безопасности и укрепления окружения.
Прежде всего начнем с того, что следует делать. Этим будет гарантировано то, что смогут быть выработаны некие наиболее подходящие практические методы, а также то, что все необходимое для них будет установлено. Лучше всего начать с должным образом настроенной базы, чем потом оказаться перед необходимостью корректировки неправильной установки.
Замечание. Некоторые системные администраторы предпочитают устанавливать файловую систему FAT, а уже затем, после установки, преобразовывать ее в файловую систему NTFS. Подобный способ действий не рекомендуется, поскольку в этом случае ACLs по умолчанию применены не будут.
Если данный сервер предполагается в качестве Web или почтовой станции SMTP, "Клиента для сетей Microsoft" (
Затем следует выбрать "Свойства протокола IP" (IP Protocol Properties). Для настройки IP адреса и информации DNS не используйте DHCP. После установки вручную сетевых параметров нажмите на кнопку "Дополнительно" (Advanced) и внесите следующие изменения:
TelnetClients, а затем добавьте в нее тех пользователей, которым доступ посредством telnet будет разрешен. Служба telnetd сама автоматически ограничит доступ к Telnet только членами группы TelnetClients.Сейчас о том, чего делать не следует.
CA [Certificate Authorities (Полномочия сертификатов)] следует держать в тайне, и обычно вы не предлагаете регистрацию сертификата всяким пользователям Интернета. Общепринятым правилом является содержание корпоративных "Полномочий сертификатов" в жестко контролируемой, безопасной среде в изолированной внутренней сети. Более того, поскольку Lotus Domino вероятнее всего будет предлагать использование SSL, для данного компонента – не для операционной системы – будет лучше принять это предложение, что является еще одним аргументом в пользу того, чтобы не загружать "Служб сертификатов".Если требуется
Если укрепление Windows NT 4.0 показалось несколько бессистемным, то на самом деле так оно и есть. Нет никакого простого способа определить и применить все изменения реестра, файловой системы, настроек сети и политики пользователь/группа. Хуже того, нет никакого простого способа следить за внесенными изменениями для гарантии того, что изменения в политике не были отменены взломщиками, установленным программным обеспечением или примененным пакетом обновлений.
С выходом Windows 2000 корпорация Microsoft ввела замечательный набор интегрируемых инструментов для "Консоли управления Microsoft" (Microsoft Management Console, MMC). Набор "Шаблонов безопасности" (Security Templates Tool) позволяет системным администраторам выбирать, просматривать и даже создавать самостоятельно шаблоны политики безопасности. Набор для "Конфигурации и анализа системы безопасности" (Security Configuration and
Изначально "Набор шаблонов шезопасности" и "набор для конфигурации и анализа системы безопасности" не видны в MMC. Для управления серверными политиками и настройками оба эти инструмента следует туда добавить.
Существует много пакетных шаблонов безопасности, среди которых и "Высокая безопасность для рабочих станций" (High Security for Workstations), которые определены в шаблоне HISECWS.INF. Кроме того, Microsoft выпустила "Шаблон высокой безопасности", предназначенный для Web-серверов. Шаблоны безопасности включают в себя большинство изменений в политике и в реестре, сделанные ранее для Windows NT 4.0. Шаблон безопасности HISECWEB.INF имеется в наличии на сайте Microsoft по следующему URL:
http://support.microsoft.com/support/misc/kblookup.asp?id=Q316347
Для использования шаблона выполните следующие шаги:
Уделите некоторое время просмотру и чтению индивидуальных шаблонов. Вы можете сделать это либо посредством "Набора шаблонов безопасности", либо вручную при помощи текстового редактора вроде WordPad. Пробегите глазами по предлагаемым изменениям, чтобы определить, имеют ли они смысл для размещения в данной ИТ системе конкретного приложения. Готовый шаблон из "Набора шаблонов безопасности" можно использовать как основу для разработки индивидуального шаблона безопасности. После получения шаблона, удовлетворяющего нашим требованиям, следующий шаг – проанализировать, как он повлияет на сервер.
Для загрузки шаблона используйте "Набор для конфигурации и анализа системы безопасности"; правый клик на иконке "Набора для конфигурации и анализа системы безопасности"; выберите "Анализировать компьютер". Найденное будет отображено на правой панели, показывая установки шаблона, текущие установки сервера и любые несоответствия. Просмотрите найденное и, если необходимо, настройте шаблон.
После того как шаблон безопасности был полностью настроен со всеми соответствующими разрешениями, политиками, установками реестра и ограничениями, кликните правой кнопкой мыши на иконке "Набора для конфигурации и анализа системы безопасности" и выберите "Анализировать компьютер". Затем откиньтесь на спинку стула и позвольте программе закончить свою работу.
У "набора для конфигурации и анализа системы безопасности" есть очень хороший эквивалент командной строки. Для анализа, настройки, обновления и сопоставления текущей серверной политики с вашим известным шаблоном можно использовать SECEDIT. Он удобен тем, что может быть запущен из сессии Telnet. Однако управлять сервером через нешифрованную удаленную сессию не рекомендуется.
Ориентированные на приложения серверы, обитающие внутри брандмауэра, потребуют запуска дополнительных служб, которые будут предлагаться интернет-аудитории. Поскольку существует огромное количество приложений и вообще невообразимое множество различных комбинаций настроек этих приложений, попытка описать конфигурацию даже самых общих из них, таких, как HTTP, FTP и SMTP, выходит далеко за пределы данного курса.
Если же ничего больше не делать, приложения примеров, устанавливаемые по умолчанию с IIS и различными компонентами, следует удалить. Приложения-примеры и их каталоги приведены в табл. 9.1.
| Приложение | Куда установлено |
|---|---|
| IIS | \inetpub\iissamples |
| IIS SDK | \inetpub\iissamples\sdk |
| Admin Scripts | \inetpub\AdminScripts |
| Data Access | \Program Files\Common Files\System\msadc\Samples |
Нужно сказать, что существуют реальные документы, которые дают замечательную отправную точку для должной настройки более общих служб приложений DMZ-сервера:
Этим мы завершаем наше обсуждение Windows 2000. Хотя между укреплением Windows NT 4.0 и Windows 2000 и есть некоторые совпадения, инструменты и методы с течением времени тем не менее эволюционировали. В результате при помощи политик процесс укрепления сервера Windows 2000 значительно менее бессистемный, нежели процесс укрепления сервера Windows NT 4.0.
До настоящего момента основное внимание уделялось укреплению серверных конфигураций, чтобы сделать их более устойчивыми к атакам. Поскольку безопасность является суммой всех своих составных частей и в то же время наиболее уязвима в своей самой слабой точке, важно также обсудить и процесс укрепления конфигураций рабочих станций, особенно тех, которые работают под управлением операционных систем Windows (NT, 2000, XP), так как именно они на момент публикации данной книги были самыми распространенными настольными операционными системами.
Также это является фундаментальной областью знаний о безопасности, в которой постоянно обнаруживаются все новые и новые слабые и уязвимые места во всех ИТ- системах, и операционная система Windows в этом плане не исключение.
В результате, если нет систематического процесса по поддержанию конфигураций ИТ-систем (серверов и рабочих станций) в соответствии с последними обновлениями поставщика (в форме патчей или пакетов обновлений), последствия будут слишком предсказуемы: эти системы падут жертвой взлома.
Этот раздел сосредоточивает свое внимание на рекомендациях по выбору инструментов, методик и технологий по укреплению рабочих станций Windows NT, 2000 и XP; и в частности на том, как применять патчи и настраивать эти системы для лучшей их защиты от компрометации. Рассмотренное в предыдущих разделах также следует принимать во внимание, так как у Windows в качестве серверной операционной системы и Windows в качестве рабочей станции много общего.
Поскольку в нашем курсе речь идет о продуктах Lotus
Мы рекомендуем вам прочитать статью Microsoft "Семь шагов к персональной компьютерной безопасности" ("Семь Steps to Personal
http://www.microsoft.com/security/articles/steps_default.asp
В конечном итоге здесь мы пытаемся сфокусировать наше внимание на более защищенных конфигурациях Windows, а точнее на тех, которые построены вокруг ядра Windows NT (NT 4.0, 2000 и XP). Этот раздел не затрагивает конфигураций, построенных на ядре Windows "9x" – 95, 98, 98SE и ME, поскольку они создавались без учета аспектов безопасности и взламываются слишком легко. Организациям, действительно заботящимся о своей ИТ-безопасности, но имеющим рабочие станции на основе ядра 9x, следует рассмотреть перспективу замены их на конфигурации с ядром Windows NT.
Для поддерживания рабочей станции Windows NT, 2000 или XP вам потребуется доступ к учетной записи "Администратор". (Это отличается от Windows 95, 98 и ME, в которых все пользователи имеют полные права доступа ко всей системе. Фактически это одна из главнейших причин, почему системы 9x являются незащищенными по своему дизайну.) В этом разделе мы обсудим привилегии, дающиеся конечному пользователю по отношению к учетной записи "Администратор", и затем рассмотрим защиту этой учетной записи.
И наоборот, лучше разработать такие конфигурации рабочей станции Windows, которые не наделяют конечного пользователя администраторскими правами (или предоставление им привилегий администратора) на их машинах. Ограничение на то, какое программное обеспечение конечные пользователи могут установить на свои рабочие станции и каким образом, предохраняет многие "дыры" безопасности от вскрытия и делают всю ИТ-инфраструктуру более безопасной.
Это обычно не согласуется с желаниями большинства пользователей. Большинство из них полагает, что на корпоративной рабочей станции (или даже на терминале) им следует обладать такой же степенью свободы, как и на своем собственном домашнем компьютере. Это вполне понятно, но машины не являются собственностью конечного пользователя, они являются собственностью организации. А значит, организации следует иметь в наличии политику безопасности, в соответствии с которой конечные пользователи не обладают на своих машинах администраторскими правами. (Если у организации ее нет, самое время вернуться к лекции 2, "Методологии построения систем безопасности", и написать набор
Учетная запись "Администратор" имеет привилегии делать с системой Windows все что заблагорассудится. Хакеры-злоумышленники будут выискивать подсоединенные к Интернету рабочие станции, в которых учетная запись "Администратор" имеет либо тривиальный пароль, либо вообще не имеет пароля как такового. Как только эта учетная запись взломана, хакер получает полный контроль над рабочей станцией.
Поэтому есть два варианта: один – иметь учетную запись "Администратор", другой – избавиться от нее (хотя и не полностью). Давайте рассмотрим их оба.
Важно обеспечить чистоту конфигурации рабочей станции, чтобы никакой файл не был взломан во время его обычного режима использования и чтобы никакие вновь вводимые в систему файлы не причинили ей вреда.
Вот почему так важно иметь установленную антивирусную защиту, которая может выполнять периодическое сканирование файловой системы и памяти для обнаружения вирусов, "
У большинства организаций есть лицензии на Norton Anti-
Microsoft попыталась сделать управление обновлениями на рабочих станциях Windows относительно легким. Установка текущих исправлений и пакетов обновлений посредством центра обновлений Microsoft состоит из нескольких нажатий на кнопки и зачастую перезагрузки (или иногда нескольких перезагрузок), так что на первый взгляд процесс кажется несколько нудным. Тем не менее система проработала достаточно долго и хорошо зарекомендовала себя, и, исходя из количества ее пользователей, мы должны заключить, что она действительно не сложна в использовании.
Следуйте нижеприведенным шагам для обновления конфигурации рабочей станции:
Всегда есть риск того, что исправление или пакет обновлений может нежелательно повлиять на конфигурацию рабочей станции. Обратная сторона медали – неприменение критического патча с большой вероятностью оставит рабочую станцию открытой для взлома. Стоит помнить, что у патчей, вышедших достаточно давно, очень низкая вероятность оказаться неадекватными, так как с тех пор они уже были протестированы другими людьми.
Применение пакетов обновлений и текущих исправлений может показаться утомительной и неблагодарной работой, но причина того, что такое множество червей буйно расплодилось по Интернету, в том, что они в точности используют известные и опубликованные "дыры". В общем, применение патчей к ИТ-системам, и к рабочим станциям в частности, – очень важная линия обороны.
Советник по основным направлениям безопасности Microsoft определит патчи, которые необходимо применить. URL для MBSA следующий:
http://www.microsoft.com/technet/security/tools/mbsahome.
MBSA поставляется как стандартный набор инструментов для установки. Он был выпущен в апреле 2002 г. и заменил собою более ранний, основывающийся на Web инструмент, называемый Microsoft's Personal Security Advisor (MPSA), который был предназначен для рабочих станций. MBSA – очень хороший инструмент для оценки степени защищенности рабочих станций Windows NT 4.0, Windows 2000 или Windows XP (также его можно использовать для оценки уровня безопасности серверов, работающих под управлением тех же версий операционной системы Windows). Еще он очень полезен для оценки безопасности серверов MS IIS и MS SQL.
MBSA определит патчи (пакеты обновлений и текущие исправления), которые следует применять. Еще MBSA выдаст рекомендации по нескольким важным настройкам защиты. Он работает достаточно хорошо, и системные администраторы, вероятно, найдут его более чем полезным для обеспечения безопасности ИТ-систем, находящихся под их контролем и ответственностью.
Для установки пакета надо обязательно обладать доступом к учетной записи Администратор и не менее важно также входить в систему как администратор для сканирования рабочей станции или сервера на наличие проблем. Если инструмент используется для сканирования безопасности, он загрузит и запустит содержимое, полученное от Microsoft, которое по идее предоставит самые последние и самые лучшие советы и настройки конфигурации на основании информации, предоставленной MBSA.
При применении патчей хорошим стилем считается агрессивная стратегия. В конце концов, если поставщик рекомендует применить патчи, было бы совершенно глупо – или для этого понадобятся действительно веские причины – игнорировать этот совет. К слову, если продукт был взломан через какое-то уязвимое место, а патч, закрывающий это место, уже был выпущен ранее поставщиком, но не применен, очень трудно будет после этого идти с жалобой к поставщику.
Что же касается самих патчей, лучше всего опробовать их на нескольких системах до того, как ставить на все ИТ-системы. Были случаи, когда Microsoft выпускал патч, который не работал или вызывал другие проблемы. Тем не менее вы можете быть в более чем достаточной мере уверенными в любом патче, с момента выхода которого прошло несколько недель, поскольку к этому моменту многие люди уже загрузили его, посмотрели, не вызывает ли он каких проблем, и, если таковые обнаружились, сообщили о них.
Рекомендации MBSA могут быть несколько раздражающими при применении, но все они действительно стоят тех усилий. Обычно рекомендации MBSA точно такие же, какие предложили бы любые другие хорошо известные организации, занимающиеся безопасностью.
Многие системы Windows NT 4.0, 2000 и XP сконфигурированы для работы с Web сервером, который называется "Информационный сервер Интернета Microsoft" (Internet Information Server, IIS). Он стал источником слишком большего числа взломов, самый известный из которых – червь "Code Red", который существует и по сей день, выискивая непропатченные или плохо настроенные серверы IIS. Ниже приводится то, что следует сделать для любой ИТ-системы, запускающей MS IIS Web-сервер.
Если конечным пользователям MS IIS Web-сервер не нужен или если конфигурация сервера организации не требует его, будет намного безопаснее не запускать этот сервер вообще. Логика – и совершенно справедливая – в том, что в первую очередь Web-сервер (такой, как IIS) невозможно взломать, если он не запущен. Точно так же, если он не работает, то в плане безопасности для системных администраторов одной головной болью меньше. В конце концов, можно вообще удалить подсистему IIS с рабочей станции или сервера, но, пожалуй, лучше все-таки будет только его остановить, потому что между различными компонентами версий операционной системы Windows существует слишком много взаимозависимостей, чтобы быть на 100 % уверенным в том, что удаление компонентов подсистемы позже не повлияет на что-нибудь еще.
Обновления для MS IIS Web-сервера можно найти при помощи инструмента MBSA, который обсуждался ранее. Как уже упоминалось, он эволюционировал из более раннего, основанного на Web-интерфейсе инструмента (который больше уже недоступен). Причиной для такой эволюции стала невозможность отследить текущие исправления для MS IIS Web-сервера. Фирме Microsoft пришлось рекомендовать "инструмент для проверки текущих исправлений", особенно для IIS, который больше не требуется для Windows 2000 и Windows XP.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q303215
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q305385
Упомянутые патчи все есть в "Бюллетене безопасности Microsoft", который находится на сайте Microsoft Technet Web по следующему URL:
http://www.microsoft.com/technet/security/current.asp
И наконец, Microsoft опубликовал инструмент для запирания MS IIS Web-сервера и закрытия многих общеизвестных "дыр". См. "Инструмент для Запирания IIS Microsoft", который находится по следующему URL:
http://www.microsoft.com/technet/security/tools/tools/locktool.asp
Некоторые системы Windows NT 4.0, 2000 и XP настроены с поддержкой сервера баз данных, способного обрабатывать запросы языка структурных запросов (Structure Query Language, SQL). Этот сервер баз данных называется MS SQL-сервером. Так же как и MS IIS, данный сервер стал источником нескольких "дыр". Самая известная – червь "Slammer".
Небольшими усилиями Microsoft SQL-сервер можно сделать безопасным. Если его не обезопасить, шансы на то, что он будет взломан, слишком велики. Для любой ИТ-системы с работающим на ней MS SQL-сервером рекомендации для защиты системы следующие:
Если конечным пользователям MS SQL-сервер не нужен или если конфигурация сервера организации не требует его, будет намного безопаснее не запускать этот сервер вообще. Опять же, логика в том, что в первую очередь сервер баз данных (такой, как MS SQL-сервер) невозможно взломать, если он не запущен. Точно так же, если он не работает, то в плане безопасности для системных администраторов одной головной болью меньше.
Далее, если MS SQL-сервер все-таки нужен, лучше установить его на какой-нибудь другой машине. Приложения для работы с базами данных не обязательно запускать на той же машине, на которой находится и сервер баз данных.
Хотя и можно вообще удалить подсистему MS SQL-сервера с рабочей станции или сервера, но, пожалуй, лучше все-таки будет только его остановить, потому что между различными компонентами версий операционной системы Windows существует слишком много взаимозависимостей, чтобы быть на 100 % уверенным в том, что удаление компонентов подсистемы позже не повлияет на что-нибудь еще.
И последнее, если MS SQL-сервер уже намеренно установлен, его следует немедленно отключить до тех пор, пока к нему не будут применены все патчи и текущие исправления и пока не будет завершен процесс укрепления.
Обновления для MS SQL-сервера (пакеты обновлений и текущие исправления) можно найти при помощи инструмента MBSA, который обсуждался ранее. Все еще не установленные патчи должны быть применены как можно быстрее, и ни один MS SQL-сервер не следует открывать до тех пор, пока к нему не были применены все патчи. MBSA определит некоторые проблемы, которые в противном случае могли быть упущены и которые следует изучить незамедлительно.
Упомянутые патчи все есть в "Бюллетене безопасности Microsoft", который находится на сайте Microsoft Technet Web.
Многие поставщики продуктов безопасности распространяют бесплатные инструменты для оценки ИТ-систем (тем самым в действительности они подталкивают вас к покупке их товаров). Эти поставщики проверяют, насколько хорошо укреплена тестируемая система, при помощи так называемого теста на проникновение.
Например, Symantec, создатель антивируса Norton Anti-
http://security.symantec.com/ssc/home.asp
Среди предоставляемых бесплатных услуг инструменты "Scan for
Замечания. Есть два очень важных замечания.
Во-первых, инструменты 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. На рынке есть и другие инструменты и поставщики услуг безопасности, на которые тоже стоит обратить внимание, чтобы гарантировать, что к ИТ-системам организации может быть применен достойный уровень укрепления.
В этом курсе невозможно охватить все аспекты укрепления серверов и рабочих станций Windows.
Чтобы помочь с укреплением ИТ-систем, как серверов, так и рабочих станций, тем, кто хочет удостовериться, что они все выполнили с надлежащим старанием и получили самую последнюю информацию касательно данного раздела, полезны будут следующие дополнительные источники:
http://www.microsoft.com/security/articles/steps_default.asp
http://www.cert.org/tech_tips/win_configuration_guidelines.html
Данные – всего лишь отправная точка. В Web есть множество других сайтов, на которых имеется прекрасная информация.
В этом разделе мы рассмотрим укрепление UNIX-серверов. Системы UNIX и системы Windows в достаточной мере отличаются друг от друга, чтобы для них требовались совершенно раздельные обсуждения.
Относительно UNIX говорят, что самое замечательное в стандартах – это то, что их так много и можно выбирать. UNIX выпускается целым рядом семейств, два доминирующих из которых произошли от BSD и от ATT System V. Некоторые из характерных реализаций UNIX в этих двух категориях приведены ниже.
Системы UNIX, полученные из BSD:
Замечание. 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. После него приведены некоторые ссылки на реальные документы в Интернете, которые отслеживают имеющиеся в наличии данные и релизы, а также углубляются в более детальные описания того, как укреплять сервер для конкретной задачи.
Говоря в целом, системное укрепление сервера 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
Обычно, вне зависимости от устанавливаемого клона 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, которая планируется к установке.
Служба inetd – это "суперсервер Интернета" в UNIX. В основном это /etc/inetd.conf.
Служба inetd слушает входящие соединения по предопределенным IP-портам. Когда соединение по заданному порту установлено, она вызывает заранее настроенную программу для обработки запроса. После того как соединение завершилось, процесс вызывает службу, которая обрабатывает запрос. Первоначальная причина для создания данной службы состояла в том, чтобы уменьшить нагрузку и ресурсы, требуемые для ИТ-системы.
Через inetd запускается целый набор служб, и почти все из них следует запретить, как часть должным образом укрепленного сервера. Помимо стандартно-запрещаемых FTP, TFTP, Telnet и команд Berkley r*, также следует запретить и следующее.
Служба in.named. Это демон служб разрешения имен BIND. Помимо серверов, которые специально определяются в качестве DNS-серверов организации, DNS не следует запускать на укрепленном сервере UNIX.
Служба in.fingerd. Это демон программы finger, которую можно использовать для отображения информации о пользователе и для вывода списка пользователей, в данный момент находящихся в системе. На должным образом укрепленном сервере UNIX нет причин для афиширования подобной информации, которая могла бы оказаться полезной для предполагаемых взломщиков.
Служба daytime. Эта служба выводит дату и время в системе в строковом формате. Не позволяйте возможным взломщикам получить дату и время системы, так как они могут воспользоваться этими данными для реализации повторяющихся атак.
Служба time. Это служба, которая возвращает время в виде 32-битового значения, представляющего количество секунд, прошедших после полуночи 1 января 1900 г. Не позволяйте возможным взломщикам получить точное системное время.
Служба echo. Это диагностическая служба, которая отражает входящие данные обратно к подсоединившийся машине. Не позволяйте возможным взломщикам получить информацию о системах, которые отвечают на подобные запросы.
Служба discard. Это диагностическая служба, которая не отражает
Служба . Это диагностическая служба, которая автоматически генерирует поток символов для отправки к подсоединившейся машине. Не позволяйте возможным взломщикам получить машину для генерации потока данных, который будет отослан другой машине в пределах или за пределами сети организации.
Служба systat. Эта служба предоставляет список всех процессов и их статусов. Не позволяйте возможным взломщикам получать такую жизненно важную информацию.
Служба netstat. Эта служба предоставляет список всех текущих сетевых подключений и их статусов. Не позволяйте возможным взломщикам получать такую жизненно важную информацию.
Этот список ни в коем случае не является исчерпывающим. Для определения, какие службы могут быть установлены, что открывает уязвимые точки входа и методы для доступа к серверу и внутри сервера UNIX, следует провести надлежащее рассмотрение устанавливаемой системы UNIX.
Мы рекомендуем на укрепляемый сервер UNIX установить tcp_wrappers (созданные Wietse Venema), которые позволят вам задать контроль доступа к различным службам по ограниченному набору критериев, таких, как, например, имя пользователя, IP-адрес или домен DNS. Они невелики и чрезвычайно полезны на внутренних серверах, не только на внешних боксах, которые могут быть настроены как брандмауэры, серверы DMZ или прокси-серверы (не важно, основные ли они или резервные). Так вот, они по умолчанию устанавливаются и конфигурируются большинством дистрибутивов GNU/Linux и релизов BSD. Для тех же систем UNIX, в которых tcp_wrappers по умолчанию не установлены, исходники можно найти по следующему URL (затем их можно откомпилировать и полученные исполняемые модули установить на сервер):
ftp://ftp.porcupine.org/pub/security/index.html
Причина для установки такого дополнительного компонента в существующую конфигурацию UNIX состоит в том, чтобы избежать единых точек отказа (single points of failure) и обеспечить безопасность по всем уровням. Если один уровень взломан или обойден, другие уровни будут стоять на страже перед взломом.
Полезно помнить, что большинство пробоев информационной безопасности, случайных или преднамеренных, происходит изнутри. Внимание прессы же привлекают только внешние взломы, массивные распределенные атаки вида отказа от обслуживания (
Добавочный компонент tcp_wrappers имеет два основных файла, которые разрешают доступ к индивидуально определенным службам. Два нижеприведенных файла проверяются на правила, определяющие доступ к индивидуальным или заданным по шаблону службам.
/etc/hosts.allow /etc/hosts.deny
Как и в большинстве машин, осуществляющих фильтрацию tcp/ip-запросов (таких, как брандмауэры или серверы, доступ к которым сильно ограничен), доступ предоставляется или запрещается на основании первого же совпадающего правила.
Правила проверяются в следующем порядке: сначала в hosts.allow, затем в hosts.deny. Будьте осторожны в использовании шаблонов KNOWN или UNKNOWN. ALL всегда будет совпадать, какие бы критерии ни тестировались. За дальнейшими подробностями по синтаксису и по написанию правил обращайтесь к hosts_access, идущей в комплекте с tcp_wrappers.
Sendmail идет едва ли не с каждой установкой UNIX (включяя GNU/Linux) как агент по умолчанию для пересылки почты (Mail Transfer Agent, suid (set-UID) позволяет программам запускаться от имени и с правами пользователя-владельца программы (т. е. соответствующего исполняемого файла), а не того пользователя, который запустил программу (как происходит обычно). Например, "suid root" обозначает, что программа принадлежит пользователю root и обычный пользователь исполняет ее с правами root.,
Последняя версия sendmail поддерживает такие новые возможности, как STARTTLS и шифрование SMTP AUTH. Если в комплект с устанавливаемой операционной системой UNIX входит более старая версия sendmail (подразумевается та, которая не поддерживает эти новые возможности), вам следует подумать об обновлении ее на самую последнюю из имеющихся в наличии. По крайней мере убедитесь, что эта версия не старее версии 8.9.3 из-за хорошо известных "дыр" безопасности.
Чтобы разрешить Realtime Blackhole List (черный список реального времени), который помимо прочего защитит систему и пользователей от спама, в файл sendmail.mc следует вписать следующее:
FEATURE(rbl)dnl
Кроме того, в самом sendmail рекомендуется запретить команды SMTP VRFY и EXPN. Эти команды зачастую используются взломщиками для сбора информации о сервере. Запретите их при помощи следующего:
define('confPRIVACY_FLAGS', 'novrfy,noexpn')dnl
Есть несколько дополнительных флагов, которые вы можете установить, чтобы заставить sendmail вести себя более безопасным образом:
authwarnings: при определенных условиях в сообщения следует добавлять заголовок X-Authentication-Warning, что может сообщить почтовой системе о попытках обмана;needmailhelo: требует от сайта-отправителя при начале соединения для отправки почты сначала использовать команду SMTP HELO ;needexpnhelo: требует от сайта-отправителя использовать команду SMTP HELO до разрешения какого бы то ни было применения EXPN;needvrfyhelo: требует от сайта-отправителя использовать команду SMTP HELO до разрешения какого бы то ни было применения VRFY;noreceipts: запрещает уведомления о статусе доставки (Delivery Status Notifications, goaway: устанавливает все флаги, кроме restrictmailq и restrictqrun ;restrictmailq: не дает возможности пользователям употреблять команду mailq для просмотра содержимого почтовой очереди;restrictqrun: удерживает пользователей от обработки очереди.Верно также, что при запущенном сервере Domino поверх операционной системы UNIX или GNU/Linux можно также sendmail отключить вообще и больше не забивать себе голову данным
В мире существует много дистрибутивов GNU/Linux. Самый маленький из них так мал, что полностью помещается на флоппи-диске 1.44 Мб (и называется
Среди дистрибутивов GNU/Linux лидерами являются Red Hat, SUSE, TurboLinux, Mandrake, Caldera, Slackware и Debian. Хотя основная идея состоит в том, что следует использовать такой дистрибутив GNU/Linux, который поддерживается Domino, многие серверы могут использовать вообще другие дистрибутивы. Это происходит потому, что большое количество дистрибутивов позволяет производителям подгонять свои дистрибутивы GNU/Linux под специфические задачи, такие, как встроенные системы, маршрутизаторы и брандмауэры. Внимательно ознакомьтесь с доступными дистрибутивами и определите, который из них наилучшим образом подходит для нужд организации, исходя из того места, где должен быть размещен сервер, и его роли в общей ИТ-инфраструктуре организации.
В свете вышесказанного из наиболее распространенных дистрибутивов особо выделяются двое, но по разным причинам.
Red Hat. Данный дистрибутив обладает самым признаваемым именем и, как правило, первым получает любой вид корпоративной поддержки в плане коммерческого программного обеспечения или коммерческой технической службы. Многие производители, включая Oracle, IBM и Check Point, сделали релизы своих продуктов под дистрибутивы Red Hat. Это не означает, что данные программные релизы не будут работать под другими дистрибутивами GNU/Linux, но в случае каких-либо проблем производитель может не оказать поддержки вашей установке своего продукта на дистрибутиве, отличном от Red Hat.
Debian. Этот дистрибутив тоже заслуживает упоминания. Прежде всего не потому, что он полностью бесплатен, а потому, что он поддерживается некоммерческой организацией, созданной исключительно из добровольцев. Эти добровольцы очень сильно мотивированы качеством и гордятся своими усилиями сделать Debian самым стабильным и полностью на все 100 % бесплатным дистрибутивом изо всех имеющихся в наличии. Debian зарекомендовал себя как в высшей степени стабильный и легкий в управлении и удаленном обновлении. Процесс обновления общепризнанно является самым легким среди всех дистрибутивов GNU/Linux. Установки Debian можно обновлять без необходимости перезагрузки, замещая любой из установленных пакетов и затем перезапуская его процесс, за исключением ядра ОС. Кроме того,
Другие достойные упоминания дистрибутивы – это SUSE, являющиеся самыми предпочитаемыми в Германии и предлагающие действительно хороший инструмент для установки, называемый YAST2, который делает процесс установки дистрибутива невероятно легким. В списке поддерживаемых дистрибутивов GNU/Linux, на которых будет запускаться сервер Domino, находятся также TurboLinux и Caldera.
Для всех дистрибутивов GNU/Linux, в которых имеется программа установки, следует выбирать установку компонентов вручную по выбору пользователя (
Во время процесса установки обязательно следует выбрать поддержку файла теневых паролей (enable shadow password); также вместо стандартной функции crypt для паролей следует выбрать хеширование MD5. Если данные опции недоступны во время установки, их можно изменить после нее. В Red Hat следует использовать утилиту setup. В Debian для разрешения или запрещения теневых паролей – утилиту shadowconfig. В других дистрибутивах GNU/Linux о подробностях по данному вопросу смотрите man-страницы. Для разрешения хеширования MD5 и включения хешей md5 в строки паролей следует отредактировать соответствующие файлы в папке /etc/
Также следует включить поддержку ipchains, даже если данный сервер в DMZ, так как ipchains добавляет дополнительные уровни защиты и закрывает сервер от трафика, по каким-то причинам миновавшего брандмауэр.
Кроме того, нужно следить за информацией относительно безопасности и списками исправлений/обновлений на сайтах производителей дистрибутивов GNU/Linux. В Debian очень легко автоматически устанавливать обновления системы безопасности с помощью утилиты
Для тех людей, которые решили устанавливать Red Hat Linux, существует занимающийся вопросами безопасности проект, называемый Bastille Linux, целью которого является не просто укрепить вашу установку Linux, а именно обучить администраторов, как вообще укреплять систему.
Bastille Linux поддерживает дистрибутивы Red Hat и
http://www.bastille-linux.org/
Еще один замечательный источник информации для администраторов – "Руководство по безопасности для администраторов Linux". Оно охватывает чрезвычайно широкий спектр тем касательно Linux и безопасности. "Руководство по безопасности для администраторов Linux" может быть найдено по адресу:
Solaris по умолчанию поставляется в четырех возможных конфигурациях: базовая (Core), для конечного пользователя (End-User), для разработчика (Developer) и полный дистрибутив (Entire Distribution). Установка любой конфигурации, отличной от базовой, включает в себя большее количество служб, чем требуется для укрепления сервера. На практике же часто можно убрать даже значительную часть
О серверах Solaris есть несколько замечательных документов, опубликованных компанией Sun в своем архиве Blueprints Online, который находится по URL:
http://www.sun.com/software/solutions/blueprints/online.html
Следующие три статьи являются прекрасным отправным пунктом для построения безопасных серверов Solaris.
"Минимизация операционного окружения Solaris для целей безопасности: простая, легко повторяемая и безопасная методология установки приложений" ("Solaris
"Безопасность операционного окружения Solaris" ("Solaris
"Сетевые настройки операционного окружения Solaris, влияющие на безопасность" ("Solaris
На самом деле Blueprints Online компании Sun – настоящий кладезь документации, описывающей все самое лучшее об операционном окружении Solaris, будь то Web-сервер в DMZ, брандмауэр или внутренний широкодоступный кластер Domino.
У Ланса Шпицнера (Lance Spitzner) тоже есть замечательный документ об укреплении Solaris, в котором для построения брандмауэра Check Point FireWall-1 детально описывается процесс укрепления на нескольких последних версиях Solaris (вплоть до версии 8) под платформы Intel и SPARC. Настоящий документ находится по следующему URL:
http://www.enteract.com/~lspitz/armoring.html
И наконец, для Solaris тоже есть эквивалент укрепляющих сценариев Bastille-Linux, который называется TITAN. Проект TITAN и документация по нему находятся по следующему URL:
Для защиты от наиболее общих атак WAN-соединений, брандмауэра и DMZ-серверов организации надо выполнить следующие простые шаги, чтобы запретить определенную функциональность TCP/IP.
Фактически есть две формы трафика с явной маршрутизацией: жесткий (Strict SourceRouted) и свободный (Loose Source-Routed). Данное отличие не играет роли, поскольку лучше сбрасывать весь трафик с явной маршрутизацией.
Traceroute – самая известная команда, использующая явную маршрутизацию. Она позволяет провести диагностику проблемных мест в сети посредством прямого определения маршрута, по которому будут следовать контрольные пакеты.
К сожалению, возможные взломщики могут использовать явную маршрутизацию для попытки обхода правил брандмауэра и фильтров TCP/IP. Сброс трафика с явной маршрутизацией следует осуществлять на граничных маршрутизаторах и на любых несущих шлюзах безопасности:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_forward_src_routed 0
в GNU/Linux используйте команду
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
Атака Smurf типа отказа от обслуживания и подобные ей могут быть побеждены простым запретом направленного
для Solaris используйте следующую команду:
ndd -set /dev/ip ip_forward_directed_broadcasts 0
Существует draft RFC, называемый draft-vshah-, который находится по следующему URL-адресу:
http://www.ietf.org/internet-drafts/draft-vshah-ddos-smurf-00.txt
В нем утверждается, что, если в сетевом узле установлено отвечать на IP ICMP-эхо по широковещательным или множественным (multicast) адресам, узел должен убедиться в том, что адрес отправителя находится в локальной по отношению к сетевому узлу сети. Если адрес отправителя нелокален, ответ должен быть отброшен. Изменение поведения, чтобы вообще не отвечать на широковещательные сообщения ICMP, гарантирует, что ответы будут отбрасываться всегда:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
в GNU/Linux используйте следующую команду:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ ignore_broadcasts
В GNU/Linux имеется дополнительный элемент управления для запрещения вообще всех запросов на эхо-ответы ICMP. Вызов следующей команды заставит ядро Linux игнорировать все запросы эха ICMP:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Предполагаемый взломщик мог бы попытаться перенаправить трафик с серверов организации к другому, а то и вообще к несуществующему шлюзу. Кроме того, предполагаемый взломщик мог бы попытаться вставить фальшивые маршруты в таблицу маршрутизации сервера.
Все это может быть выполнено посредством скромного ICMP-сообщения о перенаправлении, и это очень эффективная атака типа отказа от обслуживания. Помимо блокирования ICMP-сообщений перенаправления на брандмауэре, если конечно операционная система поддерживает, следует ввести следующие дополнительные уровни защиты для игнорирования ICMP-сообщений о перенаправлении:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_ignore_redirect 1
в GNU/Linux команда будет такой:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
Только маршрутизаторам требуется отправка ICMP-сообщений о перенаправлении. Поскольку DMZ-серверы и брандмауэр организации не занимаются маршрутизацией каких бы то ни было пакетов, совершенно нет причин отправлять их:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_send_redirects 0
в GNU/Linux команда будет такой:
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
ICMP-запрос на штамп времени (ICMP type 13) позволяет одной системе запросить другую о текущем времени. Возвращаемое значение – количество миллисекунд с полуночи.
ICMP-запросы на временной штамп используются для синхронизации часов между системами вместо использования команды rdate из-за лучшей точности.
Индивидуальные запросы на штамп времени – это стандартная практика, но нет никакой необходимости системе отвечать на широковещательные запросы. В конце концов для синхронизации времени между серверами следует рассмотреть вариант использования
В Solaris используйте следующую команду:
ndd -set /dev/ip ip_respond_to_timestamp_ broadcast 0
Одна из многочисленных техник, которые используются предполагаемыми взломщиками для скрытия своего присутствия, – это очистка любых средств журналирования, которые могут (и даже должны) быть включены. Сюда входит: ведение журнала учетных записей, системные сообщения, записи об ошибках, слежение за трафиком и т. п.
Один из способов обойти эту проблему – вести журналы всех серверов организации на отдельной удаленной машине. Этой удаленной машине по ведению журналов следует принимать только журнальный трафик с этих серверов. Таким образом, даже если какой-то сервер был взломан, все равно останутся записи журналов для дальнейшего анализа того, что произошло.
На журнальном сервере следует соответствующим образом настроить
В UNIX имеется очень мощная централизованная система ведения журналов. Действительно, некоторые приложения ведут свои собственные файлы журналов и не пользуются syslog. Тем не менее сама иерархия файловой системы разработана с поддержкой централизованного размещения, /var/log.
Кроме того, большинство систем UNIX и дистрибутивов GNU/Linux поставляются с автоматизированной системой ротации и управления журналами. Журналы автоматически ротируются на основании таких критериев, как размер или возраст, и могут автоматически же сжиматься (компрессироваться), переименовываться и даже архивироваться.
Чтобы еще сильнее улучшить журнальные возможности сервера UNIX или GNU/Linux, следует стандартный syslogd заменить на более прочную, настраиваемую и безопасную альтернативу, известную как syslog-ng. В ней имеются несколько значительных улучшений по сравнению со стандартным syslogd, куда входит возможность
При помощи регулярных выражений информация об отдельных хостах может сохранятся в индивидуальных журналах. Syslog-ng, вероятно, уже входит в поставку операционной системы UNIX или дистрибутива GNU/Linux. Если же нет, его можно найти по следующему URL:
http://www.balabit.hu/en/products/syslog-ng/
На этом завершается наше обсуждение укрепления операционных систем UNIX и дистрибутивов GNU/Linux. Хотя данный материал также применим и к
AIX – это открытое операционное окружение UNIX, которое обеспечивает повышенные уровни целостности, гибкости и надежности, что является существенным для удовлетворения высоких потребностей современных приложений электронного бизнеса. Такой фокус на многогранности позволяет AIX использоваться в широчайшем спектре различных задач, от работы на симметричной мультипроцессорной системе, способной обрабатывать тысячи транзакций в минуту, до запуска на отдельностоящей рабочей станции, используемой для разработки приложений.
Поскольку одно из предназначений AIX состоит в достижении должного уровня многогранности и производительности, многие службы становятся доступными немедленно, едва только завершится процесс установки операционной системы. Но, с другой стороны, подобный подход может привести к такой конфигурации, которая будет уязвима для прорех безопасности, если систему не отконфигурировать надлежащим образом.
Для минимизации числа возможных дыр безопасности администратор системы AIX должен быть способен идентифицировать рабочие характеристики окружения.
В данном разделе приводится информация по укреплению AIX, но это не означает, что он должен стать единственным источником информации обо всех вопросах безопасности относительно систем AIX, например по использованию протоколов
http://www-1.ibm.com/servers/aix/library/index.html
Информация этого раздела включает в себя выработку адекватных правил составления пароля, реализацию соответствующих механизмов пользовательской безопасности, разрешение системного аудита и наблюдение за доступом к каталогам и файлам. Также затрагиваются важные вопросы безопасности X11 и
Во время прочтения данного материала, описывающего потребности безопасности сервера AIX, важно определить те файлы, которые нуждаются в модификации, и сделать их резервные копии. Вообще резервное сохранение модифицированных файлов – всегда хорошая идея, поскольку оно позволяет вам в любой момент вернуться к предыдущей конфигурации, если возникает необходимость восстановить предыдущие настройки безопасности. После того как модификация завершена, как следует протестирована и все работает так, как запланировано, резервные файлы следует сохранить в безопасном месте вне только что защищенной системы, например на сервере резервного хранения. Такая мера предосторожности воспрепятствует неавторизованному восстановлению предыдущей конфигурации, которая бы свела к нулю все сделанные модификации по укреплению системы.
И наконец, как уже говорилось о других операционных системах, все процедуры укрепления следует выполнять до того, как система начнет работать на своем реальном рабочем месте. Выключение уже работающей системы может организации дорого стоить, даже если целью такого действия было сделать ее более безопасной.
Со стандартного по умолчанию экрана регистрации (login) AIX предполагаемые взломщики могут получить ценнейшую информацию, такую, как имя хоста и версия операционной системы. Подобная информация позволит им определить, какие существующие "дыры" можно попробовать. Так что лучше будет не отображать некоторой информации на экранах регистрации.
Это делается редактированием параметра herald в файле /etc/security/login..
По умолчанию он содержит
# chsec -f /etc/security/login.cfg -a default -herald "Only authorized use of this system is allowed.\n\nlogin: "
Для непосредственного редактирования содержимого файла откройте файл /etc/security/login. и измените параметр herald следующим образом:
default: herald ="Only authorized use of this system is allowed.\n\nlogin:"
Данный вопрос безопасности не обошел и пользователей /usr/dt/config/$LANG/Xresources, где переменная $LANG ссылается на местный язык, установленный на машине с AIX.
Для защиты от неавторизованного доступа неиспользуемый терминал всегда следует запирать. Оставление системного терминала незащищенным представляет собой потенциальную угрозу безопасности. Терминал просто можно запереть командой lock или, если пользовательским интерфейсом является AIX windows, командой xlock.
Чтобы достичь должного уровня безопасности на сервере AIX, для управления пользовательскими учетными записями следует создать непротиворечивую политику безопасности. (На самом деле это относится ко всем операционным системам, не только к AIX.)
Угадывание паролей – одна из самых распространенных
Помимо этих механизмов, можно установить даже более жесткие правила, ограничивая пароли тем, чтобы в них не содержались стандартные слова UNIX, которые могут быть взломаны. Данная функциональная возможность использует dictionlist (словарный список), для которого требуется, чтобы первоначально были установлены файлы bos.data и bos.txt.
Для вызова dictionlist добавьте следующую строку в файл /etc/security/users:
dictionlist = /usr/share/dict/words
Теперь для предотвращения использования в качестве пароля стандартных UNIX-слов dictionlist будет применять файл /usr/share/dict/words.
Одним из наиболее распространенных методов возможных взломщиков является получение пароля суперпользователя, или пользователя с именем root. Для избежания подобного вида атак можно вообще запретить прямой доступ к ID root и потребовать от администраторов системы AIX получать привилегии при помощи команды su.
Помимо разрешения на удаление пользователя root как точки приложения атак, ограничение прямого доступа к root позволит вам отслеживать, какие пользователи получили суперпользовательский доступ, а также время их активности. Эту информацию можно получить просмотром файла /var/adm/sulog. Другой альтернативой будет разрешить системный аудит, который тоже будет сообщать о подобном виде активности.
Для запрещения удаленного входа для пользователя root отредактируйте файл /etc/security/user. В качестве значения переменной rlogin для записи root поставьте "false".
До запрещения удаленного входа для root очень важно изучить и выработать планы на ситуации, которые помешали бы администратору системы AIX войти под ID-пользователя, отличного от root. Например, если домашняя файловая система пользователя заполнена, пользователь не сможет войти в систему. Если удаленный вход для root запрещен и если у пользователя, который мог бы при помощи su стать root, домашняя файловая система переполнена, то root никогда не сможет получить контроль над системой. Системные администраторы такую проблему могут обойти, просто создав для себя домашние файловые системы, большие, чем файловые системы обычного пользователя.
Еще один значительный вопрос безопасности происходит из того, что пользователи оставляют свои учетные записи без присмотра на продолжительные периоды времени. Подобная ситуация дает возможность предполагаемому взломщику заполучить контроль над пользовательским терминалом, потенциально компрометируя безопасность системы.
Для предотвращения такого типа потенциальной угрозы безопасности можно включить автоматическое отсоединение от системы. Чтобы сделать это, отредактируйте файл /etc/security/.profile и впишите значения времени автоматического отсоединения для всех пользователей, как в следующем примере:
TMOUT=300 ; TIMEOUT=300 ; export readonly TMOUT TIMEOUT
В этом примере 300 – число секунд, что эквивалентно 5 минутам.
Хотя предыдущее действие введет политику автоматического отсоединения для всех пользователей, тем не менее пользователи системы смогут обойти некоторые ограничения редактированием своих собственных индивидуальных файлов профиля. Для того же, чтобы ввести политику автоматического отключения целиком и полностью, следует предпринять авторитетные действия, снабдив пользователей соответствующими файлами профилей и убрав права на запись в эти файлы. Это действие гарантирует, что только root сможет изменить переменную окружения, INTERNAL , которая берется некоторыми программами, такими, как sed,
Еще одна мера, которая ведет к очень прочной безопасности, – это установить по умолчанию запреты на групповые и внешние разрешения пользовательских файлов. Это можно сделать установлением значения umask для учетной записи пользователя в 077.
Благодаря данному действию все создаваемые пользователями файлы будут иметь соответствующие разрешения на чтение, на запись и на выполнение, в то же время закрывая доступ как для членов их группы, так и для посторонних.
Замечание. На машинах SP во время установки значение umask следует устанавливать в 022. Значение umask по умолчанию для нового пользователя тоже устанавливается в 022. Для повышения уровня безопасности важно после завершения установки не забыть изменить это значение на 077. Его можно задать в разделе значений по умолчанию файла etc/security/user.
Чтобы добиться очень высокого уровня безопасности, убедитесь, что пользовательские ID и пароли не видны изнутри системы. ID и пароли пользователей находятся в файле
Чтобы найти эти файлы, запустите следующую команду:
# find 'awk -F: '{print $6}' /etc/passwd' -name .netrc –ls
После того как данные файлы были найдены, их следует удалить. Более эффективным способом хранения паролей будет установка Kerberos.
Табл. 9.2 приводит рекомендуемые значения для некоторых атрибутов безопасности, относящихся к пользовательским паролям. Парольные опции находятся в файле /etc/security/user .
Данный файл можно редактировать для введения каких-либо значений по умолчанию, которые требуется определить для администрирования пользовательских паролей. В качестве альтернативы можно применять команду chsec (заметьте, что значения, представленные в нижеследующей таблице, взяты из книги "IBM Redbook AIX
| Атрибут | Описание | Рекомендуемое значение |
|---|---|---|
dictionlist |
Проверяет, не входят ли в пароль стандартные слова UNIX | /usr/share/dict/words |
histexpire |
Количество недель, после которых пароль может быть использован повторно | 26 |
histsize |
Число допустимых парольных итераций | 20 |
maxage |
Максимальное число недель до того, как пароль должен быть в обязательном порядке изменен | 4 |
maxexpired |
Максимальное число недель после maxage, когда просроченный пароль еще может быть изменен пользователем | 2 |
maxrepeats |
Максимальное число повторений одного и того же символа в пароле | 2 |
minage |
Минимальное число недель до того, как пароль может быть изменен | |
minalpha |
Минимальное число алфавитных символов, которые должны содержаться в пароле | 2 |
mindiff |
Минимальное число отличающихся друг от друга символов, которые должны содержаться в пароле | 4 |
minlen |
Минимальная длина пароля 6 (8 для пользователя root) minother Минимальное число неалфавитных символов, которые должны содержаться в пароле | 2 |
pwdwarntime |
Число дней до окончания срока действия пароля, за которое система начинает выдавать предупреждение о том, что пароль должен быть изменен | 5 |
Для установки базовых значений по умолчанию для многих параметров входной регистрации, вроде тех, которые могли бы быть установлены для нового пользователя (например, число попыток входа, повторное разрешение регистрации и регистрационный интервал), следует отредактировать файл
Во время процесса установки операционной системы AIX по умолчанию создается некоторое количество ID пользователей и групп. В зависимости от того, какие приложения будут запускаться на данном сервере AIX, и от того, где этот сервер будет располагаться в сети, некоторые из этих ID пользователей и групп могут стать слабыми местами в системе безопасности, уязвимыми для взлома. Если такие ID не нужны, для минимизации связанного с ними риска их можно удалить.
В табл. 9.3 приведены наиболее общие создаваемые по умолчанию пользовательские ID, которые вы, вероятно, захотите удалить.
| Пользовательский ID | Описание |
|---|---|
|
Владелец |
lpd |
|
imnadm |
Поисковый движок IMN [используется поиском по библиотеке документации (Documentation Library Search] |
guest |
Разрешает доступ тем пользователям, у которых нет доступа к учетным записям |
Аналогично в табл. 9.4 приводятся наиболее общие ID групп, которые, возможно, не понадобятся.
| Групповой ID | Описание |
|---|---|
|
Группа, к которой принадлежат пользователи |
printq |
Группа, к которой принадлежит пользователь lpd |
imnadm |
Группа, к которой принадлежит пользователь imnadm |
Могут быть и другие ненужные ID пользователей и групп; проанализируйте систему на наличие других ID, которые можно удалить. Прежде чем система "выйдет в свет", проведите всеобъемлющую оценку всех имеющихся ID.
Функциональные возможности
Поскольку каждое устройство является частью /etc/security/syschk.. Если
В процессе укрепления своих систем администраторы систем AIX могут столкнуться со множеством различных ситуаций. Данный раздел как раз и проливает свет на подобные особые ситуации.
Если для каких-либо пользователей и групп устанавливаются особые разрешения, все эти выделенные особые разрешения следует задокументировать и наметить шаги для согласования с вопросами безопасности. Если особые разрешения не задокументированы, другие не будут в курсе этих особых ситуаций и могут пренебречь теми шагами, которые должны быть предприняты.
При установке нового программного обеспечения, такого, как сервер Domino или сервер DB2, могут возникнуть вопросы в связи с созданием новых учетных записей и выделением особых привилегий для них. Отдавайте себе отчет по всем новым ID, их привилегиям и правам собственности на файлы и папки, чтобы потом не оказалось непреднамеренного обмана политики безопасности организации.
Пароль на включение питания. Данный пароль, если установлен, препятствует кому бы то ни было перезагружать сервер простым его выключением из сети питания и затем включением вновь. Если в CD-ROM-привод вставлен загрузочный CD-носитель, система перезагружается, а затем уже будет грузиться с CD и, следовательно, не станет придерживаться своей безопасной конфигурации, что приводит к нарушению режима безопасности. Если система перезагружается и если пароль на включение питания установлен, во время цикла перезагрузки система потребует ввести этот пароль. Это может повлиять на действующие соглашения об уровне сервиса (Service Level Agreements, SLAs), так как может быть определенная задержка по времени между моментом, когда сервер перезагружается до точки запроса пароля на включение питания, и моментом, когда ему будет позволено продолжать свою загрузочную последовательность после того, как пароль был введен. В идеале первостепенность будет установлена политикой безопасности организации (безопасность против соглашений по предоставлению услуг).
Пароль супервизора. Данный пароль не дает неавторизованному пользователю загрузиться в режим поддержки при помощи загрузочного носителя (загрузочный CD, mksysb лента/CD). Загрузка с подобного носителя предоставляет полный доступ к файлам и каталогам абсолютно без ограничений в плане безопасности. Пароль супервизора закрывает систему, и, если этот пароль утерян, понадобится помощь обслуживающего персонала IBM для того, чтобы отпереть ее.
Пароль root. Это пароль суперпользователя, который время от времени может быть нужен. Важно отдавать себе отчет в том, когда действительно может понадобиться учетная запись root, и на такие случаи в реализации системы безопасности организации должны присутствовать планы.
Каждому хорошему системному администратору AIX следует быть осведомленным о тех системах в ИТ-инфраструктуре организации, в которых могут иметься слабые места для общей системы безопасности. Если предполагаемый взломщик взломает одну из машин, находящихся внутри сети организации, он может получить доступ и к другим машинам посредством разрешений, установленных между данной машиной и другими системами в сети.
Некоторые из предполагаемых взломщиков сканируют сети на наличие определенного типа машин и определенных версий операционных систем с целью найти какую-нибудь одну такую, которую можно было бы взломать, а затем они могут использовать эту точку входа для получения доступа ко всем машинам в сети.
Пользователи регулярно производят различные системные действия, за которыми не мешало бы наблюдать более тщательно. Установкой системного аудита дается возможность записывать касающуюся безопасности информацию, которая затем может быть проанализирована на факт наличия потенциальных и фактических нарушений системной политики безопасности.
Предопределенные события аудита можно найти в файле /etc/security/audit/events. Для генерации регулярных отчетов при помощи возможностей службы cron можно установить автоматическое ведение аудита.
Наше обсуждение укрепления было бы неполным без рассмотрения механизмов, которые можно использовать для наблюдения за доступом к файлам, каталогам и исполняемым программам.
Время от времени появляется необходимость в удалении нежелательных и ненужных файлов с сервера AIX.
AIX предоставляет системному администратору команду skulker, которая может автоматически отследить и удалить устаревшие файлы. Кандидатами на обработку данным средством являются файлы, расположенные в каталоге /tmp, исполняемые файлы a.out, файлы core и ed.hup. Для запуска команды skulker введите в командную строку следующее:
# skulker -p
Вы можете автоматизировать команду skulker, заставив cron регулярно выполнять данную задачу.
Когда ID пользователя удаляется, файлы этого пользователя больше не имеют владельца, приписанного к ним. Для нахождения файлов, не имеющих владельца, используйте команду find так, как показано ниже:
# find / -nouser -ls
После идентификации файлов без владельца определите, нужны ли еще эти файлы. Если нужны, их следует приписать другому пользователю. В противном случае эти файлы можно удалить из системы.
Для получения доступа к системе некоторые программы используют файл .rhosts. В некоторых случаях доступ может быть предоставлен и неавторизованным пользователям. Для избежания подобной ситуации файл .rhosts следует удалить с сервера AIX.
Для кластеров HACMP файлы .rhosts
Для нахождения файлов .rhosts запустите следующую команду:
# find / -name .rhosts -ls
Для слежения за активностью исполняемых файлов особой важности требуется хорошее понимание того, как эти файлы используются. Исполняемые файлы, за которыми требуется наблюдение, – это те файлы, которые принадлежат пользователю root и у которых установлен хотя бы один из битов SUID и SGID.
После тщательного наблюдения за этими файлами во время нормальной работы системы можно составить отчет, в который будет входить список файлов, которые работают нормально. Затем этот отчет можно сверить с последующими отчетами, что выявит все новые файлы, атрибуты которых были выставлены без ведома системного администратора AIX. Для создания шаблонного отчета воспользуйтесь следующими командами:
# find / -perm -4000 -user 0 -ls # find / -perm -2000 -user 0 -ls
Для управления задачами cron и at проделайте следующее. Убедитесь в том, что единственным пользователем, упоминающимся в файлах cron.allow и at.allow, является root.
Из каталога /var/adm/cron удалите cron.deny и at.deny.
Убедитесь в том, что задачи cron и at принадлежат пользователю и могут выполняться только им root.
В этом разделе рассказывается о потенциальных "дырах" безопасности, пришедших вместе с X-сервером X11 и с окружением
Хотя запуск графического пользовательского интерфейса
Самым лучшим решением было бы вообще избегать установки файловых наборов /etc/rc.dt, который запускает
Важный вопрос безопасности, связанный с сервером X11, – это неавторизованное тихое слежение за удаленным сервером. Для слежения за работой X-сервера могут быть использованы команды xwd и xwud, поскольку они обладают возможностью перехватывать нажатия клавиш, что может раскрыть пароли и другие важные данные. Для решения данной проблемы либо просто удалите эти исполняемые файлы, если они не нужны для текущей конфигурации сервера, либо разрешите доступ к этим командам только пользователю root.
Команды xwd и xwud можно найти в файловом наборе X11.apps.clients.
Если команды xwd и xwud нужно оставить, подумайте об использовании OpenSSH или MIT Magic Cookies. Эти приложения сторонних производителей помогут предотвратить риск, связанный с запуском команд xwd и xwud.
X-сервер дает возможность удаленным хостам использовать команду xhost+ для соединения с сервером AIX. Убедитесь, что вместе с командой xhost+ задано и имя хоста, потому что иначе контроль доступа для данного X-сервера будет запрещен. Это разрешит предоставление доступа к конкретным хостам, которые облегчат слежение за потенциальными атаками на X-сервер. Для предоставления доступа к конкретным хостам запустите команду xhost следующим образом:
# xhost + имя хоста
Еще один способ гарантировать то, что команда xhost используется должным образом, – это ограничить выполнение этой команды только при наличии полномочий суперпользователя. Для этого воспользуйтесь командой chmod и измените разрешения файла /usr/bin/X11/xhost на 744, как показано ниже:
# chmod 744/usr/bin/X11/xhost
Убедитесь, что вместе с командой xhost задано имя хоста. Это разрешит предоставление доступа к конкретным хостам, которые упрощают слежение за потенциальными атаками на X-сервер.
Замечание. Если имя хоста не задано, доступ будет предоставлен всем хостам.
В этом разделе обсуждаются открытые коммуникационные порты, как их можно идентифицировать и как закрыть.
Клиент-серверные приложения открывают на сервере коммуникационные порты, позволяя приложениям слушать входящие запросы клиентов.
Поскольку открытые порты – потенциальные кандидаты для атаки, определите, какие приложения открыли порты; но совсем не обязательно закрывать все порты, которые открыты. Это упражнение полезно уже тем, что дает системным администраторам возможность понять, что системы являются доступными любому, у кого есть доступ к Интернету.
Для определения того, какие порты открыты, проделайте следующее.
Идентифицируйте службы при помощи команды netstat:
# netstat -af inet
Результат работы данной команды достаточно ясен для интерпретирования. Последний столбец вывода команды netstat обозначает состояние каждой службы.
После определения того, какие службы в настоящий момент слушают, откройте файл /etc/services и проверьте его при помощи служб центра по присвоению номеров Интернета (Internet Assigned Numbers Authority, IANA) для постановки в соответствие службы номеру порта внутри операционной системы.
Закройте ненужные порты удалением запущенных служб.
Полезно определить LISTEN, и ненагруженные
Для этой цели воспользуйтесь командой lsof, которая является вариантом команды netstat -af. Команда lsof входит в AIX 5.1 и находится на диске "AIX Toolbox for Linux Applications CD".
Например, чтобы вывести на экран LISTEN, и IDLE, запустите команду lsof следующим образом:
# lsof -i | egrep "COMMAND|LISTEN|UDP"
После определения ID процесса можно получить более подробную информацию о самой программе, выполнив следующую команду:
" # ps -fp PID#"
Вывод будет содержать путь к имени команды, который можно использовать для доступа к man-странице данной программы.
В этой лекции мы рассмотрели инструменты и техники, используемые для защиты ИТсистем и предотвращения атак.
Мы дали подсказки по укреплению операционной системы, рассказали об инструментах и программах, используемых для создания сплошной защиты, а также о методах профессионалов безопасности по сбору сведений в тех случаях, когда взломщики пробили внешнюю защиту.
Предоставленная нами информация может принести пользу организации любого размера, от маленькой домашней фирмы до очень большой организации с офисами по всему миру.
Хотя самое важное, что нужно запомнить, – это то, что нет 100 % надежных ИТ-систем в течение 100 % времени.
Таким образом, важно еще понять, что, как только система – и ее безопасность – на месте, начинается следующая фаза работы по обеспечению безопасности. То есть время наблюдать за ИТ-системой и определять, какие еще улучшения могут быть внесены в систему для продолжения и совершенствования ее безопасности, а также для поддержания целостности и конфиденциальности содержащейся в ней информации. Тогда и только тогда будет иметь место надлежащая и адекватная безопасность.
Защита операционной системы осуществляется посредством процесса, называемого укреплением (hardening), в котором берется стандартная "боксовая" конфигурация (т. е. та, которая поставляется производителем для процесса установки со значениями параметров, выставленными по умолчанию) и закрываются все известные уязвимые места и потенциальные "дыры" безопасности файловой системы, фоновых служб и конфигурации сетевых служб.
В этой лекции мы рассмотрим "укрепление" тех операционных систем, на которых обычно Lotus-технологии и работают, а именно:
Наше обсуждение коснется рабочих станций, так же как и серверов, поскольку вопросы безопасности включают в себя все аспекты инфраструктуры, а не только ее наиболее видимых частей.
В этом разделе мы объясним некоторые фундаментальные принципы "укрепления". Необходимо понимать эти основы до того, как мы сможем обсуждать реальное "укрепление" ИТ-системы организации.
Если и существует наилучшее место, с которого следует начинать процесс "укрепления", так это операционная система. Это связано с тем, что ОС представляет собой ядро ИТ системы. В конце концов, именно ОС отвечает за то, чтобы пользователи были надежно аутентифицированы и контролировались. К счастью, "укрепление" ОС – не сложная задача, хотя первичные действия могут показаться утомительными. В этой лекции мы сделаем обзор общих методов и концепций, которые можно использовать для "укрепления" любой ОС.
С того самого момента, как только планируется установка ОС, безопасности следует придавать наивысший приоритет. К сожалению, этого часто не происходит, результатом чего являются неполноценные установки, что в конечном итоге приводит к скомпромитированным системам. Следующие разделы описывают в общих чертах те шаги, которым надо следовать каждому администратору или пользователю во время установки.
Во время установки ОС она должна быть физически отсоединена от любой сети, особенно от Интернета. Хотя результаты статистики варьируются в зависимости от того, кто предоставляет их, подсчитано, что установка ОС по умолчанию, будь то Windows или Linux, будет просканирована и взломана в течение часа после подсоединения к Интернету. К сожалению, для установки всех корректных
Ирония в том, что этим самым операционным системам требуется тем или иным способом быть подключенными к Интернету для того, чтобы иметь возможность загрузить необходимые патчи безопасности. Решение этой проблемы – использовать отдельную машину для загрузки необходимых патчей и затем применять эти загруженные патчи к той машине, на которой происходит новая установка.
Существует почти 100% вероятность, что установка "по умолчанию" приведёт к тому, что такая машина, или конфигурация, будет иметь как минимум одно уязвимое место, которое может быть использовано взломщиком для получения неавторизированного доступа.
Чтобы помешать этому, администратору следует быть готовым к установке всех подходящих патчей и обновлений. Это означает знание наперед, какие основные обновления доступны для данной ОС. Обновления часто бывают в форме пакетов обновлений (service pack) или обновленных релизов, которые доступны в пригодном для загрузки формате, что позволяет подготовить необходимые обновления на записываемом CD (компакт-диске) или ленте еще до установки.
После того как ОС с текущими обновлениями установлена, важно поддерживать ее в состоянии, всегда соответствующем последним обновлениям и исправлениям. Службы обновления предлагаются большинством производителей ОС (такие, как утилита up2date компании Red Hat и Windows Update Tool компании Microsoft). Эти инструменты должны использоваться с осторожностью, и вам следует понимать, что именно сделает с системой конкретный патч, полученный при помощи такой утилиты, до того, как он будет установлен.
Операционная система – это лишь небольшая часть ИТ-системы. Подключенные дополнительные службы могут дать дополнительную функциональность, не входящую в "боксовую" конфигурацию, но, с другой стороны, могут стать причиной некоторой головной боли в плане безопасности. Например, одна из наиболее известных таких служб для ОС Windows Server – Internet Information Server (IIS, Информационный сервер Интернета), который стал источником огромного количества хорошо известных "дыр".
Точно также, как и саму ОС, все службы и программы сторонних производителей на компьютере следует проверять, чтобы гарантировать то, что они самой последней версии и безопасны в использовании. Как это ни странно, но далеко не все системные администраторы понимают этот принцип и предпринимают усилия для удаления нежелательных служб; более того, некоторые даже не знают, какие именно службы запущены на их системах.
Пока мы в этой лекции разбираемся со специфическими инструментами и методиками, есть быстрый и легкий способ закрыть некоторые уязвимые места – проверить, какие коммуникационные порты "слушают" входящие данные. Это делается при помощи следующей команды в командной строке:
netstat –an
Кроме того, инструменты, такие, как Nessus, Nmap и
После того как ИТ-система пропатчена и закрыта, следующий важный шаг, который следует предпринять до того, как открывать ее миру, – это установить надлежащий базовый уровень для этой ИТ-системы.
Главным образом это означает, что должна существовать полная документация тех изменений, которые были выполнены с ИТ-системой. Любые изменения, сделанные с базовым уровнем, могут быть проконтролированы, и приняты соответствующие меры безопасности. Этим также устанавливается в организации единый стандарт конфигурации ИТ-систем, и любые необходимые корректировки могут быть сделаны быстро и единообразно, избегая тем самым самого понятия "самое слабое звено". (То есть такой системы, которая значительно отличается своей базовой конфигурацией и в которой нечаянно оставлены открытыми службы и порты. Такая система может быть использована для подготовки атак на другие системы организации.)
К тому же надлежащая безопасность полагается на соответствующую документацию. Именно по этой причине для организации должен существовать соответствующий ПСОНМ (политики, стандарты, общее направление мероприятий) (PSPG – Policies, Standards, Procedures
Инструменты защиты – один из самых главных элементов, который обеспечивает буфер безопасности между ИТ-системами и теми людьми, которые пытаются взломать их. Этот инструментарий включает в себя антивирусные сканнеры, фильтры приложений, брандмауэры и другие инструменты.
Стоит упомянуть, что инструменты защиты только уменьшают вероятность того, что взломщики успешно получат доступ к ИТ-системе. Исходя из того, что существует множество способов проведения атак, вам не следует слишком полагаться на эти инструменты и рассматривать их, скорее, как сдерживающие средства, нежели как средства предохранения от взлома
Детальное описание брандмауэров, их архитектуры и того, как наилучшим образом их использовать, дано в 4.1, "Инфраструктура компонентов". В этом разделе мы рассмотрим лишь некоторые базовые концепции брандмауэров.
Брандмауэр – это такое устройство, которое тщательно просматривает входящий сетевой трафик и, опираясь на набор правил, либо пропускает его, либо нет. Брандмауэры, как правило, стоят по периметру сети организации, защищая ее от Интернета,
В наши дни брандмауэры стали настолько обыденным явлением, что люди стали чрезмерно полагаться на них, и многие системные администраторы считают, что брандмауэры обеспечивают всю требуемую безопасность сети. Хуже того, некоторые системные администраторы думают, что могут достать брандмауэр из коробки, подключить его, никогда больше на него не смотреть и рассчитывать на то, что он все еще будет защищать их систему.
Брандмауэры эффективны ровно настолько, насколько эффективны их базис правил, конфигурация и системные администраторы, следящие за ними. Брандмауэры должны конфигурироваться соответствующим набором правил и постоянно патчиться, чтобы быть в курсе вновь возникающих уязвимостей. Кроме того, за ними надо постоянно наблюдать, чтобы отслеживать
Подобно брандмауэрам, фильтры приложений ограничивают поток данных согласно некоторому набору правил. В действительности некоторые устройства совмещают в себе брандмауэр и фильтр приложений. (Примером этого может быть Microsoft
Однако брандмауэр и фильтр приложений, по сути, совершенно разные вещи, поскольку функционируют на разных уровнях TCP-стека. Вместо отслеживания и управления трафиком на основе IP-адреса и порта (что делают брандмауэры) фильтр приложений контролируют данные, основываясь на используемом программном или коммуникационном протоколе или на фактических данных, передаваемых в пакет.
Например, если организация хочет ограничить использование
Помимо управления службами, фильтры приложений часто используются для блокирования доступа пользователей к сомнительным или нелегальным Web-сайтам посредством либо проверки URL-адреса в базе данных запрещенных адресов, либо сканирования каждой запрошенной Web-страницы на предмет наличия определенных ключевых слов.
Хотя фильтры приложений и важны для контроля того, какие данные входят и выходят из сети, тем не менее они ненадежны. Например, Web-сайты могут менять адреса и даже просто быть доступными по IP-адресу, тем самым обходя любые проверки URL-адресов. Кроме того, сайт, не содержащий ни единого слова (только рисунки), мог бы легко обойти проверку и пройти к запросившему пользователю, внезависимости от того, какие рисунки в нем содержатся.
Внутри любой информационной системы существует множество устройств, которые могут быть использованы или злоупотреблены взломщиком для получения неавторизированного доступа к данным. Сюда входят незащищенные концентраторы и коммутаторы, гостевая учетная запись, открытые беспроводные сети и даже сети Bluetooth.
К примеру, открытая беспроводная сеть могла бы позволить хакеру полностью обойти все другие защитные устройства и получить свободную власть во внутренней сети.
Вот почему системные политики и обучение являются ключевыми предохранительными инструментами.
Всякий раз, когда компания нанимает нового пользователя, его обычно сопровождают к офису или комплексу, дают имя пользователя и пароль и затем предлагают приступить к работе. В более сознательных в плане безопасности организациях, новонанятого могут попросить прочитать и подписать соглашение о соответствующем применении компьютерной системы.
К сожалению, как правило, настолько широко распространено и совершенно лишено смысла то, что у пользователей иногда складывается такое впечатление, будто до тех пор, пока они не раскрывают свой пароль, любая игра будет честной, включая пользование
Независимо от того как хорошо и всеобъемлюще написана политика безопасности, она бесполезна, если конечный пользователь не читает и не понимает ее. Обязательно прочитайте лекцию 2, "Методики построения систем безопасности", особенно те разделы, в которых говорится о политиках безопасности, о компетентности и обучении пользователей, о проверке на соответствие.
Сканер безопасности NMap (сокращение от
NMap – это продукт
NMap также имеет возможность создавать и отправлять узлу сети фрагментированные пакеты. Используя опцию –f (фрагментирование), можно заставить NMap выполнить сканирование фрагментированными IP-пакетами. В режиме фрагментирования NMap расщепляет TCP-заголовок на несколько пакетов, чтобы усложнить обнаружение сканирования
Хотя этот метод и не сможет одурачить брандмауэры, которые поддерживают целостность пакетов, многие сети не способны справиться с перегрузками при отслеживании фрагментов и, таким образом, не поддерживают этого.
В конце концов такие инструменты, как Nessus, используют NMap в своем ядре, что делает NMap еще более популярным.
В этом разделе были очень кратко рассмотрены несколько популярных техник укрепления ИТ-системы и то, о чем следует помнить системным администраторам и вообще всем тем, кто имеет дело с ИТ-безопасностью. Дальнейший материал лекции более глубоко раскроет намеченные концепции и объяснит в частности техники и методы укрепления ИТ-инфраструктуры так, как это должно быть.
Операционная система определяет все то, что может быть сделано с ИТ-системой, и то, каким образом это будет делаться. То ли происходит взаимодействие с файловой системой, то ли отправка электронной почты посредством Lotus Notes, то ли разговор с кем-нибудь через Sametime – за всем этим стоит "закулисная" работа операционной системы по обеспечению пользователя соответствующей технической поддержкой для интерпретации его запросов в нечто такое, с чем ИТ-система способна работать.
И хотя операционные системы различаются на многих уровнях, наиболее общие из них определяют нечто намного большее, чем простой интерфейс между пользователем и машиной. В них входят программы, дающие пользователю многочисленные дополнительные возможности: от простых
Многие пользователи тесно знакомятся с аксессуарами операционной системы (такими, как игры, идущими в комплекте с ОС), но совершенно забывают о тех средствах безопасности, которые входят в поставку, чтобы помочь им поддерживать свою операционную среду надежной и безопасной. В результате многие ИТ-системы так и находятся в небезопасном состоянии, что оставляет их подверженными опасности заражения вирусом или даже полной компрометации взломщиком.
Данный раздел посвящен вопросам безопасности операционной системы. Его цель – рассказать о таких специальных программах настолько подробно, чтобы процесс их укрепления был легок как для понимания, так и для выполнения. Это важно, поскольку достаточно всего лишь одного вируса или программы-"трояна", чтобы запустить цепную реакцию заражения компьютеров и компрометации ИТ-систем.
Прежде чем углубляться в то, что называется безопасностью в операционной системе, необходимо знать, где же собственно ОС начинается и где заканчивается. Наш краткий обзор описывает функциональность и предназначение операционной системы, а также то, как она используется для создания компьютерного опыта.
Кратко говоря, операционная система должна обеспечить выполнение двух основных функций. ОС должна:
Первая функция имеет особенно критических характер, поскольку именно она определяет то, каким образом приложения получают доступ к системным ресурсам. Посредством контроля различных аспектов использования аппаратуры и программного обеспечения ОС гарантирует, что каждое приложение получит возможность использовать процессор.
Вторая функция определяет методы, посредством которых приложение может получить доступ к этим ресурсам. Поскольку ОС зачастую выступает в качестве буфера между выполняющейся программой и аппаратурой, нужны какие-то средства, позволяющие приложениям получать доступ к ресурсам без необходимости знать всю топологию компьютерной системы.
Есть четыре основных вида операционных систем, классифицируемых согласно типам программ, которые они поддерживают, и способу взаимодействия этих программ с пользователями:
Операционная система отвечает за широкий спектр задач внутри компьютерного окружения. Именно эти задачи часто являются тем, что делает одну операционную систему надежнее и легче в использовании по сравнению с другой. То, как ОС управляется с этими задачами, определяет реальные возможности операционной системы.
Это было очень краткое резюме тех основных задач, с которыми следует управляться операционной системе.
Следующие разделы описывают вопросы безопасности, с которыми должна иметь дело операционная система для поддержания конфиденциальности, целостности и доступности системных ресурсов. Мы пройдемся по двум наиболее известным семействам операционных систем и по присущим им особенностям реализации систем безопасности. Еще мы опишем наиболее часто встречающиеся методы взлома или обхода этих систем, а также то, каким образом можно защитить себя от подобных видов атак.
С этого момента мы будем ссылаться на две ключевые книги по безопасности, которые в своей библиотеке следует иметь каждому администратору систем Windows или UNIX, а именно:
В этих книгах находится настоящее богатство полезных мыслей по поводу слабых и сильных мест в системах безопасности Windows и Linux.
Уже достаточно долгое время Microsoft Windows имеет репутацию системы с неадекватным уровнем безопасности, но многие эксперты в сфере безопасности полагают, что в действительности Windows отнюдь не слаба. Всю вину они возлагают непосредственно на плечи системных администраторов, которые отвечают за эти системы. Другими словами, при должном сопровождении и настройке вполне возможно сделать операционную систему Windows относительно безопасной.
Тем не менее есть несколько областей, в которых, как известно, Windows действительно уязвима, например в следующих:
1) Где это начинается и где заканчивается; и 2) Как надлежащим образом все это использовать и настраивать.
Из этого краткого обзора вопросов безопасности Windows становится очевидным, что для обеспечения безопасности этой операционной системы требуется очень основательный системный администратор. Абсолютно все, от патчей до понимания соответствующих процедур установки для гарантии того, что системные файлы и службы попали в поле зрения, является ключом к обеспечению того, что сервер Windows находится в безопасности.
Невозможно, да это и не является целью настоящей лекции, подробно описать все уязвимые места Windows. Напротив, читателю предлагается обратиться к следующим сайтам за текущими обновлениями в этой области:
При помощи информации, содержащейся на этих сайтах, можно оперативно идентифицировать слабые и уязвимые места и применить соответствующие патчи. Справедливости ради надо сказать, что Windows не единственная операционная система со слабыми местами. В Linux также имеются некоторые "дырки", которые мы рассмотрим дальше.
Многими Linux рассматривается как операционная система для компьютерных "фанатиков". Хотя когда-то подобное и было справедливо, сейчас операционные системы Linux для всех практических целей эволюционировали до той точки, когда они стали привлекательны и для обычного пользователя. От самых базовых машин Lindows и до выхода файлового сервера Red Hat-система, Linux делает значительные шаги в продвижении на основной рынок, приобретая также безусловную поддержку IBM. К сожалению, это означает, что растет также и число неопытных пользователей Linux.
Одно из самых распространенных утверждений относительно Linux – она более безопасна, чем Windows. К сожалению, такое утверждение само по себе не совсем корректно и заставило не одного ИТ-работника поверить в то, что ИТ-инфраструктура будет безопаснее, исходя только из самого того факта, что они используют Linux. Хотя это и действительно может быть правдой, что Linux может быть сделана более безопасной, чем другие операционные системы, в руках пользователей ей присущи многие из тех же самых проблем, что и для других ОС. Основные вопросы безопасности для Linux следующие:
Системным администраторам Linux-систем следует регулярно заходить на Web-сайты используемых ими дистрибутивов (например, Caldera, Red Hat, SUSE, Turbolinux) за консультациями по уязвимым местам и соответствующими патчами, а также в раздел UNIX сайта SecurityFocus (http://www.securityfocus.com/unix), тоже за консультациями по вопросам безопасности, за инструментами и техниками для борьбы с уязвимостями.
В итоговом разделе мы попытались представить ясный и сбалансированный обзор потенциальных вопросов безопасности в Linux и Windows. Это сделано для того, чтобы показать, что в обоих семействах операционных систем есть слабые места и что сознательному в плане безопасности системному администратору не следует расслабляться в чувстве комфорта от того, что он использует одну систему в противовес другой.
В следующих разделах мы рассмотрим специфику укрепления Windows и Linux, а заодно Solaris и AIX, так как все это такие операционные системы, на которых работает и поддерживается Domino.
Domino также работает и на таких ОС, как zOS (OS/390®) и OS/400® (которые предназначены для
В этом разделе мы рассмотрим процесс укрепления систем Windows (на базе Win32). Это те системы, которые включены в линейку NT-продуктов Windows, а именно:
Сюда мы включили и Windows XP Professional, так как Windows применяется большинством пользователей в качестве настольной системы (Linux в этой области медленно догоняет ее и все более и более привлекает к себе внимание), и, таким образом, как нам кажется, руководство по укреплению рабочих станций было бы хорошей идеей.
Хотя укрепление сервера Windows является несколько утомительным процессом, реализовать его относительно легко, и для него, как правило, не требуются от организации какие-либо расходы на дополнительное программное или аппаратное обеспечение. Как упоминалось ранее в этой лекции, процесс достаточно прямолинеен: 1) укрепить базу операционной системы и 2) предпринять аналогичные меры к любым службам, которые планируется запускать на данной ИТ-системе. В конечном итоге это не поможет укрепить базу операционной системы и оставит зияющие "дыры" в Web-сервере и сервере баз данных. Стоит еще раз повторить, что с каждым установленным в операционную систему продуктом возрастает вероятность, что взломщики получат доступ к ИТ-системе.
За долгие годы Windows NT 4.0 стала для Microsoft основной рабочей лошадкой. И хотя в настоящее время доступны более богатые своими возможностями замены ей, тем не менее до сих пор есть достаточно много причин, почему может быть развернута именно Windows NT 4.0. Тот факт, что большинство клиентов уже создали под нее стабильную и надежную основу, является, пожалуй, наиболее общераспространенным. Поэтому схема укрепления старого флагманского продукта будет рассмотрена в первую очередь. Многое из того, что будет здесь рассмотрено, применимо и к более новым версиям Windows, поэтому прочтение данного раздела очень рекомендуется.
При установке Windows NT 4.0 Server лучше всего следовать приведенным здесь рекомендациям настолько точно, насколько только возможно. Отдельные отклонения от нижеизложенного могут привести к тому, что будет удалена необходимая функциональность, требующаяся для приложения. Если подобное произойдет, мы встанем перед трудным выбором. В частности, если данная функциональность должна быть сохранена, от системных администраторов потребуется намного больше работы для защиты сервера, возможно даже придется использовать некоторые дополнительные инструменты и техники, упоминавшиеся ранее в этой лекции.
Начнем для начала с того, что следует делать, и отложим обсуждение того, чего делать не следует, на некоторое время. Этим будет гарантировано то, что смогут быть выработаны некие наиболее подходящие практические методы, а также то, что все необходимое для них будет установлено. Лучше всего начать с должным образом настроенной базы, чем потом встать перед необходимостью корректировки неправильной установки.
Итак, при установке Windows NT 4.0 в целях безопасности вам следует сделать следующее:
Замечание. Некоторые системные администраторы предпочитают устанавливать файловую систему FAT, а уже затем, после установки, преобразовывать ее в файловую систему NTFS. Подобный способ действий не рекомендуется, поскольку в этом случае ACLs по умолчанию применены не будут.
Удаление этих служб может сильно повлиять на функциональность сервера. Для планируемой конфигурации следует проверить требования программного обеспечения или, что еще лучше, провести пробную установку и протестировать конфигурацию до ее фактического размещения в реальном рабочем окружении.
Указанные службы могут быть удалены последовательным выбором: Панель управления -> Сеть -> Службы (Control Panel -> Network -> Services):
Хотя это и удобно для удаленного администрирования сервера, лучше всего не добавлять дополнительные службы, включая службы удаленного управления, такие, как telnetd и FTP. Ни одна из них не осуществляет шифрования, таким образом учетные записи, пароли и другая информация запросто могут быть собраны прямо по сети. Если все же эти службы должны быть разрешены, системным администраторам следует принять иные меры предосторожности, такие, как доступ только через брандмауэр из внутренней сети и применение фильтров IP-безопасности к тем серверам, на которых эти службы работают.
Удалите данный ключ, а вместе с ним удалятся все нижележащие ключи, относящиеся к подсистеме OS/2 HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\OS/2 Subsystem for N.
Уберите значение Os2LibPath из ключа Environment:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\EnvironmentOs2LibPath.
Уберите ключи Optional, POSIX и OS/2 из ключа "Подсистемы менеджера сессии":
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SessionManager\SubSystems.
После этих изменений в регистре необходимо вручную удалить директорию %WINNT%\system32\os2 вместе со всеми вложенными папками.
Это был действительно длинный список того, что фактически должно быть сделано, но на котором многие системные администраторы почему-то спотыкаются, поскольку не осознают всего того, что им следует делать при установке операционной системы.
Теперь перейдем к тому, чего не следует делать. Это еще один немаленький список, хотя и не совсем такой длинный, как список того, что следует делать.
Замечание. Internet Explorer 4.01 SP1® идет в поставке Windows NT на компакт-диске с опциональными компонентами (Option Pack CD), а Internet Explorer 4.01 SP2® доступен для скачивания по сети.
Есть несколько функций и особенностей Windows NT, которыми можно управлять исключительно через настройки реестра. При правке реестра следует быть особо осторожным, поскольку это быстро и легко может покалечить всю систему. Нижеследующие изменения реестра однозначно сделают Windows NT более безопасной.
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\Winlogin DontDisplayLastUserName
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\Lsa RestrictAnonymous
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\SecurePipeServers\winreg
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Control\FileSystem NtfsDisable8dot3NameCreation
ADMIN$, C$ и т. д.). (Убедитесь, что вы собственноручно удалили эти ресурсы из списка разделяемых (для общего доступа) запуском команды net share /d.):HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\LanmanServer\Parameters AutoShareServer
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Eventlog\Application \CurrentControlSet\Services\Eventlog\Security \CurrentControlSet\Services\Eventlog\System RestrictGuestAccess
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\Winlogon CachedLogonsCount
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\Run HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows\CurrentVersion\RunOnce HKEY_LOCAL_MACHINE\SOFTWAR \Microsoft\Windows\CurrentVersion\RunOnceEx HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\AeDebug HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\Windows NT\CurrentVersion\WinLogon
В Windows NT 4.0 есть несколько встроенных автоматических служб журналирования. Большинство служб пользуются EventLogs, с которой следует быть знакомым едва ли не каждому хорошему администратору систем Windows.
Замечание. Описанные здесь особенности журналирования применимы и к более поздним версиям операционной системы Windows, но рассказывается о них только в этом разделе.
Если на сервере запускаются какие бы то ни было службы Интернета (такие, как FTP, HTTP, SMTP и т. д.), их журналирование происходит посредством разных механизмов. Очень вероятно, что для настройки или отладки сервера будет использоваться приложение "Монитор производительности" (Performance Monitor). Это приложе- ние не пользуется услугами журнала приложений службы EventLog, а вместо этогведет свой собственный набор журналов.
И наконец, один из наиболее важных аспектов системы – расписание автоматически выполняемых заданий – ведет свой журнал посредством еще одной службы. Поскольку в Windows NT нет нормальной централизованной службы ведения журналов, каждый должен заботиться сам о себе.
Самое первое, что нужно сделать, – это вынести все журналы на отдельный журнальный раздел. Было бы удобно, хотя и не обязательно на все 100 %, использовать в качестве такого раздела отдельный диск, чтобы не влиять на производительность работы с частью данных на сервере. После того как журнальный раздел создан, следующий шаг – перенести туда все журналы из их мест размещения по умолчанию.
Зачем все это? Если все журналы собраны в одном месте, процедура поддержки работающего сервера становится намного легче. Это дает возможность выполнять автоматическое резервное копирование и архивирование для последующего разбора и обработки.
EventLogs – это встроенные в Windows NT журналы событий, которые используются по умолчанию и могут быть просмотрены через обозреватель событий (Event Viewer). В Windows NT EventLogs является эквивалентом службы syslogs в операционной системе UNIX.
Сама служба EventLog состоит из журнала приложений (Application Log), журнала безопасности (
Эта задача выполняется редактированием следующих ключей реестра:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\Eventlog\Application \CurrentControlSet\Services\Eventlog\Security \CurrentControlSet\Services\Eventlog\System
Значения параметров "File" следует установить в новое имя папки раздела журнальных файлов. После редактирования этих значений сервер должен быть перезапущен, чтобы изменения вступили в силу.
Службы, предоставляемые инфраструктурой Windows IIS Web-сервера, генерируют журналы для каждой из них: Web, FTP и SMTP. Журналы службы Интернета уникальны в том смысле, что для автоматического перехода к новому журналу можно настроить временной интервал. А имя журнального файла может основываться на определенном периоде времени.
Для изменения размещения этих журнальных файлов отредактируйте свойства корневой папки Web или FTP. Выберите свойства файла журнала и в диалоговое окно "Свойства" (Properties) введите новое размещение раздела журнальных файлов.
Журналы производительности создаются счетчиками монитора производительности (Performance Monitor). По умолчанию они находятся в %SystemDrive%\PerfLogs. Это значение может быть изменено редактированием параметра DefaultLogFileFolder в следующем ключе реестра:
HKEY_LOCAL_MACHINE\SYSTEM \CurrentControlSet\Services\SysmonLog DefaultLogFileFolder
Служба планировщика обычно находится в %SystemRoot%\SchedLgU.Txt. Журнал службы планировщика определяет все запланированные и выполняемые задачи, а также то, когда каждая из них началась и закончилась. Местонахождение этого файла может быть изменено редактированием значения LogPath в ключе реестра:
HKEY_LOCAL_MACHINE\SOFTWARE \Microsoft\SchedulingAgent LogPath
Этим завершается наше обсуждение укрепления Windows NT. Как уже упоминалось ранее, многое из рассмотренного здесь применимо и к новым версиям Windows. Однако, исходя из того факта, что после NT 4.0 в Windows было сделано множество улучшений, важно также рассмотреть и эти новые версии и наметить некие наиболее подходящие практические методы обеспечения безопасности с точки зрения процесса укрепления.
Windows 2000 является намного более большим и сложным продуктом, чем Windows NT 4.0, и, по сути, для полного анализа ее установок безопасности по умолчанию и защиты от любых недочетов требуется гораздо больше времени. Исходя из этого, рекомендации по укреплению, приведенные в настоящей лекции, следует рассматривать как некий след во времени, поэтому в текущий момент они могут оказаться и не совсем корректными. Таким образом, самые лучшие практические советы здесь ссылаются на несколько реально существующих документов, опубликованных Microsoft в своей библиотеке Technet, которые предоставят самую последнюю информацию.
При установке Windows 2000 лучше всего следовать данному методическому указанию настолько точно, насколько возможно. Везде, где это только применимо, используйте рекомендации, приводившиеся в предыдущем разделе, наряду с обсуждаемыми здесь указаниями, специфичными для Windows 2000.
При установке Windows 2000 лучше всего попытаться уменьшить число устанавливаемых компонентов Windows 2000. По умолчанию Windows 2000 предлагает намного больше функциональных возможностей, чем Windows NT 4.0. Многое из этой функциональности лучше вообще НЕ предоставлять людям как внутри организации (если машина каким-либо образом доступна из Интернета), так и тем более кому бы то ни было снаружи.
По умолчанию в установку Windows 2000 входит множество аксессуаров, утилит, мультимедийных приложений и схем, а также приложений коммуникации. Можно, конечно, впасть в искушение установить набор программного обеспечения, предлагаемого по умолчанию. Однако лучше все-таки уделить время для определения того, что действительно стоит устанавливать, а что нет. Не будет лишним повторить: чем больше установлено программного обеспечения, тем выше вероятность быть взломанным.
Так же, как это делали в разделе о Windows NT 4.0, здесь мы расскажем о том, что делаем и чего не делаем при установке Windows 2000 в плане обеспечения безопасности и укрепления окружения.
Прежде всего начнем с того, что следует делать. Этим будет гарантировано то, что смогут быть выработаны некие наиболее подходящие практические методы, а также то, что все необходимое для них будет установлено. Лучше всего начать с должным образом настроенной базы, чем потом оказаться перед необходимостью корректировки неправильной установки.
Замечание. Некоторые системные администраторы предпочитают устанавливать файловую систему FAT, а уже затем, после установки, преобразовывать ее в файловую систему NTFS. Подобный способ действий не рекомендуется, поскольку в этом случае ACLs по умолчанию применены не будут.
Если данный сервер предполагается в качестве Web или почтовой станции SMTP, "Клиента для сетей Microsoft" (
Затем следует выбрать "Свойства протокола IP" (IP Protocol Properties). Для настройки IP адреса и информации DNS не используйте DHCP. После установки вручную сетевых параметров нажмите на кнопку "Дополнительно" (Advanced) и внесите следующие изменения:
TelnetClients, а затем добавьте в нее тех пользователей, которым доступ посредством telnet будет разрешен. Служба telnetd сама автоматически ограничит доступ к Telnet только членами группы TelnetClients.Сейчас о том, чего делать не следует.
CA [Certificate Authorities (Полномочия сертификатов)] следует держать в тайне, и обычно вы не предлагаете регистрацию сертификата всяким пользователям Интернета. Общепринятым правилом является содержание корпоративных "Полномочий сертификатов" в жестко контролируемой, безопасной среде в изолированной внутренней сети. Более того, поскольку Lotus Domino вероятнее всего будет предлагать использование SSL, для данного компонента – не для операционной системы – будет лучше принять это предложение, что является еще одним аргументом в пользу того, чтобы не загружать "Служб сертификатов".Если требуется
Если укрепление Windows NT 4.0 показалось несколько бессистемным, то на самом деле так оно и есть. Нет никакого простого способа определить и применить все изменения реестра, файловой системы, настроек сети и политики пользователь/группа. Хуже того, нет никакого простого способа следить за внесенными изменениями для гарантии того, что изменения в политике не были отменены взломщиками, установленным программным обеспечением или примененным пакетом обновлений.
С выходом Windows 2000 корпорация Microsoft ввела замечательный набор интегрируемых инструментов для "Консоли управления Microsoft" (Microsoft Management Console, MMC). Набор "Шаблонов безопасности" (Security Templates Tool) позволяет системным администраторам выбирать, просматривать и даже создавать самостоятельно шаблоны политики безопасности. Набор для "Конфигурации и анализа системы безопасности" (Security Configuration and
Изначально "Набор шаблонов шезопасности" и "набор для конфигурации и анализа системы безопасности" не видны в MMC. Для управления серверными политиками и настройками оба эти инструмента следует туда добавить.
Существует много пакетных шаблонов безопасности, среди которых и "Высокая безопасность для рабочих станций" (High Security for Workstations), которые определены в шаблоне HISECWS.INF. Кроме того, Microsoft выпустила "Шаблон высокой безопасности", предназначенный для Web-серверов. Шаблоны безопасности включают в себя большинство изменений в политике и в реестре, сделанные ранее для Windows NT 4.0. Шаблон безопасности HISECWEB.INF имеется в наличии на сайте Microsoft по следующему URL:
http://support.microsoft.com/support/misc/kblookup.asp?id=Q316347
Для использования шаблона выполните следующие шаги:
Уделите некоторое время просмотру и чтению индивидуальных шаблонов. Вы можете сделать это либо посредством "Набора шаблонов безопасности", либо вручную при помощи текстового редактора вроде WordPad. Пробегите глазами по предлагаемым изменениям, чтобы определить, имеют ли они смысл для размещения в данной ИТ системе конкретного приложения. Готовый шаблон из "Набора шаблонов безопасности" можно использовать как основу для разработки индивидуального шаблона безопасности. После получения шаблона, удовлетворяющего нашим требованиям, следующий шаг – проанализировать, как он повлияет на сервер.
Для загрузки шаблона используйте "Набор для конфигурации и анализа системы безопасности"; правый клик на иконке "Набора для конфигурации и анализа системы безопасности"; выберите "Анализировать компьютер". Найденное будет отображено на правой панели, показывая установки шаблона, текущие установки сервера и любые несоответствия. Просмотрите найденное и, если необходимо, настройте шаблон.
После того как шаблон безопасности был полностью настроен со всеми соответствующими разрешениями, политиками, установками реестра и ограничениями, кликните правой кнопкой мыши на иконке "Набора для конфигурации и анализа системы безопасности" и выберите "Анализировать компьютер". Затем откиньтесь на спинку стула и позвольте программе закончить свою работу.
У "набора для конфигурации и анализа системы безопасности" есть очень хороший эквивалент командной строки. Для анализа, настройки, обновления и сопоставления текущей серверной политики с вашим известным шаблоном можно использовать SECEDIT. Он удобен тем, что может быть запущен из сессии Telnet. Однако управлять сервером через нешифрованную удаленную сессию не рекомендуется.
Ориентированные на приложения серверы, обитающие внутри брандмауэра, потребуют запуска дополнительных служб, которые будут предлагаться интернет-аудитории. Поскольку существует огромное количество приложений и вообще невообразимое множество различных комбинаций настроек этих приложений, попытка описать конфигурацию даже самых общих из них, таких, как HTTP, FTP и SMTP, выходит далеко за пределы данного курса.
Если же ничего больше не делать, приложения примеров, устанавливаемые по умолчанию с IIS и различными компонентами, следует удалить. Приложения-примеры и их каталоги приведены в табл. 9.1.
| Приложение | Куда установлено |
|---|---|
| IIS | \inetpub\iissamples |
| IIS SDK | \inetpub\iissamples\sdk |
| Admin Scripts | \inetpub\AdminScripts |
| Data Access | \Program Files\Common Files\System\msadc\Samples |
Нужно сказать, что существуют реальные документы, которые дают замечательную отправную точку для должной настройки более общих служб приложений DMZ-сервера:
Этим мы завершаем наше обсуждение Windows 2000. Хотя между укреплением Windows NT 4.0 и Windows 2000 и есть некоторые совпадения, инструменты и методы с течением времени тем не менее эволюционировали. В результате при помощи политик процесс укрепления сервера Windows 2000 значительно менее бессистемный, нежели процесс укрепления сервера Windows NT 4.0.
До настоящего момента основное внимание уделялось укреплению серверных конфигураций, чтобы сделать их более устойчивыми к атакам. Поскольку безопасность является суммой всех своих составных частей и в то же время наиболее уязвима в своей самой слабой точке, важно также обсудить и процесс укрепления конфигураций рабочих станций, особенно тех, которые работают под управлением операционных систем Windows (NT, 2000, XP), так как именно они на момент публикации данной книги были самыми распространенными настольными операционными системами.
Также это является фундаментальной областью знаний о безопасности, в которой постоянно обнаруживаются все новые и новые слабые и уязвимые места во всех ИТ- системах, и операционная система Windows в этом плане не исключение.
В результате, если нет систематического процесса по поддержанию конфигураций ИТ-систем (серверов и рабочих станций) в соответствии с последними обновлениями поставщика (в форме патчей или пакетов обновлений), последствия будут слишком предсказуемы: эти системы падут жертвой взлома.
Этот раздел сосредоточивает свое внимание на рекомендациях по выбору инструментов, методик и технологий по укреплению рабочих станций Windows NT, 2000 и XP; и в частности на том, как применять патчи и настраивать эти системы для лучшей их защиты от компрометации. Рассмотренное в предыдущих разделах также следует принимать во внимание, так как у Windows в качестве серверной операционной системы и Windows в качестве рабочей станции много общего.
Поскольку в нашем курсе речь идет о продуктах Lotus
Мы рекомендуем вам прочитать статью Microsoft "Семь шагов к персональной компьютерной безопасности" ("Семь Steps to Personal
http://www.microsoft.com/security/articles/steps_default.asp
В конечном итоге здесь мы пытаемся сфокусировать наше внимание на более защищенных конфигурациях Windows, а точнее на тех, которые построены вокруг ядра Windows NT (NT 4.0, 2000 и XP). Этот раздел не затрагивает конфигураций, построенных на ядре Windows "9x" – 95, 98, 98SE и ME, поскольку они создавались без учета аспектов безопасности и взламываются слишком легко. Организациям, действительно заботящимся о своей ИТ-безопасности, но имеющим рабочие станции на основе ядра 9x, следует рассмотреть перспективу замены их на конфигурации с ядром Windows NT.
Для поддерживания рабочей станции Windows NT, 2000 или XP вам потребуется доступ к учетной записи "Администратор". (Это отличается от Windows 95, 98 и ME, в которых все пользователи имеют полные права доступа ко всей системе. Фактически это одна из главнейших причин, почему системы 9x являются незащищенными по своему дизайну.) В этом разделе мы обсудим привилегии, дающиеся конечному пользователю по отношению к учетной записи "Администратор", и затем рассмотрим защиту этой учетной записи.
И наоборот, лучше разработать такие конфигурации рабочей станции Windows, которые не наделяют конечного пользователя администраторскими правами (или предоставление им привилегий администратора) на их машинах. Ограничение на то, какое программное обеспечение конечные пользователи могут установить на свои рабочие станции и каким образом, предохраняет многие "дыры" безопасности от вскрытия и делают всю ИТ-инфраструктуру более безопасной.
Это обычно не согласуется с желаниями большинства пользователей. Большинство из них полагает, что на корпоративной рабочей станции (или даже на терминале) им следует обладать такой же степенью свободы, как и на своем собственном домашнем компьютере. Это вполне понятно, но машины не являются собственностью конечного пользователя, они являются собственностью организации. А значит, организации следует иметь в наличии политику безопасности, в соответствии с которой конечные пользователи не обладают на своих машинах администраторскими правами. (Если у организации ее нет, самое время вернуться к лекции 2, "Методологии построения систем безопасности", и написать набор
Учетная запись "Администратор" имеет привилегии делать с системой Windows все что заблагорассудится. Хакеры-злоумышленники будут выискивать подсоединенные к Интернету рабочие станции, в которых учетная запись "Администратор" имеет либо тривиальный пароль, либо вообще не имеет пароля как такового. Как только эта учетная запись взломана, хакер получает полный контроль над рабочей станцией.
Поэтому есть два варианта: один – иметь учетную запись "Администратор", другой – избавиться от нее (хотя и не полностью). Давайте рассмотрим их оба.
Важно обеспечить чистоту конфигурации рабочей станции, чтобы никакой файл не был взломан во время его обычного режима использования и чтобы никакие вновь вводимые в систему файлы не причинили ей вреда.
Вот почему так важно иметь установленную антивирусную защиту, которая может выполнять периодическое сканирование файловой системы и памяти для обнаружения вирусов, "
У большинства организаций есть лицензии на Norton Anti-
Microsoft попыталась сделать управление обновлениями на рабочих станциях Windows относительно легким. Установка текущих исправлений и пакетов обновлений посредством центра обновлений Microsoft состоит из нескольких нажатий на кнопки и зачастую перезагрузки (или иногда нескольких перезагрузок), так что на первый взгляд процесс кажется несколько нудным. Тем не менее система проработала достаточно долго и хорошо зарекомендовала себя, и, исходя из количества ее пользователей, мы должны заключить, что она действительно не сложна в использовании.
Следуйте нижеприведенным шагам для обновления конфигурации рабочей станции:
Всегда есть риск того, что исправление или пакет обновлений может нежелательно повлиять на конфигурацию рабочей станции. Обратная сторона медали – неприменение критического патча с большой вероятностью оставит рабочую станцию открытой для взлома. Стоит помнить, что у патчей, вышедших достаточно давно, очень низкая вероятность оказаться неадекватными, так как с тех пор они уже были протестированы другими людьми.
Применение пакетов обновлений и текущих исправлений может показаться утомительной и неблагодарной работой, но причина того, что такое множество червей буйно расплодилось по Интернету, в том, что они в точности используют известные и опубликованные "дыры". В общем, применение патчей к ИТ-системам, и к рабочим станциям в частности, – очень важная линия обороны.
Советник по основным направлениям безопасности Microsoft определит патчи, которые необходимо применить. URL для MBSA следующий:
http://www.microsoft.com/technet/security/tools/mbsahome.
MBSA поставляется как стандартный набор инструментов для установки. Он был выпущен в апреле 2002 г. и заменил собою более ранний, основывающийся на Web инструмент, называемый Microsoft's Personal Security Advisor (MPSA), который был предназначен для рабочих станций. MBSA – очень хороший инструмент для оценки степени защищенности рабочих станций Windows NT 4.0, Windows 2000 или Windows XP (также его можно использовать для оценки уровня безопасности серверов, работающих под управлением тех же версий операционной системы Windows). Еще он очень полезен для оценки безопасности серверов MS IIS и MS SQL.
MBSA определит патчи (пакеты обновлений и текущие исправления), которые следует применять. Еще MBSA выдаст рекомендации по нескольким важным настройкам защиты. Он работает достаточно хорошо, и системные администраторы, вероятно, найдут его более чем полезным для обеспечения безопасности ИТ-систем, находящихся под их контролем и ответственностью.
Для установки пакета надо обязательно обладать доступом к учетной записи Администратор и не менее важно также входить в систему как администратор для сканирования рабочей станции или сервера на наличие проблем. Если инструмент используется для сканирования безопасности, он загрузит и запустит содержимое, полученное от Microsoft, которое по идее предоставит самые последние и самые лучшие советы и настройки конфигурации на основании информации, предоставленной MBSA.
При применении патчей хорошим стилем считается агрессивная стратегия. В конце концов, если поставщик рекомендует применить патчи, было бы совершенно глупо – или для этого понадобятся действительно веские причины – игнорировать этот совет. К слову, если продукт был взломан через какое-то уязвимое место, а патч, закрывающий это место, уже был выпущен ранее поставщиком, но не применен, очень трудно будет после этого идти с жалобой к поставщику.
Что же касается самих патчей, лучше всего опробовать их на нескольких системах до того, как ставить на все ИТ-системы. Были случаи, когда Microsoft выпускал патч, который не работал или вызывал другие проблемы. Тем не менее вы можете быть в более чем достаточной мере уверенными в любом патче, с момента выхода которого прошло несколько недель, поскольку к этому моменту многие люди уже загрузили его, посмотрели, не вызывает ли он каких проблем, и, если таковые обнаружились, сообщили о них.
Рекомендации MBSA могут быть несколько раздражающими при применении, но все они действительно стоят тех усилий. Обычно рекомендации MBSA точно такие же, какие предложили бы любые другие хорошо известные организации, занимающиеся безопасностью.
Многие системы Windows NT 4.0, 2000 и XP сконфигурированы для работы с Web сервером, который называется "Информационный сервер Интернета Microsoft" (Internet Information Server, IIS). Он стал источником слишком большего числа взломов, самый известный из которых – червь "Code Red", который существует и по сей день, выискивая непропатченные или плохо настроенные серверы IIS. Ниже приводится то, что следует сделать для любой ИТ-системы, запускающей MS IIS Web-сервер.
Если конечным пользователям MS IIS Web-сервер не нужен или если конфигурация сервера организации не требует его, будет намного безопаснее не запускать этот сервер вообще. Логика – и совершенно справедливая – в том, что в первую очередь Web-сервер (такой, как IIS) невозможно взломать, если он не запущен. Точно так же, если он не работает, то в плане безопасности для системных администраторов одной головной болью меньше. В конце концов, можно вообще удалить подсистему IIS с рабочей станции или сервера, но, пожалуй, лучше все-таки будет только его остановить, потому что между различными компонентами версий операционной системы Windows существует слишком много взаимозависимостей, чтобы быть на 100 % уверенным в том, что удаление компонентов подсистемы позже не повлияет на что-нибудь еще.
Обновления для MS IIS Web-сервера можно найти при помощи инструмента MBSA, который обсуждался ранее. Как уже упоминалось, он эволюционировал из более раннего, основанного на Web-интерфейсе инструмента (который больше уже недоступен). Причиной для такой эволюции стала невозможность отследить текущие исправления для MS IIS Web-сервера. Фирме Microsoft пришлось рекомендовать "инструмент для проверки текущих исправлений", особенно для IIS, который больше не требуется для Windows 2000 и Windows XP.
http://support.microsoft.com/default.aspx?scid=kb;EN-US;q303215
http://support.microsoft.com/default.aspx?scid=kb;en-us;Q305385
Упомянутые патчи все есть в "Бюллетене безопасности Microsoft", который находится на сайте Microsoft Technet Web по следующему URL:
http://www.microsoft.com/technet/security/current.asp
И наконец, Microsoft опубликовал инструмент для запирания MS IIS Web-сервера и закрытия многих общеизвестных "дыр". См. "Инструмент для Запирания IIS Microsoft", который находится по следующему URL:
http://www.microsoft.com/technet/security/tools/tools/locktool.asp
Некоторые системы Windows NT 4.0, 2000 и XP настроены с поддержкой сервера баз данных, способного обрабатывать запросы языка структурных запросов (Structure Query Language, SQL). Этот сервер баз данных называется MS SQL-сервером. Так же как и MS IIS, данный сервер стал источником нескольких "дыр". Самая известная – червь "Slammer".
Небольшими усилиями Microsoft SQL-сервер можно сделать безопасным. Если его не обезопасить, шансы на то, что он будет взломан, слишком велики. Для любой ИТ-системы с работающим на ней MS SQL-сервером рекомендации для защиты системы следующие:
Если конечным пользователям MS SQL-сервер не нужен или если конфигурация сервера организации не требует его, будет намного безопаснее не запускать этот сервер вообще. Опять же, логика в том, что в первую очередь сервер баз данных (такой, как MS SQL-сервер) невозможно взломать, если он не запущен. Точно так же, если он не работает, то в плане безопасности для системных администраторов одной головной болью меньше.
Далее, если MS SQL-сервер все-таки нужен, лучше установить его на какой-нибудь другой машине. Приложения для работы с базами данных не обязательно запускать на той же машине, на которой находится и сервер баз данных.
Хотя и можно вообще удалить подсистему MS SQL-сервера с рабочей станции или сервера, но, пожалуй, лучше все-таки будет только его остановить, потому что между различными компонентами версий операционной системы Windows существует слишком много взаимозависимостей, чтобы быть на 100 % уверенным в том, что удаление компонентов подсистемы позже не повлияет на что-нибудь еще.
И последнее, если MS SQL-сервер уже намеренно установлен, его следует немедленно отключить до тех пор, пока к нему не будут применены все патчи и текущие исправления и пока не будет завершен процесс укрепления.
Обновления для MS SQL-сервера (пакеты обновлений и текущие исправления) можно найти при помощи инструмента MBSA, который обсуждался ранее. Все еще не установленные патчи должны быть применены как можно быстрее, и ни один MS SQL-сервер не следует открывать до тех пор, пока к нему не были применены все патчи. MBSA определит некоторые проблемы, которые в противном случае могли быть упущены и которые следует изучить незамедлительно.
Упомянутые патчи все есть в "Бюллетене безопасности Microsoft", который находится на сайте Microsoft Technet Web.
Многие поставщики продуктов безопасности распространяют бесплатные инструменты для оценки ИТ-систем (тем самым в действительности они подталкивают вас к покупке их товаров). Эти поставщики проверяют, насколько хорошо укреплена тестируемая система, при помощи так называемого теста на проникновение.
Например, Symantec, создатель антивируса Norton Anti-
http://security.symantec.com/ssc/home.asp
Среди предоставляемых бесплатных услуг инструменты "Scan for
Замечания. Есть два очень важных замечания.
Во-первых, инструменты 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. На рынке есть и другие инструменты и поставщики услуг безопасности, на которые тоже стоит обратить внимание, чтобы гарантировать, что к ИТ-системам организации может быть применен достойный уровень укрепления.
В этом курсе невозможно охватить все аспекты укрепления серверов и рабочих станций Windows.
Чтобы помочь с укреплением ИТ-систем, как серверов, так и рабочих станций, тем, кто хочет удостовериться, что они все выполнили с надлежащим старанием и получили самую последнюю информацию касательно данного раздела, полезны будут следующие дополнительные источники:
http://www.microsoft.com/security/articles/steps_default.asp
http://www.cert.org/tech_tips/win_configuration_guidelines.html
Данные – всего лишь отправная точка. В Web есть множество других сайтов, на которых имеется прекрасная информация.
В этом разделе мы рассмотрим укрепление UNIX-серверов. Системы UNIX и системы Windows в достаточной мере отличаются друг от друга, чтобы для них требовались совершенно раздельные обсуждения.
Относительно UNIX говорят, что самое замечательное в стандартах – это то, что их так много и можно выбирать. UNIX выпускается целым рядом семейств, два доминирующих из которых произошли от BSD и от ATT System V. Некоторые из характерных реализаций UNIX в этих двух категориях приведены ниже.
Системы UNIX, полученные из BSD:
Замечание. 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. После него приведены некоторые ссылки на реальные документы в Интернете, которые отслеживают имеющиеся в наличии данные и релизы, а также углубляются в более детальные описания того, как укреплять сервер для конкретной задачи.
Говоря в целом, системное укрепление сервера 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
Обычно, вне зависимости от устанавливаемого клона 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, которая планируется к установке.
Служба inetd – это "суперсервер Интернета" в UNIX. В основном это /etc/inetd.conf.
Служба inetd слушает входящие соединения по предопределенным IP-портам. Когда соединение по заданному порту установлено, она вызывает заранее настроенную программу для обработки запроса. После того как соединение завершилось, процесс вызывает службу, которая обрабатывает запрос. Первоначальная причина для создания данной службы состояла в том, чтобы уменьшить нагрузку и ресурсы, требуемые для ИТ-системы.
Через inetd запускается целый набор служб, и почти все из них следует запретить, как часть должным образом укрепленного сервера. Помимо стандартно-запрещаемых FTP, TFTP, Telnet и команд Berkley r*, также следует запретить и следующее.
Служба in.named. Это демон служб разрешения имен BIND. Помимо серверов, которые специально определяются в качестве DNS-серверов организации, DNS не следует запускать на укрепленном сервере UNIX.
Служба in.fingerd. Это демон программы finger, которую можно использовать для отображения информации о пользователе и для вывода списка пользователей, в данный момент находящихся в системе. На должным образом укрепленном сервере UNIX нет причин для афиширования подобной информации, которая могла бы оказаться полезной для предполагаемых взломщиков.
Служба daytime. Эта служба выводит дату и время в системе в строковом формате. Не позволяйте возможным взломщикам получить дату и время системы, так как они могут воспользоваться этими данными для реализации повторяющихся атак.
Служба time. Это служба, которая возвращает время в виде 32-битового значения, представляющего количество секунд, прошедших после полуночи 1 января 1900 г. Не позволяйте возможным взломщикам получить точное системное время.
Служба echo. Это диагностическая служба, которая отражает входящие данные обратно к подсоединившийся машине. Не позволяйте возможным взломщикам получить информацию о системах, которые отвечают на подобные запросы.
Служба discard. Это диагностическая служба, которая не отражает
Служба . Это диагностическая служба, которая автоматически генерирует поток символов для отправки к подсоединившейся машине. Не позволяйте возможным взломщикам получить машину для генерации потока данных, который будет отослан другой машине в пределах или за пределами сети организации.
Служба systat. Эта служба предоставляет список всех процессов и их статусов. Не позволяйте возможным взломщикам получать такую жизненно важную информацию.
Служба netstat. Эта служба предоставляет список всех текущих сетевых подключений и их статусов. Не позволяйте возможным взломщикам получать такую жизненно важную информацию.
Этот список ни в коем случае не является исчерпывающим. Для определения, какие службы могут быть установлены, что открывает уязвимые точки входа и методы для доступа к серверу и внутри сервера UNIX, следует провести надлежащее рассмотрение устанавливаемой системы UNIX.
Мы рекомендуем на укрепляемый сервер UNIX установить tcp_wrappers (созданные Wietse Venema), которые позволят вам задать контроль доступа к различным службам по ограниченному набору критериев, таких, как, например, имя пользователя, IP-адрес или домен DNS. Они невелики и чрезвычайно полезны на внутренних серверах, не только на внешних боксах, которые могут быть настроены как брандмауэры, серверы DMZ или прокси-серверы (не важно, основные ли они или резервные). Так вот, они по умолчанию устанавливаются и конфигурируются большинством дистрибутивов GNU/Linux и релизов BSD. Для тех же систем UNIX, в которых tcp_wrappers по умолчанию не установлены, исходники можно найти по следующему URL (затем их можно откомпилировать и полученные исполняемые модули установить на сервер):
ftp://ftp.porcupine.org/pub/security/index.html
Причина для установки такого дополнительного компонента в существующую конфигурацию UNIX состоит в том, чтобы избежать единых точек отказа (single points of failure) и обеспечить безопасность по всем уровням. Если один уровень взломан или обойден, другие уровни будут стоять на страже перед взломом.
Полезно помнить, что большинство пробоев информационной безопасности, случайных или преднамеренных, происходит изнутри. Внимание прессы же привлекают только внешние взломы, массивные распределенные атаки вида отказа от обслуживания (
Добавочный компонент tcp_wrappers имеет два основных файла, которые разрешают доступ к индивидуально определенным службам. Два нижеприведенных файла проверяются на правила, определяющие доступ к индивидуальным или заданным по шаблону службам.
/etc/hosts.allow /etc/hosts.deny
Как и в большинстве машин, осуществляющих фильтрацию tcp/ip-запросов (таких, как брандмауэры или серверы, доступ к которым сильно ограничен), доступ предоставляется или запрещается на основании первого же совпадающего правила.
Правила проверяются в следующем порядке: сначала в hosts.allow, затем в hosts.deny. Будьте осторожны в использовании шаблонов KNOWN или UNKNOWN. ALL всегда будет совпадать, какие бы критерии ни тестировались. За дальнейшими подробностями по синтаксису и по написанию правил обращайтесь к hosts_access, идущей в комплекте с tcp_wrappers.
Sendmail идет едва ли не с каждой установкой UNIX (включяя GNU/Linux) как агент по умолчанию для пересылки почты (Mail Transfer Agent, suid (set-UID) позволяет программам запускаться от имени и с правами пользователя-владельца программы (т. е. соответствующего исполняемого файла), а не того пользователя, который запустил программу (как происходит обычно). Например, "suid root" обозначает, что программа принадлежит пользователю root и обычный пользователь исполняет ее с правами root.,
Последняя версия sendmail поддерживает такие новые возможности, как STARTTLS и шифрование SMTP AUTH. Если в комплект с устанавливаемой операционной системой UNIX входит более старая версия sendmail (подразумевается та, которая не поддерживает эти новые возможности), вам следует подумать об обновлении ее на самую последнюю из имеющихся в наличии. По крайней мере убедитесь, что эта версия не старее версии 8.9.3 из-за хорошо известных "дыр" безопасности.
Чтобы разрешить Realtime Blackhole List (черный список реального времени), который помимо прочего защитит систему и пользователей от спама, в файл sendmail.mc следует вписать следующее:
FEATURE(rbl)dnl
Кроме того, в самом sendmail рекомендуется запретить команды SMTP VRFY и EXPN. Эти команды зачастую используются взломщиками для сбора информации о сервере. Запретите их при помощи следующего:
define('confPRIVACY_FLAGS', 'novrfy,noexpn')dnl
Есть несколько дополнительных флагов, которые вы можете установить, чтобы заставить sendmail вести себя более безопасным образом:
authwarnings: при определенных условиях в сообщения следует добавлять заголовок X-Authentication-Warning, что может сообщить почтовой системе о попытках обмана;needmailhelo: требует от сайта-отправителя при начале соединения для отправки почты сначала использовать команду SMTP HELO ;needexpnhelo: требует от сайта-отправителя использовать команду SMTP HELO до разрешения какого бы то ни было применения EXPN;needvrfyhelo: требует от сайта-отправителя использовать команду SMTP HELO до разрешения какого бы то ни было применения VRFY;noreceipts: запрещает уведомления о статусе доставки (Delivery Status Notifications, goaway: устанавливает все флаги, кроме restrictmailq и restrictqrun ;restrictmailq: не дает возможности пользователям употреблять команду mailq для просмотра содержимого почтовой очереди;restrictqrun: удерживает пользователей от обработки очереди.Верно также, что при запущенном сервере Domino поверх операционной системы UNIX или GNU/Linux можно также sendmail отключить вообще и больше не забивать себе голову данным
В мире существует много дистрибутивов GNU/Linux. Самый маленький из них так мал, что полностью помещается на флоппи-диске 1.44 Мб (и называется
Среди дистрибутивов GNU/Linux лидерами являются Red Hat, SUSE, TurboLinux, Mandrake, Caldera, Slackware и Debian. Хотя основная идея состоит в том, что следует использовать такой дистрибутив GNU/Linux, который поддерживается Domino, многие серверы могут использовать вообще другие дистрибутивы. Это происходит потому, что большое количество дистрибутивов позволяет производителям подгонять свои дистрибутивы GNU/Linux под специфические задачи, такие, как встроенные системы, маршрутизаторы и брандмауэры. Внимательно ознакомьтесь с доступными дистрибутивами и определите, который из них наилучшим образом подходит для нужд организации, исходя из того места, где должен быть размещен сервер, и его роли в общей ИТ-инфраструктуре организации.
В свете вышесказанного из наиболее распространенных дистрибутивов особо выделяются двое, но по разным причинам.
Red Hat. Данный дистрибутив обладает самым признаваемым именем и, как правило, первым получает любой вид корпоративной поддержки в плане коммерческого программного обеспечения или коммерческой технической службы. Многие производители, включая Oracle, IBM и Check Point, сделали релизы своих продуктов под дистрибутивы Red Hat. Это не означает, что данные программные релизы не будут работать под другими дистрибутивами GNU/Linux, но в случае каких-либо проблем производитель может не оказать поддержки вашей установке своего продукта на дистрибутиве, отличном от Red Hat.
Debian. Этот дистрибутив тоже заслуживает упоминания. Прежде всего не потому, что он полностью бесплатен, а потому, что он поддерживается некоммерческой организацией, созданной исключительно из добровольцев. Эти добровольцы очень сильно мотивированы качеством и гордятся своими усилиями сделать Debian самым стабильным и полностью на все 100 % бесплатным дистрибутивом изо всех имеющихся в наличии. Debian зарекомендовал себя как в высшей степени стабильный и легкий в управлении и удаленном обновлении. Процесс обновления общепризнанно является самым легким среди всех дистрибутивов GNU/Linux. Установки Debian можно обновлять без необходимости перезагрузки, замещая любой из установленных пакетов и затем перезапуская его процесс, за исключением ядра ОС. Кроме того,
Другие достойные упоминания дистрибутивы – это SUSE, являющиеся самыми предпочитаемыми в Германии и предлагающие действительно хороший инструмент для установки, называемый YAST2, который делает процесс установки дистрибутива невероятно легким. В списке поддерживаемых дистрибутивов GNU/Linux, на которых будет запускаться сервер Domino, находятся также TurboLinux и Caldera.
Для всех дистрибутивов GNU/Linux, в которых имеется программа установки, следует выбирать установку компонентов вручную по выбору пользователя (
Во время процесса установки обязательно следует выбрать поддержку файла теневых паролей (enable shadow password); также вместо стандартной функции crypt для паролей следует выбрать хеширование MD5. Если данные опции недоступны во время установки, их можно изменить после нее. В Red Hat следует использовать утилиту setup. В Debian для разрешения или запрещения теневых паролей – утилиту shadowconfig. В других дистрибутивах GNU/Linux о подробностях по данному вопросу смотрите man-страницы. Для разрешения хеширования MD5 и включения хешей md5 в строки паролей следует отредактировать соответствующие файлы в папке /etc/
Также следует включить поддержку ipchains, даже если данный сервер в DMZ, так как ipchains добавляет дополнительные уровни защиты и закрывает сервер от трафика, по каким-то причинам миновавшего брандмауэр.
Кроме того, нужно следить за информацией относительно безопасности и списками исправлений/обновлений на сайтах производителей дистрибутивов GNU/Linux. В Debian очень легко автоматически устанавливать обновления системы безопасности с помощью утилиты
Для тех людей, которые решили устанавливать Red Hat Linux, существует занимающийся вопросами безопасности проект, называемый Bastille Linux, целью которого является не просто укрепить вашу установку Linux, а именно обучить администраторов, как вообще укреплять систему.
Bastille Linux поддерживает дистрибутивы Red Hat и
http://www.bastille-linux.org/
Еще один замечательный источник информации для администраторов – "Руководство по безопасности для администраторов Linux". Оно охватывает чрезвычайно широкий спектр тем касательно Linux и безопасности. "Руководство по безопасности для администраторов Linux" может быть найдено по адресу:
http://www.securityportal.com/lasg/
Solaris по умолчанию поставляется в четырех возможных конфигурациях: базовая (Core), для конечного пользователя (End-User), для разработчика (Developer) и полный дистрибутив (Entire Distribution). Установка любой конфигурации, отличной от базовой, включает в себя большее количество служб, чем требуется для укрепления сервера. На практике же часто можно убрать даже значительную часть
О серверах Solaris есть несколько замечательных документов, опубликованных компанией Sun в своем архиве Blueprints Online, который находится по URL:
http://www.sun.com/software/solutions/blueprints/online.html
Следующие три статьи являются прекрасным отправным пунктом для построения безопасных серверов Solaris.
"Минимизация операционного окружения Solaris для целей безопасности: простая, легко повторяемая и безопасная методология установки приложений" ("Solaris
"Безопасность операционного окружения Solaris" ("Solaris
"Сетевые настройки операционного окружения Solaris, влияющие на безопасность" ("Solaris
На самом деле Blueprints Online компании Sun – настоящий кладезь документации, описывающей все самое лучшее об операционном окружении Solaris, будь то Web-сервер в DMZ, брандмауэр или внутренний широкодоступный кластер Domino.
У Ланса Шпицнера (Lance Spitzner) тоже есть замечательный документ об укреплении Solaris, в котором для построения брандмауэра Check Point FireWall-1 детально описывается процесс укрепления на нескольких последних версиях Solaris (вплоть до версии 8) под платформы Intel и SPARC. Настоящий документ находится по следующему URL:
http://www.enteract.com/~lspitz/armoring.html
И наконец, для Solaris тоже есть эквивалент укрепляющих сценариев Bastille-Linux, который называется TITAN. Проект TITAN и документация по нему находятся по следующему URL:
Для защиты от наиболее общих атак WAN-соединений, брандмауэра и DMZ-серверов организации надо выполнить следующие простые шаги, чтобы запретить определенную функциональность TCP/IP.
Фактически есть две формы трафика с явной маршрутизацией: жесткий (Strict SourceRouted) и свободный (Loose Source-Routed). Данное отличие не играет роли, поскольку лучше сбрасывать весь трафик с явной маршрутизацией.
Traceroute – самая известная команда, использующая явную маршрутизацию. Она позволяет провести диагностику проблемных мест в сети посредством прямого определения маршрута, по которому будут следовать контрольные пакеты.
К сожалению, возможные взломщики могут использовать явную маршрутизацию для попытки обхода правил брандмауэра и фильтров TCP/IP. Сброс трафика с явной маршрутизацией следует осуществлять на граничных маршрутизаторах и на любых несущих шлюзах безопасности:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_forward_src_routed 0
в GNU/Linux используйте команду
echo 0 > /proc/sys/net/ipv4/conf/all/accept_source_route
Атака Smurf типа отказа от обслуживания и подобные ей могут быть побеждены простым запретом направленного
для Solaris используйте следующую команду:
ndd -set /dev/ip ip_forward_directed_broadcasts 0
Существует draft RFC, называемый draft-vshah-, который находится по следующему URL-адресу:
http://www.ietf.org/internet-drafts/draft-vshah-ddos-smurf-00.txt
В нем утверждается, что, если в сетевом узле установлено отвечать на IP ICMP-эхо по широковещательным или множественным (multicast) адресам, узел должен убедиться в том, что адрес отправителя находится в локальной по отношению к сетевому узлу сети. Если адрес отправителя нелокален, ответ должен быть отброшен. Изменение поведения, чтобы вообще не отвечать на широковещательные сообщения ICMP, гарантирует, что ответы будут отбрасываться всегда:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_respond_to_echo_broadcast 0
в GNU/Linux используйте следующую команду:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ ignore_broadcasts
В GNU/Linux имеется дополнительный элемент управления для запрещения вообще всех запросов на эхо-ответы ICMP. Вызов следующей команды заставит ядро Linux игнорировать все запросы эха ICMP:
echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all
Предполагаемый взломщик мог бы попытаться перенаправить трафик с серверов организации к другому, а то и вообще к несуществующему шлюзу. Кроме того, предполагаемый взломщик мог бы попытаться вставить фальшивые маршруты в таблицу маршрутизации сервера.
Все это может быть выполнено посредством скромного ICMP-сообщения о перенаправлении, и это очень эффективная атака типа отказа от обслуживания. Помимо блокирования ICMP-сообщений перенаправления на брандмауэре, если конечно операционная система поддерживает, следует ввести следующие дополнительные уровни защиты для игнорирования ICMP-сообщений о перенаправлении:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_ignore_redirect 1
в GNU/Linux команда будет такой:
echo 0 > /proc/sys/net/ipv4/conf/all/accept_redirects
Только маршрутизаторам требуется отправка ICMP-сообщений о перенаправлении. Поскольку DMZ-серверы и брандмауэр организации не занимаются маршрутизацией каких бы то ни было пакетов, совершенно нет причин отправлять их:
в Solaris используйте следующую команду:
ndd -set /dev/ip ip_send_redirects 0
в GNU/Linux команда будет такой:
echo 0 > /proc/sys/net/ipv4/conf/all/send_redirects
ICMP-запрос на штамп времени (ICMP type 13) позволяет одной системе запросить другую о текущем времени. Возвращаемое значение – количество миллисекунд с полуночи.
ICMP-запросы на временной штамп используются для синхронизации часов между системами вместо использования команды rdate из-за лучшей точности.
Индивидуальные запросы на штамп времени – это стандартная практика, но нет никакой необходимости системе отвечать на широковещательные запросы. В конце концов для синхронизации времени между серверами следует рассмотреть вариант использования
В Solaris используйте следующую команду:
ndd -set /dev/ip ip_respond_to_timestamp_ broadcast 0
Одна из многочисленных техник, которые используются предполагаемыми взломщиками для скрытия своего присутствия, – это очистка любых средств журналирования, которые могут (и даже должны) быть включены. Сюда входит: ведение журнала учетных записей, системные сообщения, записи об ошибках, слежение за трафиком и т. п.
Один из способов обойти эту проблему – вести журналы всех серверов организации на отдельной удаленной машине. Этой удаленной машине по ведению журналов следует принимать только журнальный трафик с этих серверов. Таким образом, даже если какой-то сервер был взломан, все равно останутся записи журналов для дальнейшего анализа того, что произошло.
На журнальном сервере следует соответствующим образом настроить
В UNIX имеется очень мощная централизованная система ведения журналов. Действительно, некоторые приложения ведут свои собственные файлы журналов и не пользуются syslog. Тем не менее сама иерархия файловой системы разработана с поддержкой централизованного размещения, /var/log.
Кроме того, большинство систем UNIX и дистрибутивов GNU/Linux поставляются с автоматизированной системой ротации и управления журналами. Журналы автоматически ротируются на основании таких критериев, как размер или возраст, и могут автоматически же сжиматься (компрессироваться), переименовываться и даже архивироваться.
Чтобы еще сильнее улучшить журнальные возможности сервера UNIX или GNU/Linux, следует стандартный syslogd заменить на более прочную, настраиваемую и безопасную альтернативу, известную как syslog-ng. В ней имеются несколько значительных улучшений по сравнению со стандартным syslogd, куда входит возможность
При помощи регулярных выражений информация об отдельных хостах может сохранятся в индивидуальных журналах. Syslog-ng, вероятно, уже входит в поставку операционной системы UNIX или дистрибутива GNU/Linux. Если же нет, его можно найти по следующему URL:
http://www.balabit.hu/en/products/syslog-ng/
На этом завершается наше обсуждение укрепления операционных систем UNIX и дистрибутивов GNU/Linux. Хотя данный материал также применим и к
AIX – это открытое операционное окружение UNIX, которое обеспечивает повышенные уровни целостности, гибкости и надежности, что является существенным для удовлетворения высоких потребностей современных приложений электронного бизнеса. Такой фокус на многогранности позволяет AIX использоваться в широчайшем спектре различных задач, от работы на симметричной мультипроцессорной системе, способной обрабатывать тысячи транзакций в минуту, до запуска на отдельностоящей рабочей станции, используемой для разработки приложений.
Поскольку одно из предназначений AIX состоит в достижении должного уровня многогранности и производительности, многие службы становятся доступными немедленно, едва только завершится процесс установки операционной системы. Но, с другой стороны, подобный подход может привести к такой конфигурации, которая будет уязвима для прорех безопасности, если систему не отконфигурировать надлежащим образом.
Для минимизации числа возможных дыр безопасности администратор системы AIX должен быть способен идентифицировать рабочие характеристики окружения.
В данном разделе приводится информация по укреплению AIX, но это не означает, что он должен стать единственным источником информации обо всех вопросах безопасности относительно систем AIX, например по использованию протоколов
http://www-1.ibm.com/servers/aix/library/index.html
Информация этого раздела включает в себя выработку адекватных правил составления пароля, реализацию соответствующих механизмов пользовательской безопасности, разрешение системного аудита и наблюдение за доступом к каталогам и файлам. Также затрагиваются важные вопросы безопасности X11 и
Во время прочтения данного материала, описывающего потребности безопасности сервера AIX, важно определить те файлы, которые нуждаются в модификации, и сделать их резервные копии. Вообще резервное сохранение модифицированных файлов – всегда хорошая идея, поскольку оно позволяет вам в любой момент вернуться к предыдущей конфигурации, если возникает необходимость восстановить предыдущие настройки безопасности. После того как модификация завершена, как следует протестирована и все работает так, как запланировано, резервные файлы следует сохранить в безопасном месте вне только что защищенной системы, например на сервере резервного хранения. Такая мера предосторожности воспрепятствует неавторизованному восстановлению предыдущей конфигурации, которая бы свела к нулю все сделанные модификации по укреплению системы.
И наконец, как уже говорилось о других операционных системах, все процедуры укрепления следует выполнять до того, как система начнет работать на своем реальном рабочем месте. Выключение уже работающей системы может организации дорого стоить, даже если целью такого действия было сделать ее более безопасной.
Со стандартного по умолчанию экрана регистрации (login) AIX предполагаемые взломщики могут получить ценнейшую информацию, такую, как имя хоста и версия операционной системы. Подобная информация позволит им определить, какие существующие "дыры" можно попробовать. Так что лучше будет не отображать некоторой информации на экранах регистрации.
Это делается редактированием параметра herald в файле /etc/security/login..
По умолчанию он содержит
# chsec -f /etc/security/login.cfg -a default -herald "Only authorized use of this system is allowed.\n\nlogin: "
Для непосредственного редактирования содержимого файла откройте файл /etc/security/login. и измените параметр herald следующим образом:
default: herald ="Only authorized use of this system is allowed.\n\nlogin:"
Данный вопрос безопасности не обошел и пользователей /usr/dt/config/$LANG/Xresources, где переменная $LANG ссылается на местный язык, установленный на машине с AIX.
Для защиты от неавторизованного доступа неиспользуемый терминал всегда следует запирать. Оставление системного терминала незащищенным представляет собой потенциальную угрозу безопасности. Терминал просто можно запереть командой lock или, если пользовательским интерфейсом является AIX windows, командой xlock.
Чтобы достичь должного уровня безопасности на сервере AIX, для управления пользовательскими учетными записями следует создать непротиворечивую политику безопасности. (На самом деле это относится ко всем операционным системам, не только к AIX.)
Угадывание паролей – одна из самых распространенных
Помимо этих механизмов, можно установить даже более жесткие правила, ограничивая пароли тем, чтобы в них не содержались стандартные слова UNIX, которые могут быть взломаны. Данная функциональная возможность использует dictionlist (словарный список), для которого требуется, чтобы первоначально были установлены файлы bos.data и bos.txt.
Для вызова dictionlist добавьте следующую строку в файл /etc/security/users:
dictionlist = /usr/share/dict/words
Теперь для предотвращения использования в качестве пароля стандартных UNIX-слов dictionlist будет применять файл /usr/share/dict/words.
Одним из наиболее распространенных методов возможных взломщиков является получение пароля суперпользователя, или пользователя с именем root. Для избежания подобного вида атак можно вообще запретить прямой доступ к ID root и потребовать от администраторов системы AIX получать привилегии при помощи команды su.
Помимо разрешения на удаление пользователя root как точки приложения атак, ограничение прямого доступа к root позволит вам отслеживать, какие пользователи получили суперпользовательский доступ, а также время их активности. Эту информацию можно получить просмотром файла /var/adm/sulog. Другой альтернативой будет разрешить системный аудит, который тоже будет сообщать о подобном виде активности.
Для запрещения удаленного входа для пользователя root отредактируйте файл /etc/security/user. В качестве значения переменной rlogin для записи root поставьте "false".
До запрещения удаленного входа для root очень важно изучить и выработать планы на ситуации, которые помешали бы администратору системы AIX войти под ID-пользователя, отличного от root. Например, если домашняя файловая система пользователя заполнена, пользователь не сможет войти в систему. Если удаленный вход для root запрещен и если у пользователя, который мог бы при помощи su стать root, домашняя файловая система переполнена, то root никогда не сможет получить контроль над системой. Системные администраторы такую проблему могут обойти, просто создав для себя домашние файловые системы, большие, чем файловые системы обычного пользователя.
Еще один значительный вопрос безопасности происходит из того, что пользователи оставляют свои учетные записи без присмотра на продолжительные периоды времени. Подобная ситуация дает возможность предполагаемому взломщику заполучить контроль над пользовательским терминалом, потенциально компрометируя безопасность системы.
Для предотвращения такого типа потенциальной угрозы безопасности можно включить автоматическое отсоединение от системы. Чтобы сделать это, отредактируйте файл /etc/security/.profile и впишите значения времени автоматического отсоединения для всех пользователей, как в следующем примере:
TMOUT=300 ; TIMEOUT=300 ; export readonly TMOUT TIMEOUT
В этом примере 300 – число секунд, что эквивалентно 5 минутам.
Хотя предыдущее действие введет политику автоматического отсоединения для всех пользователей, тем не менее пользователи системы смогут обойти некоторые ограничения редактированием своих собственных индивидуальных файлов профиля. Для того же, чтобы ввести политику автоматического отключения целиком и полностью, следует предпринять авторитетные действия, снабдив пользователей соответствующими файлами профилей и убрав права на запись в эти файлы. Это действие гарантирует, что только root сможет изменить переменную окружения, INTERNAL , которая берется некоторыми программами, такими, как sed,
Еще одна мера, которая ведет к очень прочной безопасности, – это установить по умолчанию запреты на групповые и внешние разрешения пользовательских файлов. Это можно сделать установлением значения umask для учетной записи пользователя в 077.
Благодаря данному действию все создаваемые пользователями файлы будут иметь соответствующие разрешения на чтение, на запись и на выполнение, в то же время закрывая доступ как для членов их группы, так и для посторонних.
Замечание. На машинах SP во время установки значение umask следует устанавливать в 022. Значение umask по умолчанию для нового пользователя тоже устанавливается в 022. Для повышения уровня безопасности важно после завершения установки не забыть изменить это значение на 077. Его можно задать в разделе значений по умолчанию файла etc/security/user.
Чтобы добиться очень высокого уровня безопасности, убедитесь, что пользовательские ID и пароли не видны изнутри системы. ID и пароли пользователей находятся в файле
Чтобы найти эти файлы, запустите следующую команду:
# find 'awk -F: '{print $6}' /etc/passwd' -name .netrc –ls
После того как данные файлы были найдены, их следует удалить. Более эффективным способом хранения паролей будет установка Kerberos.
Табл. 9.2 приводит рекомендуемые значения для некоторых атрибутов безопасности, относящихся к пользовательским паролям. Парольные опции находятся в файле /etc/security/user .
Данный файл можно редактировать для введения каких-либо значений по умолчанию, которые требуется определить для администрирования пользовательских паролей. В качестве альтернативы можно применять команду chsec (заметьте, что значения, представленные в нижеследующей таблице, взяты из книги "IBM Redbook AIX
| Атрибут | Описание | Рекомендуемое значение |
|---|---|---|
dictionlist |
Проверяет, не входят ли в пароль стандартные слова UNIX | /usr/share/dict/words |
histexpire |
Количество недель, после которых пароль может быть использован повторно | 26 |
histsize |
Число допустимых парольных итераций | 20 |
maxage |
Максимальное число недель до того, как пароль должен быть в обязательном порядке изменен | 4 |
maxexpired |
Максимальное число недель после maxage, когда просроченный пароль еще может быть изменен пользователем | 2 |
maxrepeats |
Максимальное число повторений одного и того же символа в пароле | 2 |
minage |
Минимальное число недель до того, как пароль может быть изменен | |
minalpha |
Минимальное число алфавитных символов, которые должны содержаться в пароле | 2 |
mindiff |
Минимальное число отличающихся друг от друга символов, которые должны содержаться в пароле | 4 |
minlen |
Минимальная длина пароля 6 (8 для пользователя root) minother Минимальное число неалфавитных символов, которые должны содержаться в пароле | 2 |
pwdwarntime |
Число дней до окончания срока действия пароля, за которое система начинает выдавать предупреждение о том, что пароль должен быть изменен | 5 |
Для установки базовых значений по умолчанию для многих параметров входной регистрации, вроде тех, которые могли бы быть установлены для нового пользователя (например, число попыток входа, повторное разрешение регистрации и регистрационный интервал), следует отредактировать файл
Во время процесса установки операционной системы AIX по умолчанию создается некоторое количество ID пользователей и групп. В зависимости от того, какие приложения будут запускаться на данном сервере AIX, и от того, где этот сервер будет располагаться в сети, некоторые из этих ID пользователей и групп могут стать слабыми местами в системе безопасности, уязвимыми для взлома. Если такие ID не нужны, для минимизации связанного с ними риска их можно удалить.
В табл. 9.3 приведены наиболее общие создаваемые по умолчанию пользовательские ID, которые вы, вероятно, захотите удалить.
| Пользовательский ID | Описание |
|---|---|
|
Владелец |
lpd |
|
imnadm |
Поисковый движок IMN [используется поиском по библиотеке документации (Documentation Library Search] |
guest |
Разрешает доступ тем пользователям, у которых нет доступа к учетным записям |
Аналогично в табл. 9.4 приводятся наиболее общие ID групп, которые, возможно, не понадобятся.
| Групповой ID | Описание |
|---|---|
|
Группа, к которой принадлежат пользователи |
printq |
Группа, к которой принадлежит пользователь lpd |
imnadm |
Группа, к которой принадлежит пользователь imnadm |
Могут быть и другие ненужные ID пользователей и групп; проанализируйте систему на наличие других ID, которые можно удалить. Прежде чем система "выйдет в свет", проведите всеобъемлющую оценку всех имеющихся ID.
Функциональные возможности
Поскольку каждое устройство является частью /etc/security/syschk.. Если
В процессе укрепления своих систем администраторы систем AIX могут столкнуться со множеством различных ситуаций. Данный раздел как раз и проливает свет на подобные особые ситуации.
Если для каких-либо пользователей и групп устанавливаются особые разрешения, все эти выделенные особые разрешения следует задокументировать и наметить шаги для согласования с вопросами безопасности. Если особые разрешения не задокументированы, другие не будут в курсе этих особых ситуаций и могут пренебречь теми шагами, которые должны быть предприняты.
При установке нового программного обеспечения, такого, как сервер Domino или сервер DB2, могут возникнуть вопросы в связи с созданием новых учетных записей и выделением особых привилегий для них. Отдавайте себе отчет по всем новым ID, их привилегиям и правам собственности на файлы и папки, чтобы потом не оказалось непреднамеренного обмана политики безопасности организации.
Пароль на включение питания. Данный пароль, если установлен, препятствует кому бы то ни было перезагружать сервер простым его выключением из сети питания и затем включением вновь. Если в CD-ROM-привод вставлен загрузочный CD-носитель, система перезагружается, а затем уже будет грузиться с CD и, следовательно, не станет придерживаться своей безопасной конфигурации, что приводит к нарушению режима безопасности. Если система перезагружается и если пароль на включение питания установлен, во время цикла перезагрузки система потребует ввести этот пароль. Это может повлиять на действующие соглашения об уровне сервиса (Service Level Agreements, SLAs), так как может быть определенная задержка по времени между моментом, когда сервер перезагружается до точки запроса пароля на включение питания, и моментом, когда ему будет позволено продолжать свою загрузочную последовательность после того, как пароль был введен. В идеале первостепенность будет установлена политикой безопасности организации (безопасность против соглашений по предоставлению услуг).
Пароль супервизора. Данный пароль не дает неавторизованному пользователю загрузиться в режим поддержки при помощи загрузочного носителя (загрузочный CD, mksysb лента/CD). Загрузка с подобного носителя предоставляет полный доступ к файлам и каталогам абсолютно без ограничений в плане безопасности. Пароль супервизора закрывает систему, и, если этот пароль утерян, понадобится помощь обслуживающего персонала IBM для того, чтобы отпереть ее.
Пароль root. Это пароль суперпользователя, который время от времени может быть нужен. Важно отдавать себе отчет в том, когда действительно может понадобиться учетная запись root, и на такие случаи в реализации системы безопасности организации должны присутствовать планы.
Каждому хорошему системному администратору AIX следует быть осведомленным о тех системах в ИТ-инфраструктуре организации, в которых могут иметься слабые места для общей системы безопасности. Если предполагаемый взломщик взломает одну из машин, находящихся внутри сети организации, он может получить доступ и к другим машинам посредством разрешений, установленных между данной машиной и другими системами в сети.
Некоторые из предполагаемых взломщиков сканируют сети на наличие определенного типа машин и определенных версий операционных систем с целью найти какую-нибудь одну такую, которую можно было бы взломать, а затем они могут использовать эту точку входа для получения доступа ко всем машинам в сети.
Пользователи регулярно производят различные системные действия, за которыми не мешало бы наблюдать более тщательно. Установкой системного аудита дается возможность записывать касающуюся безопасности информацию, которая затем может быть проанализирована на факт наличия потенциальных и фактических нарушений системной политики безопасности.
Предопределенные события аудита можно найти в файле /etc/security/audit/events. Для генерации регулярных отчетов при помощи возможностей службы cron можно установить автоматическое ведение аудита.
Наше обсуждение укрепления было бы неполным без рассмотрения механизмов, которые можно использовать для наблюдения за доступом к файлам, каталогам и исполняемым программам.
Время от времени появляется необходимость в удалении нежелательных и ненужных файлов с сервера AIX.
AIX предоставляет системному администратору команду skulker, которая может автоматически отследить и удалить устаревшие файлы. Кандидатами на обработку данным средством являются файлы, расположенные в каталоге /tmp, исполняемые файлы a.out, файлы core и ed.hup. Для запуска команды skulker введите в командную строку следующее:
# skulker -p
Вы можете автоматизировать команду skulker, заставив cron регулярно выполнять данную задачу.
Когда ID пользователя удаляется, файлы этого пользователя больше не имеют владельца, приписанного к ним. Для нахождения файлов, не имеющих владельца, используйте команду find так, как показано ниже:
# find / -nouser -ls
После идентификации файлов без владельца определите, нужны ли еще эти файлы. Если нужны, их следует приписать другому пользователю. В противном случае эти файлы можно удалить из системы.
Для получения доступа к системе некоторые программы используют файл .rhosts. В некоторых случаях доступ может быть предоставлен и неавторизованным пользователям. Для избежания подобной ситуации файл .rhosts следует удалить с сервера AIX.
Для кластеров HACMP файлы .rhosts
Для нахождения файлов .rhosts запустите следующую команду:
# find / -name .rhosts -ls
Для слежения за активностью исполняемых файлов особой важности требуется хорошее понимание того, как эти файлы используются. Исполняемые файлы, за которыми требуется наблюдение, – это те файлы, которые принадлежат пользователю root и у которых установлен хотя бы один из битов SUID и SGID.
После тщательного наблюдения за этими файлами во время нормальной работы системы можно составить отчет, в который будет входить список файлов, которые работают нормально. Затем этот отчет можно сверить с последующими отчетами, что выявит все новые файлы, атрибуты которых были выставлены без ведома системного администратора AIX. Для создания шаблонного отчета воспользуйтесь следующими командами:
# find / -perm -4000 -user 0 -ls # find / -perm -2000 -user 0 -ls
Для управления задачами cron и at проделайте следующее. Убедитесь в том, что единственным пользователем, упоминающимся в файлах cron.allow и at.allow, является root.
Из каталога /var/adm/cron удалите cron.deny и at.deny.
Убедитесь в том, что задачи cron и at принадлежат пользователю и могут выполняться только им root.
В этом разделе рассказывается о потенциальных "дырах" безопасности, пришедших вместе с X-сервером X11 и с окружением
Хотя запуск графического пользовательского интерфейса
Самым лучшим решением было бы вообще избегать установки файловых наборов /etc/rc.dt, который запускает
Важный вопрос безопасности, связанный с сервером X11, – это неавторизованное тихое слежение за удаленным сервером. Для слежения за работой X-сервера могут быть использованы команды xwd и xwud, поскольку они обладают возможностью перехватывать нажатия клавиш, что может раскрыть пароли и другие важные данные. Для решения данной проблемы либо просто удалите эти исполняемые файлы, если они не нужны для текущей конфигурации сервера, либо разрешите доступ к этим командам только пользователю root.
Команды xwd и xwud можно найти в файловом наборе X11.apps.clients.
Если команды xwd и xwud нужно оставить, подумайте об использовании OpenSSH или MIT Magic Cookies. Эти приложения сторонних производителей помогут предотвратить риск, связанный с запуском команд xwd и xwud.
X-сервер дает возможность удаленным хостам использовать команду xhost+ для соединения с сервером AIX. Убедитесь, что вместе с командой xhost+ задано и имя хоста, потому что иначе контроль доступа для данного X-сервера будет запрещен. Это разрешит предоставление доступа к конкретным хостам, которые облегчат слежение за потенциальными атаками на X-сервер. Для предоставления доступа к конкретным хостам запустите команду xhost следующим образом:
# xhost + имя хоста
Еще один способ гарантировать то, что команда xhost используется должным образом, – это ограничить выполнение этой команды только при наличии полномочий суперпользователя. Для этого воспользуйтесь командой chmod и измените разрешения файла /usr/bin/X11/xhost на 744, как показано ниже:
# chmod 744/usr/bin/X11/xhost
Убедитесь, что вместе с командой xhost задано имя хоста. Это разрешит предоставление доступа к конкретным хостам, которые упрощают слежение за потенциальными атаками на X-сервер.
Замечание. Если имя хоста не задано, доступ будет предоставлен всем хостам.
В этом разделе обсуждаются открытые коммуникационные порты, как их можно идентифицировать и как закрыть.
Клиент-серверные приложения открывают на сервере коммуникационные порты, позволяя приложениям слушать входящие запросы клиентов.
Поскольку открытые порты – потенциальные кандидаты для атаки, определите, какие приложения открыли порты; но совсем не обязательно закрывать все порты, которые открыты. Это упражнение полезно уже тем, что дает системным администраторам возможность понять, что системы являются доступными любому, у кого есть доступ к Интернету.
Для определения того, какие порты открыты, проделайте следующее.
Идентифицируйте службы при помощи команды netstat:
# netstat -af inet
Результат работы данной команды достаточно ясен для интерпретирования. Последний столбец вывода команды netstat обозначает состояние каждой службы.
После определения того, какие службы в настоящий момент слушают, откройте файл /etc/services и проверьте его при помощи служб центра по присвоению номеров Интернета (Internet Assigned Numbers Authority, IANA) для постановки в соответствие службы номеру порта внутри операционной системы.
Закройте ненужные порты удалением запущенных служб.
Полезно определить LISTEN, и ненагруженные
Для этой цели воспользуйтесь командой lsof, которая является вариантом команды netstat -af. Команда lsof входит в AIX 5.1 и находится на диске "AIX Toolbox for Linux Applications CD".
Например, чтобы вывести на экран LISTEN, и IDLE, запустите команду lsof следующим образом:
# lsof -i | egrep "COMMAND|LISTEN|UDP"
После определения ID процесса можно получить более подробную информацию о самой программе, выполнив следующую команду:
" # ps -fp PID#"
Вывод будет содержать путь к имени команды, который можно использовать для доступа к man-странице данной программы.
В этой лекции мы рассмотрели инструменты и техники, используемые для защиты ИТсистем и предотвращения атак.
Мы дали подсказки по укреплению операционной системы, рассказали об инструментах и программах, используемых для создания сплошной защиты, а также о методах профессионалов безопасности по сбору сведений в тех случаях, когда взломщики пробили внешнюю защиту.
Предоставленная нами информация может принести пользу организации любого размера, от маленькой домашней фирмы до очень большой организации с офисами по всему миру.
Хотя самое важное, что нужно запомнить, – это то, что нет 100 % надежных ИТ-систем в течение 100 % времени.
Таким образом, важно еще понять, что, как только система – и ее безопасность – на месте, начинается следующая фаза работы по обеспечению безопасности. То есть время наблюдать за ИТ-системой и определять, какие еще улучшения могут быть внесены в систему для продолжения и совершенствования ее безопасности, а также для поддержания целостности и конфиденциальности содержащейся в ней информации. Тогда и только тогда будет иметь место надлежащая и адекватная безопасность.
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.