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


Примеры конфигураций сканирования Nessus - часть 3


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

Уголок кодировщиков Флэми Теха:

Написание собственных процедур 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.




Начало  Назад  Вперед



Книжный магазин