Введение в Nessus

Введение в Nessus

Nessus – это программа со множеством возможностей, однако он довольно сложен в использовании, и существует лишь малое количество статей, направляющих нового пользователя через всю запутанность установки и использования. В этой статье мы расскажем об основах установки и конфигурирования Nessus. Также будут рассмотрены основные функции текущей версии Nessus (Nessus 2.0.8a и NessusWX 1.4.4)

Гарри Андерсон, перевод Gilgamesh 

1.0 Вступление

Nessus - это инструмент для автоматизации проверки и обнаружения известных уязвимостей и брешей в защите. Обычно кто-то - хакерская группа, компания по разработке ПО для обеспечения безопасности или даже простой пользователь обнаруживает новую уязвимость в каком-либо ПО. Эта уязвимость может быть найдена случайно или же путём тщательного поиска; в самых разных подробностях информация о новой уязвимости всплывает в мире компьютерной безопасности. Nessus – это программа со множеством возможностей, однако он довольно сложен в использовании, и существует лишь малое количество статей, направляющих нового пользователя через всю запутанность установки и использования. В этой статье мы расскажем об основах установки и конфигурирования Nessus. Также будут рассмотрены основные функции текущей версии Nessus (Nessus 2.0.8a и NessusWX 1.4.4)

Nessus – это программа, распространяемая по GPL (General Public License). Обычно большинство профессиональных разработчиков программного обеспечения насмехаются над ПО с открытым исходным кодом, считая его работой дилетантов и пустой тратой времени, рекомендуя выбирать «качественные» продукты, разработанные уважаемыми производителями, чья продукция испытана временем и на которых можно сослаться в случае проблемы. Однако всё больше людей начинают понимать, что ПО с открытым исходным кодом - такое как, например, Nessus – далеко не всегда низкого качества, а иногда даже поражает своим блестящим качеством.

Платная техническая поддержка Nessus всегда доступна на www.tenablesecurity.com. Nessus имеет большой коллектив разработчиков, созданный основным автором Nessus - Renaud Deraison. Когда происходили все последние обзоры различных сканеров безопасности , Nessus был равным или даже превосходил продукты некоторые продукты, стоящие тысячи долларов.

Одна из очень сильных особенностей Nessus - это технология клиент-сервер. Сервер может быть размещён в самых разнообразных стратегических точках сети, позволяя осуществлять проверки разных участков сети. Центральный клиент или многочисленные клиенты могут контролировать сервер. Сервер может быть запущен практически на всех разновидностях Unix систем. Он даже может быть запущен на MAC OS X и IBM/AIX, но проще всего его установить на Linux системах. Клиентом может быть как Windows, так и UNIX. Nessus сервер осуществляет действительную проверку, в то время, как клиент отвечает за функциональность конфигурации и отчёты.

2.0 Установка

Установка Nessus на сервер будет довольно сложна для неподготовленного администратора. Прежде всего, необходима предустановленная версия под Unix. Далее, рекомендуется установка некоторых дополнительных приложений: NMAP – принятый стандарт сканера портов, Hydra–неплохой тестер паролей, и наконец Nikto – неплохой CGI сканер. Хотя эти программы не обязательны для установки, но они очень сильно увеличат работоспособность Nessus. Рекомендуются именно они, потому что они считаются лучшими утилитами в своем классе под UNIX системы.

Самый простой метод установки – это использование автоматической установки Lynx. Lynx поставляется практически со всеми дистрибутивами Linux. Вот, как это делается при помощи Lynx (предварительно необходимо войти в систему как user, а не как root):

Lynx -source http://install.nessus.org | sh
После выполнения данной команды практически на любую платформу будет установлен сервер, не требующий никаких добавочный установок. Заметьте, что так же могут быть скачаны и запущены свежие установочные сценарии. Устанавливаете ли вы Nessus непосредственно с веб-сайта или же, используя аналогичный сценарий установки, совершаете установку в offline, в любом случае сценарий настроит временный suid и по необходимости будет запрашивать root пароль. Если вам это не по душе, то вы можете скачать, откомпилировать и установить все исходники самостоятельно. Вышеприведённая команда должна периодически использоваться для обновлений Nessus, так как его новые версии появляются регулярно. Вам будут заданы вопросы о прокси-серверах, о способе загрузки, (www или CVS), и о способе использования и т.д; однако стоит отметить, что в большинстве случаев вариант, предлагаемый по умолчанию, является наилучшим. Это - самый простой способ установки, но вы временно даёте привилегии root на свой сервер install.nessus.org, поэтому здесь присутствует риск нарушения безопасности. Если у вас паронаидальные требования к защите информации, то установку можно сделать старомодным способом, путём загрузки и самостоятельной компиляции исходного кода. Для получения информации по установке «с нуля» можно посетить: www.nessus.org/nessus_2_0.html.

3.0 Настройка

После успешной установки сервера, требуется выполнить некоторые базовые шаги. Первым шагом, завершающим установку, будет добавление нового пользователя. Новый пользователь может быть добавлен командой "nessus-adduser". Nessus задаст вам вопрос о способе аутентификации. Аутентификация может быть осуществлена различными способами, однако, аутентификация при помощи пароля является самым простым и в тоже время самым надёжным способом. Следующим вопросом будет частичная блокировка возможностей некоторых пользователей. Во время использования Nessus пользователь может быть блокирован и допущен к сканированию только некоторых IP адресов. Однако для большинства пользователей эта графа останется чистой, позволяя им сканировать всё, что угодно. Необходимо также сгенерировать сертификат для шифрования трафика между клиентом и сервером. Команда “nessus-mkcert” выполнит данную операцию безо всяких проблем.

3.1 Обновление сценариев

Прежде чем начинать сканирование, следует обновить сценарии сканирования. Сценарии сканирования Nessus можно сравнить с коллекцией отпечатков вирусов обычного антивируса. Каждый сценарий посвящен отдельной уязвимости. Сценарии могут быть написаны как для непосредственной эксплуатации уязвимостей, так и для простого определения версии уязвимого ПО. Сценарии могут быть написаны практически на любом языке, но обычно для этого используется Nessus Attack Scripting Language (NASL). NASL – это собственный язык Nessus, специально разработанный для написания сценариев эксплуатации уязвимостей. Сценарии NASL обычно тестируются, посылая на проверяемый хост особый код и сравнивая результаты с результатами уязвимых значений. Есть лишь небольшое число сценариев, написанных не на NASL. Это C и Perl скрипты, осуществляющие особые цели, которые не так просто создать при помощи NASL. Например, среди них есть сценарий, который содержит раскладку программ и используемых ими портов.

Обновление сценариев желательно делать ежедневно. Новые уязвимости обнаруживаются и распространяются постоянно. Обычно, после появления новой уязвимости кто-то из разработчиков Nessus пишет NASL сценарий и публикует его реализацию на www.nessus.org. Далее это сценарий рассматривается разработчиками и помещается в список одобренных сценариев. Из-за высокого риска, серьёзные сценарии часто выходят в один день с появлением информации о новой критической уязвимости. Обновление сценариев можно осуществить простой командой “nessus-update-plugins”. Но на выполнение этой команды имеет право только пользователь root. Однако, вы не ограничены никакими средствами от просмотра списков сценариев на www.nessus.org. Новые или предназначенные для какой-либо особой цели сценарии могут быть написаны на NASL, так что вы можете создавать ваши собственные сценарии.

3.2 Запуск демона

Теперь Nessus установлен, обновлён и готов к работе. Самой простой способ запустить сервер – это выполнить команду “nessusd –D”. Для его использования вы должны установить клиента. Существует три основных клиента Nessus. Стандартная Unix GUI версия автоматически устанавливается в процессе установки сервера. Но Nessus так же можно контролировать из командной строки. Третий вариант – это существующая версия под Windows, которая называется NessusWX. Лично я предпочитаю NessusWX. Он лучше организован, у него не такие запутанные отчёты и у него лучше реализовано управление различными сессиями (группами хостов для сканирования), чем в версии под Unix. Для запуска стандартного Unix GUI клиента выполните команду вызова Nessus или кликните по его иконке после завершения установки.

3.3 Подключение клиента

Так, как Nessus - это технология клиент-сервер, то, запуская клиента, необходимо подключиться к серверу. В стандартном клиенте введите IP адрес сервера, имя пользователя и пароль (пользователя можно создать командой “nessus-adduser”) и нажмите login. В NessusWX процесс проще, но использует меню подключения | соединения. Клиент подключается к серверу через SSL соединение и загружает список установленных на данный момент сценариев. Эта проверка гарантирует, что и в дальнейшем вы будете держать связь именно с предназначенным сервером. Рисунки 1 и 2 демонстрируют подключение, используя Unix и Windows GUI средства. Рисунок 3 показывает аутентификацию пользователя, с использованием NessusWX клиента.
Рис.1: Запуск Nessus в Unix GUI


Рис.2: Запуск Nessus в Windows


Рис.3: Аутентификацию пользователя с использованием NessusWX клиента.

4.0 Использование Nessus

Теперь, после того, как мы установили и подключили Nessus, давайте взглянем на некоторые доступные особенности этого сканера. Самой главной и сильной особенностью Nessus являются сценарии. Выбор сценариев – это залог успеха всего сканирования. Большинство сценариев очень хорошо написаны, и ошибки в них встречаются крайне редко; однако и здесь есть исключения. Одним из ярких примеров плохо написанного сценария может служить проверка классической Windows IIS hack RFP's MSDAC /RDS уязвимости. Rain Forest Puppy (RFP) обнаружил эту уязвимость в 1999 году. Уязвимость использует файл %system%/msadc/msadcs.dll и позволяет скомпрометировать непропатченый IIS 4.0 сервер. Проблема сценария заключена в том, что он лишь проверяет систему на наличие /msadc/msadcs.dll файла. Сценарий не обращает внимание на наличие патчей, версии windows и т.д. Поэтому при использовании данного сценария, ложное предупреждение об уязвимости, будет появляться при сканировании многих IIS серверов, и этот сценарий следует вручную исключить из списка.

4.1 Выбор опасных / безопасных сценариев

Сценарии делятся на несколько различных и иногда запутанных видов. Один из методов группировки – группировка по категории. Некоторые сценарии различаются, как опасные, вызывающие отказ в обслуживании (DoS). Эти сценарии могут вызвать аварийное завершение работы системы, уязвимой для DoS атаки. Наверное, не стоит говорить, что эти сценарии не стоит вслепую запускать на функционирующей системе. Они не вызывают серьёзного ущерба, но требуют, как минимум, перезагрузки системы. Во всех клиентах есть функция Enable all plug-ins или просто Enable all but dangerous plug-ins (в NessusWX называется "Enable Non-DoS"). Однако учтите, что именно автор сценария решает, является ли его сценарий опасным или нет. В большинстве случаев сценарии очень хорошо отсортированы. Однако и здесь есть свои исключения. Например: rpc_endpoint mapper сценарий вызывает DoS атаку, но не обозначен, как опасный. Стандартный клиент обозначает опасные сценарии предупреждающим треугольником. NessusWX не имеет никакого специального предупреждения об опасных сценариях, за исключением функции Enable Non-DoS. И никакого другого предупреждения, что даже безопасный сценарий может повлечь за собой крах и неработоспособность системы, вы не найдёте. Так, как сценарии посылают нестандартный набор данных, риск во время их использования существует всегда, хотя реальная угроза бывает довольно редко, например, что неизвестный DoS повредит систему. Поэтому каждый, кто сканирует систему, должен понимать, что это может повлечь за собой повреждение системы, даже, когда используются безопасные сценарии. Рисунок 4 показывает выбор сценариев с использованием Unix GUI. Рисунки 5 и 6 показывают выбор сценариев в NessusWX для Windows:


Рис.4: выбор сценариев с использованием Unix GUI


Рис.5: Выбор plug-ins с использованием Windows NessusWX клиента.


Рис.6: Включение безопасных plug-ins в Windows NessusWX.

4.2 Безопасные проверки

Пришло время упомянуть безопасные проверки. Безопасные проверки не используют опасных сценариев, они используют лишь пассивные сценарии и направлены, например, на определение версии используемого софта. Однако безопасные проверки не всегда бывают корректными. Иногда они могут выдавать как ложные предупреждения, так и пропускать опасные уязвимости. Преимущество безопасных проверок заключено лишь в том, что они не вызывают краха системы. Режим безопасного сканирования нужно выставить на панели Scan options. Рисунок 7 изображает безопасную проверку в NessusWX:


Рис.7: Выбор безопасных проверок

Второй способ организации сценариев – это организация по категориям, таким как Windows, FTP, SNMP, SMB, Cisco, и т.д. Но у этого способа организации есть недостатки. Например, куда следует отнести сценарий FTP применимый только для Windows, - к категории Windows или FTP? Ведь выбор категории делает автор сценария, а не кто-то другой. Для облегчения работы был создан механизм фильтрации сценариев. Механизм фильтрации / поиска сценариев очень помогает для изоляции лишних или ненужных вам сценариев. Фильтр может быть установлен на имя сценария, номер сценария и т.п. Кликните на категорию сценария, и вы получите подробности работы и действия этого сценария. Если вам нужна более подробная информация о нём, например NASL код сценария, то вы можете его найти на cgi.nessus.org/plugins/. Заметьте, что сценарии категории «DoS» и сценарии категории «опасные / DoS» это две разные вещи. «Опасные / DoS» категории сценариев эксплуатируют уязвимость, в то время как сценарии категории просто «DoS» чаще всего только проверяют на наличие уязвимости. Если требуется, открыто просканировать систему на наличие уязвимостей, не опасаясь за последствия, то выбор всех сценариев является наилучшим решением. Однако если целью является скрытое сканирование или происходит сканирование рабочей системы, то выбор сценариев становится нелёгким делом.

4.3 Сканирование портов

Другая важная часть процесса сканирования - это сканирование портов. Сканирование портов – это процесс, во время которого определяются активные порты для определённого IP адреса. Каждый порт связан с определённым приложением. Nessus – это разумный сканер, и он использует сценарии только в том случае, если будет найдена программа для проверки на уязвимость. Например, сценарии для веб-сервера будут использованы только в случае, если будет найден веб-сервер. Так как довольно часто порты используются не по их стандартному назначению, для того, чтобы определить их, Nessus использует сценарии, называемые сервисами (services). Сервисные сценарии стараются определить программу, запущенную на каждом порте. Как только программа определена, против неё запускаются сценарии, выбранные пользователем.

Nessus позволяет использовать несколько различных способов сканирования портов. Первый - это классический NMAP сканнер, который получил широкую известность. Также есть встроенный сканер и обычный ping сканер. Как важен грамотный выбор сценариев, так же важен выбор способа сканирования, зависящий от ситуации. Для обычного "SYN" сканирования, с использованием параметров по умолчанию, в Unix GUI следует воспользоваться панелью Prefs, а в NessusWX - панелью сканирования портов, и этого будет вполне достаточно. Рисунки 8 и 9, ниже, показывают обычное SYN сканирование, используя NessusWX и Unix GUI клиента, соответственно:


Рис.8: Выбор SYN сканирование в NessusWX


Рис.9: Выбор SYN сканирование в Unix клиенте

4.3 Определение объекта сканирования

Конечная задача – определить объекты сканирования. Цель сканирования указывается на панели Target Selection. Объектом сканирования может быть как простой IP адрес, так и подсеть или даже диапазон IP адресов. Я обычно стараюсь разбить их на группы. Ведь гораздо легче работать с маленькими группами одновременно. Рисунки 10 и 11 показывают, как выбрать цель в клиентском приложении.


Рис.10: Выбор цели сканирования в Unix GUI


Рис.11: Выбор цели сканирования в NessusWX

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

Теперь с вашим Nessus клиентом и сервером вы готовы сканировать системы. Чтобы начать сканирование в GUI Unix просто кликните на кнопочку "Start the Scan" в окне Nessus. В NessusWX, выберете тип сканирования и выберете Execute. Правильно настроенный Nessus может как обнаружить большинство проблем, связанных с безопасностью, так и предоставить рекомендации по их устранению. Однако неправильное использование может вызвать крах системы и потерю данных. Не стоит сканировать первую попавшуюся систему без разрешения. Я настоятельно рекомендую совершать ваше первое сканирование на ваше собственной, изолированной системе. Рисунки 12 и 13 иллюстрируют сканирование с использованием NessusWX.


Рис.12: Запуск сканирования в NessusWX


Рис.13: Сканирование запущено в NessusWX

5.0 Заключение

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

Ищем уязвимости в системе и новых подписчиков!

Первое — находим постоянно, второе — ждем вас

Эксплойтните кнопку подписки прямо сейчас