Инструментальные средства обеспечения безопасности

Комбинированные средства системного аудита

Разбить на страницы
Показывать лекцию целиком

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

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

Атаки на уязвимости обычно влекут за собой крах служб или нарушение нормальной работы. Некоторые из этих атак приводят приложение в состояние, при котором оно не сможет работать; другие пожирают такое количество системных ресурсов, что система не может далее выполнять свои функции. Такие атаки на отказ в обслуживании называются DOS-атаками ( Denial-of-Service ).

Другие уязвимости позволяют взломщику заставить приложение выполнять функции, которые они в обычных условиях выполнять не должны. И поскольку многие службы выполняются с полномочиями пользователя root или администратора (и то и другое не всегда обязательно), взломщик может получить в системе привилегии суперпользователя, избежав обычного процесса авторизации. При таком сценарии есть два типа уязвимостей, которые могут быть использованы: ошибка, позволяющая манипулировать службой непредусмотренным образом (такая, как переполнение буфера - см. лекцию "Простые средства аудита исходных кодов"), известная, как уязвимость приложения, и ошибка конфигурации службы (запущенной с полномочиями администратора), известная как уязвимость конфигурации. Если служба запущена с полномочиями непривилегированного пользователя с ограниченными правами доступа, то взломщик, использовавший уязвимость приложения, не сможет получить большие полномочия. Если взломщик использовал переполнение буфера против Web-службы, которая запущена с полномочиями администратора, и переполнение буфера привело к возможности выполнения системных команд от лица пользователя Web-службы, то взломщик получает полный доступ к системе. Однако если взломщик использует переполнение буфера против Web-службы, которая запущена с полномочиями непривилегированного пользователя ("IUSR"), то он получит доступ только к той части системы, к которой имеет доступ пользователь IUSR. Устраняйте уязвимости конфигурации, уязвимости приложения доставляют меньше хлопот.

Цель для менеджеров и администраторов сети - найти уязвимости в сети раньше, чем это сделает кто-то другой.

Nessus

Программа /. Программа обеспечивает эффективную чистку систем в вашей сети от известных ошибок конфигурации сети и уязвимостей приложений. В этой лекции мы сосредоточимся на версии 1.0.10 программы, а также обсудим версию 1.2.0, которая скоро будет выпущена. В Nessus 1.2.0. добавлены возможности типа поддержки SSL, оптимизации проверки уязвимостей и возможность сохранения сессии.

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

Создатели Nessus разработали соответствующий скриптовый язык (называемый Nessus Attack Scripting Language, или NASL ) для использования в рамках приложения. В Nessus сканирование каждой из уязвимостей строится на основе отдельного встраиваемого модуля, написанного на NASL. Такая модульная архитектура позволяет легко добавлять процедуры сканирования уязвимостей (и, возможно, тестов на взлом), как только будут обнаружены новые виды уязвимостей. Сообщество Nessus поддерживает собственную базу уязвимостей, обновляемую ежедневно, и они предлагают простой скрипт ( nessus-update-plugins ), который вы можете запустить еженощно (поместив в директорию cron) для автоматического обновления базы встраиваемых модулей.

Примечание. Cron - Unix-утилита, которая считывает список команд (называемый crontab ) и запускает эти команды в заданное время. Эта утилита предустановлена в Unix. Синтаксис для настройки crontab выходит за рамки этой книги, но большинство Linux-систем предоставляют вам директории в /etc/, такие как cron.daily, cron.weekly и cron.monthly. Вы можете написать короткий shell-скрипт, содержащий команды, которые вы хотите выполнить вместе с соответствующими параметрами и поместить этот скрипт в соответствующую директорию (например, в cron.daily, если вы хотите, чтобы скрипт выполнялся каждую ночь). Вы можете узнать больше о cron и crontab, посмотрев в справочную систему Unix.

Nessus - интеллектуальная программа: он может распознать службу, запущенную на другом порту, отличном от стандартного номера порта, который предусмотрен в Internet Assigned Numbers Authority (IANA). Если у вас есть Web-сервер, запущенный по порту 8888, Nessus может найти его и попытаться протестировать с помощью CGI-теста. С другой стороны, если Nessus не может найти ни одного Web-сервера в системе, которую он сканирует, он пропустит для этой системы все тесты для Web-сервера и CGI-тесты.

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

В отличие от многих свободно распространяемых Unix-утилит, Nessus составляет необычайно подробные отчеты, хорошо построенные и доступные в различных выходных форматах, таких как plain text, HTML и LaTeX. Программа различает события в области безопасности по классам от замечания ( notes ) до предупреждения ( warnings ) и дыр ( holes ), каждый из которых разбивается по уровням от низкого ( Low ) до очень высокого ( Very High ).

Инсталляция

Инсталляция демона Nessus может оказаться сложной. Он требует для своей установки наличия GIMP Toolkit (GTK) и nmap (см. лекцию "Сканеры портов"). Nessus можно загрузить в четырех отдельных пакетах: nessus-libraries, libnasl, nessus-core и nessus-plugins. Каждый пакет необходимо загрузить, скомпилировать и инсталлировать (обычно с помощью процедур configure, make, make install ) в том порядке, как эти пакеты были перечислены. Nessus также поставляется в едином архиве ( nessus-installer.sh ), который включает все пакеты и обеспечивает для вас полную инсталляцию.

Реализация

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

Поскольку у клиента Nessus должна быть возможность соединиться с демоном, в первую очередь необходимо создать сертификат для демона (для версии 1.2.0 - если вы хотите, чтобы связь между клиентом и сервером шифровалась по протоколу SSL) и создать как минимум один клиентский профиль. Утилита nessus-mkcert, входящая в состав Nessus 1.2.0, позволяет создать SSL-сертификат и обеспечивает поддержку процесса его создания. Утилита nessus-adduser может быть использована для добавления пользователей в базу данных Nessus. При запуске утилиты nessus-adduser вы получаете запрос на ввод имени пользователя и типа аутентификации. Версия 1.2.0 позволяет сделать выбор между аутентификацией по паролю или по сертификату. Для пользователей версии 1.2.0 обычно достаточно аутентификации по паролю. Для пользователей более ранних версий предпочтительней аутентификация по коду. Вас могут попросить настроить параметры, описывающие, откуда разр ешен доступ пользователям (по умолчанию отовсюду), и ввести одноразовый пароль, на котором будет базироваться аутентификация по коду. Как только вы соединитесь с Nessus первый раз с использованием имени пользователя и пароля, все последующие соединения не потребуют ввода пароля. Если вы используете версию 1.2.0, пароль вам может понадобиться каждый раз, если только вы не задали аутентификацию по сертификату (см. страницы справки). Вы можете сконфигурировать правила для каждого пользователя (например, какие машины разрешено сканировать пользователю), но многопользовательская конфигурация выходит за рамки тем, обсуждаемых в этой книге. Для наших целей оставьте список правил пустым, нажав CTRL-D и подтвердив создание пользователя, введя символ y и нажав ENTER.

Файл nessusd.conf (который устанавливается по умолчанию в директорию /usr/local/etc/nessus/) содержит несколько глобальных параметров сканирования, которые вы захотите пощупать. Переменная max_threads (по умолчанию равна 8) может быть увеличена, если вы хотите ускорить сканирование, и ваша система может выдержать нагрузку. В добавление к легко читаемому отчету Nessus может сохранять детали каждого своего теста в журнале. Это особенно полезно, если вы увидите в отчете что-то, что покажется вам необычным, и захотите понять, почему появилось это сообщение в отчете. Вы можете сконфигурировать место размещения этого журнала (по умолчанию /usr/local/var/nessus/nessusd.messages ) и уровень детализации ведения журнала, используя переменную logfile и другие относящиеся к этому переменные ( log-:).

Другой важный параметр предназначен для настройки интервала портов, которые вы хотите сканировать ( port_range ). Nessus сначала использует nmap, чтобы определить порты, прослушиваемые в системе. По умолчанию, Nessus прослушивает порты с номером больше 15000. Увеличение интервала сканирования увеличивает время работы, но это необходимо, если вы хотите осуществить полное сканирование сети.

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

Еще две переменные, которые влияют на продолжительность сканирования (и его точность) - это check_read_timeout и delay_between_tests. Первая переменная определяет время ожидания ответа перед тем, как перейти к следующей операции, а вторая определяет время ожидания перед повторением опроса того же самого порта (в случае с тестом CGI для Web-сервера). Переменная check_read_timeout здесь - существенный фактор. Значение по умолчанию составляет 15 секунд. Уменьшение значения до 5 секунд может сделать ваше сканирование слишком быстрым, но вы можете что-нибудь потерять, закончив ожидание слишком быстро. Есть вероятность, что сканируя локальную сеть, можно установить очень маленькое значение параметра check_read_timeout. Значение по умолчанию для переменной delay_between_tests равно 1 секунде, и это, в большинстве случаев, наилучший выбор.

Завершив изменение конфигурационного файла nessus, вы можете запустить демона ( nessusd -D от пользователя root ) и графического клиента, набрав в командной строке Nessus и нажав клавишу ENTER. Для продолжения следует соединиться с демоном Nessus, воспользовавшись именем пользователя и паролем, созданными ранее с помощью команды nessus-adduser. Если вы выбрали шифрованное SSL-соединение для шифрования трафика между Nessus клиентом и сервером (только для версии 1.2.0), вам придется настроить SSL-соединение (если вы не понимаете, что делать, согласитесь со значениями по умолчанию и примите сертификат). Ранние версии, вместо того чтобы задавать вопрос, в случае если вы хотите создать секретную фразу для защиты ключа пользователя, просто сгенерируют ее (обычно в этом нет необходимости). Затем последует большая дискуссия о том, какие тесты уязвимости (плагины) вы хотите запускать, для каких хостов и каких портов. Выберите закладку Plugins и вы увидите окно, аналогичное тому, что показано на рис 12.1.

(рис 12.1) Закладка Plugins

При первом запуске Nessus, возможно, следует отменить все выбранные тесты на закладке Plugins и просмотреть все категории, чтобы получить представление о том, как работает каждый тест (плагин). Хорошей мыслью будет проделывать это с любым сканером уязвимостей. Nessus разбивает все плагины на группы или категории. Эти категории и их краткое описание приведены в таблице 12.1 (описание применимо для версий 1.0.10, 1.2.0)

Категории уязвимостей Nessus
Категория модуля Nessus Версия Описание
Miscellaneous Разнообразные Обе Производит тесты учетных записей, трассировку и другие разнообразные проверки.
Gain a shell remotely Удаленный доступ к командному процессору Обе Проверяет переполнение буфера, обходит идентификацию.
Finger abuses Неправильное использование Finger Обе Проверяет демонов Finger, которые могут позволить хакерам доступ к защищенным файлам, защищенным системным командам или защищенной пользовательской информации.
Windows Обе Проверяет на SMB, NetBIOS и другие связанные с Windows уязвимости.
Backdoors Черные ходы Обе Проверяет на черные ходы, типа Trinity, Netbus, Back Orifice и другие им подобные.
General Общие Обе Проверяет на способность получить версию и другую информацию о программе, которая может помочь хакеру взломать систему.
SNMP Обе Проверяет дыры и уязвимости в Simple Network Management Protocol (SNMP)
CGI abuses Неправильное использование CGI Обе Проверяет на взлом Web-серверов и приложений, таких как IIS, Lotus Domino, Apache, PHP, Cold Fusion, FrontPage и так далее.
Remote file access Удаленный доступ к файлам Обе Проверка на неавторизованные методы захвата файлов через службы NFS (Network File System), TFTP (Trivial File Transfer Protocol), HTTP (Hypertext Transfer Protocol), и Napster.
RPC Обе Проверка на получение информации и взлома уязвимых служб RPC, таких как mountd и statd.
Gain root remotely Удаленный доступ с полномочиями root Обе Проверки на уязвимости, которые позволяют удаленным пользователям получить доступ к полномочиями root или доступ администратору к машине.
Firewalls Брандмауэры Обе Проверки на брандмауэр, относящиеся к неправильной конфигурации и уязвимостям.
Useless services Бесполезные службы Обе Проверка на устаревшие службы, которые не должны запускаться или быть доступными в интернете в целом, такие как echo, daytime, chargen, finger, rsh и т.д.
Denial-of-Service Отказ службы Обе Проверка на взломы DoS для целого ряда приложений и служб Unix и Windows.
FTP Обе Проверка на относящиеся к FTP уязвимости, включая неправильную конфигурации FTP, ненужный анонимный доступ к FTP, уязвимость FTP Bounce (nmap в лекции "Сканеры портов" может получить это преимущество) и т.д.
NIS Обе Проверка на уязвимости, относящиеся к Sun's Network Information Service.
SMTP problems Проблемы SMTP 1.2.0 Проверка на уязвимости в популярных почтовых серверах (sendmail, Lotus и т.п.).
Windows User Management 1.2.0 Проверка, чтобы получить информацию о пользовательских проблемах и проблемах групповых учетных записей, относящуюся к Windows.
Примечание. Версия 1.2.0. также включает модуль настройки, который позволяет задать профили для проверки конфигурации каждого сервиса или заставить для Nessus сделать попытку обхода IDS-систем.

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

Некоторые модули тестов уязвимости представляют опасность, поскольку в процессе сканирования могут привести к краху системы. На рис 12.3 показаны опасные модули Nessus, отмеченные значком предупреждения. Можно отключить все опасные модули, щелкнув на значке Enable All But Dangerous Plugins.

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

(рис 12.3) Информация о проверке на уязвимость(рис 12.2) Отключение опасных модулей(рис 12.4) Установка Nessus preferences

На закладке Scan Options, показанной на ). Вы можете также просмотреть некоторые из параметров, заданных в файле nessusd.conf (такие как Max threads).

Примечание. /. (рис 12.5) Закладка Scan Options

Последняя важная часть сканирования - это выбор цели. Вы можете задать единственный IP-адрес или имя хоста, подсеть (192.168.1.0/24) или список хостов и IP-адресов, разделенных запятой. Вы можете также записать IP-адреса и имена хостов в отдельный файл и загружать их, щелкнув на кнопке Read File.

В данном примере, мы хотим сканировать три хоста в сети: 192.168.1.100, 192.168.1.101 и 192.168.1.102, как показано на закладке Target Selection на рис 12.6.

Сканирование и анализ системы

Теперь мы готовы начать сканирование.

  • Щелкните на кнопке Start The Scan в левом нижнем углу закладки Target Selection.
  • В окне состояния, в зависимости от того, как много параллельных процессов разрешено для выполнения, вы сможете увидеть несколько запущенных параллельно тестов уязвимости, как это показано на рис 12.7.
  • Теперь можно выпить чашечку кофе. Каждое сканирование только трех хостов может потребовать довольно много времени. Когда сканирование завершится, результаты будут готовы для просмотра в окне Nessus Report, показанном на рис 12.8.
  • (рис 12.7) Закладка Target Selection (Выбор цели)(рис 12.6) Состояние сканирования показан выходной отчет версии 1.0.10 Nessus. Выходной отчет версии 1.2.0 был переработан, но основные положения, обсуждаемые здесь, остались прежними. (рис 12.8) Отчет о проделанной работе

    Теперь пришло время анализировать отчет. По умолчанию видно, что Nessus обнаружил дыру в безопасности с высоким (High) фактором риска, относящимся к SSH-серверу по адресу 192.168.1.100. Nessus также показывает, что он определил тип и версию работающего Web-сервера. Понятно, что это не обязательно проблема безопасности, а полезная информация, которую потенциальный взломщик может легко получить.

    Вы можете отсортировать выходную информацию по портам, щелкнув на кнопке Sort By Port. Список портов будет представлен слева, а соответствующие машины и их проблемы безопасности будут представлены справа в окне Report. Это полезно, если вы просматриваете информацию о конкретной уязвимой службе.

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

    Если вы хотите сохранить отчет в файле, можно выбрать формат отчета из выпадающего списка между кнопками Save As и Close, а затем щелкнуть на кнопке Save As. Вы можете сохранить отчет в собственном формате Nessus (по умолчанию NSR), чтобы просмотреть его позже. В противном случае, вы можете сохранить отчет в формате HTML или LaTeX, или в виде простого текстового файла. Это не слишком красиво, но, по крайней мере, здесь есть вся информация.

    Поддержание тестов на уязвимость в актуальном состоянии

    Как уже упоминалось, модули . Вы можете поместить это приложение в состав заданий демона cron, поскольку оно не требует никакой входной информации на старте. Таким образом, у вас будут наиболее свежие тесты для сканирования.

    STAT

    Программа ), который включает в себя STAT Neutralizer, STAT Analyzer и STAT Scanner. STAT Neutralizer размещается на отдельной Windows-машине и выполняет задачи контроля за выполнением правил безопасности, наблюдения за вирусами и проведение активных мероприятий против попыток внедрения. STAT Analyzer обеспечивает интеграцию нескольких других коммерческих сканеров уязвимостей (включая собственный сканер STAT Scanner ), чтобы представить вам более полную и достоверную картину уязвимости вашей сети.

    STAT Scanner - современное средство аудита в комплекте STAT, и в этом разделе мы сосредоточимся на нем. Тем не менее, возможности интеграции STAT Analyzer с другими системами аудита, упоминавшиеся в этой лекции, делают его достойным внимания.

    STAT Scanner (в оставшейся части раздела - STAT ) использует те же основные настройки, что и другие сканеры уязвимостей. STAT работает на платформе Windows NT/2000, но может быть запущен и на других операционных системах. Наилучшая производительность достигается на Windows-машинах. Если при сканировании вы входите в систему, как администратор домена, у вас есть возможность получить доступ как к машинам для анализа локальной уязвимости, так и анализировать уязвимость с точки зрения удаленного доступа.

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

    Щелкнув дважды на каждом сообщении о найденных уязвимостях, можно получить массу информации о найденных проблемах, их сложности, где можно получить дополнительную информацию, и как их устранить. Для некоторых видов уязвимостей у STAT есть уникальная возможность "auto fix", такая, как корректировка системного реестра. Если STAT может устранить их самостоятельно, то становится доступна кнопка AutoFix.

    Реализация

    После установки STAT у вас сразу запросят регистрационный ключ. Если у вас его нет, вы сможете запускать приложение только в "ознакомительном" режиме, который предоставляет возможность тридцатидневного использования сканера, но с ограниченными возможностями по запуску тестов уязвимости (из конфигурационного файла QuickScan.dat).

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

    (рис 12.9) Интерфейс STAT

    Настройка STAT

    Так же как и для Nessus, вам необходимо сконфигурировать набор тестов, которые вы собираетесь использовать. STAT поставляется с несколькими сконфигурированными файлами DAT, которые содержат наборы видов уязвимостей, для которых вы можете выполнять сканирование. Вы можете использовать DAT-файлы для сканирования уязвимостей заданного уровня опасности, конкретные операционные системы или типы уязвимостей. Вы можете выбрать конфигурационный файл для сканирования, выбрав в меню STAT Configurations/Load Configuration From File. Вы можете увидеть это окно на иллюстрации.

    Файл QuickScan.dat подходит, если вы хотите найти более серьезные проблемы. Если вас интересует только проверка системных политик (профили пользователей, дата истечения срока действия пароля, и т.д.), используйте файл Policy.dat. Каждый DAT-файл имеет содержательное название, чтобы помочь вам выбрать наиболее подходящий для решения поставленных задач.

    Вы можете создать свой собственный конфигурационный файл, используя один из имеющихся DAT-файлов в качестве шаблона. Следует выбрать Configurations/Edit Configuration From File, чтобы открыть окно, показанное на рис 12.10.

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

    (рис 12.10) Вы можете самостоятельно настроить конфигурацию

    Вы также можете управлять некоторыми другими параметрами сканирования, такими как политика входа в программу и пароли, стандарты политики аудита Windows, временные параметры сканирования (задержка, параллельное выполнение), особенности формата отчета и другие настройки. Все эти настройки доступны по команде Edit/Options, как это показано на рис 12.11.

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

    Наша последняя задача перед запуском сканирования - выбрать цель. Когда выбираются машины для сканирования в главном меню . Вы можете выбрать или интервал IP-адресов, или назначить Windows Network Discovery, щелкнув на кнопке с соответствующим названием. Параметр Windows Network Discovery позволяет автоматически найти в сети другие машины с конкретной операционной системой. Это лучше всего работает в Windows-домене, когда есть возможность найти все компьютеры, использующие NetBIOS поверх TCP (NBT). Если вы сканируете смешанную среду, то лучше использовать кнопку IP Range Selection.

    (рис 12.11) Выбор других параметров сканирования в диалоговом окне Options

    После того как машины найдены (или с помощью Windows Discovery, или используя метод IP Range), вам следует выбрать, какие из найденных машин сканировать. Любые хосты, которые подвергаются изучению, отображаются в левой части диалогового окна (см. рис 12.12). Чтобы выбрать конкретный хост, щелкните на значке, изображающем этот хост, который располагается за кнопкой. Для сканирования всех хостов, щелкните на кнопке ALL. Вы можете перемещать хосты между двумя списками, пользуясь кнопками с изображением стрелок в средней части окна.

    Если вы выбрали машины для сканирования с неизвестными или неподдерживаемыми операционными системами, мы выбрали для сканирования Linux и Windows 2000 машины, которые были обнаружены в процессе предыдущей сессии (что объясняет, почему мы не видим их в списке в левой части экрана).

    (рис 12.12) Выбор целей для сканирования

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

    Обратите внимание, что для Windows-машин вы можете пропустить шаг аутентификации, если вы сканируете машины, для которых вы вошли в систему, как администратор домена. В противном случае, вы можете задать в диалоговом окне аутентификации значения для профиля администратора. STAT соединяется с Windows-системами, используя net use (о которой говорилось в лекции "Система X Window"). Если вы соединяетесь с Unix-системой, STAT потребуется пользовательская информация для доступа к машине; это не обязательно должна быть информация о пользователе root. STAT может поддерживать SSH-соединение с машиной, которая подвергается сканированию.

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

    Как только вы определите цель сканирования, щелкните на кнопках Save и Close в окне Machine List (см. рис 12.12).

    Начало сканирования

  • Мы настроили параметры по умолчанию, используя конфигурационный DAT-файл QuickScan.dat, и сканируем две системы. Выбрав машины для сканирования, вы должны вернуться в главное окно ). Машины, которые вы выбрали в процессе поиска, теперь отображаются в левой части панели. Выберите все системы, которые вы хотите просканировать.
  • Выберите Analysis/Perform An Analysis, чтобы начать сканирование.
  • В окне , вы можете увидеть результаты сканирования. По умолчанию уязвимости сортируются в соответствии с фактором риска. Вы можете быстро просмотреть, какие из них можно исправить с помощью функции AutoFixes.
  • Щелкните дважды на конкретной показанной уязвимости и вы сможете получить дополнительную информацию, как это видно на рис 12.14. Это окно предоставляет информацию, которая может вам помочь принять решение о дальнейших действиях. Помните, что даже если большинство сообщений в отчете STAT говорят о проблемах, которые должны быть устранены, многие из предупреждений с низким уровнем риска, которые выдает STAT, являются просто наведенными из-за особенностей конфигурации и политики безопасности. Иногда они могут быть всего лишь ложной тревогой.
  • Перед тем как вы попытаетесь устранить любую из уязвимостей, о которых сообщил STAT, убедитесь, что это не нарушит деятельности выполняемых приложений. К примеру, STAT может предупредить вас о том, что работает IIS, и он должен быть остановлен, если в нем нет необходимости. Но если вы запустили Web-сервер на этой машине, вы можете игнорировать это сообщение. Тем не менее, если STAT сообщает вам о том, что у IIS есть опасность переполнения буфера, и он должен быть немедленно обновлен с использованием соответствующих заплаток, то это сообщение относится к таким, на которые следует реагировать достаточно быстро. Также будьте внимательны к сообщениям STAT, касающимся системного реестра. Некоторые изменения в системном реестре могут привести к нежелательному эффекту, поэтому, исправляя их, вы должны быть уверены, что это не повлияет на работу ваших приложений. Как только вы определите, что вам необходимо устранить уязвимость, щелкните на кнопке AutoFix, если она доступна, или следуйте инструкции по решению проблемы, которая отображается в окне дополнительной информации (см. рис 12.14), чтобы устранить проблему самостоятельно.(рис 12.13) Результаты сканирования
  • Щелкните на кнопке Retest, после того как вы устраните уязвимость, чтобы убедиться в том, что это действительно выполнено.
  • Примечание. STAT несовершенен. Иногда он поднимает ложную тревогу. Иногда вы можете устранить уязвимость, а STAT по-прежнему будет выдавать сообщение о ней, даже если вы знаете о том, что заплатка установлена. STAT действует, как помощник, а не как руководство по пошаговому устранению проблемы. Как и с другими утилитами, опирайтесь на здравый смысл в работе со STAT. (рис 12.14) Информация об уязвимости

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

    Использование отчетов

    У показан отчет Executive Summary.

    Вы можете распечатать отчет, или экспортировать его в какой-либо из файлов, включая форматы Excel, CSV (comma-separated value), Crystal Reports, HTML, MS Access, Word или даже простой текст.

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

    (рис 12.15) Отчет Executive Summary

    Retina

    .

    Как и STAT, Retina работает не по модели клиент/сервер. Полное приложение (включая проверку безопасности) должно быть установлено на всех машинах, с которых вы хотите производить сканирование. У Retina есть дополнительные утилиты и модули, которые можно использовать для получения дополнительной информации о машинах, которые вы сканируете. Тем не менее, концептуально, Nessus, STAT и Retina не отличаются друг от друга.

    Реализация

    При первом запуске .

  • Перед началом сканирования вы можете изучить некоторые параметры и настройки. Выберите Tools/Options, чтобы открыть окно Options, показанное далее.(рис 12.16)
  • В этом окне вы можете управлять настройками сканирования, параметрами вывода сообщений и предупреждений и даже расписанием, так что вы можете сканировать уязвимости на постоянной основе, что весьма полезно.
  • Выберите Tools/Reports, чтобы открыть окно Reports. Вы можете настроить отчеты, создаваемые
  • Меню Tools также содержит параметры, которые позволяют сконфигурировать различные политики, которые использует Retina в процессе сканирования. Вы можете управлять интервалами портов, которые просматривает программа, а также типами аудита (или тестов уязвимостей), которые она реализует.

    Запустим пример сканирования уязвимости.

  • В главном окне программы (см. рис 12.16) выберите параметр Scanner на левой панели и задайте IP-адрес в поле Address, расположенном в верхней части окна. Полная версия программы позволяет сканировать интервал IP-адресов.
  • Выберите меню Action/Start, чтобы начать сканирование. Вы увидите отображение процесса сканирования в левом нижнем углу окна (рис 12.17). Сначала Retina сканирует открытые порты и пытается получить информацию об этих портах (аналогично программе Nessus ).
  • После того как программа просмотрит систему, она показывает, какие тесты уязвимости можно использовать, и запускает их выполнение на исследуемой машине.
  • Несколько минут спустя, после того как программа закончит сканирование, вы сможете просмотреть результаты. В программе имеется функция устранения проблем "fix it", аналогичная функции AutoFix в программе STAT, которая позволяет автоматически обновить системный реестр Windows и т. п. Когда вы будете готовы создать отчет, выбирите меню Tools/Reports для доступа к параметрам отчетов.
  • (рис 12.17) Процесс сканирования

    Retina поддерживает дополнительные модули (в левой панели главного окна), которые помогут вам в процессе сканирования.

  • Browser. Мини Web-броузер, который позволяет перемещаться по сайту, расположенному по выбранному IP-адресу. Это полезно для проверки Web-серверов на сканируемых хостах.
  • Miner. Пытается найти скрытые HTML-файлы или журналы в стандартных, защищенных паролем местах на сайте, перебирая при этом имена пользователей и пароли, хранящиеся в файле.
  • Tracer. Графический трассировщик, показывающий путь между вами и машиной, которую вы проверяете.
  • Internet Scanner

    Еще один коммерческий сканер для удаленной работы - Internet Security Systems (ISS) - набор инструментов для сканирования, включающий .

    Как большинство других сканеров, ISS поставляется с регулярно обновляемой базой данных методов аудита и тестов уязвимостей, которые могут быть выполнены при сканировании системы. Internet Scanner поддерживает те же основные функции, что и Retina, STAT и Nessus. Вопрос в том, делает ли он это лучше?

    Реализация

    Запустив Internet Scanner, вы увидите, что он загружает все доступные в базе данных тесты уязвимости и проверки на возможность проникновения в систему. Затем вы можете работать над созданием новой ISS-сессии, используя New Session Wizard. После того как вы настроите ISS-сессию, вы можете задать хосты и IP-адреса, которые вы хотите сканировать, а также типы тестов уязвимостей, которые вы хотите запустить. Сессия также использует ключевой файл, в котором задаются возможности по сканированию (например, какое количество машин позволяет сканировать ваша ISS-лицензия). Тестовая версия сканера может сканировать только локальный интерфейс (localhost). Тем не менее, когда вас попросят выбрать тип тестов уязвимостей, вы увидите, что у ISS множество стандартных политик сканирования, которые можно выбрать. По крайней мере, одна должна содержать тот тип машины, который вы сканируете.

    Примечание. ISS-политики представляют собой то же самое, что и DAT-файлы STAT. Они позволяют производить сканирование на предмет обнаружения уязвимостей определенного типа и уровня опасности в зависимости от того, какие типы хостов вы сканируете.

    При первом запуске Internet Scanner запускается вместе с мастером создания новой сессии (New Session Wizard), который показан на следующей иллюстрации. Поскольку мы все равно ничего не сканируем, мы можем выбрать политику Evaluation, чтобы получить представление о возможностях сканера.

    Конфигурирование политики

    Выбрав политику, мы можем просмотреть параметры в специальном редакторе Policy Editor. Выберите Choose Policy/Edit Current, чтобы открыть окно Policy Editor, которое показано на рис 12.18.

    (рис 12.18) Окно Policy Editor

    Наиболее сложно в использовании Internet Scanner - это понять, что вы перед собой видите. Вы можете потратить часы, изучая различные типы тестов и приемы получения информации. Вы можете даже выбрать различные представления конфигурации вашей политики.

    На рис 12.19 показан тот же редактор политик Policy Editor, но в другом представлении. Выбрав Risk View из ниспадающего списка вверху, вы можете перестроить список уязвимостей в порядке убывания риска, в отличие от стандартной организации по категориям на рис 12.18.

    (рис 12.19) Вид редактора Policy Editor в конфигурации по уровню риска

    Редактор политик в обязательном порядке заставляет вас выбрать тип тестов уязвимости, который вы хотите включить в сканирование. Вы можете щелкнуть на поле выбора, следующем за списком элементов, чтобы включить или отключить конкретный тест. Вы также можете отключить целую группу тестов. Если вы хотите отключить сканирование всех уязвимостей среднего уровня, вы можете щелкнуть в окне рядом с полем Medium (304) на левой панели, показанной на рис 12.19, чтобы очистить поле. Так будут отключены все 304 теста со средним уровнем риска. Вновь щелкнув, можно заново задействовать 304 теста уязвимостей со средним уровнем риска.

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

    Запуск сканирования

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

  • Выберите Scan/Scan Now.
  • Чтобы просканировать одну машину, потребуется несколько минут. Значок в верхнем правом углу окна будет двигаться в процессе сканирования, и вы можете щелкнуть на закладке Status, чтобы посмотреть, как происходить сканирование.
  • Когда сканирование завершится, вы увидите окно результатов, показанное на рис 12.20.
  • (рис 12.20) Результаты ISS-сканирования

    Откройте закладку Vulnerabilities и просмотрите, что нашел ISS (рис 12.21). Каждая найденная уязвимость содержит информацию об уровне риска (такую как Warning, High, Low и т.д.) и описание.

    Сканер может находить ошибки конфигурации политик Windows и ошибки конфигурации служб. Например, уязвимость identdresp показывает, что мы запустили демон identd, который может использоваться удаленной машиной для определения имен пользователей в системе.

    Открытая закладка Services, показанная на рис 12.22, показывает какие Internet- и Windows-службы запущены на машине. Все службы, которым не следует работать, не должны работать. Используя Internet Scanner, вы можете с одного места определить все службы, работающие на всех ваших машинах.

    (рис 12.22) Уязвимости, обнаруженные при сканировании(рис 12.21) Проверка запущенных служб

    . Это легко сделать на Windows-машине, где у вас есть полномочия администратора.

    (рис 12.23) Закладка Accounts

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

    Анализ конфигурации

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

    Создание отчетов

    Другая сильная сторона ISS - расширенные возможности составления отчетов. Вы можете выбрать тип отчета, какую информацию включать в отчет, и осуществить предварительный просмотр отчета. В строке меню ISS выберите Reports/Generate Report. Сначала вам потребуется ответить на вопрос о типе отчета. Вы можете выбрать тип аудитории, для которой готовится отчет (административный состав, технические специалисты и т.д.), язык отчета (английский, испанский и т.д.). На рис 12.24 показаны настройки отчета для административного состава об уязвимостях в системе. Нажмите Next для продолжения.

    (рис 12.24) Выбор типа отчета

    Далее вас спросят, какие атрибуты вы хотите перечислить в вашем отчете. Если вы выполняли множественное сканирование или ISS-сессию, то можете выбрать, какие результаты вы хотите включить в отчет. Вы можете выбрать для включения в отчет информацию только о конкретных типах уязвимостей или конкретных службах. Можете ограничить включение в отчет сведений об уязвимостях с конкретным уровнем риска, в том случае, если администрация беспокоится только о уязвимостях с высокой степенью риска. На рис 12.25 показан пример окна Report Criteria.

    (рис 12.25) Выбор критериев для отчета

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

    Tripwire

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

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

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

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

    Совет. Основанная на загрузке в ядро утилита Knark в действительности может скрывать замаскированных под системные команды "троянских коней" от Tripwire. За дополнительной информацией обращайтесь к лекции "Черный ход и средства удаленного доступа".

    Реализация: свободно распространяемая версия

    Рассмотрим свободно распространяемую версию Tripwire для Linux. Для программы доступны как rpm-пакеты, так и исходные тексты. Независимо от того, какую версию вы устанавливаете, есть некоторые обязательные действия, которые придется выполнить перед установкой Tripwire.

    Запуск install.sh

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

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

    Просмотр файлов политик и конфигурационных файлов

    Файлы политик указывают Tripwire на то, какие файлы проверять, какую информацию просматривать и когда предупреждать вас о том, что произошли какие-то изменения. Устанавливаемый по умолчанию файл политик, twpol.txt, содержит определение переменных и правил. Более детально они рассматриваются в разделе "Представление о файлах политики Tripwire ". Конфигурационный файл, twcfg.txt, хранит информацию о месте положения файлов и другие предпочтения, которые должно использовать приложение Tripwire. Обычно вам не потребуется изменять конфигурацию по умолчанию.

    Оба эти файла шифруются с использованием общей секретной фразы в процессе инсталляции. Действительные файлы конфигурации и политики, которые использует Tripwire, называются tw.pol и tw.cfg. Они представляют собой двоичные зашифрованные файлы и по умолчанию устанавливаются в директорию /etc/tripwire. Tripwire также устанавливает незашифрованные копии файлов (twpol.txt и twcfg.txt) на случай, если вы захотите просмотреть или изменить их. Рекомендуется удалить все текстовые копии файлов после того, как вы изучите их содержание. Если позже вам понадобится изменить любой из этих файлов в текстовом формате, вы можете воспользоваться утилитами, которые обсуждаются в разделе "Другие утилиты Tripwire ".

    Запуск Tripwire

    У Tripwire четыре основных режима работы: инициализация базы данных, интегральная оценка, обновление базы данных и обновление политики.

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

    # tripwire -m i -v

    Параметр -m используется для задания режима ( -m показывает режим инициализации базы данных). Вы получите запрос на ввод локальной секретной фразы, и Tripwire понадобится несколько минут на проверку ваших файлов в процессе создания базы данных сигнатур файлов. Параметр -v используется для отображения процесса работы программы на экране. Как только будет создана база данных, она сохранится в двоичном файле Tripwire Database (.twd), который доступен для записи только пользователю root (обычно в директории /var/lib/ tripwire) и зашифрована с использованием локального ключа. Файл может быть прочитан только с помощью команды twprint, которую может запустить только пользователь root. Вы можете проверить, что права на доступ к файлу и директории с данными Tripwire (по умолчанию /etc/tripwire and /var/lib/tripwire) запрещают другим пользователям доступ на чтение и изменение этой информации.

    Режим интегральной оценки. Это обычный режим работы Tripwire. Программа сканирует файлы в поисках любых нарушений заданной политики. Отчет о работе сохраняется по адресу, заданному в переменной REPORTFILE в файле tw.cfg, который по умолчанию определен как /var/lib/tripwire/ report/.

    Эта команда может сопровождаться заданием некоторых параметров. Вы можете задать альтернативные имена файлов политики, конфигурации, базы данных и отчета. Можете включить режим интерактивной работы ( -I ), который после завершения сканирования создает текстовый файл отчета в тестовом редакторе по умолчанию. Для сохранения ваших отчетов в зашифрованном виде воспользуйтесь параметром -E для ввода локальной секретной фразы. Вы также можете изменить политику, проигнорировав отдельный параметры ( -i ), делая проверки только определенного уровня опасности ( -l ), используя при проверке только заданные по именам правила ( -R ), или проверяя только определенные файлы. Например, если мы проверяем целостность только команды ls, мы должны ввести:

    # tripwire -m c -v /bin/ls

    Здесь мы задали режим интегральной оценки ( -m c ) с включенным расширенным режимом вывода ( -v ). Если мы не задаем имя файла в конце командной строки, Tripwire проверяет все файлы в базе данных, которая определена по умолчанию. Следующая команда задает для программы проверку только файлов с самым высоким уровнем опасности (более 100):

    # tripwire -m c -v -l 100

    Уровень опасности и имена правил могут быть заданы в файле политики. Параметры -i, -l и -R станут понятнее после прочтения раздела "Представление о файлах политики Tripwire".

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

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

    Режим обновления базы данных. Если файл изменен и эти изменения законны, вам необходимо обновить базу данных для сохранения сведений о произведенных изменениях, чтобы информация об этих изменениях постоянно не попадала в отчеты. Чтобы воспользоваться этим режимом ( -m u ), вам необходимо найти ваш самый последний отчет и задать его в командной строке с помощью параметра -r:

    # tripwire -m u -r /var/lib/tripwire/report/host-20020330-235028.twr

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

    Если вы пролистаете раздел Object Summary отчета, вы сможете увидеть так называемые ballot boxes для каждого изменения, которое было произведено с момента последнего обновления базы данных и последней интегральной оценки:

    ----Rule Name: Tripwire Data Files (/var/lib/tripwire)
    Severity Level: 100
    ----Remove the "x" from the adjacent box to prevent updating the database
    with the new values for this object.
    
    Added:
    [x] "/var/lib/tripwire/originix.twd"

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

    После того как вы выйдите из редактора, Tripwire запросит у вас ввод локальной секретной фразы, чтобы получить возможность обновить базу данных, если в нее должны быть внесены какие-либо изменения. Вы также можете выбрать режим внесения всех изменений без предварительного просмотра, задав в командной строке параметр -a.

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

    # tripwire -m p newpolicy.txt

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

    Мы кратко обсудим проблему создания политики для Tripwire в разделе "Представление о файлах политики Tripwire "

    Другие утилиты Tripwire

    Tripwire поставляется с несколькими утилитами: twprint, twadmin и siggen.

    Twprint. Как уже упоминалось, у twprint два режима работы: утилиту можно использовать для распечатки любого файла отчета ( -m r ) или базы данных ( -m d ) в виде текстового файла.

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

    Внимание. Вы никогда не должны использовать twadmin для создания файла политики после того, как был установлен начальный файл политики. Это приведет к тому, что база данных и файл политики будут несинхронизированы. Если у вас есть текстовый файл политики, вы можете импортировать его в Tripwire, применив режим обновления политики приложения Tripwire ( tripwire -m p newpolicy.txt ).

    Siggen. Утилиту siggen можно использовать для отображения шифрованных сигнатур для любого файла. Эти шифрованные строки являются сигнатурами, которые использует Tripwire для сравнения содержимого файла и анализа. Tripwire поддерживает формат шифрованной строки вида Haval, SHA/SHS, MD5 и CRC32.

    Представление о файлах политики Tripwire

    Файлы политики определяют для Tripwire, что следует и чего не следует искать. Обычно это шифрованные файлы в двоичном формате, но вы можете воспользоваться командой twadmin -m p current- policy.txt, чтобы сохранить текущий двоичный файл политики в текстовом формате и отредактировать его. Синтаксис текстового файла может оказаться весьма сложным для понимания. Он содержит определения переменных и определения правил. Каждое правило содержит две главные части: имя файла или директории и маску свойств. Ниже приведена часть примера файла политики.

    /bin/login                  -> $(SEC_CRIT) ;    
    /bin/ls                     -> $(SEC_CRIT) ;    
    /bin/mail                   -> $(SEC_CRIT) ;    
    /bin/more                   -> $(SEC_CRIT) ;    
    /bin/mt                     -> $(SEC_CRIT) ;    
    /bin/mv                     -> $(SEC_CRIT) ;

    Обратите внимание, как имя файла или имя объекта отделяется от маски свойств символом -. SEC_CRIT представляет собой переменную, определенную в начале файла, которая задает разрешенную маску свойств. Обратите также внимание, что каждое правило завершается точкой с запятой (;).

    Разрешенная маска свойств. Маски Tripwire управляют тем, какие свойства проверяются в каждом файле. Свойства, обозначенные знаком (+), проверяются, обозначенные знаком (-) - нет. Свойства, которые не обозначены соответствующим знаком, предположительно могут быть проверены. В этом случае все свойства, которые не включены в командную строку, игнорируются. В таблице 12.2 показаны описания каждого свойства.

    Маски свойств Tripwire
    Свойство Описание
    a Последнее время доступа.
    b Блоки с выделенной памятью.
    c Создать/изменить время.
    d Устройство ID, на котором находится inode.
    g Групповой ID владельца файла.
    i Номер inode.
    l Файл с разрешенным увеличением размера (хорош для чего-либо из /var/log).
    m Модификация отмены времени.
    n Контрольный счет inode (число связей).
    p Разрешение на чтение/запись/исполнение файла и режима (setuid, setgid).
    r Указание inode на устройство ID (для устройств только /dev).
    s Размер файла.
    t Тип файла (текстовый, данных, исполнимый).
    u Пользовательский ID владельца файла.
    C Шифрованная строка по методу CRC32.
    H Шифрованная строка по методу Haval.
    M Шифрованная строка по методу MD5.
    S Шифрованная строка по методу SHA/SHS.
    Совет. Параметр -i, задаваемый в режиме интегральной оценки ( -m c ), используется для игнорирования конкретных свойств в процессе проведения проверки. Например, выполняя команду tripwire -m c -i "p,s,u", мы сообщаем Tripwire, что необходимо выполнить интегральную оценку для всех файлов, но при этом игнорировать все изменения полномочий доступа, размеров файлов или пользовательских идентификаторов владельцев файлов.

    Если вы хотите произвести проверку содержимого шифрованной строки MD5, размера файла, полномочий доступа и пользователя/группы владельца файла, то нужно воспользоваться командой:

    /home/myfile    ->  Mspug

    Эту команду также можно написать так:

    /home/myfile    ->  +Mspug-abcdilmnrtCHS

    Чтобы сделать жизнь проще, Tripwire поставляется с несколькими заранее заданными переменными, которые можно использовать для определения маски свойств. Они приведены в таблице 12.3.

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

    SEC_CRIT = $(IgnoreNone)-SHa

    Любые правила, которые используют маску свойств SEC_CRIT, будут проверять все свойства, за исключением SHA hash, Haval hash и времени последнего доступа к файлу.

    Переменные определения маски свойств Tripware
    Переменная Значение Описание
    ReadOnly +pinugtsdbmCM-rlacSH Следит за полномочиями, inode, ссылками на inode, правом владения, типом файлов, размером файлов, устройством ID, используемыми блоками, модификацией отметок времени, а также ненужной информацией CRC32 и MD5. Хороша для файлов, которые не должны изменяться.
    Dynamic +pinugtd-srlbamcCMSH Следит за разрешениями, inode, ссылками на inode, правом владения, типом файлов, устройством ID. Не следит за размером, отметками времени или ненужной информацией.
    Growing +pinugtdl-srbamcCMSH Следит за тем же, что и Dynamic, но проверяет, что этот файл только увеличивается. Если файл внезапно становится меньше, то Tripwire привлечет ваше внимание. Хороша для файлов протоколов.
    Device +pugsdr-intlbamcCMSH Следит за разрешениями, правом владения, размером файлов, устройством ID и устройствами, на которые указывает inode. Хороша для файлов устройств.
    IgnoreAll -pinugtsdrlbamcCMSH Следит только за наличием файла, а не его свойствами.
    IgnoreNone +pinugtsdrlbamcCMSH Следит за всеми свойствами файла.

    Некоторые правила с использованием переменной маски свойств можно посмотреть здесь:

    /var/log/messages       ->  $(Growing); 
    /dev/fd0                    ->  $(Device);  
    /home/jdoe/.netscape    ->  $(IgnoreAll);   
    /etc/inetd.conf         ->  $(ReadOnly);

    Атрибуты правил. Атрибуты правил могут относиться к отдельным правилам или группам правил, как это показано в таблице 12.4.

    Атрибуты правил Tripware
    Атрибут_правила Описание
    rulename Присваивает имя правилу или группе правил. Помогает в подразделении ваших правил и упрощает понимание при просмотре резюме отчетов по проверке целостности.
    emailto Если проверка на целостность Tripwire проводится с опцией -email-report, то где бы правило с этим признаком не запускалось, будет послан e-mail на заданный список e-mail-адресов. Несколько e-mail-адресов должны быть разделены точкой с запятой и заключены в двойные кавычки.
    severity Задает уровень строгости правила или группы правил. Значения могут варьироваться от 0 до 1000000. Это позволяет использовать Tripwire для сканирования только на определенный уровень серьезности нарушения правил. Вы можете задать значащие имена переменных для уровней строгости (т.е. medium=50).
    recurse Сообщает Tripwire, должен ли он сканировать все вложенные директории в директории (значение true), или он не должен сканировать ни в каких вложенных директориях (значение false), или же он должен сканировать только на определенную глубину вложенных директорий (числовое значение).

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

    /var/log/messages   ->  $(Growing)  (rulename = Log, severity = 10);
    /etc                    ->  $(ReadOnly) (rulename = Etc, recurse = 2);
    (rulename = Bin, severity = 100, recurse = false, 
      emailto="root;bob@home")
    {
        /bin/cat                        -> $(IgnoreNone)-SHa ;
        /bin/date                       -> $(IgnoreNone)-SHa ;
        /bin/dd                         -> $(IgnoreNone)-SHa ;
        /bin/df                         -> $(IgnoreNone)-SHa ;
    }

    Мы создали правило с названием "Log" с уровнем опасности 10 для файла /var/log/messages. Правило использует маску свойств Growing, которая показывает, что Tripwire проверяет такие свойства, как владельца файла, полномочия доступа и изменение размера. Правило "Etc" использует рекурсивный атрибут, чтобы указать программе на необходимость в процессе интегральной оценки просматривать файловую систему только на глубину двух директорий и использовать маску свойств ReadOnly. Правило "Bin" объединяет несколько тестов с уровнем опасности 100. Правила тестирования для четырех важных Unix-приложений для проверки изменений всех свойств за исключением SHA-строки, Haval-строки и времени последнего доступа. Если любой из этих тестов обнаружит изменение свойств, то по адресу пользователя root и bob@home будут посланы уведомления по электронной почте.

    Совет. Помните флаг -R для режима интегральной оценки ( -mc )? Вы можете включить этот параметр, чтобы обозначить необходимость использования только конкретных правил. К примеру, команда tripwire -m c -R Bin может быть использована в случае, если необходимо выполнить проверку по правилу "Bin".

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

    /etc        ->      $(ReadOnly);
    !/etc/dhcpd.leases;
    !/etc/motd;

    Это правило говорит о необходимости убедиться, что в директории /etc все файлы имеют свойства "только для чтения", за исключением файлов /etc/dhcpd.leases и /etc/motd.

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

  • @@section. Начинает новый раздел файла. Эта директива может сопровождаться аргументами: FS, NTFS или NTREG. Unix-версия Tripwire игнорирует разделы файла NTFS или NTREG, что позволяет вам использовать один файл политики для всей вашей сети. Если после директивы не задано никаких аргументов, предполагается значение FS. Нет необходимости определять конец раздела, поскольку Tripwire просто просматривает файл в поисках следующей директивы и интерпретирует ее, как конец предыдущего раздела.
  • @@ifhost, @@else, @@endif. Эти директивы можно использовать для определения специфических для хоста разделов файла. В отличие от директив разделов, директивы ifhost требуют, чтобы предложение было завершено директивой endif. Это позволяет вам запускать правила только для конкретного хоста в группе хостов, воспользовавшись примерно такой командой:
    @@ifhost originix || badman
       # define rules for only hosts originix and badman here
    @@endif
  • @@print, @@error. Эти директивы используются для вывода отладочных сообщений из файла политики. Директория @@print просто печатает на стандартный вывод, а директива @@error осуществляет печать в случае ненормального завершения работы программы. Следующий пример указывает Tripwire выдать сообщение в случае, если будет сделана попытка проверки хоста cauliflower, поскольку для этого хоста не предусмотрено никаких правил проверки:
    @@ifhost cauliflower
       @@error "We haven't written any policy rules for 
           host cauliflower yet"
    @@endif
  • @@end. Эта директива обозначает конец файла политики. Достигнув этой точки, Tripwire прекращает считывание файла.
  • Использование нового файла политики. После того как вы модифицировали или создали новый файл политики (назовем его newpolicy.txt), воспользуйтесь командой tripwire -m p newpolicy.txt, чтобы дать возможность программе использовать новый файл политики и, соответственно, обновить базу данных.

    Реализация: коммерческая версия

    Коммерческая версия Tripwire работает точно так же, как и свободно распространяемая. Приложения и форматы файлов точно такие же. Однако коммерческая версия доступна практически для всех операционных систем, включая Windows NT, Windows 2000, Solaris и другие. Существенным преимуществом по сравнению с бесплатной версией, кроме того, что она поддерживает многие операционные системы, является наличие утилиты twagent. Эта утилита позволяет Tripwire -серверам управляться по сети через SSL-соединение. Это управляющие программное обеспечение называется Tripwire Manager и доступно для Windows NT, Windows 2000, Solaris и Linux.

    Использование Tripwire Manager

    Tripwire Manager, показанный на рис 12.27, взаимодействует с каждым коммерческим Tripwire -сервером с помощью утилиты twagent. Это позволяет вам распространять сервера и обновлять политики и базы данных из одного места.

    На Windows-машинах twagent запускается в качестве службы, и его можно запускать и останавливать из панели управления или с помощью средств администрирования. На Unix-машинах twagent представляет собой программу, запускаемую из командной строки. Вы можете запускать и останавливать ее, используя команды twagent -start и twagent -stop.

    (рис 12.27) Главное окно Tripwire Manager

    Добавление сервера Tripwire. Когда вы установили на машине Tripwire Server и запустили службу twagent, машина становится узлом Tripwire. Вы можете добавить узел в Tripwire Manager и в главном окне Tripwire Manager, выбрав Action/Add Machine и открыв диалоговое окно Add Machines, приведенное ниже. Здесь вы задаете IP-адрес узла и порт, который будет прослушивать twagent. Вам также понадобится ввести секретную фразу для консоли Tripwire Manager (заданную в процессе установки Tripwire Manager ), а также общую и локальную секретные фразы для машины, которую вы добавляете.

    Вы также можете импортировать машины из текстового файла, который содержит значения, разделенные запятой. Для этого достаточно щелкнуть на кнопке Import. Пример файла для импорта представлен ниже. Здесь 192.168.1.1 - IP-адрес узла Tripwire, а 1169 - TCP-порт, который прослушивает twagent.

    "Name","192.168.1.1","1169","Memo","site_password","local_password"

    Редактирование файлов политики. Вы можете просматривать и изменять файлы политик для всех ваших .

    (рис 12.28) Редактирование файлов политики

    Вы уже знакомы с синтаксисом файла политики, но вы можете использовать Tripwire Manager, чтобы создать один файл политики для всех ваших операционных систем (воспользовавшись директивой "Section", о которой упоминалось в разделе "Директивы") и распространить этот файл по всем вашим серверам, щелкнув на значке Distribute File.

    Графический интерфейс для Tripwire. Все хорошее, что есть в бесплатной версии ), обновить базы данных, обновить политики и все остальное. Tripwire Manager имеет возможность задать расписание работы, чтобы агенты могли выполнять сканирование самостоятельно, по расписанию, обеспечивая контроль из одной точки, вместо настройки утилиты cron или Windows Scheduler на каждой машине.

    На рис 12.29 показаны результаты интегральной оценки, выполненной агентом Tripwire Agent #3. Tripwire Manager не только облегчает управление службами, но может создавать сводный отчет, более подробный, полный и понятный, чем его Unix-аналог. Перебирая различные закладки (Reports, Objects, Summary и Violations), вы можете просматривать отчет различными способами.

    (рис 12.29) Результаты интегральной оценки

    Обеспечение безопасности ваших файлов с использованием Tripwire

    Какие файлы следует просматривать с помощью Tripwire? Вы должны регулярно обращать внимание на все файлы, которые не должны изменяться. Это наиболее важные системные программы (ls, df, login и cmd.exe), библиотеки и DLL, конфигурационные файлы (/etc/inetd.conf, /etc/ passwd и Windows-файлы system.dat и user.dat). Вы также можете проверять файлы, которые должны изменяться предсказуемым образом. Например, следует быть уверенным, что системные журналы постоянно увеличиваются (и никогда не уменьшаются). Следует следить за тем, что никто из ваших пользователей не получил полного доступа (на чтение/запись) к вашей домашней директории, проверяя полномочия доступа в директории /home/*.

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

    Пример из жизни. Латание дыр

    Новый квартал. Вас приняли на работу в маленькую начинающую компанию, занимающуюся интернет-технологиями в качестве менеджера по сетевой безопасности. Эта компания выполняет Web-хостинг и хостинг приложений для небольших и средних компаний. Они имеют внутреннюю сеть, объединяющую различные регионы США. Сеть использует VPN-оборудование. Кроме того, у них есть клиентские сети, которые они поддерживают и у себя, и на местах. Они используют различные операционные системы и платформы, включая Windows NT, Windows 2000, Linux, FreeBSD, IRIX, Solaris и HP-UX. У них 50 серверов и 100 рабочих станций. Сетевой менеджер компании дал вам карту этих различных сетей, указав типы машин, операционных систем, сетевых местоположений и целей. Менеджер департамента интернет-технологий сказал вам, что ваша первая задача - "залатать дыры". Он велел найти любые области уязвимости и работать с соответствующими департаментами, чтобы заделать дыры до конца месяца. Без дополнительной помощи (и, естественно, бюджета) вы берете свою карту сети и свой надежный портативный компьютер и садитесь планировать свою стратегию.

    Сканирование с помощью Nessus. После изучения многих автоматизированных средств сканирования, которые могут помочь вам при решении задачи, вы понимаете, что большинство из них являются коммерческими продуктами. Поскольку вам не предоставили никакого бюджета для реализации проекта, вы знаете, что придется оценить эти коммерческие продукты и предложить рентабельное решение. К счастью, вы знаете одно бесплатное средство, которое может подсказать, насколько дырявыми являются системы вашей сети в действительности. Вы загружаете, компилируете и инсталлируете Nessus на своем надежном компьютере с двойной загрузкой Win2K/Linux, и начинаете собирать IP-адреса хостов в один файл. Вы решаете начать с серверов, а рабочие станции оставить на потом.

    Непосредственно перед началом сканирования вы просматриваете модули, чтобы понять, что нужно, а что не нужно проверять. Вы решаете отключить проверку на DoS, и оставить ее на промежуточное сканирование. Вы дважды проверяете свои значения и начинаете сканирование. Поскольку вы знаете, что это займет большую часть дня, то у вас есть масса времени, чтобы начать оценку некоторых из коммерческих приложений. Завершив сканирование Nessus и сравнение, что он может сделать с тем, что могут сделать некоторые коммерческие продукты, вы можете направить предварительный отчет менеджеру по интернет-технологиям.

    Глубоко копаем безопасность Windows. Вы загружаете копию STAT Scanner Discovery Edition, зная, что сможете сканировать только ограниченный набор уязвимостей. Но, по крайней мере, вы получите представление, насколько функционален данный коммерческий сканер. Сначала вы замечаете, что STAT работает только с вариантами RedHat Linux и Solaris Unix. А поскольку у вас используются несколько операционных систем FreeBSD, IRIX и HP-UX, то вы видите, что STAT не даст полной картины. Но когда вы запустите его на локальных Windows-серверах своего домена, то получите сведения обо всех типах "старушек", которые Nessus найти не смог, включая практику регистрации и пароля, неправильную конфигурацию реестра и другие, относящиеся к Windows вопросы. Теперь вы уверены, что вам необходимо приобрести какой-либо коммерческий сканер в дополнение к Nessus. Но следует проверить и другие доступные продукты, чтобы принять более обоснованное решение.

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

    Однако вы до сих пор не испытали один из наиболее популярных на рынке сканеров на уязвимость: комплект продуктов ISS. Поскольку вы хотите быть настолько доскональным, насколько возможно, вы загружаете тестовую версию средства Internet Scanner. Даже если вы можете использовать его только на своей машине, вы понимаете, что оно может обнаружить больше уязвимостей, чем Nessus или оценочная версия Retina. Нужно только помнить, что средство проверки системы не всегда точно сообщает об уязвимостях. То, что ISS сообщает о большем числе уязвимостей, не означает, что оно лучше, особенно, если некоторые из этих уязвимостей на самом деле ложные. У ISS также огромное число характеристик конфигурации и опций применения, безопасности и отчетов. Может для кого-то это и хорошо, но оптимизация этого средства для вас сложна, потому что здесь слишком много опций, которые нужно изучить и учесть. Этого потенциально излишнего содержания может оказаться больше, чем вам нужно для текущей работы.

    Просматривая некоторые из уязвимостей, найденных в вашей системе, вы понимаете, что это средство выявило множество проблем, тех же, что и STAT. Теперь время поджимает. Вы знаете, что нужно больше, чем бесплатные приложения, чтобы хорошо выполнить работу. Вам нужно подготовить предложения менеджеру по интернет-технологиям, сравнивая решения Nessus и STAT с решением ISS, и решить, что будет лучше по фактору соотношения цена-качество.

    Страницы:

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

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

    Атаки на уязвимости обычно влекут за собой крах служб или нарушение нормальной работы. Некоторые из этих атак приводят приложение в состояние, при котором оно не сможет работать; другие пожирают такое количество системных ресурсов, что система не может далее выполнять свои функции. Такие атаки на отказ в обслуживании называются DOS-атаками ( Denial-of-Service ).

    Другие уязвимости позволяют взломщику заставить приложение выполнять функции, которые они в обычных условиях выполнять не должны. И поскольку многие службы выполняются с полномочиями пользователя root или администратора (и то и другое не всегда обязательно), взломщик может получить в системе привилегии суперпользователя, избежав обычного процесса авторизации. При таком сценарии есть два типа уязвимостей, которые могут быть использованы: ошибка, позволяющая манипулировать службой непредусмотренным образом (такая, как переполнение буфера - см. лекцию "Простые средства аудита исходных кодов"), известная, как уязвимость приложения, и ошибка конфигурации службы (запущенной с полномочиями администратора), известная как уязвимость конфигурации. Если служба запущена с полномочиями непривилегированного пользователя с ограниченными правами доступа, то взломщик, использовавший уязвимость приложения, не сможет получить большие полномочия. Если взломщик использовал переполнение буфера против Web-службы, которая запущена с полномочиями администратора, и переполнение буфера привело к возможности выполнения системных команд от лица пользователя Web-службы, то взломщик получает полный доступ к системе. Однако если взломщик использует переполнение буфера против Web-службы, которая запущена с полномочиями непривилегированного пользователя ("IUSR"), то он получит доступ только к той части системы, к которой имеет доступ пользователь IUSR. Устраняйте уязвимости конфигурации, уязвимости приложения доставляют меньше хлопот.

    Цель для менеджеров и администраторов сети - найти уязвимости в сети раньше, чем это сделает кто-то другой.

    Nessus

    Программа /. Программа обеспечивает эффективную чистку систем в вашей сети от известных ошибок конфигурации сети и уязвимостей приложений. В этой лекции мы сосредоточимся на версии 1.0.10 программы, а также обсудим версию 1.2.0, которая скоро будет выпущена. В Nessus 1.2.0. добавлены возможности типа поддержки SSL, оптимизации проверки уязвимостей и возможность сохранения сессии.

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

    Создатели Nessus разработали соответствующий скриптовый язык (называемый Nessus Attack Scripting Language, или NASL ) для использования в рамках приложения. В Nessus сканирование каждой из уязвимостей строится на основе отдельного встраиваемого модуля, написанного на NASL. Такая модульная архитектура позволяет легко добавлять процедуры сканирования уязвимостей (и, возможно, тестов на взлом), как только будут обнаружены новые виды уязвимостей. Сообщество Nessus поддерживает собственную базу уязвимостей, обновляемую ежедневно, и они предлагают простой скрипт ( nessus-update-plugins ), который вы можете запустить еженощно (поместив в директорию cron) для автоматического обновления базы встраиваемых модулей.

    Примечание. Cron - Unix-утилита, которая считывает список команд (называемый crontab ) и запускает эти команды в заданное время. Эта утилита предустановлена в Unix. Синтаксис для настройки crontab выходит за рамки этой книги, но большинство Linux-систем предоставляют вам директории в /etc/, такие как cron.daily, cron.weekly и cron.monthly. Вы можете написать короткий shell-скрипт, содержащий команды, которые вы хотите выполнить вместе с соответствующими параметрами и поместить этот скрипт в соответствующую директорию (например, в cron.daily, если вы хотите, чтобы скрипт выполнялся каждую ночь). Вы можете узнать больше о cron и crontab, посмотрев в справочную систему Unix.

    Nessus - интеллектуальная программа: он может распознать службу, запущенную на другом порту, отличном от стандартного номера порта, который предусмотрен в Internet Assigned Numbers Authority (IANA). Если у вас есть Web-сервер, запущенный по порту 8888, Nessus может найти его и попытаться протестировать с помощью CGI-теста. С другой стороны, если Nessus не может найти ни одного Web-сервера в системе, которую он сканирует, он пропустит для этой системы все тесты для Web-сервера и CGI-тесты.

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

    В отличие от многих свободно распространяемых Unix-утилит, Nessus составляет необычайно подробные отчеты, хорошо построенные и доступные в различных выходных форматах, таких как plain text, HTML и LaTeX. Программа различает события в области безопасности по классам от замечания ( notes ) до предупреждения ( warnings ) и дыр ( holes ), каждый из которых разбивается по уровням от низкого ( Low ) до очень высокого ( Very High ).

    Инсталляция

    Инсталляция демона Nessus может оказаться сложной. Он требует для своей установки наличия GIMP Toolkit (GTK) и nmap (см. лекцию "Сканеры портов"). Nessus можно загрузить в четырех отдельных пакетах: nessus-libraries, libnasl, nessus-core и nessus-plugins. Каждый пакет необходимо загрузить, скомпилировать и инсталлировать (обычно с помощью процедур configure, make, make install ) в том порядке, как эти пакеты были перечислены. Nessus также поставляется в едином архиве ( nessus-installer.sh ), который включает все пакеты и обеспечивает для вас полную инсталляцию.

    Реализация

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

    Поскольку у клиента Nessus должна быть возможность соединиться с демоном, в первую очередь необходимо создать сертификат для демона (для версии 1.2.0 - если вы хотите, чтобы связь между клиентом и сервером шифровалась по протоколу SSL) и создать как минимум один клиентский профиль. Утилита nessus-mkcert, входящая в состав Nessus 1.2.0, позволяет создать SSL-сертификат и обеспечивает поддержку процесса его создания. Утилита nessus-adduser может быть использована для добавления пользователей в базу данных Nessus. При запуске утилиты nessus-adduser вы получаете запрос на ввод имени пользователя и типа аутентификации. Версия 1.2.0 позволяет сделать выбор между аутентификацией по паролю или по сертификату. Для пользователей версии 1.2.0 обычно достаточно аутентификации по паролю. Для пользователей более ранних версий предпочтительней аутентификация по коду. Вас могут попросить настроить параметры, описывающие, откуда разр ешен доступ пользователям (по умолчанию отовсюду), и ввести одноразовый пароль, на котором будет базироваться аутентификация по коду. Как только вы соединитесь с Nessus первый раз с использованием имени пользователя и пароля, все последующие соединения не потребуют ввода пароля. Если вы используете версию 1.2.0, пароль вам может понадобиться каждый раз, если только вы не задали аутентификацию по сертификату (см. страницы справки). Вы можете сконфигурировать правила для каждого пользователя (например, какие машины разрешено сканировать пользователю), но многопользовательская конфигурация выходит за рамки тем, обсуждаемых в этой книге. Для наших целей оставьте список правил пустым, нажав CTRL-D и подтвердив создание пользователя, введя символ y и нажав ENTER.

    Файл nessusd.conf (который устанавливается по умолчанию в директорию /usr/local/etc/nessus/) содержит несколько глобальных параметров сканирования, которые вы захотите пощупать. Переменная max_threads (по умолчанию равна 8) может быть увеличена, если вы хотите ускорить сканирование, и ваша система может выдержать нагрузку. В добавление к легко читаемому отчету Nessus может сохранять детали каждого своего теста в журнале. Это особенно полезно, если вы увидите в отчете что-то, что покажется вам необычным, и захотите понять, почему появилось это сообщение в отчете. Вы можете сконфигурировать место размещения этого журнала (по умолчанию /usr/local/var/nessus/nessusd.messages ) и уровень детализации ведения журнала, используя переменную logfile и другие относящиеся к этому переменные ( log-:).

    Другой важный параметр предназначен для настройки интервала портов, которые вы хотите сканировать ( port_range ). Nessus сначала использует nmap, чтобы определить порты, прослушиваемые в системе. По умолчанию, Nessus прослушивает порты с номером больше 15000. Увеличение интервала сканирования увеличивает время работы, но это необходимо, если вы хотите осуществить полное сканирование сети.

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

    Еще две переменные, которые влияют на продолжительность сканирования (и его точность) - это check_read_timeout и delay_between_tests. Первая переменная определяет время ожидания ответа перед тем, как перейти к следующей операции, а вторая определяет время ожидания перед повторением опроса того же самого порта (в случае с тестом CGI для Web-сервера). Переменная check_read_timeout здесь - существенный фактор. Значение по умолчанию составляет 15 секунд. Уменьшение значения до 5 секунд может сделать ваше сканирование слишком быстрым, но вы можете что-нибудь потерять, закончив ожидание слишком быстро. Есть вероятность, что сканируя локальную сеть, можно установить очень маленькое значение параметра check_read_timeout. Значение по умолчанию для переменной delay_between_tests равно 1 секунде, и это, в большинстве случаев, наилучший выбор.

    Завершив изменение конфигурационного файла nessus, вы можете запустить демона ( nessusd -D от пользователя root ) и графического клиента, набрав в командной строке Nessus и нажав клавишу ENTER. Для продолжения следует соединиться с демоном Nessus, воспользовавшись именем пользователя и паролем, созданными ранее с помощью команды nessus-adduser. Если вы выбрали шифрованное SSL-соединение для шифрования трафика между Nessus клиентом и сервером (только для версии 1.2.0), вам придется настроить SSL-соединение (если вы не понимаете, что делать, согласитесь со значениями по умолчанию и примите сертификат). Ранние версии, вместо того чтобы задавать вопрос, в случае если вы хотите создать секретную фразу для защиты ключа пользователя, просто сгенерируют ее (обычно в этом нет необходимости). Затем последует большая дискуссия о том, какие тесты уязвимости (плагины) вы хотите запускать, для каких хостов и каких портов. Выберите закладку Plugins и вы увидите окно, аналогичное тому, что показано на рис 12.1.

    (рис 12.1) Закладка Plugins

    При первом запуске Nessus, возможно, следует отменить все выбранные тесты на закладке Plugins и просмотреть все категории, чтобы получить представление о том, как работает каждый тест (плагин). Хорошей мыслью будет проделывать это с любым сканером уязвимостей. Nessus разбивает все плагины на группы или категории. Эти категории и их краткое описание приведены в таблице 12.1 (описание применимо для версий 1.0.10, 1.2.0)

    Категории уязвимостей Nessus
    Категория модуля Nessus Версия Описание
    Miscellaneous Разнообразные Обе Производит тесты учетных записей, трассировку и другие разнообразные проверки.
    Gain a shell remotely Удаленный доступ к командному процессору Обе Проверяет переполнение буфера, обходит идентификацию.
    Finger abuses Неправильное использование Finger Обе Проверяет демонов Finger, которые могут позволить хакерам доступ к защищенным файлам, защищенным системным командам или защищенной пользовательской информации.
    Windows Обе Проверяет на SMB, NetBIOS и другие связанные с Windows уязвимости.
    Backdoors Черные ходы Обе Проверяет на черные ходы, типа Trinity, Netbus, Back Orifice и другие им подобные.
    General Общие Обе Проверяет на способность получить версию и другую информацию о программе, которая может помочь хакеру взломать систему.
    SNMP Обе Проверяет дыры и уязвимости в Simple Network Management Protocol (SNMP)
    CGI abuses Неправильное использование CGI Обе Проверяет на взлом Web-серверов и приложений, таких как IIS, Lotus Domino, Apache, PHP, Cold Fusion, FrontPage и так далее.
    Remote file access Удаленный доступ к файлам Обе Проверка на неавторизованные методы захвата файлов через службы NFS (Network File System), TFTP (Trivial File Transfer Protocol), HTTP (Hypertext Transfer Protocol), и Napster.
    RPC Обе Проверка на получение информации и взлома уязвимых служб RPC, таких как mountd и statd.
    Gain root remotely Удаленный доступ с полномочиями root Обе Проверки на уязвимости, которые позволяют удаленным пользователям получить доступ к полномочиями root или доступ администратору к машине.
    Firewalls Брандмауэры Обе Проверки на брандмауэр, относящиеся к неправильной конфигурации и уязвимостям.
    Useless services Бесполезные службы Обе Проверка на устаревшие службы, которые не должны запускаться или быть доступными в интернете в целом, такие как echo, daytime, chargen, finger, rsh и т.д.
    Denial-of-Service Отказ службы Обе Проверка на взломы DoS для целого ряда приложений и служб Unix и Windows.
    FTP Обе Проверка на относящиеся к FTP уязвимости, включая неправильную конфигурации FTP, ненужный анонимный доступ к FTP, уязвимость FTP Bounce (nmap в лекции "Сканеры портов" может получить это преимущество) и т.д.
    NIS Обе Проверка на уязвимости, относящиеся к Sun's Network Information Service.
    SMTP problems Проблемы SMTP 1.2.0 Проверка на уязвимости в популярных почтовых серверах (sendmail, Lotus и т.п.).
    Windows User Management 1.2.0 Проверка, чтобы получить информацию о пользовательских проблемах и проблемах групповых учетных записей, относящуюся к Windows.
    Примечание. Версия 1.2.0. также включает модуль настройки, который позволяет задать профили для проверки конфигурации каждого сервиса или заставить для Nessus сделать попытку обхода IDS-систем.

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

    Некоторые модули тестов уязвимости представляют опасность, поскольку в процессе сканирования могут привести к краху системы. На рис 12.3 показаны опасные модули Nessus, отмеченные значком предупреждения. Можно отключить все опасные модули, щелкнув на значке Enable All But Dangerous Plugins.

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

    (рис 12.3) Информация о проверке на уязвимость(рис 12.2) Отключение опасных модулей(рис 12.4) Установка Nessus preferences

    На закладке Scan Options, показанной на ). Вы можете также просмотреть некоторые из параметров, заданных в файле nessusd.conf (такие как Max threads).

    Примечание. /. (рис 12.5) Закладка Scan Options

    Последняя важная часть сканирования - это выбор цели. Вы можете задать единственный IP-адрес или имя хоста, подсеть (192.168.1.0/24) или список хостов и IP-адресов, разделенных запятой. Вы можете также записать IP-адреса и имена хостов в отдельный файл и загружать их, щелкнув на кнопке Read File.

    В данном примере, мы хотим сканировать три хоста в сети: 192.168.1.100, 192.168.1.101 и 192.168.1.102, как показано на закладке Target Selection на рис 12.6.

    Сканирование и анализ системы

    Теперь мы готовы начать сканирование.

  • Щелкните на кнопке Start The Scan в левом нижнем углу закладки Target Selection.
  • В окне состояния, в зависимости от того, как много параллельных процессов разрешено для выполнения, вы сможете увидеть несколько запущенных параллельно тестов уязвимости, как это показано на рис 12.7.
  • Теперь можно выпить чашечку кофе. Каждое сканирование только трех хостов может потребовать довольно много времени. Когда сканирование завершится, результаты будут готовы для просмотра в окне Nessus Report, показанном на рис 12.8.
  • (рис 12.7) Закладка Target Selection (Выбор цели)(рис 12.6) Состояние сканирования показан выходной отчет версии 1.0.10 Nessus. Выходной отчет версии 1.2.0 был переработан, но основные положения, обсуждаемые здесь, остались прежними. (рис 12.8) Отчет о проделанной работе

    Теперь пришло время анализировать отчет. По умолчанию видно, что Nessus обнаружил дыру в безопасности с высоким (High) фактором риска, относящимся к SSH-серверу по адресу 192.168.1.100. Nessus также показывает, что он определил тип и версию работающего Web-сервера. Понятно, что это не обязательно проблема безопасности, а полезная информация, которую потенциальный взломщик может легко получить.

    Вы можете отсортировать выходную информацию по портам, щелкнув на кнопке Sort By Port. Список портов будет представлен слева, а соответствующие машины и их проблемы безопасности будут представлены справа в окне Report. Это полезно, если вы просматриваете информацию о конкретной уязвимой службе.

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

    Если вы хотите сохранить отчет в файле, можно выбрать формат отчета из выпадающего списка между кнопками Save As и Close, а затем щелкнуть на кнопке Save As. Вы можете сохранить отчет в собственном формате Nessus (по умолчанию NSR), чтобы просмотреть его позже. В противном случае, вы можете сохранить отчет в формате HTML или LaTeX, или в виде простого текстового файла. Это не слишком красиво, но, по крайней мере, здесь есть вся информация.

    Поддержание тестов на уязвимость в актуальном состоянии

    Как уже упоминалось, модули . Вы можете поместить это приложение в состав заданий демона cron, поскольку оно не требует никакой входной информации на старте. Таким образом, у вас будут наиболее свежие тесты для сканирования.

    STAT

    Программа ), который включает в себя STAT Neutralizer, STAT Analyzer и STAT Scanner. STAT Neutralizer размещается на отдельной Windows-машине и выполняет задачи контроля за выполнением правил безопасности, наблюдения за вирусами и проведение активных мероприятий против попыток внедрения. STAT Analyzer обеспечивает интеграцию нескольких других коммерческих сканеров уязвимостей (включая собственный сканер STAT Scanner ), чтобы представить вам более полную и достоверную картину уязвимости вашей сети.

    STAT Scanner - современное средство аудита в комплекте STAT, и в этом разделе мы сосредоточимся на нем. Тем не менее, возможности интеграции STAT Analyzer с другими системами аудита, упоминавшиеся в этой лекции, делают его достойным внимания.

    STAT Scanner (в оставшейся части раздела - STAT ) использует те же основные настройки, что и другие сканеры уязвимостей. STAT работает на платформе Windows NT/2000, но может быть запущен и на других операционных системах. Наилучшая производительность достигается на Windows-машинах. Если при сканировании вы входите в систему, как администратор домена, у вас есть возможность получить доступ как к машинам для анализа локальной уязвимости, так и анализировать уязвимость с точки зрения удаленного доступа.

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

    Щелкнув дважды на каждом сообщении о найденных уязвимостях, можно получить массу информации о найденных проблемах, их сложности, где можно получить дополнительную информацию, и как их устранить. Для некоторых видов уязвимостей у STAT есть уникальная возможность "auto fix", такая, как корректировка системного реестра. Если STAT может устранить их самостоятельно, то становится доступна кнопка AutoFix.

    Реализация

    После установки STAT у вас сразу запросят регистрационный ключ. Если у вас его нет, вы сможете запускать приложение только в "ознакомительном" режиме, который предоставляет возможность тридцатидневного использования сканера, но с ограниченными возможностями по запуску тестов уязвимости (из конфигурационного файла QuickScan.dat).

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

    (рис 12.9) Интерфейс STAT

    Настройка STAT

    Так же как и для Nessus, вам необходимо сконфигурировать набор тестов, которые вы собираетесь использовать. STAT поставляется с несколькими сконфигурированными файлами DAT, которые содержат наборы видов уязвимостей, для которых вы можете выполнять сканирование. Вы можете использовать DAT-файлы для сканирования уязвимостей заданного уровня опасности, конкретные операционные системы или типы уязвимостей. Вы можете выбрать конфигурационный файл для сканирования, выбрав в меню STAT Configurations/Load Configuration From File. Вы можете увидеть это окно на иллюстрации.

    Файл QuickScan.dat подходит, если вы хотите найти более серьезные проблемы. Если вас интересует только проверка системных политик (профили пользователей, дата истечения срока действия пароля, и т.д.), используйте файл Policy.dat. Каждый DAT-файл имеет содержательное название, чтобы помочь вам выбрать наиболее подходящий для решения поставленных задач.

    Вы можете создать свой собственный конфигурационный файл, используя один из имеющихся DAT-файлов в качестве шаблона. Следует выбрать Configurations/Edit Configuration From File, чтобы открыть окно, показанное на рис 12.10.

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

    (рис 12.10) Вы можете самостоятельно настроить конфигурацию

    Вы также можете управлять некоторыми другими параметрами сканирования, такими как политика входа в программу и пароли, стандарты политики аудита Windows, временные параметры сканирования (задержка, параллельное выполнение), особенности формата отчета и другие настройки. Все эти настройки доступны по команде Edit/Options, как это показано на рис 12.11.

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

    Наша последняя задача перед запуском сканирования - выбрать цель. Когда выбираются машины для сканирования в главном меню . Вы можете выбрать или интервал IP-адресов, или назначить Windows Network Discovery, щелкнув на кнопке с соответствующим названием. Параметр Windows Network Discovery позволяет автоматически найти в сети другие машины с конкретной операционной системой. Это лучше всего работает в Windows-домене, когда есть возможность найти все компьютеры, использующие NetBIOS поверх TCP (NBT). Если вы сканируете смешанную среду, то лучше использовать кнопку IP Range Selection.

    (рис 12.11) Выбор других параметров сканирования в диалоговом окне Options

    После того как машины найдены (или с помощью Windows Discovery, или используя метод IP Range), вам следует выбрать, какие из найденных машин сканировать. Любые хосты, которые подвергаются изучению, отображаются в левой части диалогового окна (см. рис 12.12). Чтобы выбрать конкретный хост, щелкните на значке, изображающем этот хост, который располагается за кнопкой. Для сканирования всех хостов, щелкните на кнопке ALL. Вы можете перемещать хосты между двумя списками, пользуясь кнопками с изображением стрелок в средней части окна.

    Если вы выбрали машины для сканирования с неизвестными или неподдерживаемыми операционными системами, мы выбрали для сканирования Linux и Windows 2000 машины, которые были обнаружены в процессе предыдущей сессии (что объясняет, почему мы не видим их в списке в левой части экрана).

    (рис 12.12) Выбор целей для сканирования

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

    Обратите внимание, что для Windows-машин вы можете пропустить шаг аутентификации, если вы сканируете машины, для которых вы вошли в систему, как администратор домена. В противном случае, вы можете задать в диалоговом окне аутентификации значения для профиля администратора. STAT соединяется с Windows-системами, используя net use (о которой говорилось в лекции "Система X Window"). Если вы соединяетесь с Unix-системой, STAT потребуется пользовательская информация для доступа к машине; это не обязательно должна быть информация о пользователе root. STAT может поддерживать SSH-соединение с машиной, которая подвергается сканированию.

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

    Как только вы определите цель сканирования, щелкните на кнопках Save и Close в окне Machine List (см. рис 12.12).

    Начало сканирования

  • Мы настроили параметры по умолчанию, используя конфигурационный DAT-файл QuickScan.dat, и сканируем две системы. Выбрав машины для сканирования, вы должны вернуться в главное окно ). Машины, которые вы выбрали в процессе поиска, теперь отображаются в левой части панели. Выберите все системы, которые вы хотите просканировать.
  • Выберите Analysis/Perform An Analysis, чтобы начать сканирование.
  • В окне , вы можете увидеть результаты сканирования. По умолчанию уязвимости сортируются в соответствии с фактором риска. Вы можете быстро просмотреть, какие из них можно исправить с помощью функции AutoFixes.
  • Щелкните дважды на конкретной показанной уязвимости и вы сможете получить дополнительную информацию, как это видно на рис 12.14. Это окно предоставляет информацию, которая может вам помочь принять решение о дальнейших действиях. Помните, что даже если большинство сообщений в отчете STAT говорят о проблемах, которые должны быть устранены, многие из предупреждений с низким уровнем риска, которые выдает STAT, являются просто наведенными из-за особенностей конфигурации и политики безопасности. Иногда они могут быть всего лишь ложной тревогой.
  • Перед тем как вы попытаетесь устранить любую из уязвимостей, о которых сообщил STAT, убедитесь, что это не нарушит деятельности выполняемых приложений. К примеру, STAT может предупредить вас о том, что работает IIS, и он должен быть остановлен, если в нем нет необходимости. Но если вы запустили Web-сервер на этой машине, вы можете игнорировать это сообщение. Тем не менее, если STAT сообщает вам о том, что у IIS есть опасность переполнения буфера, и он должен быть немедленно обновлен с использованием соответствующих заплаток, то это сообщение относится к таким, на которые следует реагировать достаточно быстро. Также будьте внимательны к сообщениям STAT, касающимся системного реестра. Некоторые изменения в системном реестре могут привести к нежелательному эффекту, поэтому, исправляя их, вы должны быть уверены, что это не повлияет на работу ваших приложений. Как только вы определите, что вам необходимо устранить уязвимость, щелкните на кнопке AutoFix, если она доступна, или следуйте инструкции по решению проблемы, которая отображается в окне дополнительной информации (см. рис 12.14), чтобы устранить проблему самостоятельно.(рис 12.13) Результаты сканирования
  • Щелкните на кнопке Retest, после того как вы устраните уязвимость, чтобы убедиться в том, что это действительно выполнено.
  • Примечание. STAT несовершенен. Иногда он поднимает ложную тревогу. Иногда вы можете устранить уязвимость, а STAT по-прежнему будет выдавать сообщение о ней, даже если вы знаете о том, что заплатка установлена. STAT действует, как помощник, а не как руководство по пошаговому устранению проблемы. Как и с другими утилитами, опирайтесь на здравый смысл в работе со STAT. (рис 12.14) Информация об уязвимости

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

    Использование отчетов

    У показан отчет Executive Summary.

    Вы можете распечатать отчет, или экспортировать его в какой-либо из файлов, включая форматы Excel, CSV (comma-separated value), Crystal Reports, HTML, MS Access, Word или даже простой текст.

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

    (рис 12.15) Отчет Executive Summary

    Retina

    .

    Как и STAT, Retina работает не по модели клиент/сервер. Полное приложение (включая проверку безопасности) должно быть установлено на всех машинах, с которых вы хотите производить сканирование. У Retina есть дополнительные утилиты и модули, которые можно использовать для получения дополнительной информации о машинах, которые вы сканируете. Тем не менее, концептуально, Nessus, STAT и Retina не отличаются друг от друга.

    Реализация

    При первом запуске .

  • Перед началом сканирования вы можете изучить некоторые параметры и настройки. Выберите Tools/Options, чтобы открыть окно Options, показанное далее.(рис 12.16)
  • В этом окне вы можете управлять настройками сканирования, параметрами вывода сообщений и предупреждений и даже расписанием, так что вы можете сканировать уязвимости на постоянной основе, что весьма полезно.
  • Выберите Tools/Reports, чтобы открыть окно Reports. Вы можете настроить отчеты, создаваемые
  • Меню Tools также содержит параметры, которые позволяют сконфигурировать различные политики, которые использует Retina в процессе сканирования. Вы можете управлять интервалами портов, которые просматривает программа, а также типами аудита (или тестов уязвимостей), которые она реализует.

    Запустим пример сканирования уязвимости.

  • В главном окне программы (см. рис 12.16) выберите параметр Scanner на левой панели и задайте IP-адрес в поле Address, расположенном в верхней части окна. Полная версия программы позволяет сканировать интервал IP-адресов.
  • Выберите меню Action/Start, чтобы начать сканирование. Вы увидите отображение процесса сканирования в левом нижнем углу окна (рис 12.17). Сначала Retina сканирует открытые порты и пытается получить информацию об этих портах (аналогично программе Nessus ).
  • После того как программа просмотрит систему, она показывает, какие тесты уязвимости можно использовать, и запускает их выполнение на исследуемой машине.
  • Несколько минут спустя, после того как программа закончит сканирование, вы сможете просмотреть результаты. В программе имеется функция устранения проблем "fix it", аналогичная функции AutoFix в программе STAT, которая позволяет автоматически обновить системный реестр Windows и т. п. Когда вы будете готовы создать отчет, выбирите меню Tools/Reports для доступа к параметрам отчетов.
  • (рис 12.17) Процесс сканирования

    Retina поддерживает дополнительные модули (в левой панели главного окна), которые помогут вам в процессе сканирования.

  • Browser. Мини Web-броузер, который позволяет перемещаться по сайту, расположенному по выбранному IP-адресу. Это полезно для проверки Web-серверов на сканируемых хостах.
  • Miner. Пытается найти скрытые HTML-файлы или журналы в стандартных, защищенных паролем местах на сайте, перебирая при этом имена пользователей и пароли, хранящиеся в файле.
  • Tracer. Графический трассировщик, показывающий путь между вами и машиной, которую вы проверяете.
  • Internet Scanner

    Еще один коммерческий сканер для удаленной работы - Internet Security Systems (ISS) - набор инструментов для сканирования, включающий .

    Как большинство других сканеров, ISS поставляется с регулярно обновляемой базой данных методов аудита и тестов уязвимостей, которые могут быть выполнены при сканировании системы. Internet Scanner поддерживает те же основные функции, что и Retina, STAT и Nessus. Вопрос в том, делает ли он это лучше?

    Реализация

    Запустив Internet Scanner, вы увидите, что он загружает все доступные в базе данных тесты уязвимости и проверки на возможность проникновения в систему. Затем вы можете работать над созданием новой ISS-сессии, используя New Session Wizard. После того как вы настроите ISS-сессию, вы можете задать хосты и IP-адреса, которые вы хотите сканировать, а также типы тестов уязвимостей, которые вы хотите запустить. Сессия также использует ключевой файл, в котором задаются возможности по сканированию (например, какое количество машин позволяет сканировать ваша ISS-лицензия). Тестовая версия сканера может сканировать только локальный интерфейс (localhost). Тем не менее, когда вас попросят выбрать тип тестов уязвимостей, вы увидите, что у ISS множество стандартных политик сканирования, которые можно выбрать. По крайней мере, одна должна содержать тот тип машины, который вы сканируете.

    Примечание. ISS-политики представляют собой то же самое, что и DAT-файлы STAT. Они позволяют производить сканирование на предмет обнаружения уязвимостей определенного типа и уровня опасности в зависимости от того, какие типы хостов вы сканируете.

    При первом запуске Internet Scanner запускается вместе с мастером создания новой сессии (New Session Wizard), который показан на следующей иллюстрации. Поскольку мы все равно ничего не сканируем, мы можем выбрать политику Evaluation, чтобы получить представление о возможностях сканера.

    Конфигурирование политики

    Выбрав политику, мы можем просмотреть параметры в специальном редакторе Policy Editor. Выберите Choose Policy/Edit Current, чтобы открыть окно Policy Editor, которое показано на рис 12.18.

    (рис 12.18) Окно Policy Editor

    Наиболее сложно в использовании Internet Scanner - это понять, что вы перед собой видите. Вы можете потратить часы, изучая различные типы тестов и приемы получения информации. Вы можете даже выбрать различные представления конфигурации вашей политики.

    На рис 12.19 показан тот же редактор политик Policy Editor, но в другом представлении. Выбрав Risk View из ниспадающего списка вверху, вы можете перестроить список уязвимостей в порядке убывания риска, в отличие от стандартной организации по категориям на рис 12.18.

    (рис 12.19) Вид редактора Policy Editor в конфигурации по уровню риска

    Редактор политик в обязательном порядке заставляет вас выбрать тип тестов уязвимости, который вы хотите включить в сканирование. Вы можете щелкнуть на поле выбора, следующем за списком элементов, чтобы включить или отключить конкретный тест. Вы также можете отключить целую группу тестов. Если вы хотите отключить сканирование всех уязвимостей среднего уровня, вы можете щелкнуть в окне рядом с полем Medium (304) на левой панели, показанной на рис 12.19, чтобы очистить поле. Так будут отключены все 304 теста со средним уровнем риска. Вновь щелкнув, можно заново задействовать 304 теста уязвимостей со средним уровнем риска.

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

    Запуск сканирования

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

  • Выберите Scan/Scan Now.
  • Чтобы просканировать одну машину, потребуется несколько минут. Значок в верхнем правом углу окна будет двигаться в процессе сканирования, и вы можете щелкнуть на закладке Status, чтобы посмотреть, как происходить сканирование.
  • Когда сканирование завершится, вы увидите окно результатов, показанное на рис 12.20.
  • (рис 12.20) Результаты ISS-сканирования

    Откройте закладку Vulnerabilities и просмотрите, что нашел ISS (рис 12.21). Каждая найденная уязвимость содержит информацию об уровне риска (такую как Warning, High, Low и т.д.) и описание.

    Сканер может находить ошибки конфигурации политик Windows и ошибки конфигурации служб. Например, уязвимость identdresp показывает, что мы запустили демон identd, который может использоваться удаленной машиной для определения имен пользователей в системе.

    Открытая закладка Services, показанная на рис 12.22, показывает какие Internet- и Windows-службы запущены на машине. Все службы, которым не следует работать, не должны работать. Используя Internet Scanner, вы можете с одного места определить все службы, работающие на всех ваших машинах.

    (рис 12.22) Уязвимости, обнаруженные при сканировании(рис 12.21) Проверка запущенных служб

    . Это легко сделать на Windows-машине, где у вас есть полномочия администратора.

    (рис 12.23) Закладка Accounts

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

    Анализ конфигурации

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

    Создание отчетов

    Другая сильная сторона ISS - расширенные возможности составления отчетов. Вы можете выбрать тип отчета, какую информацию включать в отчет, и осуществить предварительный просмотр отчета. В строке меню ISS выберите Reports/Generate Report. Сначала вам потребуется ответить на вопрос о типе отчета. Вы можете выбрать тип аудитории, для которой готовится отчет (административный состав, технические специалисты и т.д.), язык отчета (английский, испанский и т.д.). На рис 12.24 показаны настройки отчета для административного состава об уязвимостях в системе. Нажмите Next для продолжения.

    (рис 12.24) Выбор типа отчета

    Далее вас спросят, какие атрибуты вы хотите перечислить в вашем отчете. Если вы выполняли множественное сканирование или ISS-сессию, то можете выбрать, какие результаты вы хотите включить в отчет. Вы можете выбрать для включения в отчет информацию только о конкретных типах уязвимостей или конкретных службах. Можете ограничить включение в отчет сведений об уязвимостях с конкретным уровнем риска, в том случае, если администрация беспокоится только о уязвимостях с высокой степенью риска. На рис 12.25 показан пример окна Report Criteria.

    (рис 12.25) Выбор критериев для отчета

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

    Tripwire

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

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

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

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

    Совет. Основанная на загрузке в ядро утилита Knark в действительности может скрывать замаскированных под системные команды "троянских коней" от Tripwire. За дополнительной информацией обращайтесь к лекции "Черный ход и средства удаленного доступа".

    Реализация: свободно распространяемая версия

    Рассмотрим свободно распространяемую версию Tripwire для Linux. Для программы доступны как rpm-пакеты, так и исходные тексты. Независимо от того, какую версию вы устанавливаете, есть некоторые обязательные действия, которые придется выполнить перед установкой Tripwire.

    Запуск install.sh

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

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

    Просмотр файлов политик и конфигурационных файлов

    Файлы политик указывают Tripwire на то, какие файлы проверять, какую информацию просматривать и когда предупреждать вас о том, что произошли какие-то изменения. Устанавливаемый по умолчанию файл политик, twpol.txt, содержит определение переменных и правил. Более детально они рассматриваются в разделе "Представление о файлах политики Tripwire ". Конфигурационный файл, twcfg.txt, хранит информацию о месте положения файлов и другие предпочтения, которые должно использовать приложение Tripwire. Обычно вам не потребуется изменять конфигурацию по умолчанию.

    Оба эти файла шифруются с использованием общей секретной фразы в процессе инсталляции. Действительные файлы конфигурации и политики, которые использует Tripwire, называются tw.pol и tw.cfg. Они представляют собой двоичные зашифрованные файлы и по умолчанию устанавливаются в директорию /etc/tripwire. Tripwire также устанавливает незашифрованные копии файлов (twpol.txt и twcfg.txt) на случай, если вы захотите просмотреть или изменить их. Рекомендуется удалить все текстовые копии файлов после того, как вы изучите их содержание. Если позже вам понадобится изменить любой из этих файлов в текстовом формате, вы можете воспользоваться утилитами, которые обсуждаются в разделе "Другие утилиты Tripwire ".

    Запуск Tripwire

    У Tripwire четыре основных режима работы: инициализация базы данных, интегральная оценка, обновление базы данных и обновление политики.

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

    # tripwire -m i -v

    Параметр -m используется для задания режима ( -m показывает режим инициализации базы данных). Вы получите запрос на ввод локальной секретной фразы, и Tripwire понадобится несколько минут на проверку ваших файлов в процессе создания базы данных сигнатур файлов. Параметр -v используется для отображения процесса работы программы на экране. Как только будет создана база данных, она сохранится в двоичном файле Tripwire Database (.twd), который доступен для записи только пользователю root (обычно в директории /var/lib/ tripwire) и зашифрована с использованием локального ключа. Файл может быть прочитан только с помощью команды twprint, которую может запустить только пользователь root. Вы можете проверить, что права на доступ к файлу и директории с данными Tripwire (по умолчанию /etc/tripwire and /var/lib/tripwire) запрещают другим пользователям доступ на чтение и изменение этой информации.

    Режим интегральной оценки. Это обычный режим работы Tripwire. Программа сканирует файлы в поисках любых нарушений заданной политики. Отчет о работе сохраняется по адресу, заданному в переменной REPORTFILE в файле tw.cfg, который по умолчанию определен как /var/lib/tripwire/ report/.

    Эта команда может сопровождаться заданием некоторых параметров. Вы можете задать альтернативные имена файлов политики, конфигурации, базы данных и отчета. Можете включить режим интерактивной работы ( -I ), который после завершения сканирования создает текстовый файл отчета в тестовом редакторе по умолчанию. Для сохранения ваших отчетов в зашифрованном виде воспользуйтесь параметром -E для ввода локальной секретной фразы. Вы также можете изменить политику, проигнорировав отдельный параметры ( -i ), делая проверки только определенного уровня опасности ( -l ), используя при проверке только заданные по именам правила ( -R ), или проверяя только определенные файлы. Например, если мы проверяем целостность только команды ls, мы должны ввести:

    # tripwire -m c -v /bin/ls

    Здесь мы задали режим интегральной оценки ( -m c ) с включенным расширенным режимом вывода ( -v ). Если мы не задаем имя файла в конце командной строки, Tripwire проверяет все файлы в базе данных, которая определена по умолчанию. Следующая команда задает для программы проверку только файлов с самым высоким уровнем опасности (более 100):

    # tripwire -m c -v -l 100

    Уровень опасности и имена правил могут быть заданы в файле политики. Параметры -i, -l и -R станут понятнее после прочтения раздела "Представление о файлах политики Tripwire".

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

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

    Режим обновления базы данных. Если файл изменен и эти изменения законны, вам необходимо обновить базу данных для сохранения сведений о произведенных изменениях, чтобы информация об этих изменениях постоянно не попадала в отчеты. Чтобы воспользоваться этим режимом ( -m u ), вам необходимо найти ваш самый последний отчет и задать его в командной строке с помощью параметра -r:

    # tripwire -m u -r /var/lib/tripwire/report/host-20020330-235028.twr

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

    Если вы пролистаете раздел Object Summary отчета, вы сможете увидеть так называемые ballot boxes для каждого изменения, которое было произведено с момента последнего обновления базы данных и последней интегральной оценки:

    ----Rule Name: Tripwire Data Files (/var/lib/tripwire)
    Severity Level: 100
    ----Remove the "x" from the adjacent box to prevent updating the database
    with the new values for this object.
    
    Added:
    [x] "/var/lib/tripwire/originix.twd"

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

    После того как вы выйдите из редактора, Tripwire запросит у вас ввод локальной секретной фразы, чтобы получить возможность обновить базу данных, если в нее должны быть внесены какие-либо изменения. Вы также можете выбрать режим внесения всех изменений без предварительного просмотра, задав в командной строке параметр -a.

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

    # tripwire -m p newpolicy.txt

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

    Мы кратко обсудим проблему создания политики для Tripwire в разделе "Представление о файлах политики Tripwire "

    Другие утилиты Tripwire

    Tripwire поставляется с несколькими утилитами: twprint, twadmin и siggen.

    Twprint. Как уже упоминалось, у twprint два режима работы: утилиту можно использовать для распечатки любого файла отчета ( -m r ) или базы данных ( -m d ) в виде текстового файла.

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

    Внимание. Вы никогда не должны использовать twadmin для создания файла политики после того, как был установлен начальный файл политики. Это приведет к тому, что база данных и файл политики будут несинхронизированы. Если у вас есть текстовый файл политики, вы можете импортировать его в Tripwire, применив режим обновления политики приложения Tripwire ( tripwire -m p newpolicy.txt ).

    Siggen. Утилиту siggen можно использовать для отображения шифрованных сигнатур для любого файла. Эти шифрованные строки являются сигнатурами, которые использует Tripwire для сравнения содержимого файла и анализа. Tripwire поддерживает формат шифрованной строки вида Haval, SHA/SHS, MD5 и CRC32.

    Представление о файлах политики Tripwire

    Файлы политики определяют для Tripwire, что следует и чего не следует искать. Обычно это шифрованные файлы в двоичном формате, но вы можете воспользоваться командой twadmin -m p current- policy.txt, чтобы сохранить текущий двоичный файл политики в текстовом формате и отредактировать его. Синтаксис текстового файла может оказаться весьма сложным для понимания. Он содержит определения переменных и определения правил. Каждое правило содержит две главные части: имя файла или директории и маску свойств. Ниже приведена часть примера файла политики.

    /bin/login                  -> $(SEC_CRIT) ;    
    /bin/ls                     -> $(SEC_CRIT) ;    
    /bin/mail                   -> $(SEC_CRIT) ;    
    /bin/more                   -> $(SEC_CRIT) ;    
    /bin/mt                     -> $(SEC_CRIT) ;    
    /bin/mv                     -> $(SEC_CRIT) ;

    Обратите внимание, как имя файла или имя объекта отделяется от маски свойств символом -. SEC_CRIT представляет собой переменную, определенную в начале файла, которая задает разрешенную маску свойств. Обратите также внимание, что каждое правило завершается точкой с запятой (;).

    Разрешенная маска свойств. Маски Tripwire управляют тем, какие свойства проверяются в каждом файле. Свойства, обозначенные знаком (+), проверяются, обозначенные знаком (-) - нет. Свойства, которые не обозначены соответствующим знаком, предположительно могут быть проверены. В этом случае все свойства, которые не включены в командную строку, игнорируются. В таблице 12.2 показаны описания каждого свойства.

    Маски свойств Tripwire
    Свойство Описание
    a Последнее время доступа.
    b Блоки с выделенной памятью.
    c Создать/изменить время.
    d Устройство ID, на котором находится inode.
    g Групповой ID владельца файла.
    i Номер inode.
    l Файл с разрешенным увеличением размера (хорош для чего-либо из /var/log).
    m Модификация отмены времени.
    n Контрольный счет inode (число связей).
    p Разрешение на чтение/запись/исполнение файла и режима (setuid, setgid).
    r Указание inode на устройство ID (для устройств только /dev).
    s Размер файла.
    t Тип файла (текстовый, данных, исполнимый).
    u Пользовательский ID владельца файла.
    C Шифрованная строка по методу CRC32.
    H Шифрованная строка по методу Haval.
    M Шифрованная строка по методу MD5.
    S Шифрованная строка по методу SHA/SHS.
    Совет. Параметр -i, задаваемый в режиме интегральной оценки ( -m c ), используется для игнорирования конкретных свойств в процессе проведения проверки. Например, выполняя команду tripwire -m c -i "p,s,u", мы сообщаем Tripwire, что необходимо выполнить интегральную оценку для всех файлов, но при этом игнорировать все изменения полномочий доступа, размеров файлов или пользовательских идентификаторов владельцев файлов.

    Если вы хотите произвести проверку содержимого шифрованной строки MD5, размера файла, полномочий доступа и пользователя/группы владельца файла, то нужно воспользоваться командой:

    /home/myfile    ->  Mspug

    Эту команду также можно написать так:

    /home/myfile    ->  +Mspug-abcdilmnrtCHS

    Чтобы сделать жизнь проще, Tripwire поставляется с несколькими заранее заданными переменными, которые можно использовать для определения маски свойств. Они приведены в таблице 12.3.

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

    SEC_CRIT = $(IgnoreNone)-SHa

    Любые правила, которые используют маску свойств SEC_CRIT, будут проверять все свойства, за исключением SHA hash, Haval hash и времени последнего доступа к файлу.

    Переменные определения маски свойств Tripware
    Переменная Значение Описание
    ReadOnly +pinugtsdbmCM-rlacSH Следит за полномочиями, inode, ссылками на inode, правом владения, типом файлов, размером файлов, устройством ID, используемыми блоками, модификацией отметок времени, а также ненужной информацией CRC32 и MD5. Хороша для файлов, которые не должны изменяться.
    Dynamic +pinugtd-srlbamcCMSH Следит за разрешениями, inode, ссылками на inode, правом владения, типом файлов, устройством ID. Не следит за размером, отметками времени или ненужной информацией.
    Growing +pinugtdl-srbamcCMSH Следит за тем же, что и Dynamic, но проверяет, что этот файл только увеличивается. Если файл внезапно становится меньше, то Tripwire привлечет ваше внимание. Хороша для файлов протоколов.
    Device +pugsdr-intlbamcCMSH Следит за разрешениями, правом владения, размером файлов, устройством ID и устройствами, на которые указывает inode. Хороша для файлов устройств.
    IgnoreAll -pinugtsdrlbamcCMSH Следит только за наличием файла, а не его свойствами.
    IgnoreNone +pinugtsdrlbamcCMSH Следит за всеми свойствами файла.

    Некоторые правила с использованием переменной маски свойств можно посмотреть здесь:

    /var/log/messages       ->  $(Growing); 
    /dev/fd0                    ->  $(Device);  
    /home/jdoe/.netscape    ->  $(IgnoreAll);   
    /etc/inetd.conf         ->  $(ReadOnly);

    Атрибуты правил. Атрибуты правил могут относиться к отдельным правилам или группам правил, как это показано в таблице 12.4.

    Атрибуты правил Tripware
    Атрибут_правила Описание
    rulename Присваивает имя правилу или группе правил. Помогает в подразделении ваших правил и упрощает понимание при просмотре резюме отчетов по проверке целостности.
    emailto Если проверка на целостность Tripwire проводится с опцией -email-report, то где бы правило с этим признаком не запускалось, будет послан e-mail на заданный список e-mail-адресов. Несколько e-mail-адресов должны быть разделены точкой с запятой и заключены в двойные кавычки.
    severity Задает уровень строгости правила или группы правил. Значения могут варьироваться от 0 до 1000000. Это позволяет использовать Tripwire для сканирования только на определенный уровень серьезности нарушения правил. Вы можете задать значащие имена переменных для уровней строгости (т.е. medium=50).
    recurse Сообщает Tripwire, должен ли он сканировать все вложенные директории в директории (значение true), или он не должен сканировать ни в каких вложенных директориях (значение false), или же он должен сканировать только на определенную глубину вложенных директорий (числовое значение).

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

    /var/log/messages   ->  $(Growing)  (rulename = Log, severity = 10);
    /etc                    ->  $(ReadOnly) (rulename = Etc, recurse = 2);
    (rulename = Bin, severity = 100, recurse = false, 
      emailto="root;bob@home")
    {
        /bin/cat                        -> $(IgnoreNone)-SHa ;
        /bin/date                       -> $(IgnoreNone)-SHa ;
        /bin/dd                         -> $(IgnoreNone)-SHa ;
        /bin/df                         -> $(IgnoreNone)-SHa ;
    }

    Мы создали правило с названием "Log" с уровнем опасности 10 для файла /var/log/messages. Правило использует маску свойств Growing, которая показывает, что Tripwire проверяет такие свойства, как владельца файла, полномочия доступа и изменение размера. Правило "Etc" использует рекурсивный атрибут, чтобы указать программе на необходимость в процессе интегральной оценки просматривать файловую систему только на глубину двух директорий и использовать маску свойств ReadOnly. Правило "Bin" объединяет несколько тестов с уровнем опасности 100. Правила тестирования для четырех важных Unix-приложений для проверки изменений всех свойств за исключением SHA-строки, Haval-строки и времени последнего доступа. Если любой из этих тестов обнаружит изменение свойств, то по адресу пользователя root и bob@home будут посланы уведомления по электронной почте.

    Совет. Помните флаг -R для режима интегральной оценки ( -mc )? Вы можете включить этот параметр, чтобы обозначить необходимость использования только конкретных правил. К примеру, команда tripwire -m c -R Bin может быть использована в случае, если необходимо выполнить проверку по правилу "Bin".

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

    /etc        ->      $(ReadOnly);
    !/etc/dhcpd.leases;
    !/etc/motd;

    Это правило говорит о необходимости убедиться, что в директории /etc все файлы имеют свойства "только для чтения", за исключением файлов /etc/dhcpd.leases и /etc/motd.

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

  • @@section. Начинает новый раздел файла. Эта директива может сопровождаться аргументами: FS, NTFS или NTREG. Unix-версия Tripwire игнорирует разделы файла NTFS или NTREG, что позволяет вам использовать один файл политики для всей вашей сети. Если после директивы не задано никаких аргументов, предполагается значение FS. Нет необходимости определять конец раздела, поскольку Tripwire просто просматривает файл в поисках следующей директивы и интерпретирует ее, как конец предыдущего раздела.
  • @@ifhost, @@else, @@endif. Эти директивы можно использовать для определения специфических для хоста разделов файла. В отличие от директив разделов, директивы ifhost требуют, чтобы предложение было завершено директивой endif. Это позволяет вам запускать правила только для конкретного хоста в группе хостов, воспользовавшись примерно такой командой:
    @@ifhost originix || badman
       # define rules for only hosts originix and badman here
    @@endif
  • @@print, @@error. Эти директивы используются для вывода отладочных сообщений из файла политики. Директория @@print просто печатает на стандартный вывод, а директива @@error осуществляет печать в случае ненормального завершения работы программы. Следующий пример указывает Tripwire выдать сообщение в случае, если будет сделана попытка проверки хоста cauliflower, поскольку для этого хоста не предусмотрено никаких правил проверки:
    @@ifhost cauliflower
       @@error "We haven't written any policy rules for 
           host cauliflower yet"
    @@endif
  • @@end. Эта директива обозначает конец файла политики. Достигнув этой точки, Tripwire прекращает считывание файла.
  • Использование нового файла политики. После того как вы модифицировали или создали новый файл политики (назовем его newpolicy.txt), воспользуйтесь командой tripwire -m p newpolicy.txt, чтобы дать возможность программе использовать новый файл политики и, соответственно, обновить базу данных.

    Реализация: коммерческая версия

    Коммерческая версия Tripwire работает точно так же, как и свободно распространяемая. Приложения и форматы файлов точно такие же. Однако коммерческая версия доступна практически для всех операционных систем, включая Windows NT, Windows 2000, Solaris и другие. Существенным преимуществом по сравнению с бесплатной версией, кроме того, что она поддерживает многие операционные системы, является наличие утилиты twagent. Эта утилита позволяет Tripwire -серверам управляться по сети через SSL-соединение. Это управляющие программное обеспечение называется Tripwire Manager и доступно для Windows NT, Windows 2000, Solaris и Linux.

    Использование Tripwire Manager

    Tripwire Manager, показанный на рис 12.27, взаимодействует с каждым коммерческим Tripwire -сервером с помощью утилиты twagent. Это позволяет вам распространять сервера и обновлять политики и базы данных из одного места.

    На Windows-машинах twagent запускается в качестве службы, и его можно запускать и останавливать из панели управления или с помощью средств администрирования. На Unix-машинах twagent представляет собой программу, запускаемую из командной строки. Вы можете запускать и останавливать ее, используя команды twagent -start и twagent -stop.

    (рис 12.27) Главное окно Tripwire Manager

    Добавление сервера Tripwire. Когда вы установили на машине Tripwire Server и запустили службу twagent, машина становится узлом Tripwire. Вы можете добавить узел в Tripwire Manager и в главном окне Tripwire Manager, выбрав Action/Add Machine и открыв диалоговое окно Add Machines, приведенное ниже. Здесь вы задаете IP-адрес узла и порт, который будет прослушивать twagent. Вам также понадобится ввести секретную фразу для консоли Tripwire Manager (заданную в процессе установки Tripwire Manager ), а также общую и локальную секретные фразы для машины, которую вы добавляете.

    Вы также можете импортировать машины из текстового файла, который содержит значения, разделенные запятой. Для этого достаточно щелкнуть на кнопке Import. Пример файла для импорта представлен ниже. Здесь 192.168.1.1 - IP-адрес узла Tripwire, а 1169 - TCP-порт, который прослушивает twagent.

    "Name","192.168.1.1","1169","Memo","site_password","local_password"

    Редактирование файлов политики. Вы можете просматривать и изменять файлы политик для всех ваших .

    (рис 12.28) Редактирование файлов политики

    Вы уже знакомы с синтаксисом файла политики, но вы можете использовать Tripwire Manager, чтобы создать один файл политики для всех ваших операционных систем (воспользовавшись директивой "Section", о которой упоминалось в разделе "Директивы") и распространить этот файл по всем вашим серверам, щелкнув на значке Distribute File.

    Графический интерфейс для Tripwire. Все хорошее, что есть в бесплатной версии ), обновить базы данных, обновить политики и все остальное. Tripwire Manager имеет возможность задать расписание работы, чтобы агенты могли выполнять сканирование самостоятельно, по расписанию, обеспечивая контроль из одной точки, вместо настройки утилиты cron или Windows Scheduler на каждой машине.

    На рис 12.29 показаны результаты интегральной оценки, выполненной агентом Tripwire Agent #3. Tripwire Manager не только облегчает управление службами, но может создавать сводный отчет, более подробный, полный и понятный, чем его Unix-аналог. Перебирая различные закладки (Reports, Objects, Summary и Violations), вы можете просматривать отчет различными способами.

    (рис 12.29) Результаты интегральной оценки

    Обеспечение безопасности ваших файлов с использованием Tripwire

    Какие файлы следует просматривать с помощью Tripwire? Вы должны регулярно обращать внимание на все файлы, которые не должны изменяться. Это наиболее важные системные программы (ls, df, login и cmd.exe), библиотеки и DLL, конфигурационные файлы (/etc/inetd.conf, /etc/ passwd и Windows-файлы system.dat и user.dat). Вы также можете проверять файлы, которые должны изменяться предсказуемым образом. Например, следует быть уверенным, что системные журналы постоянно увеличиваются (и никогда не уменьшаются). Следует следить за тем, что никто из ваших пользователей не получил полного доступа (на чтение/запись) к вашей домашней директории, проверяя полномочия доступа в директории /home/*.

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

    Пример из жизни. Латание дыр

    Новый квартал. Вас приняли на работу в маленькую начинающую компанию, занимающуюся интернет-технологиями в качестве менеджера по сетевой безопасности. Эта компания выполняет Web-хостинг и хостинг приложений для небольших и средних компаний. Они имеют внутреннюю сеть, объединяющую различные регионы США. Сеть использует VPN-оборудование. Кроме того, у них есть клиентские сети, которые они поддерживают и у себя, и на местах. Они используют различные операционные системы и платформы, включая Windows NT, Windows 2000, Linux, FreeBSD, IRIX, Solaris и HP-UX. У них 50 серверов и 100 рабочих станций. Сетевой менеджер компании дал вам карту этих различных сетей, указав типы машин, операционных систем, сетевых местоположений и целей. Менеджер департамента интернет-технологий сказал вам, что ваша первая задача - "залатать дыры". Он велел найти любые области уязвимости и работать с соответствующими департаментами, чтобы заделать дыры до конца месяца. Без дополнительной помощи (и, естественно, бюджета) вы берете свою карту сети и свой надежный портативный компьютер и садитесь планировать свою стратегию.

    Сканирование с помощью Nessus. После изучения многих автоматизированных средств сканирования, которые могут помочь вам при решении задачи, вы понимаете, что большинство из них являются коммерческими продуктами. Поскольку вам не предоставили никакого бюджета для реализации проекта, вы знаете, что придется оценить эти коммерческие продукты и предложить рентабельное решение. К счастью, вы знаете одно бесплатное средство, которое может подсказать, насколько дырявыми являются системы вашей сети в действительности. Вы загружаете, компилируете и инсталлируете Nessus на своем надежном компьютере с двойной загрузкой Win2K/Linux, и начинаете собирать IP-адреса хостов в один файл. Вы решаете начать с серверов, а рабочие станции оставить на потом.

    Непосредственно перед началом сканирования вы просматриваете модули, чтобы понять, что нужно, а что не нужно проверять. Вы решаете отключить проверку на DoS, и оставить ее на промежуточное сканирование. Вы дважды проверяете свои значения и начинаете сканирование. Поскольку вы знаете, что это займет большую часть дня, то у вас есть масса времени, чтобы начать оценку некоторых из коммерческих приложений. Завершив сканирование Nessus и сравнение, что он может сделать с тем, что могут сделать некоторые коммерческие продукты, вы можете направить предварительный отчет менеджеру по интернет-технологиям.

    Глубоко копаем безопасность Windows. Вы загружаете копию STAT Scanner Discovery Edition, зная, что сможете сканировать только ограниченный набор уязвимостей. Но, по крайней мере, вы получите представление, насколько функционален данный коммерческий сканер. Сначала вы замечаете, что STAT работает только с вариантами RedHat Linux и Solaris Unix. А поскольку у вас используются несколько операционных систем FreeBSD, IRIX и HP-UX, то вы видите, что STAT не даст полной картины. Но когда вы запустите его на локальных Windows-серверах своего домена, то получите сведения обо всех типах "старушек", которые Nessus найти не смог, включая практику регистрации и пароля, неправильную конфигурацию реестра и другие, относящиеся к Windows вопросы. Теперь вы уверены, что вам необходимо приобрести какой-либо коммерческий сканер в дополнение к Nessus. Но следует проверить и другие доступные продукты, чтобы принять более обоснованное решение.

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

    Однако вы до сих пор не испытали один из наиболее популярных на рынке сканеров на уязвимость: комплект продуктов ISS. Поскольку вы хотите быть настолько доскональным, насколько возможно, вы загружаете тестовую версию средства Internet Scanner. Даже если вы можете использовать его только на своей машине, вы понимаете, что оно может обнаружить больше уязвимостей, чем Nessus или оценочная версия Retina. Нужно только помнить, что средство проверки системы не всегда точно сообщает об уязвимостях. То, что ISS сообщает о большем числе уязвимостей, не означает, что оно лучше, особенно, если некоторые из этих уязвимостей на самом деле ложные. У ISS также огромное число характеристик конфигурации и опций применения, безопасности и отчетов. Может для кого-то это и хорошо, но оптимизация этого средства для вас сложна, потому что здесь слишком много опций, которые нужно изучить и учесть. Этого потенциально излишнего содержания может оказаться больше, чем вам нужно для текущей работы.

    Просматривая некоторые из уязвимостей, найденных в вашей системе, вы понимаете, что это средство выявило множество проблем, тех же, что и STAT. Теперь время поджимает. Вы знаете, что нужно больше, чем бесплатные приложения, чтобы хорошо выполнить работу. Вам нужно подготовить предложения менеджеру по интернет-технологиям, сравнивая решения Nessus и STAT с решением ISS, и решить, что будет лучше по фактору соотношения цена-качество.

    Вернуться к учебному плану