Библиотека сайта 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 |
|
Рисунок 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, 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.
Продолжение здесь!