|
||
|
||
Nessus - современный анализ безопасности, методы и типы сканирования |
||
Бочкарев Денис (webmaster@tatasu.ru)
Введение. Все большее внимание вопросам безопасности уделятся при построении и эксплуатации сетей. В сети достаточное количество людей, которым было бы приятно навредить Вашим хостам, испортить Вашу работу и Ваше настроение. Администраторам часто не хватает времени для тестирования своих узлов, поиска новых инструментов и технологий защиты, не говоря уже о раскрутке кампании на выбивание средств для покупки дорогих, коммерческих средст защиты. Моя статья посвящена относительно новому сканеру безопасности - Nessus, призванному прийти на помощь как администратору, так и хакеру. Что такое 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 Solution : upgrade to bind 8.2.2-P3 Information found on port domain (53/tcp) или так: Vulnerability found on port smtp (25/tcp) The remote SMTP server did not complain when issued the
command : This probably means that it is possible to send mail directly NOTE : ** This security hole might be a false positive, since 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-ов и FreeBSD c поднятым 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 - использование легального сервиса identd 113 порта *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. По утверждению авторов и пользователей, Nessus ставиться почти на все *nix системы, но вышеперечисленные я проверял. Необходимым условием является наличие cледующих компонентов, скачайте и установите их перед сборкой Nessus, если они у вас не установлены, а также настройте работу X-Windows. GTK - The Gimp Toolkit, version 1.2, иначе вы не сможете работать с клиентом на *nix машине, Во всех последних дистрибутивах Linux, FreeBSD имеется, но не забудте установить gtk-devel. Nmap - The Network Mapper желательно версии не ниже 2.52, без nmap Nessus работать будет, но вы потеряете очень много. Скачать Nessus вы можете со следующих серверов: Месторасположение - сервер
Файлы Nessus которые вам необходимо скачать (на момент написания статьи доступна стабильная версия 1.0.4): - 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. Убирайте галочку c plugin_ов DoS атак в настройках (зависит от ситуации), иногда это бывает летально ;) Найдя брешь в защите, не поленитесь посмотреть исходники того plugin_а, который это обнаружил. Ломать или защищаться, а знать нужно. Не пишите глупые вопросы в mail-list, особенно от чужого имени. Источник: http://www.void.ru
|
||
|
||
Copyright c 2000г. "Internet Zone" & Nik Romanov, info@izcity.com | ||
Копирование и использование данных материалов разрешается только в случае указания на журнал "Internet Zone", как на источник получения информации. При этом во всех ссылках обязательно явное указание адреса вэб-сайта http://www.izcity.com/. При наличии у копируемого материала авторов и источника информации - их также нужно указывать, наряду со ссылкой на нас. |