Опубликован: 20.02.2006 | Уровень: специалист | Доступ: платный
Лекция 8:

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

Установка NPI

Прежде чем приступать к установке NPI, необходимо располагать работающим сервером MySQL и web-сервером Apache с поддержкой PHP. Если они еще не установлены, то вернитесь назад к соответствующим разделам этой лекции и сделайте это. Когда серверы SQL и Web будут готовы к работе, выполните следующие действия по установке NPI.

  1. Возьмите файл с прилагаемого к книге компакт-диска, распакуйте и "растарьте" программу. Поместите содержимое в отдельный каталог, имя которого не имеет значения (если все файлы находятся в одном каталоге). Например, подойдет каталог /usr/local/nessus-php, если, конечно, у вас есть право на запись в него.
  2. Перейдите в этот каталог и отредактируйте файл nsr-php с помощью текстового редактора. Этот файл содержит переменные (строки, начинающиеся с $), которые позволяют программе контактировать с сервером MySQL. В табл. 8.5 перечислены переменные, которые необходимо отредактировать, и даны рекомендации для задания их значений.
Таблица 8.5. Переменные NPI для сервера MySQL
Переменная Описание
$db_host Задается хост, на котором будет выполняться сервер MySQL. Если сервер MySQL выполняется на той же машине, что и web-север, укажите localhost. В противном случае введите IP-адрес или имя хоста машины MySQL
$db_user Имя пользователя, используемое для входа в базу данных MySQL. Может совпадать с именем, заданным при установке MySQL
$db_pass Пароль, соответствующий вышеуказанному пользователю
$db_database Имя базы данных, созданной для хранения данных NPI. По умолчанию NPI создает базу данных с именем nessus, но при желании его можно заменить другим
$db_suuser Административный пользователь базы данных MySQL. Требуется для процедуры nsr-php. По умолчанию используется root, что годится для большинства установок. Отметим, что это не то же самое, что пользователь root операционной системы
$db_supass Пароль пользователя root для mySQL, соответствующий вышеописанному счету $db_suuser
$your_domain Список доменов, имена которых вы хотите вырезать из вывода. Это очистит отчеты, если вы хотите, чтобы в выдаче присутствовали только имена машин, а не полные имена хостов Интернета. Это необязательная переменная
  1. Откройте файл nsr в текстовом редакторе и создайте в нем те же элементы, что и в шаге 2 (табл. 8.5). Проверьте, что маршрутное имя каталога встраиваемых модулей Nessus задано правильно. В большинстве установок эти модули должны находиться в подразумеваемом каталоге /usr/local/lib/nessus/plugins. Убедитесь, что это действительно так. В противном случае сделайте необходимые изменения в файле nsr.
  2. Отредактируйте файл nessusphp.inc, изменяя переменные так же, как и в двух предыдущих шагах.
  3. Создайте базу данных Nessus. Для этого нужно выполнить процедуру nsr-php:
    php nsr-php -b

    Для ваших данных сканирования будет создана база данных MySQL с именем nessus. Можно войти в нее и убедиться, что нужные таблицы созданы.

  4. Проверьте, что база данных создана должным образом.
    • Войдите в MySQL с помощью команд, описанных выше в этой лекции, во врезке, посвященной MySQL.
    • Наберите show databases; (не забудьте точку с запятой) в командной строке MySQL. Будет выдан список всех баз данных, и среди них должна присутствовать вновь созданная база данных Nessus.
    • Перейдите в эту базу данных, используя команду use NESSUS;, а затем наберите команду show tables;. Вы должны получить результаты, показанные на рис. 8.9, - все три таблицы из базы данных nessus.
      Вывод команды show tables

      Рис. 8.9. Вывод команды show tables
  5. Перенесите файлы из подкаталога www установочного каталога NPI во вновь созданный подкаталог корневого каталога документов web-сервера. Задайте правильные режимы доступа для файлов. В этом месте вы будете осуществлять доступ к базе данных Nessus. Выполните следующие команды из каталога nessus-php:
    mkdir /usr/local/apache2/htdocs/nessus-php
    mv ./www /usr/local/apache2/htdocs/nessus-php
    chown -R www:www /usr/local/apache2/htdocs/nessus-php
    chmod 755 /usr/local/apache2/htdocs/nessus-php/*

    Не забудьте изменить маршрутное имя корневого каталога документов Web, если оно не такое, как в примере. При желании можно изменить имя каталога, в котором находятся файлы nessus-php. В приведенном примере страница доступа NPI помещается в подкаталог nessus-php корневого каталога документов Web. Для пользователя и группы, которые будут осуществлять доступ к базе данных MySQL, в примере использовано одно системное имя (www). Для повышения безопасности заведите специального пользователя, которому будет разрешено только чтение данных. В этом случае необходимо заменить www:www на соответствующих пользователя и группу, которым разрешено только чтение. Необходимо сделать это и для аналогичного счета MySQL.

Программа NPI установлена.

Импорт результатов сканирования Nessus в NPI

Теперь мы готовы к импорту результатов сканирования Nessus в базу данных.

  1. Примените процедуру nsr к каждому импортируемому файлу с результатами сканирования Nessus. (Для этого, очевидно, у вас должны быть файлы проведенного сканирования, сохраненные в собственном формате .nbe.) NPI также допускает и преобразует более старый формат Nessus, .nsr. Наберите следующую команду для запуска nsr из командной строки:
    ./nsr ./scans/scan.nbe

    Замените ./scans/scan.nbe на маршрутное имя своего файла сканирования. Команда импортирует исходный файл Nessus в базу данных. Она также проверит встраиваемые модули Nessus и создает записи в базе данных для всех новых модулей, которые могли быть добавлены.

  2. Теперь все готово к просмотру результатов сканирования Nessus в базе данных. Откройте web-навигатор и введите IP-адрес web-сервера NPI с маршрутным именем индексного файла Nessus-php, например: http://localhost/nessus-php/. Результаты должны появиться в интерфейсе PHP, позволяющем выполнять поиск и сортировку (рис. 8.10).
Основной экран NPI

Рис. 8.10. Основной экран NPI

Применение NPI

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

  • Хоста (IP-адреса) с наибольшим количеством уязвимостей;
  • Наиболее распространенной уязвимости;
  • Наиболее распространенной категории средств использования уязвимостей;
  • Наиболее часто эксплуатируемого сервиса (номера порта);
  • Даты сканирования или диапазона дат;
  • Номера CVE или CAN.

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

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

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

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

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

Гончик Цымжитов
Гончик Цымжитов
Россия, Санкт-Петербург
Александр Косенко
Александр Косенко
Украина, Днепропетровск