Инструменты безопасности с открытым исходным кодом

Примеры конфигураций сканирования Nessus


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

Пример конфигурации 1: Внешнее сканирование множества IP-адресов без межсетевого экрана

Это простейшая из возможных конфигураций, которая требует наименьших изменений в подразумеваемой конфигурации Nessus.

  • Предпочтения: Оставьте все открытым настежь; никакой скрытности на самом деле не нужно, однако сканирование SYN снизит сетевой трафик.
  • Опции сканирования: При сколько-нибудь заметном числе хостов лучше применять встроенное сканирование SYN, так как сканирование с помощью Nmap может потребовать много времени.
  • Оставьте все остальные опции в подразумеваемом состоянии.

Пример конфигурации 2: Внешнее сканирование сети с одним внешним IP-адресом межсетевого экрана

Это немного сложнее и требует некоторой скрытности, чтобы пакеты сканирования попали за межсетевой экран.

  • Предпочтения: Используйте Nmap для SYN-сканирования с фрагментацией пакетов. Для единственного IP-адреса память и время не составляют проблемы.
  • Опции сканирования: Не делайте эхо-тест хоста, так как большинство межсетевых экранов отбрасывают подобные пакеты, и вы не получите никаких результатов.
  • Оставьте все остальные опции в подразумеваемом состоянии. Если вы ничего не получите в ответ, попробуйте сканирование без включенного сканирования портов.

Пример конфигурации 3: Внешнее сканирование сети с несколькими общедоступными IP-адресами - для межсетевого экрана и в демилитаризованной зоне

  • Предпочтения: Используйте Nmap для SYN-сканирования с фрагментацией пакетов.
  • Опции сканирования: Выполните эхо-тестирование хостов, чтобы исключить недействующие IP-адреса в демилитаризованной зоне. Для целевых сетей из более чем 20 хостов используйте встроенное сканирование SYN.
  • Оставьте все остальные опции в подразумеваемом состоянии. Если вы ничего не получите в ответ, попробуйте сканирование без сканирования портов.


Пример конфигурации 4: Несколько внешних IP-адресов с сетевой системой обнаружения вторжений
  • Предпочтения: Можно попробовать несколько методов обхода системы обнаружения вторжений. Можно также применить экзотические типы сканирования, такие как FIN и XMAS, если общедоступные серверы не являются Windows-машинами. Стоит попробовать растягивание интервалов между пакетами сканирования, хотя это и затянет сканирование.
  • Опции сканирования: Откажитесь от сканирования портов, иначе наверняка сработает система обнаружения вторжений.
  • Встраиваемые модули: Стоит отключить самые шумные встраиваемые модули, такие как "потайные входы".

Пример конфигурации 5: Внутреннее сканирование позади межсетевого экрана
.При таком сканировании для вас важен состав генерируемых данных, а скрытность не имеет большого значения (поскольку вы уже находитесь позади межсетевого экрана).
  • Предпочтения: Сработает простое SYN-сканирование, так как не нужно заботиться о прохождении через межсетевой экран. Фрагментация пакетов не нужна, поскольку это замедлит сканирование. Если вы находитесь в сети Windows, введите свои входные данные для домена, чтобы Nessus мог проверить настройки ваших пользователей Windows. Можно выполнить одно сканирование с входными данными и одно без таковых, чтобы увидеть, что получит некто, не располагающий информацией о пользователях, при простом подключении к вашей ЛВС.
  • Опции сканирования: Для большого числа хостов используйте встроенное SYN-сканирование. Эхо-тестируйте удаленные хосты, чтобы быстро исключить недействующие IP-адреса.
  • Встраиваемые модули: Стоит отключить некоторые категории модулей, неприменимые для внутреннего сканирования, такие как подразумеваемые системные счета UNIX (если у вас нет внутренних UNIX-машин), и то же для модулей Windows, если все машины работают под управлением UNIX. Маршрутизаторы и межсетевые экраны брать в расчет не нужно, если только у вас нет внутренних сегментов ЛВС с межсетевыми экранами. Если вы не используете Novell Netware, отключите эту категорию модулей.


    Отключите все остальное, что не соответствует вашей внутренней среде ЛВС.

Уголок кодировщиков Флэми Теха:
Написание собственных процедур Nessus
Как упоминалось выше, Nessus можно индивидуализировать и расширить для ваших конкретных нужд, поскольку его исходные тексты открыты. На самом деле, Nessus даже легче расширять, чем другие программы с открытыми исходными текстами, так как он включает собственный встроенный интерпретируемый язык, называемый Nessus Attack Scripting Language (NASL). NASL позволяет легко и быстро писать новые тесты для Nessus-сканирования, не погружаясь во внутреннее устройство Nessus и не занимаясь сложным программированием.
Примечание: Тем не менее, прежде чем браться за NASL, необходимо владеть основами программирования (в частности, языком программирования Си). NASL очень похож на Си с многочисленными изъятиями - в нем нет, например, структур и деклараций переменных. Это облегчает быстрое написание новых процедур для проверки некоторых условий.
Процедуры NASL очень похожи на любые другие программы с переменными, условными инструкциями и функциями, которые можно вызывать. Благодаря Рено и его команде, создавшим множество функций, которые можно использовать для упрощения работы, вам не придется самостоятельно придумывать, как изготовить пакет или проверить открытый порт.
Каждая процедура состоит из двух частей. Первая является разделом регистрации, который Nessus использует для целей документирования. В нем вы информируете Nessus, какого типа эта процедура, и предоставляете некоторые сведения о ней, чтобы пользователи знали, что она делает. Второй раздел является разделом атаки. Именно здесь вы реально выполняете код по отношению к удаленной машине и что-то делаете с результатами.
Предположим для примера, что в вашей сети возникли реальные проблемы с Yahoo Messenger. Запуск Nessus или сканера портов показывает открытые порты, но вы хотите получить специальное уведомление, когда проявится порт Yahoo.
Для этой цели можно написать на NASL индивидуальную процедуру Nessus. На машинах с запущенной программой Yahoo Messenger открыт порт 5101, поэтому с помощью функции NASL get_port_state() можно легко и быстро найти машины, выполняющие эту программу, и известить об этом. Ниже представлен пример программы на NASL для решения поставленной задачи. Все строки с символом # в начале являются комментариями и не обрабатываются интерпретатором NASL.
# Это раздел регистрации # Проверка на Yahoo Messenger # if(description) { # Это раздел регистрации и содержит информацию для Nessus script_name(english:"Looks for Yahoo Messenger Running"); script_description(english:"This script checks to see if Yahoo Messenger is running"); script_summary(english:"connects on remote tcp port 5101"); script_category(ACT_GATHER_INFO); script_family(english:"Misc."); script_copyright(english:"This script was written by Tony Howlett"); exit(0); } # Это раздел атаки # Проверить, открыт ли на удаленной системе порт 5101 # Если открыт, то вернуть уведомление port = 5101; if(get_port_state(port)); { report = "Yahoo Messenger is running on this machine!"; security_warning(port:5101, data:report); } # Конец
Вот и все. В этой простой процедуре используются два предположения. Первое состоит в том, что порты удаленной машины были просканированы по крайней мере до номера 5101, так как функция get_port_state могла бы ошибочно вернуть истину для порта 5101, если его состояние было неопределенным. Предполагается также, что машина с открытым портом 5101 выполняет Yahoo Messenger, хотя это может быть и некоторое другое приложение. При желании можно добавить дополнительную логику для проверки этого, перехватывая заголовок или некоторую часть ответа и анализируя его характеристики.
Это очень простой пример. С помощью NASL можно сделать значительно больше. Обратитесь к оперативной справке NASL, чтобы получить дополнительную информацию обо всех функциях, которые можно использовать, и синтаксисе языка. Существует прекрасный учебник, написанный самим Рено, расположенный по адресу http://www.nessus.org/doc/nasl.html.
Содержание раздела