[LinuxFocus-icon]
Домой  |  Карта  |  Индекс  |  Поиск

Новости | Архивы | Ссылки | Про LF
эта страница доступна на следующих языках: English  Castellano  Deutsch  Francais  Portugues  Russian  Turkce  

[Фото автора]
автор Georges Tarbouriech
<georges.t(at)linuxfocus.org>

Об авторе:

Georges - опытный пользователь Unix. Он считает что компьютерная безопасность это одна из важнейших проблем нашего столетия.



Перевод на Русский:
Denis Kolobynin <saytoden(at)mail.ru>

Содержание:

 

Nessus : еще один кирпич в стену (безопасности)

[illustration]

Резюме:

Nessus это бесплатный сканер безопасности, который можно найти на http://www.nessus.org. Проект был начат и поддерживается Renaud Deraison. На момент написания этой статьи стабильная версия - 1.09 и экспериментальная - 1.14. Программное обеспечение выпущено под GPL и большое количество людей вносят свой вклад в проект, особенно для написания дополнений... в то время как некоторые другие извлекают выгоду от работы с nessus, даже не упоминая его имя (смотри конец статьи). Nessus работает на многих разновидностях Unix как клиент и сервер, и на Win32 как клиент. Давайте же взглянем на этот замечательный инструмент.



 

Где взять и как установить nessus

Зайдя на http://www.nessus.org, Вы сможете скачать этот программный продукт. Так как nessus доступен как клиент для Win32, в этой статье мы будем рассматривать его Posix версию.
Для использования nessus, Вам нужны будут как минимум - nmap и Gtk (Gimp Toolkit). Ссылки есть на сайте nessus. Однако, если Вы будете использовать nessus из командной строки, то Gtk Вам не нужен.
Вы можете получить nessus тремя разными путями: хорошим, плохим и отвратительным.
Хороший - стандартный путь, скачать архивы с ближайшего ftp сайта. У Вас будет четыре архива: библиотеки nessus, библиотеки nasl, ядро nessus и дополнения к nessus. Распаковав их, Вы собираете и инсталлируете, в порядке указаном выше, как обычно : ./configure, make, make install. Если у Вас установлена предыдущая версия nessus, то Вам надо ее удалить. Для этого, в nessus есть скрипт деинсталляции, который надо запускать после первого "./configure", перед выполнением "make". Это надо сделать для каждого пакета.
Плохой путь - заключается в запуске загруженного скрипта nessus-installer.sh. После ввода "sh nessus-installer.sh" nessus будет автоматически установлен (все четыре пакета).
Отвратительный путь - если у Вас на машине инсталлирован lynx и Вы подключены к Интернет, просто наберите "lynx -source http://install.nessus.org | sh" и всё. Для того чтобы это сделать, Вы НЕ должны быть root-ом.
Очевидно, что рекомендуемый путь - "хороший"... предполагается что, раз Вы скачали nessus, то Вы заботитесь о своей безопасности! Кстати раз уж мы заговорили о безопасности, не забудьте скачать контрольную сумму MD5.
В состав nessus входят различные утилиты (nasl, скриптовый язык, nessus-adduser, nessus-build...). У каждой из этих утилит есть свои man-страницы, для клиента и для сервера. Дополнительную документацию можно получить в файлах дистрибутива (README, INSTALL...) или на сайте nessus.

 

Настройка и запуск nessus

Для того чтобы Вам было проще разобраться, мы будем использовать примеры X11 версии nessus, использующей Gtk.

Сервер nessusd

Для запуска nessus, Вам нужно запустить демон сервера, nessusd. Запуская демона в первый раз, Вам надо задать имя пользователя и пароль, используя команду nessus-adduser. Если библиотеки nessus были скомпилированы с ключом "--enable-cipher" (очень рекомендуется, а лучше использовать обязательно!), то сгенерируется персональный ключ. Этот ключ будет защищен с помощью парольной фразы. При запуске сервера доступно большое количество ключей, про все их можно почитать в man-ах по nessusd.
Здесь Вы можете создавать базу данных пользователей и соответствующие правила. То есть, кому разрешено запускать демон сервера, кому разрешено сканирование (машина, сеть...). Правила имеют форму "accept" или "deny" за которыми следует IP адрес сети с маской.
Например : accept 192.168.1.0/24, разрешает пользователю тестировать всю сеть 192.168.1 .
Также возможно создать только одного пользователя вообще без прав. В случае, если Вы хотите разрешить нескольким пользователям запускать nessusd, Вы должны быть очень осторожны. Вы же не хотите чтобы каждый мог творить с Вашей сетью всё что ему заблагорассудится?
Все настройки nessusd берет из конфигурационного файла, который (обычно) находится в /usr/local/etc/nessus/nessusd.conf. Вы можете подправить сами этот файл, если конечно знаете что делаете.

Клиент nessus

Теперь Вы можете запустить клиент, чтобы подключится к серверу. Для запуска клиента достаточно набрать "nessus &" в командной стоке. После запроса пароля откроется окно настроек nessus. Это окно состоит из семи закладок.
Первая закладка называется "nessusd host". Здесь Вы можете подключиться к хосту nessusd нажав на кнопку "Log in". Само собой вы можете это сделать если только Ваше имя пользователя есть в базе данных пользователей.

nessusd host


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

plugins plugin detail


Третья закладка позволяет Вам определить некоторые настройки для дополнений. Это касается ping, TCP, FTP... Здесь Вы можете настроить способ, с помощью которого nessus будет сканировать хост или сеть.

preferences


Четвёртая закладка позволяет Вам настроить опции сканирования и выбрать сканнер портов. Обычно используется nmap. Информацию о nmap можно получить здесь.

scan options


На пятой закладке Вы указываете nessus цель сканирования. Вы можете указать либо имя хоста, имена нескольких хостов разделенных запятыми, один или несколько IP адресов (также разделенных запятыми) или адрес сети с ее маской (например 192.168.1.0/24). Также есть флажок для переноса зоны DNS. Подключившись к DNS серверу, nessus попробует забрать список хостов в этом домене.

target selection


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

user


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

credits


Если Вы скомпилируете nessus с опцией "--enable-save-kb" то у Вас появится восьмая закладка. Она называется Kb, что в расшифровке значит "knowledge base" (база знаний). Это экспериментальная возможность позволяет использовать результаты предыдущего теста. Эта возможность будет доступной по умолчанию в nessus 1.1.0. Больше информации о kb можно получить на www.nessus.org/doc/kb_saving.html.
После того как Вы прошлись по всем закладкам, можно запустить "это чудо". Достаточно нажать на кнопку "Start the scan". Что же произойдет?

 

Nessus в работе

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

scan status


Как Вы видите, все тесты могут быть остановлены в любое время.
Очевидно, что если Вы сканируете всю сеть с большим количеством хостов, тест может длиться очень долго. Это зависит от операционных систем, скорости сети, типов машин (количества открытых портов), числа активных дополнений и т.д.
Вы также можете проводить тестирование двумя способами : независимое или сравнительное сканирование. Этим можно воспользоваться только при компилировании nessus с ключом "--enable-save-kb", про который было рассказано выше. Независимое сканирование позволяет запустить тесты в фоне, в то время как сравнительное сканирование показывает только разницу между двумя проверками.
Дополнительную информацию по этим возможностям можно найти в документации по nessus (www.nessus.org/doc).
Самое важное, это результат который Вы получите в результате сканирования. Одной из самых замечательных возможностей nessus является способ с помощью которого он создает отчёты.

report


Отчёты весьма подробны и обычно предлагают решения для обнаруженных уязвимостей. И эти решения довольно полезны. Если была найдена уязвимость которая может оказаться ошибочной, то nessus предупредит Вас об этом. Такое может случиться, например, с исправленными версиями некоторых демонов: уже исправленная уязвимость может быть обнаружена как потенциальная угроза. К счастью, для такого рода вещей, быстро обновляются дополнения.
Другая ошибка может случиться при идентификации операционной системы с помощью nmap (2.53). Но она особого интереса не представляет. Лично мне в принципе всё равно, если операционка NotTerminated 4.0 с SP6a идентифицируется как NotTerminated 4.0 с SP5, или ядро Linux 2.2.19 определится как 2.2.14. Я уже не говорю об "экзотических" операционках, таких как AmigaOS или BeOS которые могут определиться как принтер или маршрутизатор. Я не собираюсь писать письма fyodor (автору nmap-а) ради таких вещей: скажите мне, кто сегодня использует такие операционки? Похоже что AmigaOS используют от силы 5 человек... во всём мире :-(
Некоторые другие операционки (такие как MacOS X или QNX) также могут неправильно идентифицироваться, но они либо совсем новые, либо используются очень редко. Опять же, это не так важно, и может быть решено новой 2.54 бета-версией nmap.
Как бы то ни было, главное то, что nessus даст Вам кучу информации которая позволит Вам исправить уязвимости и слабые места в Вашей сети.
Отчёты могут быть сохранены как текстовые файлы, NSR, HTML, смешанный HTML... для сравнения двух сканирований. Очевидно, что состояние сети в конкретное время может совершенно отличаться от того которое было буквально 30 минут назад. Почему? Потому что сеть работает! Это одна из главных причин, по которой обеспечение безопасности сети не является тривиальной задачей: состояние сети постоянно меняется. Если Вы всё еще думали зачем использовать nessus и nmap, то вот Вам ответ.
Если Вам интересно как работает nessus, посмотрите системные логи, а если Вы используете snort, посмотрите и его логи. Дополнительную информацию можно найти в /usr/local/var/nessus.
Теперь, возможно, Вам понадобится немного потрудиться и исправить слабые места многих машин в Вашей сети. Чем лучше Вы защитите каждый хост, тем лучше. Для того, чтобы сделать всё это, лучших инструментов чем nessus (и конечно nmap) Вам похоже не найти.

 

Дополнения

Дополнения это "сердце" nessus. Это тесты безопасности, которые проверяют программу на выявление конкретной уязвимости. Рекомендованным языком для написания тестов безопасности является NASL (Nessus Attack Scripting Language). Большое количество информации о нём можно найти на : http://www.nessus.org/doc/nasl.html.
Соответственно, если Вы захотите внести свой вклад в написание дополнений для nessus, то там же Вы найдете нужную информацию. На время написания статьи, в базе данных nessus содержится 756 дополнений !
Существуют почти 20 типов дополнений : черный ход, отказ в обслуживании, получение удалённо привилегий root... Как уже говорилось, каждое дополнение сообщает о результатах проверки - что не так, и что надо предпринять чтобы разрешить эту проблему.
Нельзя говорить о дополнениях не упомянув CVE (Common Vulnerabilities and Exposures). Это огромная информационная база данных, размещенная на http://cve.mitre.org. Здесь Вы можете найти всё об известных угрозах безопасности и поделиться своей информацией.
Конечно, еще много можно говорить о дополнениях к nessus, но пожалуй даже целой книги не хватит. Для того чтобы получше узнать как они работают и как они написаны просмотрите их тексты в Вашей директории /usr/local/lib/nessus/plugins. Еще раз спасибо Renaud Deraison и его коллегам за отличную работу.

 

А теперь кое-что совсем не по теме !

К сожалению в этом заголовке нет ничего смешного. Три или четыре человека, которые читают мои статьи знают о моих обычных отклонениях от темы: на этот раз, это целый раздел! Взгляните.
Так как я очень интересуюсь компьютерной безопасностью, я довольно часто посещаю сайты посвященные этой проблеме. Это помогает вовремя узнавать о новых уязвимостях или открывать новые утилиты безопасности. Случайно я нашёл несколько продуктов базирующихся на сервисе сканирования. Кстати они называют себя (по крайней мере сейчас) ASP (Application Service Provider). Если пойти немного дальше можно быстро открыть, что они построены на основе nessus. Проще простого. Однако, попытка найти хотя бы упоминание о nessus ни к чему не приводит. Вот это меня задевает!
Большое количество людей работают над открытыми программными средствами, делая свою работу бесплатно. Единственная плата, которую они получают - хорошая репутация. Nessus выпущен под лицензией GPL. Поэтому каждый может использовать продукт, изменять его, адаптировать... упомянув при этом автора продукта. Конечно, эта лицензия не ограничивается только этим. Если Вы не знаете GPL, то советую посмотреть здесь.
По моему, это выглядит как воровство. Например я не нуждаюсь ни в какой лицензии чтобы относиться уважительно к работе этих людей. Я очень уважаю людей, которые работают бесплатно (почти всегда) и делятся всем с обществом. Они заслужили уважение этого общества. Особенно это касается тех случаев, когда люди делают деньги на чьей-то работе. Вы можете назвать это уважением, почётом, это не имеет значения. А правда в том, что похоже эти слова потеряли свой смысл. И можно сказать, что GPL и явилась причиной такой трансформации. ASP не рассматривается как продажа программного обеспечения. А в некоторых странах, GPL вообще не имеет никакой юридической силы.
Решением может быть запрос к подобного рода ASP о реальном движке который выполняет работу. Полученный ответ скажет по крайней мере о том, можно ли считать их "честными". Если же они не ответят или скажут, что они пользуются "разработанным" ими же движком (который Вы идентифицировали как nessus), просто не пользуйтесь их услугами! Лучше поставьте оригинальный nessus, так будет по крайней мере безопаснее.
Но опять-же, нужна ли нам лицензия для того чтобы сказать людям, делающим действительно большую и нужную работу, "спасибо" ? Кстати, Renaud Deraison не собирается изменять лицензию на nessus : nessus так и останется под лицензией GPL.
Извините за такое длинное отступление от темы, но про это надо было сказать.

 

Всё, конец !

Помните, что nessus это продукт высшего качества. Это весьма внушительное программное обеспечение. Используя его в связке с nmap, Вы получите продукт, который должен иметь каждый кто заботится о безопасности своей сети. Это очень доступный продукт, улучшающийся каждый день. Спасибо Renaud и его друзьям за их постоянные обновления дополнений.
Сегодня, сисадмины не могут обойтись без nessus и nmap. Эти утилиты могут найти такие уязвимости о которых Вы даже и не подозреваете. Это действительно работает для большинства операционных сетей в Вашей сети. И если Вы знаете что некоторые операционки как решето, nessus поможет Вам немного расслабиться.
Более того, nessus может помочь Вам понять каким образом сеть (или машина) может быть уязвима.
Если Вы внимательно читаете полученные отчёты, принимаете их к сведению и делаете нужные поправки, Вы поправите безопасность своей сети (или машины). Но имейте ввиду что даже с помощью nessus нельзя добиться стопроцентной безопасности. Дорога к этому рубежу очень длинна, и мы пока далеко от её окончания.
Еще раз, спасибо сообществу открытых программных средств за великую работу по безопасности, которую они проводят.
Что же касается тех замечательных людей, которые пытаются делать деньги на разработках членов сообщества, то я хочу добавить еще кое-что. Сказать "спасибо" не позорно. Быть честным не так уж и ужасно. Если такая тенденция и дальше будет продолжаться, то вполне может случится так, что сообщество распадётся или будут сделаны большие изменения в лицензирование (и возможно в количестве патентов!). В обоих случаях, Вы останетесь предоставленными сами себе и жить Вам будет потруднее. И к сожалению, мы не сможем больше использовать свободное программное обеспечение. Это не подразумевает, что Вы не сможете продавать своё. Подумайте !
В прекрасное время мы живём, не так ли ?  

Страница отзывов

У каждой заметки есть страница отзывов. На этой странице вы можете оставить свой комментарий или просмотреть комментарии других читателей.
 talkback page 

Webpages maintained by the LinuxFocus Editor team
© Georges Tarbouriech, FDL
LinuxFocus.org

Click here to report a fault or send a comment to LinuxFocus
Translation information:
en --> -- : Georges Tarbouriech <georges.t(at)linuxfocus.org>
en --> ru: Denis Kolobynin <saytoden(at)mail.ru>

2001-10-31, generated by lfparser version 2.19