9.2. Локальные системы IDS

Локальная система IDS анализирует различные факторы с целью выявления незаконного использования компьютера (зловредной активности или злоупотреблений в сети) или вторжения (взлома извне). Такие IDS проверяют различные журналы (ядра, системы, сервера, сети, брандмауэра и т.д.) и сравнивают их с внутренней базой данных стандартных сигнатур известных атак. Локальные системы IDS для UNIX и Linux активно используют syslog и его возможность разделять регистрируемые события по уровням важности (например, незначительные сообщения принтера и важные предупреждения ядра). Эти IDS фильтруют журналы (которые могут быть довольно подробными, как, например, некоторые журналы событий сети и ядра), анализируют их, назначают необычным сообщениям свой уровень важности и собирают их в специальном журнале для анализа администратора.

Локальная IDS также может проверять целостность важных файлов и исполняемых модулей. Она проверяет базу данных важных файлов (и всех файлов, заданных администраторов) и рассчитывает контрольную сумму каждого файла с помощью утилиты, вычисляющей выборку из сообщения (message digest), например md5sum (по 128-битному алгоритму) или sha1sum (по 160-битному алгоритму). Затем она сохраняет эти суммы в обычном текстовом файле и время от времени сравнивает их пересчитанными контрольными суммами файлов. Если контрольная сумма какого либо файла изменилась, IDS пошлёт администратору почтовое сообщение или SMS. Так работает система Tripwire, упоминаемая в разделе 9.2.1 Tripwire.

9.2.1. Tripwire

Tripwire — самая популярная локальная IDS для Linux. Компания Tripwire, Inc., разработавшая Tripwire, открыла исходный код версии программы для Linux и лицензировала его на условиях, указанных в GNU GPL. Система Tripwire доступна по адресу http://www.tripwire.org/.

ЗамечаниеЗамечание
 

Tripwire не включается в состав Red Hat Enterprise Linux и не поддерживается. Это популярное приложение описано здесь для сведения пользователей, которые могут им заинтересоваться.

9.2.2. RPM в качестве IDS

Менеджер RPM-пакетов (RPM Package Manager — RPM) — ещё одна программа, которая может играть роль локальной IDS. RPM может разными способами анализировать пакеты и их содержимое. Его возможности проверки могут оказаться бесценными для администратора, подозревающего, что важные системные файлы и программы были изменены.

В приведённом ниже списке перечислены параметры RPM, предназначенные для проверки целостности файла в Red Hat Enterprise Linux. За полной информацией об использовании RPM обратитесь к Руководству по системному администрированию Red Hat Enterprise Linux.

ВажноВажно
 

Некоторые команды из следующего списка требуют, что бы вы добавили в связку ключей RPM открытый ключ Red Hat GPG. Этот ключ проверяет, что установленные в вашей системе пакеты содержат сигнатуру Red Hat, и тем самым подтверждает подлинность пакетов, выпущенных Red Hat. Загрузить этот ключ можно, выполнив от имени root следующую команду (заменив <version> версией RPM, установленного в системе):

rpm --import /usr/share/doc/rpm-<version>/RPM-GPG-KEY

rpm -V package_name

Параметр -V проверяет файлы установленного пакета с именем package_name. Если эта команда отработает и ничего не сообщит, это будет означать, что со времени обновления базы данных RPM ни один из этих файлов не был изменён. Если происходит ошибка, например, такая:

S.5....T c /bin/ps

это означает, что файл изменён и вы должны решить, сохранить его (если это изменённый файл конфигурации в каталоге /etc/) или удалить и переустановить содержащий его пакет. В следующем списке перечислены элементы строки из 8 символов (S.5....T в приведённом выше примере), сигнализирующие об ошибке проверки.

  • . — Тест прошёл эту стадию проверки

  • ? — Тест встретил файл, который не удалось прочитать, что, скорее всего, связано с правами доступа к файлу

  • S — Тест встретил файл, изменивший размер по сравнению с оригинально установленным в системе

  • 5 — Тест нашёл файл, контрольная сумма md5 которого не совпадает с контрольной суммой первоначально установленного файла

  • M — Тест выявил ошибку, связанную с правами доступа или типом файла

  • D — Тест встретил несовпадение файлового устройства

  • L — Тест нашёл изменённую символическую ссылку, указывающую на другой файл

  • U — Тест нашёл файл, который стал принадлежать другому пользователю

  • G — Тест нашёл файл, который стал принадлежать другой группе

  • T — Тест встретил файл с ошибками проверки mtime

rpm -Va

Параметр -Va проверяет все установленные пакеты и находит любые несоответствия (почти так же, как и параметр -V, но выводит более подробную информацию, так как он проверяет каждый установленный пакет).

rpm -Vf /bin/ls

Параметр -Vf проверяет избранные файлы установленного пакета. Это может быть полезно для быстрой проверки подозрительного файла.

rpm -K application-1.0.i386.rpm

Параметр -K полезен для проверки контрольной суммы md5 и GPG-подписи пакета RPM. Он проверяет, подписан ли пакет, который вы собираетесь устанавливать, Red Hat или другой компанией, открытый ключ GPG которой импортирован в вашу связку GPG. Если пакет не подписан правильно, вы увидите подобное сообщение об ошибке:

application-1.0.i386.rpm (SHA1) DSA sha1 md5 (GPG) NOT OK
		  (MISSING KEYS: GPG#897da07a)

Будьте внимательны, устанавливая неподписанные пакеты, так как они не одобрены Red Hat, Inc. и могут содержать вредоносный код.

RPM может быть мощным средством, что доказывают его средства проверки RPM-пакетов и установленных файлов. Настоятельно рекомендуется после установки Red Hat Enterprise Linux скопировать содержимое каталога с базой данной RPM (/var/lib/rpm/) на носитель только для чтения, например, на CD-ROM. Это позволит вам выполнять проверку файлов и пакетов по этой базе только для чтения, а не по базе, находящейся в системе, которую злоумышленники могут изменить и подтасовать результаты.

9.2.3. Другие локальные IDS

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

ЗамечаниеЗамечание
 

Эти приложения не включены в состав Red Hat Enterprise Linux и не поддерживаются. Эти популярные приложения описаны здесь для сведения пользователей, которые могут ими заинтересоваться.