NESSUS - современный анализ безопасности, методы сканирования

Введение.

24 сентября вышла новая версия NESSUS -1.0.5.

А в середине сентября компания "Инфосистемы Джет", специализирующаяся в области обеспечения защиты информационной безопасности объявила о начале распространения бесплатного дистрибутива сканера сетевой безопасности Nessus. Днем раньше дистрибутив этого продукта получил сертификат Гостехкомиссии при Президенте РФ на соответствие представленной версии продукта заявленным техническим характеристикам. Четыреста сертифицированных дистрибутивов продукта (для платформ Linux и Sun Solaris) с голографической маркировкой уже можно использовать для проверки безопасности сетей, хранящих конфиденциальную информацию, в том числе и представляющую собой государственную тайну. Начальник отдела лицензирования и сертификации Гостехкомиссии Юрий Попов сообщил, что этим ПО будут оснащены региональные центры технической защиты информации и органы по аттестации объектов информатизации, аккредитованные Гостехкомиссией РФ. Распространением сертифицированного бесплатного дистрибутива сканера Nessus, а также его поддержкой занимается компания "Инфосистемы Джет". Продукт снабжен документацией и инструкцией на русском языке. На Web-сервере www.jet.msk.su планируется открыть раздел с ответами на типичные вопросы по его установке и обслуживанию. Проведенные компанией исследования позволили сделать заключение, что это свободно распространяемое ПО по техническим характеристикам не уступает коммерческим аналогам. "Инфосистемы Джет" рекомендует этот продукт фирмам разного масштаба - от небольших офисов до крупных предприятий с развитой сетевой инфраструктурой.

Конечно такой серьёзный подход к нашим родным хакерским штучкам радует, но я думаю что лучше пользоваться обычной новой версией. Адресок FTP где покоится сертифицированный nessus =)) такой: ftp://ftp.rbc.ru/pub/jet/nessus-saint.

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

http://www.nessus.org/

Что такое Nessus Project?

Nessus представляет собой бесплатный современный сканер безопасности локальных и удаленных систем.
Начало
Nessus Projectбыло положено в 1998г., первый релиз вышел в апреле. На тот период самым распространенным сканером безопасности являлсяSATAN, давно ставший устаревшим. Некоторые администраторы (да и не только =) до сих пор используютSATANи его молодых последователей -Sara,Saintи тд. Название Nessus, по словам авторов, было выбрано случайно, т.к. такие сочетания, какsecurity scannerвсем надоели :). Nessus - это бесплатный пакет с открытым исходным кодом. Его поддержкой, помимо авторов, занимаются многие энтузиасты со всего мира.

Обзор возможностей и принцип действия.

Задачей Nessus является определение работающих сервисов и уязвимых мест, включая самые последние сообщения о дырахwu-ftpd, наличия демоновDDoS,проблемыipfw FreeBSDи многие другие. Nessus состоит из двух частей:сервераиклиента. Сервер можно установить только на*nix-подобнуюоперационную систему. Отлично подойдутLinux, FreeBSD, Solaris. Клиенты, помимо *nix версий, существуют также дляWindows 9x,NT, имеется клиент вjavaисполнении. Роль клиента сводится к управлению и конфигурированию основного демона (сервера), сбору результатов.
Возможности Nessus довольно велики и намного превосходят возможности
SATAN, SARA, SAINT. Основной принцип сводиться к девизу"НЕ ВЕРЬ ГЛАЗАМ СВОИМ"- вся информация нуждается в проверке, т.е. информация банеров основных служб (напримерftp, www, telnetи тд.) не считается основополагающей. А кто сказал, чтоwwwвсегда запускают на 80 порту? ПодобноSATANон имеет очень гибкую систему настроек как в выборе цели (target), так и в используемых методах сканирования и атак. Nessus производит проверку на наличие более 300 уязвимостей*nixиNTсерверов, а также различного сетевого оборудования, например, маршрутизаторов. Принцип работы, основанный на модулях (plugins), позволяет без труда добавлять модули для проверки новых уязвимостей, что и делают не только разработчики, но и специалисты со всего мира. К достоинствам Nessus можно отнести интеграцию с предустановленной утилитойnmap - The Network Mapper, позволяющей широко варьировать параметры и тип сканирования, например,TCP SYN, TCP FIN, NULL, Xmas Tree scan, Fragment IPи др. Поддерживается и давно известная, но многими недооцениваемая возможность анонимного сканирования по типуFTP Bounce Attack

Результаты проверки выводятся в отдельном окне. В зависимости от типа уязвимости дается некоторое обоснование найденной проблемы, а также полное или частичное её решение. Фаил отчета возможно сохранить в различных форматах (text, html, LaTeXи др.). Однако, для некоторых уязвимостей необходим определенный опыт работы в сетях, и с ОС *nix в часности, для того, чтобы сделать правильные выводы и принять меры. В основном, в рапорте точно указывается причина-решение. Типичная запись может выглядеть так:

Vulnerability found on port domain (53/tcp)

The remote BIND server, according to its
version number, is vulnerable to several
attacks that can allow an attacker to gain
root on this system.

Solution : upgrade to bind 8.2.2-P3
Risk factor : High


Information found on port domain (53/tcp)
The remote bind version is : 8.1.2

или так:

Vulnerability found on port smtp (25/tcp)


The remote SMTP server did not complain when issued the
command :
MAIL FROM: root@this_host
RCPT TO: /tmp/nessus_test

This probably means that it is possible to send mail directly
to files, which is a serious threat, since this allows
anyone to overwrite any file on the remote server.

NOTE : ** This security hole might be a false positive, since
some MTAs will not complain to this test and will
just drop the message silently. Check for the presence
of file 'nessus_test' in /tmp ! **

Solution : upgrade your MTA or change it.

Risk factor : High

Методы сканирования.

Рассмотрим различную технику сканирования, представленную в Nessus, где для этих целей используетсяNmap. Не вдаваясь в тонкости протоколовTCP/IPотметим, что заголовокTCPследует за заголовкомIPи дополняет его информацию. Напомню, что заголовокTCPвключает в себя полеControl Bitsразмером 6 бит, принимающее следующие значения:

URG:активно поле срочного указателя
ACK:
активно поле подтверждения соединения
PSH:
так называемое "проталкивание"
RST:
cброс или перезагрузка данного соединения
SYN:
синхронизация соединения для его продолжения
FYN:
отсутствие данных

connect ()- это самая простая форма сканирования. В этом случае, с интересующим портом устанавливается соединение если он открыт (listening). Недостатком данного метода является то, что он полностью протоколируем, т.е. ваши попытки сканирования будет с усмешкой читать либо в логах либо на консоли тамошний администратор (если он вообще их читает ;). Преимуществом является то, что для проведения данного сканирования не нужны привилегииroot.

SYN scan- самый распространенный метод, в котором не происходит полного соединения, иначе его называютhalf-open. Метод заключается в посылке запросаSYN, и ожидании ответа,ACK|SYN- порт открыт,RST- закрыт. Независимо от ответа, соединение мгновенно! прерывается (вместо того, чтобы послать ответныйACK,т.н. "трехкратное рукопожатие"). Используя данный метод, шансов остаться незамеченным значительно больше.SYN scanостается незамеченным дляTCP-врапперов, но остерегайтесьfirewall-ов иFreeBSDc поднятымipfw(ipfwadm). Дело в том, что многиеfirewall-ыи различныеsynloger-ыотслеживают и протоколиркют подобные SYN запросы.

Cледующие методы похожи: в ответ на запросы закрытые порты отвечают флагомRST, открытые - вообще ничем.

FIN scan(Stealth FIN) - использует чистыйFINзапрос.

Xmas Tree -включает в запрос флагиFIN, URG, PUSH.

Null scan -сбрасывает все флаги.

Отмечу, чтоMicro$oftне придерживается подобных раcширенийTCP, но это может сыграть и на руку (в определении подобной ОС). Я видел удивление одного коллеги, выбравшегоFIN scan, и недоумевающего "откуда на его роднойNTстолько открытых портов?" (выводы сделайте сами). Также эти методы "не работают" применительно кОС HP-Unix, IRIX, IOS cisco и MVS, хотя в последних версиях ,возможно, ситуация изменилась. Некоторое время назад подобное сканирование могло остаться незамеченным.

Fragment IP packets- используется как расширенный вариантSYN, FIN, Xmas, Nullсканирования. Суть заключается в разбиении заголовка на фрагменты, что может сбить с толку некоторыеIDS(Intrusion Detection Systems) и различные пакетные фильтры, некоторыеfirewall-ы. Но опять же, свои машины в период работы я бы не рискнул сканировать подобным методом в виду непредсказуемой реакции. Отмечу, что данный метод доступен для реализации не на всех системах.

FTP bounce scan- метод соединения с некоторым ftp сервисом и использованием его в качестве proxy для проведения сканирования других хостов. Метод хорошо описан в книге"Атака на интернет"и я не буду останавливаться на нем подробно. Отмечу, что не все ftp сервера поддерживают данный метод, сейчас тем более. В настройках Nessus необходимо настроить аккаунт через который вы собираетесь проводитьFTP bounce scan, сам же Nessus отлично определяет возможность подобного использованияftpd.

Ident scan- использование легального сервисаidentd113 порта *nix, так же хорошо описано в книгеАтака на интернет,идея заключается в получении информации о соединении пользователей с сервисами на данной машине. В нормальной ситуации вряд ли у вас будет возможность воспользоваться этим методом.

UDP scan- определяет открытые портыUser Datagram Protocol(RFC 768). Cмысл заключается в посылке нулевого пакета на каждый порт, и в случае если порт закрыт, мы получимICMPсообщение о его недосягаемости. Многие недооценивают данный метод, забывая, что существует масса проблем с безопасностью служб, которые используютUDP(напримерtftp, DNS, bo;). Применительно к некоторым *nix машинам сканирование может затянуться (вследствии фильтрацииUDPпакетов) , а вот для windoze все будет OK!

Хотелось бы отметить еще два интересных метода -ICMP ping & TCP ACK ping. Они хороши в том случае, если необходимо лишь узнать жива ли машина или нет. Nessus и так не будет атаковать хост который в дауне. Правильное использованиеTCP ACK pingпозволит вам обойти firewall.TCP ACK ping-очень красивая и характерная чертаNmap, но при правильном администрировании сканируемой машины вы не останетесь незамеченным.

Комментарии к установке.

Системы на которые Nessus ставиться точно:Linux Red Hat 5.1-6.2, Linux Mandrake 6.0-7.0, Black Cat 6.0-6.2, FreeBSD 3.x, 4.x. Добавляем сюда OpenBSD.. По утверждению авторов и пользователей, Nessus ставиться почти на все *nix системы, но вышеперечисленные я проверял. Необходимым условием является наличие cледующих компонентов, скачайте и установите их перед сборкой Nessus, если они у вас не установлены, а также настройте работуX-Windows.

GTK - The Gimp Toolkit, version 1.2, иначе вы не сможете работать с клиентом на *nix машине, Во всех последних дистрибутивахLinux, FreeBSDимеется, но не забудте установитьgtk-devel.

Nmap - The Network Mapperжелательно версии не ниже2.52, безnmapNessus работать будет, но вы потеряете очень много.

Скачать Nessus вы можете со следующих серверов:

Месторасположение - сервер


United States (East Coast)
ftp://ftp.nessus.org/pub/nessus/nessus-1.0.4/
United States (West Coast)
ftp://mirror.arc.nasa.gov/pub/tools/nessus/nessus-1.0.4/
Germany
ftp://ftp.gwdg.de/pub/linux/misc/nessus/nessus-1.0.4/
Germany
http://ftp.gwdg.de/pub/linux/misc/nessus/nessus-1.0.4/
France
ftp://nessus.via.ecp.fr/nessus/nessus-1.0.4/
France (slow)
ftp://cvs.nessus.org/pub/nessus/nessus-1.0.4/
Switzerland
ftp://sunsite.cnlab-switch.ch/mirror/nessus/nessus-1.0.4/
Russia
ftp://ftp.chg.ru/pub/security/nessus/nessus-1.0.4/
Sweden
ftp://ftp.sekure.net/pub/nessus/nessus-1.0.4/
Thailand
ftp://ftp.nectec.or.th/pub/mirrors/nessus/nessus-1.0.4/
Portugal
ftp://ftp.pt.nessus.org/pub/nessus/nessus-1.0.4/
Australia
ftp://ftp.au.nessus.org/pub/nessus/nessus-1.0.4/
Canada
ftp://ftp.stuff.ca/pub/nessus/nessus-1.0.4/

Файлы Nessus которые вам необходимо скачать(на момент корректировки статьи доступна версия 1.0.5):

- nessus-libraries
- libnasl
- nessus-core
- nessus-plugins

Распаковка производиться командамиgzip -d имя_файлаиtar -xvf имя_файла. Компиляция должна происходить именно в вышеперечисленном порядке. Отмечу (это не относится к пользователямDIGITAL/OS), что компилировать Nessus необходимо пользователю root (в противном случае вам придется править файл конфигурацииinclude/config.hв директории~/nessuse-core). Магические слова для *nix компилируют каждый пакет, например для компиляцииnessus-libraries:

#cd nessus-libraries-1.0.4

#./configure

#make

#make install

или же одной командой, если вы не хотите читать сообщения на консоли/терминале:

#./configure & make & make install

Тоже самое необходимо проделать с остальными пакетами. Проблемы могут возникнуть при компиляцииlibnasl. В некоторых системах необходимо экспортировать путь#export PATH=$PATH:/usr/local/lib, либо отредактировать свойprofile. При инсталяции на FreeBSD4.x необходимо после установкиnessus-librariesотредактировать/usr/local/bin/nessus-config, заменив строкуCIPHER="-lpeks"наCIPHER="-lpeks -lgmp"(данная проблема встречалась в версиях младше 1.0.4, и должна быть исправлена). В некоторых версияхLinuxнеобходимо убедится, что в файле/etc/ld.so.confесть строка/usr/local/lib,если её нет, добавьте, и дайте командуldconfig. Пользователям*BSDнеобходимо перекомпилировать ядро раскомментарив строкуpseudo-device bpfilter NUM(у меня стоит 16), и создав соответственно ноды для устройств./MAKEDEV bpf0-16(для каждого отдельно). Если при инсталяции возникли проблемы, обязательно загляните вmail-list, лично я нашел там все мыслимые и немыслимые вопросы-ответы. Можете посмотретьFAQ.

После инсталяции необходимо создатьnessusd account, т.к.nessusdимеет собственную базу пользователей. Для этого необходимо воспользоваться утилитойnessus-adduser(в предыдущей версии я не смог запустить nessus, т.к.nessus-adduserзапретил мне соединяться с nessusd, хотя я явно указал обратное; решается правкойnessus-users). Далее, вам возможно захочеться посмотреть и поправить (необязательно) конфигурациюnessusd /usr/local/etc/nessus/nessusd.conf.

Готово!!! Теперь можно запускатьnessusdиз подroot: #nessusd -D. Последующий запускnessusвыдаст интерфейс пользователя, где вы сможете после аутентификации внести все настройки и начать сканирование.

Пожелания и советы.

  • Никогда не сканируйте чужие машины не получив разрешение у администратора(ов) этих машин.
  • Никогда не пользуйтесь клиентомNessusдляWindowsиJava, если есть возможность работать в *nix.
  • Убирайте галочку cplugin_ов DoS атакв настройках (зависит от ситуации), иногда это бывает летально ;)
  • Найдя брешь в защите, не поленитесь посмотреть исходники тогоplugin_а, который это обнаружил. Ломать или защищаться, а знать нужно.
  • Не пишите глупые вопросы вmail-list, особенно от чужого имени.

И главное! Пейте хорошее пиво, учите asm, и если останется время рулите в QIII Pro mode.(кажется про семью еще забыл:))

Благодарности.

Авторам проекта Nessus (за работу=):

Renaud Deraison,Jordan Hrycaj

Бочкарев Денис



Сетевые решения. Статья была опубликована в номере 10 за 2000 год в рубрике software

©1999-2024 Сетевые решения