Опубликован: 20.02.2006 | Доступ: свободный | Студентов: 2944 / 491 | Оценка: 4.22 / 3.75 | Длительность: 33:08:00
ISBN: 978-5-9556-0087-1
Лекция 8:

Средства анализа и управления

Установка ACID

После загрузки всех необходимых программ можно, наконец, установить ACID.

  1. Возьмите файл программы с компакт-диска книги или с web-сайта ACID.
  2. Поместите tar-файл в каталог /www/htdocs. Распакуйте его там, и он создаст собственный каталог.
  3. Удалите tar-файл, поскольку все, оставленное в корневом каталоге /htdocs, может быть доступно пользователям web-сервера.

Конфигуриривание ACID

  1. Перейдите в каталог /htdocs/www/acid.
  2. Отредактируйте файл acid_conf.php. Строки, начинающиеся с косой черты и звездочки, служат комментариями и инструкциями по конфигурированию. Строки, начинающиеся с $, являются переменными и сообщают программе специфическую информацию о системе.
  3. В инструкциях $ задайте параметры своей системы. В табл. 8.4 перечислены переменные, а также рекомендации для каждого элемента.
Таблица 8.4. Переменные для конфигурирования ACID
Имя переменной Описание
$DBtype Тип базы данных, которую будет использовать ACID. По умолчанию - mysql, но можно также указать postgresql или mssql, если вы хотите применить какую-либо из этих двух баз данных
$alert_dbname Система обнаружения вторжений, данные которой использует ACID. В настоящее время поддерживается только собственный формат Snort snort_log, хотя имеются планы по расширению этого набора
$alert_host Хост, на котором будет храниться база данных сигналов. Может задаваться как IP-адрес или имя хоста. Если ACID и база данных располагаются на одной машине, то следует указать localhost. Для повышения безопасности и производительности целесообразно выделить для базы данных машину, отличную от Web-сервера PHP
$alert_port Порт, по которому происходит обращение к базе данных. Если вы размещаете ее локально, то задайте данное значение просто как " "
$alert_user Имя пользователя базы данных, которое будет применять ACID при протоколировании данных. Проверьте, что оно совпадает с именем пользователя MySQL, созданным при настройке базы данных
$alert_password Пароль пользователя базы данных. И здесь проверьте, что он совпадает с паролем MySQL для данного пользователя
$archive_dbname Имя базы данных, которую Snort использует для архивирования. Подразумеваемое имя snort_archive вполне разумно, если только вы не храните несколько баз данных на одной машине и не хотите задать более содержательные имена
$archive_host Хост, на котором будет располагаться база данных архива. Если она находится на той же машине, то значение должно задаваться как localhost
$archive_port Порт для записи на сервере базы данных. Используйте " ", если запись происходит локально
$archive_user Пользователь базы данных, от имени которого производится запись архивных данных. Обычно это значение совпадает с $alert_user (см. выше), хотя можно создать отдельного пользователя для записи архивов
$archive_password Пароль для пользователя базы данных, от имени которого записываются архивные данные. Обычно совпадает с $alert_password
$chartlib_path Маршрут к модулям создания графиков - /www/htdocs/jpgraph-1.11/src
$chart_file_format Формат файлов графиков. По умолчанию - png. Другими допустимыми форматами служат jpg и gif
  1. После сохранения файла с этими параметрами откройте Web-навигатор и введите /acid/acid_main.php после имени хоста или IP-адреса Web-сервера. Пример: http://localhost/acid/acid_main.php

    Будет выведена страница с конфигурацией ACID. С этого момента можно применять Web-интерфейс для завершения конфигурирования ACID.

  2. Щелкните мышью на кнопке Create ACID AG. Это приведет к созданию базы для данных Snort. Подразумеваемое имя этой БД - "snort".
  3. Перейдите на http://localhost/acid, и вы увидите основную страницу ACID для своей базы данных Snort (рис. 8.2)
Основной интерфейс ACID

Рис. 8.2. Основной интерфейс ACID

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

Основы применения ACID

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

Раздел, расположенный ниже, содержит всю сводную информацию по конкретной группе сигналов тревоги (AG - alert group). AG - это сенсор или группа сенсоров, представленных в этой базе данных. Если вы желаете отслеживать различные группы сенсоров как единое целое (например, сенсоры для различных заказчиков или подразделений), то необходимо создать отдельную базу данных или AG для каждой группы. Это важно для создания отчетов и применения архивных средств ACID. Вы сможете выполнять поиск или запросы только на отдельных AG, а не на множестве AG, поэтому необходимо организовать сенсоры различных AG подходящим образом. Для большинства организаций будет достаточно иметь одну группу сигналов тревоги для всех сенсоров. Но если вы работаете в консультационной компании или имеете дело с большим объемом операций по нескольким подразделениям, то, вероятно, удобнее распределить группы сенсоров по различным AG, чтобы можно было следить за ними по отдельности.

В прямоугольнике слева на экране можно видеть статистику для данной AG: общее число сигналов, число уникальных сигналов и число различных IP-адресов (как исходных, так и целевых), фигурирующих в базе данных. Если у вас несколько сенсоров в сети ACID, то можно щелкнуть мышью на пункте Sensors, чтобы увидеть их список. Можно ограничить поиск данными только одного сенсора. На основной странице представлены также графические профили трафика сигналов для каждого протокола и порта, чтобы можно было понять, каков вид трафика, проходящего через сенсор сетевой системы обнаружения вторжений.

Применение ACID для управления сетевыми системами обнаружения вторжений и их настройки

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

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

Откройте ACID и щелкните мышью на кнопке Unique Alerts. Будут показаны самые свежие из полученных сигналов, сгруппированные по типу (рис. 8.3).

Список самых последних уникальных сигналов тревоги

Рис. 8.3. Список самых последних уникальных сигналов тревоги

На этой странице представлена следующая информация для каждого типа сигналов:

  • Имя сигнатуры.
  • Классификация сигнала.
  • Общее число сигналов этого типа в базе данных.
  • Номер сенсора, с которого пришел сигнал.
  • Число различных исходных IP-адресов, ассоциированных с этим сигналом.
  • Число различных целевых IP-адресов, ассоциированных с этим сигналом.
  • Время прихода сигнала.

Можно выполнить сортировку по любому из столбцов, щелкая мышью на маленькой стрелке вверху столбца. Например, имеет смысл отсортировать список по числу сигналов и щелкнуть мышью на строке, соответствующей максимальному числу срабатываний. Это сузит список до одного типа сигналов. Просмотрите список и попытайтесь определить, действительно ли это проблема безопасности или ложное срабатывание. Наличествуют ли какие-нибудь отличительные особенности? Замешан ли во всех сигналах этого типа один IP-адрес, исходный или целевой? Генерируются ли сигналы с регулярными интервалами или кажутся случайными? Если этот анализ не ведет к каким-либо выводам, то копайте глубже, щелкая мышью на отдельных сигналах. Это позволит увидеть реальный пакет, который вызвал сигнал, что весьма полезно с юридической точки зрения, если вы действительно были атакованы и пытаетесь в дальнейшем отреагировать или преследовать атакующих.

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

В примере на рис. 8.3 Web-IIS cmd.exe является самым распространенным сигналом. Щелкнув мышью на данных сигнала, можно увидеть реальный пакет, который порождает этот сигнал (рис. 8.4). Показан исходный IP-адрес вместе со всеми портами TCP и настройками.

Детали сигнала тревоги в ACID

Рис. 8.4. Детали сигнала тревоги в ACID

По имени хоста можно сказать, что пакет пришел с адреса в Японии (домен верхнего уровня .jp) и определить, можно ли считать обращение к вашей сети с этого адреса нормальным. Можно копнуть глубже и увидеть реальную полезную нагрузку пакета. Слева находятся данные пакета в шестнадцатеричном виде, справа - в текстовом (если их можно представить таким образом). Это показывает реальные команды, которые отправитель пытается выполнить на вашей машине. Глядя на эти данные можно предположить, что кто-то пытается получить доступ к команде cmd.exe, иными словами, получить приглашение командной строки. Очевидно, это атака на вашу систему. К сожалению, это, скорее всего, запрограммированная атака, проводимая Интернет-"червем", а атаки такого типа случаются каждый день десятками, как можно понять по большому числу сигналов cmd.exe в базе данных. Тем не менее, стоит за этим понаблюдать и проверить, не появляется ли этот IP-адрес постоянно. Можно, по крайней мере, написать жалобу поставщику Интернет-услуг и убедиться, что атакованная машина (определяемая по целевому адресу) защищена от подобных вещей. Можно также принять дополнительные меры против IP-адреса, указанного как исходящий, например, начать юридическое преследование или вчинить гражданский иск, если произошло реальное проникновение. По крайней мере, теперь вы точно знаете, какого вида атаки приходят в вашу сеть и что они пытаются делать. Это позволит лучше защитить сеть и реагировать, если она окажется под атакой.

Другие способы проанализировать данные сигналов тревоги с помощью ACID

Кого атакуют?

С помощью ACID найдите наиболее распространенные целевые IP-адреса, то есть IP-адреса, которые, вероятно, атакуются чаще всего и на которых необходимо сконцентрировать усилия по защите. Это поможет также отличить ложные срабатывания от реальных, поскольку вы, возможно, обнаружите, что некая машина создает огромное число сигналов из-за приложения, которое на ней выполняется. Внезапный всплеск количества сигналов на определенном IP-адресе может указать на развивающуюся атаку на эту машину. Затем можно принять меры для повышения безопасности этой машины, провести сканирование уязвимостей, проверить уровень "залатанности", отбрасывать на маршрутизаторе пакеты из враждебного источника и т.д.

Кто атакует?

Определите исходящий IP-адрес, проявляющийся чаще всего. Перейдите с основной страницы к списку исходных IP-адресов. Это покажет IP-адрес и полностью квалифицированное доменное имя и подскажет, откуда идет атака. Сортировка по количеству сигналов позволит увидеть самых злостных нарушителей в терминах порождаемых сигналов. Если IP-адреса с наибольшим количеством сигналов находятся в вашей сети, то, вероятно, имеется внутренний злоумышленник или приложение, которое включает сигнал. Используйте рассмотренный выше процесс для углубления на уровень данных сигнала и анализа сигнала. Если сигналы тревоги порождены внешними IP-адресами, то желательно определить, законен ли трафик, направленный в вашу сеть, или это реальная атака. Просмотрите отдельные сигналы, чтобы понять, что пытаются делать. Щелкните мышью на IP-адресе, будет выведена страница с дополнительной информацией об адресе и некоторыми опциями для дальнейшего анализа (см. рис. 8.5). В ACID можно применить к этому адресу различные функции, такие как обратный поиск DNS, поиск ARIN и даже поиск Sam Spade (аналогичный средству, рассмотренному в "Средства уровня операционной системы" ). Выдача этих функций должна подсказать вам, какая организация владеет этими IP-адресами, контактные адреса электронной почты их центра сетевых операций, и адреса для сообщений о злоупотреблениях (если таковые имеются). Можно использовать эти контактные адреса при регистрации жалобы на выявленную активность. Если вы заметите, что какие-то адреса появляются вновь и вновь, их можно отфильтровать на маршрутизаторе или межсетевом экране.

Детали исходного IP-адреса в ACID

Рис. 8.5. Детали исходного IP-адреса в ACID

Какой сервис атакуется чаще всего?

Определяя порты, на которых чаще всего возникают сигналы, можно понять, на какие сервисы направлено большинство атак. Если вы видите много сигналов на основе Web, следует уделить повышенное внимание усилению защиты web-серверов. Если сигналы показывают высокую активность NetBIOS Windows, то необходимо провести ревизию прав доступа в Windows и политики паролей. Иными словами, анализ подскажет, на каких сервисах сосредоточиться в первую очередь.

Ежедневное применение ACID

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

После входа в базу данных ACID можно сразу перейти в раздел Snapshot (рис. 8.6) и щелкнуть мышью на Most Recent Alerts, чтобы быстро просмотреть вновь поступившие данные о сетевой активности. Будут выведены все сигналы в хронологическом порядке. Если по-прежнему генерируется настолько много сигналов, что их анализ затруднителен, то в разделе Today's Alers выберите Unique. Будут показаны все сегодняшние сигналы, сгруппированные по типам, и можно видеть, какие из них порождают больше всего трафика. Полезны также опции Last 24 Hours и Last 72 Hours из раздела Snapshot. Они позволят выявить наиболее часто встречающиеся сигналы, адреса, и порты за различные периоды времени.

Раздел Snapshot в ACID

Рис. 8.6. Раздел Snapshot в ACID

Графическое представление данных ACID

Если вы предпочитаете зрительные образы, или вам нужны графики для демонстрации руководству, воспользуйтесь имеющимися в ACID средствами для построения графиков и диаграмм на основе базы данных сигналов. Эти средства пока имеют статус экспериментальных, и для работы с ними необходимы графические модули PHP, перечисленные в начале этого раздела, однако они удобны для графического вывода итоговых данных Snort. Графические средства можно вызвать, щелкнув мышью на Graph Alert Data сразу под прямоугольником со статистикой сигналов на основном экране ACID. В результате будут отображены графические опции. Данные для графиков можно организовать следующим образом:

  • По времени (час, день, месяц) относительно числа сигналов;
  • По IP-адресам (исходным или целевым) относительно числа сигналов;
  • По портам TCP или UDP (исходным или целевым) относительно числа сигналов;

Задайте параметры с помощью раскрывающихся полей и щелкните мышью на Graph Data. Проверьте, что заполнили все поля, иначе будет выдано сообщение об ошибке. ACID построит и выведет график. На рис. 8.7 показан пример графика ACID.

График тревожных данных в ACID

Рис. 8.7. График тревожных данных в ACID

Обслуживание базы данных ACID

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

Для архивирования сигналов воспользуйтесь регулятором запросов внизу основного экрана. Создайте запрос для сигналов, которые хотите архивировать, например, все сигналы, сгенерированные за последний год. Затем выберите Archive Alerts в качестве действия для запроса. Можно выборочно архивировать сигналы по дате, типу и другим критериям. Можно также выбрать простое копирование сигналов в архив или их удаление. Архивированные сигналы будут помещаться в собственную базу данных с именем, которое было задано в файле acid_conf.php в процессе конфигурирования.

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

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

Флэми Тех советует:

Аккуратно используйте названия!

Будьте осторожны в разговоре со своим руководством о применении Snort или ACID на работе. Убедитесь, что руководство понимает, что это ценные программы управления, а не противозаконные наркотические вещества!

NPI (Nessus PHP Interface)

NPI

Автор/основной контакт: Kristofer T. Karas

Web-сайт: http://enterprise.bidmc.harvard.edu/pub/nessus-php/

Платформы: Большинство UNIX

Лицензия: GPL

Рассмотренная версия: 01a

Одна из проблем при использовании сканера уязвимостей Nessus для сканирования сетей среднего и большого размера состоит в том, что отчеты получаются весьма устрашающими. Вроде бы и форматы отчетов Nessus хороши, и перемещаться по HTML-документам легко, но, получив на анализ пару сотен страниц данных, довольно трудно выделить на фоне всего этого шума важные данные. Было бы прекрасно иметь возможность организовать результаты сканирования удобным для изучения способом. Для того чтобы анализировать результаты, следует поместить их в базу данных, а не выдавать в виде стандартного плоского файла. Желательно также иметь простой доступ к данным, например, посредством web-интерфейса. Располагая такими средствами, можно легко выделить наиболее важные данные и проанализировать изменение результатов сканирования во времени, чтобы понять, становится ли сеть более или менее защищенной.

К счастью, имеется несколько продуктов, интегрирующих Nessus с базой данных: NesQuick, Java Nessus Report Manager и Nessus PHP Interface (NPI). Для этой книги я по ряду причин выбрал NPI. Во-первых, это на самом деле продукт с открытыми исходными текстами без каких-либо коммерческих завязок. Во-вторых, он опирается на MySQL и PHP, которые мы уже применяли для других средств, таких как ACID. C помощью этих приложений NPI обеспечивает перенос данных Nessus в базу данных и их просмотр при помощи web-навигатора.

NPI по своей архитектуре аналогичен ACID. Он использует базу данных MySQL для хранения результатов и поддерживающий PHP web-сервер для просмотра и запроса результатов. На рис. 8.8 показаны логические компоненты NPI. Одно из различий между архитектурами Snort и Nessus состоит в том, что в Nessus есть две отдельные части, порождающие данные: клиент, инициирующий сканирования, и выполняющий их сервер. В некоторых случаях они могут находиться на одной машине, но на рисунке изображены два различных физических сервера. Имеется также сервер базы данных, куда записываются данные сканирования, и web-сервер, предоставляющий интерфейс к данным. База данных и web-сервер также могут находиться на одной машине или на двух разных.

Логическая архитектура NPI

Рис. 8.8. Логическая архитектура NPI

Рис. 8.8 иллюстрирует потоки данных и логические части системы NPI. Клиент Nessus входит на сервер Nessus для инициации сканирования некоторого объекта. Данные сохраняются на клиентской машине в собственном формате Nessus .nbe. Когда вы получаете необработанный файл, NPI выполняет процедуру его преобразования и импортирует данные в БД MySQL. После этого данные можно просматривать и запрашивать БД посредством любого web-навигатора через PHP-интерфейс. Этот способ анализа результатов сканирования имеет существенные преимущества, поэтому стоит немного потрудиться и установить NPI.

Роман Попов
Роман Попов

После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение?

Александр Путятинский
Александр Путятинский

Добрый день по окончании данного курса выдается сертификат?