В политике сканирования Nessus в разделе Discovery можно выставлять порты, которые нужно сканировать. Однако во время сканирования Nessus вы также можете увидеть трафик, идущий к портам за пределами выбранного в политике диапазона. В этой короткой статье содержится информация о том, почему сканируются порты за пределами указанного диапазона и как этого можно избежать.
Nessus может штатно подключаться к портам вне диапазона Port Scan Range на этапе оценки уязвимостей
Регулировка диапазона сканирования портов (настройка Port scan range) — это способ настройки политики обнаружения хостов в сети, которая позволяет вам выбрать баланс между тщательностью и скоростью сканирования, а не способ управления трафиком сканера Nessus.
Причиной описанного выше поведения является то, что диапазоны сканирования портов находятся в разделе Discovery, и, как следствие, они применяются только к этапу Обнаружения хоста в сети (Discovery), а не к дальнейшему этапу оценки уязвимостей на этом хосте (этап Оценка / Assessment).
Во время выполнения задачи сканирования Nessus хранит внутреннюю таблицу состояния портов каждого сканируемого хоста. Многие плагины, которые используется сканером Nessus на этапе оценки на уязвимости, проверяют состояние конкретных портов, жестко прописанных в исходном коде этих плагинов, до попытки подключения к ним. Порты за пределами диапазона сканирования портов этапа Discovery не были просканированы и поэтому будут иметь неизвестное состояние в таблице портов. По умолчанию функция get_port_state() возвращает TRUE, если состояние порта неизвестно. Это приведет к попытке подключения Nessus к соответствующему порту, который не был просканирован на этапе Discovery.
Как избежать подключения к портам вне Port Scan Range на этапе оценки уязвимостей
В настройках этапа Discovery есть опция «Считать непросканированные порты закрытыми» (Consider unscanned ports as closed), при которой get_port_state() будет возвращать FALSE, если состояние порта неизвестно. Этот параметр предотвратит дальнейшие попытки подключения к портам за пределами указанного диапазона портов (при условии, что перед подключением будет выполнена проверка состояния).
Однако это правило применяется только при удаленном сканировании без учетной записи.
Особенности при сканировании хоста с учетной записью
Настройка «Диапазон сканирования портов» управляет сканированием портов в удаленном (сетевом) режиме, а не локальной инвентаризацией (enumeration) портов. Если проходит авторизованное сканирование с учетной записью на хостах Windows или Linux / UNIX, локальная команда netstat может локально выдать открытые порты и за пределами диапазона разрешенных портов.
При сканировании также будут запускаться плагины локальной инвентаризации портов (enumeration), если эти плагины включены. Если эта проверка обнаруживает открытые порты, даже те, которые не находятся в диапазоне сканирования портов, она добавит их в диапазон сканирования портов. Затем сканер удаленно проверит порты, чтобы убедиться, что они открыты.
Что делать, если я все-таки хочу жестко запретить сканирование определенного порта?
Можно предотвратить обмен данными с определенным портом с помощью локального файла nessusd.rules на сканере Nessus. Дополнительные сведения о nessusd.rules читатйте в статье Что такое файл nessusd.rules?
Как понять, какой плагин сканирует ненужный порт?
Чтобы задокументировать подробности сканирования и выявить плагин, который сканирует ненужный порт, следуйте методу 2 из статьи Как определить, какой плагин вызывает наблюдаемое поведение на цели.
Это перевод оригинальной статьи на портале Tenable Community.