24.06.2004

Мониторинг целостности системы: советы по осуществлению

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

автор Brian Wotring

Введение

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

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

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

1. Понимание основных принципов.

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

Существует много способов установить наблюдение за отдельно взятой системой. Но стоит помнить, что ни одна программа или приложение не может сама по себе гарантировать полный контроль за целостностью всей системы. Лучше всего иметь несколько инструментов обнаружения подозрительного поведения и несанкционированных изменений. Существует множество аналогов из реальной жизни. В качестве примера можно привести обычный банк. Банки не только запирают входные двери. Довольно часто они имеют камеры слежения, детекторы движения, вооруженную охрану и пр. Нападающий может проскочить через одно препятствие, но вряд ли проскочить все. Такой принцип многослойной защиты называется “Defense in Depth” – «глубокая защита».

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

Цель инструментов мониторинга целостности системы – обнаружить и сообщить изменения в системе. Гораздо интересней, когда изменения не авторизованы. Большое внимание наблюдающих программ уделено файловой системе. Но можно наблюдать и за другими системными составляющими. Например, Samhain способен искать руткиты и контролировать входы и выходы в системе. Osiris может контролировать состояние загруженных модулей ядра и изменения в пользовательских базах данных. Обнаруженные изменения сообщаются в виде лог-файлов, syslog, Windows Event Viewer и могут быть отосланы по почте администратору.

Вот несколько примеров, когда знания об изменениях в системе играют существенную роль: серверы, на которых запущены обычные сервисы (mail, DNS, www), с доступом в Интернет; вычислительные процессы в промышленности и науке; сертификаты и ключи доступа к серверам; брандмауэры; серверы баз данных.

Чтобы оценить роль наблюдений за целостностью системы, представьте себе, что вы нашли новую ссылку на /etc/passwd, созданную в /tmp, новый модуль ядра, загружающийся без вашего ведома, или нового пользователя, созданного таинственным образом. Как бы вы узнали, и узнали бы вообще, как и когда эти изменения произошли? Существуют программы, способные узнать о таких изменениях, но как бы вы узнали когда, и нужно ли, их использовать? А что, если эти программы были модифицированы, дабы скрыть какую-либо информацию? А теперь представьте, что у вас в подчинении сотни компьютеров, и вам нужно их всех вручную обследовать.

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

2. Хорошее планирование предотвращает плохое исполнение.

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

Сколько компьютеров требуют наблюдения?

Если вам требуется вести наблюдение только за одной системой, то Osiris не будет лучшим вариантом, так как он разрабатывался для работы с несколькими системами. В свою очередь Samhain довольно легко установить и настроить для работы с одной системой (хотя Samhain может работать и с несколькими).

Как организована ваша сеть?

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

Какие операционные системы и их версии установлены на системах, требующих наблюдения?

Большинство свободно доступных инструментов мониторинга разрабатывались для работы с операционными системами UNIX и Linux в частности. Osiris поддерживает ОС Windows на основе NT (NT,2K,XP) и Mac OS X, Linux, FreeBSD, OpenBSD, IRIX, AIX и Solaris. Samhain не работает c Windows, но поддерживает UNIX-подобные системы, такие как AIX, HP-UX, Unixware и Alpha/Tru64 UNIX.

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

Кто будет управлять системой наблюдения?

Самый простой сценарий – один единственный администратор. Однако управление сетью обычно распределено между несколькими администраторами. И Osris, и Samhain могут иметь центральное управление. Osiris способен создавать учетные записи для каждого администратора и вести журнал событий для каждого из них. Samhain имеет централизованное ведение логов, названное “yule”. Каждой системе отводится собственный лог-файл.

Какие элементы системы требуют наблюдения?

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

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

В данной таблице приведены сравнения наиболее популярных инструментов мониторинга целостности системы.

Samhain

Osiris

INTEGRIT

AIDE

Monitors Files

yes

yes

yes

yes

Monitors Kernel

yes

yes

no

no

Platforms

Linux, FreeBSD, AIX 4.x, HP-UX 10.20, Unixware 7.1.0, Solaris 2.6, 2.8, and Alpha/True64

Windows NT/2k/XP, Mac OS X, Linux, Solaris, FreeBSD, OpenBSD

Linux, FreeBSD, Solaris, HP-UX, Cygwin

Linux, FreeBSD, OpenBSD, AIX Unixware 7.1.0, Solaris True64, BSDi, Cygwin

Multiple Administrators

no

yes

no

no

Supports Modules

no

yes

no

no

License

GPL

BSD style

GPL

GPL

Centralized Management

yes

yes

no

no

Signed Databases

yes

no

no

no

Database Integration

yes

no

no

no

Подробную информацию о вышеперечисленных продуктах можно прочитать на их сайтах в Интернете:

Samhain - http://la-samhna.de/samhain/
Osiris - http://osiris.shmoo.com
INTEGRIT - http://integrit.sourceforge.net/
AIDE - http://www.cs.tut.fi/~rammer/aide.html

3. Система управления: краеугольный камень установки.

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

Используйте специализированную систему.

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

Ограничить доступ на сколько это возможно.

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

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

И наконец, создавайте учетные записи только для администраторов.

Наблюдайте за системой управления.

Первой системой в списке наблюдения должна стать сама система управления. Альтернативой может послужить установка нескольких систем управления, контролирующих друг друга.

4. Базовая целостность.

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

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

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

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

5. Сборка и установка.

Проверьте программу известными методами.

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

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

Запуск агентов со съемных носителей.

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

Одним из методов обезопасить себя является запуск агентов сканирования со съемных носителей, например флоппи, CD и DVD дисков. Это всегда останется хорошей защитой, потому что предотвращает изменение программ нападающим или по какой-либо причине. Однако это легко осуществить для нескольких систем, но для нескольких сотен это трудно осуществимо.

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

Некоторые инструменты (например Osiris) никогда не оставляют отчеты на контролируемой системе, вместо этого они сохраняют их на системе управления. Samhain способен сохранять отчеты на системе управления и передавать их клиенту только для сравнения. В таком случае на носители требуется записывать только сами агенты сканирования.

Если агенты находятся не на съемных носителях, то и Osiris, и Samhain способны уменьшить риск их изменения. Samhain предоставляет набор методов проверки собственной целостности, включающий подписанные данные и файлы настройки, уникальный ключ, записанный в исполняемые файлы при компиляции, и способность прятать свои процессы. Osiris пользуется ключами для каждой сессии, определяющими систему управления и изменения в настройках. И Osiris, и Samhain запускаются как службы (daemons) и потому могут проверяться на запуск/завершение/перезапуск.

6. Журналы событий следует читать.

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

Используйте анализатор логов.

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

Рекомендуется использовать анализатор логов для обобщения состояния системы управления. Также рекомендуется использовать то же приложение для анализа сообщений агентов сканирования.

Значительный список анализаторов логов и соответствующей информации можно найти на http://www.loganalysis.org, поддерживаемой Тиной Бёрд (Tina Bird) и Маркусом Ранум (Marcus Ranum).

Понимайте характер логов.

Большинство инструментов мониторинга способны извещать Event Viewer для Windows и Syslog для UNIX-ов. У Osiris’а и Samhain’а есть специальные записи логов, которые требуется контролировать. Обычно для каждого типа сообщений есть особый код или подпись, чтобы облегчить анализ. Пересмотрите эти подписи и сделайте необходимые изменения в анализаторе логов.

Записывайте и архивируйте события как можно чаще.

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

Проводите регулярное резервирование (backups).

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

Заключение.

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

Об авторе.

Брайан Уотринг (Brian Wotring) ведущий разработчик проекта Osiris и главный технический директор Целостности Системы (Host Integrity, Inc.). Брайан соавтор «Безопасности Mac OS X» и давний член “The Shmoo Group”, некоммерческого мозгового центра, состоящего из секьюрити- и криптографи-профессионалов. Вопросы и комментарии о статье отправляйте на brian at shmoo dot com. Хочу поблагодарить Tina Bird, Rodney Thayer, Holt Sorenson, Scott Hallock и других членов “The Shmoo Group” за помощь в написании этой статьи.

или введите имя

CAPTCHA