Наши партнеры

UnixForum





Библиотека сайта rus-linux.net

Nmap: аудит безопасности реальной системы с межсетевым экраном

Оригинал: Advanced Nmap: Scanning Firewalls
Автор: Rajesh Deodhar
Дата публикации: 1 Февраля 2011 г.
Перевод: А.Панин
Дата перевода: 30 Сентября 2012 г.

После четырех статей (см. 1, 2, 3, 4), посвященных Nmap и описывающих ряд параметров командной строки для выбора типа исследования, описания целей исследования, описания портов, обнаружения устройств, выбора техник сокрытия факта исследования и других параметров, самое время рассмотреть пример использования Nmap в условиях реальных систем. Данная статья продемонстрирует принципы исследования межсетевого экрана, анализ результатов исследования и выбор настроек межсетевого экрана для повышения безопасности сети при помощи Nmap.

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

Программные продукты, установленные на узле

Данные программные пакеты работают на отдельном узле (компьютерной системе) и используются для контроля входящего трафика (поток трафика из сети на устройство) и исходящего трафика (поток трафика с устройства в сеть). Они взаимодействуют непосредственно с операционной системой устройств. В качестве примеров можно привести: IPTables и Firestarter для Linux, и Zone Alarm и Tiny Personal Firewall для Windows.

Межсетевые экраны, установленные на узле, контролируют доступ системных служб, работающих на устройстве, индивидуально для каждой службы, поэтому важные системные службы имеют доступ только к нескольким сетевым ресурсам. Например, доступ к серверу FTP может быть разрешен только с нескольких IP-адресов, а владельцы всех остальных адресов даже не будут знать о существовании FTP -сервера на этом узле.

Также они могут быть настроены таким образом, что только выбранные программы будут иметь доступ к Интернет. Например, вы можете запретить доступ к сети Инетернет для Internet Explorer и разрешить для Mozilla Firefox. Вы также можете запретить программе Nero Burning ROM проверять наличие обновления каждый раз при загрузке ПК.

Автономные межсетевые экраны

К этой категории относятся аппаратные устройства, программные пакеты, либо аппаратно-программные реализации, используемые для контроля входящего трафика из внешней незащищенной сети (обычно сети Интернет) во внутреннюю защищенную сеть (обычно локальную сеть) и исходящего трафика из защищенной сети в незащищенную.

Межсетевые экраны устанавливаются между защищенной и незаищенной сетью. Они наблюдают за трафиком в двух направлениях, и настроены с помощью правил для пропуска только разрешенного входящего и исходящего трафика в зависимости от правил использования сети Интернет, установленных в организации. Межсетевой экран сравнивает все запросы с введенными при настройке правилами и пропускает только те запросы, которые соответствуют правилам.

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

Перед тем, как продолжить, давайте повторим команды Nmap, рассмотренные в предыдущих статьях. Список наиболее важных команд приведен в таблице.

nmap [тип(ы) исследования] [параметры] {описание целей исследования}

Таблица 1: Список наиболее важных команд Nmap

Тип Параметр Описание
Тип исследования -sS TCP SYN-исследование
-sT TCP-исследование при помощи соединения
-sF FIN-исследование
-sA ACK-исследование
-sW Window-исследование
Описание исследуемых портов -p Поиск TCP-портов
-sU Поиск UDP-портов
-r Последовательно исследовать порты (не использовать произвольный порядок)
-F Быстрое исследование, использовать короткий список портов
Идентификация ОС/служб -O Идентифицировать ОС
-sV Определить версии служб
Определение активных узлов -sL Вывести целевые адреса
-PN Считать, что все узлы сети активны
Время/производительность -T(0-5) 5-самый быстрый метод исследования, 0-самый медленный
-F Быстрое исследование, использовать короткий список портов
Исследование межсетевых экранов, EDS, спуфинг -D IP_Addresses Использовать метод узлов-ловушек
-g port_number Подменять исходный порт
-f Использовать фрагментацию пакетов
Параметры вывода -oN Классический вывод
-oG Вывод, совместимый с утилитой grep
-oX Вывод в формате XML
-oA Вывод во всех форматах
Описание целей исследования IP-адрес
192.168.100.1,
192.168.100.2
Задать список IP-адресов через запятую
Диапазон IP-адресов
192.168.100.1-50
Задать диапазон IP-адресов
CIDR
192.168.100.1/24
Бесклассовая нотация
-iL filename Прочитать список IP-адресов из файла с именем filename

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

Таблица 2: Порты при исследовании межсетевого экрана

Состояние порта Тип порта Описание
Заблокирован Закрытый порт Большинство портов, защищенных межсетевым экраном, должны быть закрыты
Фильтруется Фильтруемый порт К малому количеству портов применяют фильтрование, ограничивая доступ служб к сети несколькими IP-адресами
Доступен Открытый порт Очень малое количество портов открыто. В случае обнаружения таких портов, не забудьте исследовать службу более подробно и закрыть порты при необходимости.

Теперь, когда мы освежили в памяти основные понятия, приступим к исследованию работающей системы, защищенной межсетевым экраном. Часто говорят: "опыт - лучший учитель". Для понимания процесса исследования систем с межсетевыми экранами, давайте исследуем работающую систему и рассмотрим полученные результаты.

Исследование работающей системы

Исследуемая система защищена межсетевым экраном IPCop, соединение с Интернет по PPPoE, система работает под управлением ОС openSUSE, версия Nmap 5.21. Подробные характеристики сети:

  • ПК с Nmap: openSUSE Linux - 192.168.1.201 (исследование проводится с правами пользователя root)
  • Внешняя сеть (Firewall Internet (Red) port) - PPPoE, IP 117.x.x.x
  • Внутренняя сеть (Firewall Internal (Green) port) - IP 192.168.1.1

Параметры межсетевого экрана:

  • Веб-интерфейс межсетевого экрана (HTTPS) работавший на TCP-порту 445, перенесен на нестандартный порт 775 для лучшего понимания техники исследования.
  • Доступ из внешней сети к веб-интерфейсу разрешен.
  • Ответ на пинг-запросы из сети Интернет отключен.

(Некоторые строки вывода были удалены для экономии места).

Приступим. Начнем с ACK-исследования для поиска открытых TCP-портов. Сначала было проведено исследование без параметра -PN, но поскольку ответы на пинг-запросы из Интернет заблокированы, было предложено использовать параметр -PN.

Таблица 3: Результат ACK-исследования

Команда и результат Описание
nmap -PN -sA -vv -n -p1-1000 -T4 -oNmapACKScan.txt 117.X.X.X Командная строка для исследования; параметр -n позволяет не проводить разрешение имен DNS, экономя время.
Nmap scan report for 117.X.X.X  
Host is up. Хотя пинг-ответ запрещен, удалось определить, что узел активен.
All 1000 scanned ports on 117.195.42.218 are filtered Не удалось обнаружить открытый порт 775.
# Nmap done at Wed Jan  5 02:04:44 2011 - 1 IP address (1 host up) scanned in 101.87 seconds Потребовалось немного меньше двух минут для завершения процесса.

ACK-исследование, как и Window-исследование (-sW) не позволяет обнаружить открытые порты на защищенной системе. Поэтому давайте попробуем TCP-исследование при помощи соединения.

Таблица 4: Результат TCP-исследования при помощи соединения

Команда и результат Описание
nmap -PN -sT -vv -n -p1-1000 -T4 -oNmapTCPConnect.txt 117.X.X.X  
Nmap scan report for 117.X.X.X
Not shown: 999 filtered ports
  PORT STATE SERVICE
  775/tcp open entomb
Открытый порт 775 обнаружен, название службы entomb
# Nmap done at Wed Jan  5 02:33:32 2011 - 1 IP address (1 host up) scanned in 91.78 seconds  

TCP-исследование при помощи соединения позволило обнаружить открытый TCP порт 775. Поскольку не было проведено определение версии службы, в качестве названия выведено стандартное название службы для номера порта (entomb). Далее было проведено SYN-исследование с фрагментацией. Здесь был применен дополнительный параметр - ограничение времени ожидания RTT до 15 миллисекунд.

Таблица 5: Результат SYN-исследования

Команда и результат Описание
nmap -PN -sS -f -vv -n -p1-1000 -T4 -max-rtt-timeout 15 -oNmapSYNScan.txt 117.X.X.X Параметры времени изменены для лучшей производительности.
Nmap scan report for 117.X.X.X
Host is up (0.049s latency).
Scanned at 2011-01-05 02:41:20 IST for 14s
Not shown: 999 filtered ports
  PORT STATE SERVICE
  775/tcp open entomb
Определен открытый порт 755 со службой entomb
# Nmap done at Wed Jan  5 02:39:34 2011 - 1 IP address (1 host up) scanned in 14.74 seconds Обратите внимание, что за счет изменения времени ожидания, исследование заняло меньше 15 секунд вместо 2-8 минут.

SYN-исследование также позволило обнаружить открытый TCP-порт номер 775. Время, необходимое для исследования, составило 15 секунд вместо 100-120 секунд в предыдущих типах исследования.

Выполнение команды nmap -PN -sS -vv -p1-1000 -oNmapSYNStandardscan.txt 117.X.X.X заняло более 300 секунд. Необходимо выбирать подходящие параметры времени ожидания для повышения эффективности исследования.

Исследование было продолжено с целью определения версии службы, работающей на открытом порту.

Таблица 6: Результат определения версии службы

Команда и результат Описание
nmap -PN -sV -vv -n -p775 -oNmapServiceDetection.txt 117.X.X.X  
   PORT   STATE  SERVICE  VERSION
   775/tcp  open       http            Apache httpd
 
Service detection performed. Please report any incorrect results at http://nmap.org/submit/. Предлагается отправить информацию о некорректном определении версии службы разработчикам Nmap для улучшений в будущих версиях программы
# Nmap done at Wed Jan 5 02:47:29 2011 - 1 IP address (1 host up) scanned in 11.43 seconds Потребовалось менее 12 секунд для идентификации веб-сервера Apache httpd на нестандартном TCP-порту 775.

Кстати, в этих примерах мы исследовали только TCP-порты в диапазоне от 1 до 1000 включительно, хотя разумным решением также является исследование всех 65535 TCP-портов, как и UDP-портов с использованием различных типов исследований и идентификации версий системных служб.

Как только исследования закончены, комбинация результатов может быть использована для проверки настроек межсетевого экрана. Если обнаружены нежелательные службы или нежелательные открытые порты, они должны быть отключены или закрыты соответственно.

Теперь давайте исследуем данный межсетевой экран из внутренней сети.

Таблица 7: Результаты исследования межсетевого экрана из внутренней сети

Команда и результат Описание
nmap -vv -sU -sT -p1-1000 -n -r -T4 -oNmapIPCopInternal.txt 192.168.1.1 Запущено UDP- и TCP-исследование при помощи подключения для портов 1-1000. При выполнения этой команды остается множество записей в системном журнале межсетевого экрана. На рисунке представлен снимок этого журнала. Обратите внимание, что открытые порты не генерируют записей в журнале.
Host is up (0.040s latency).
Scanned at 2011-01-05 15:24:01 IST for 44
Not shown: 998 open|filtered ports, 994 filtered ports
	PORT     STATE     SERVICE
	53/tcp   open      domain
	80/tcp   open      http
	123/tcp  closed    ntp
	222/tcp  open      rsh-spx
	775/tcp  open      entomb
	800/tcp  open      mdbs_daemon
	53/udp   open      domain
	123/udp  closed    ntp
  • Обнаружен ряд открытых TCP- и UDP-портов.
  • Служба синхронизации времени NTP присутствует, но доступ к ней закрыт.

Системный журнал межсетевого экрана
Рисунок 1: системный журнал межсетевого экрана.

Определим версии системных служб.

Таблица 8: Результат определения версий служб

Команда и результат Описание
nmap -vv -p53,80,123,222,775,800 -sV -oNmapIPCopIntUDPServDet.txt 192.168.1.1 Исследуются только открытые порты.
Running service detection against all ports may take just too long!!
Scanned at 2011-01-05 15:36:56 IST for 12s
	PORT     STATE      SERVICE      VERSION
	53/tcp   open       domain       dnsmasq 2.45
	80/tcp   open       http-proxy   Squid webproxy 2.7.STABLE9
	123/tcp  closed     ntp
	222/tcp  open       ssh          OpenSSH 4.7 (protocol 2.0)
	775/tcp  open       http         Apache httpd
	800/tcp  open       http-proxy   Squid webproxy 2.7.STABLE9
  • Обнаружен кэширующий сервер доменных имен DNS.
  • Прозрачный прокси-сервер работает на открытом порту 80.
  • Сервер синхронизации времени NTP работает, но не доступен из внутренней сети.
  • Обнаружен работающий SSH-сервер.
  • Найден HTTP-порт, измененный со стандартного значения 445.
  • HTTP прокси-сервер работает на этом порту.

Наблюдения

На исследованном автономном межсетевом экране выполняется ряд служб, предназначенных для внутренней сети, таких как: DNS, SSH, HTTPS и прокси-сервер. Они доступны всем компьютерам из внутренней сети. Также обнаружен прозрачный прокси-сервер на порту 80, что позволяет пользователям из внутренней сети не менять настройки соединения браузеров. Функция идентификации операционной системы (-A) корректно идентифицирует операционную систему как IPCop Firewall 1.4.10/1.4.21, Linux 2.4.31-2.4.36 вместе с публичными ключами SSH.

Рекомендации для данного межсетевого экрана

  • Веб-интерфейс по протоколу HTTPS используется для удаленного управления межсетевым экраном. Он должен быть включен только во время технического обслуживания и настройки.
  • Нужно отключить режим прозрачного прокси. Эффективный контроль трафика возможен только при непрозрачном режиме работы прокси-сервера.
  • Службы HTTPS и SSH должны быть доступны только для MAC-адреса компьютера системного администратора.
  • Необходимо исследовать все оставшиеся порты (1001-65535), определить выполняющиеся и отключить нежелательные службы.
  • Служба синхронизации времени выполняется, но не доступна из защищенной сети. Нужно открыть доступ для NTP во внутреннюю сеть.

Некоторые подробности о последней версии Nmap

В настоящий момент стабильной версией Nmap является версия 5.21 (Прим. пер.: уже имеется более поздняя версия.). Она доступна для свободной загрузки здесь. Последняя нестабильная версия 5.35DC1 датируется 29 Декабря 2010 года.

Одной из важных функций Nmap является поддержка сценариев, которая позволяет пользователям создавать собственные последовательности исследований и авноматизировать ряд задач. В последний релиз добавлены интересные сценарии, такие как: ftp-bounce для выявления FTP-серверов, подверженных bounce-уязвимости, stuxnet-detect для определения присутствия червя stuxnet в системе, ftp-anon для получения содержимого директорий FTP-серверов с анонимным доступом и другие.

Следите за этой серией статей и вы получите больше информации об удивительном мире Nmap.
Продолжение здесь!