. При встрече с незнакомым компьютером такие программы, как Foundstone SuperScan 4.0 и сканер с открытым кодом Nmap, выдают не только информацию о том, что порт TCP 80, обычно работающий по протоколу HTTP, открыт, но и свойства или заголовок прослушивающего приложения. Мне нравится сканер Nmap, см. статью "Поиск опасных программ, скрытых в широко используемых портах", и не только из-за возможностей сканирования. Нравится, что Nmap запускается из командной строки, и что вывод результатов осуществляется в различных формах. Другими словами, этот сканер является прекрасным решением для всех видов централизованного сетевого аудита. Давайте посмотрим, как можно использовать сканер Nmap и его гибкий механизм вывода, чтобы быстро определить, установлено ли антивирусное программное обеспечение на компьютеры подсети.
Антивирусы и Nmap
Антивирусное программное обеспечение является основой любой корпоративной программы безопасности и может устанавливаться на шлюзовые устройства, почтовые шлюзы или почтовые серверы. Мы рассмотрим антивирусы, устанавливаемые на клиентские системы - рабочие станции и переносные компьютеры, используемые сотрудниками ежедневно. Данные системы формируют первую линию обороны, особенно это касается переносных компьютеров, которые используются пользователями дома или в точках доступа для подключения к внешним сетям.
Большинство корпоративных антивирусных продуктов включают в себя административную консоль для управления сетевыми приложениями и обработки предупреждений, поступающих с клиентских систем. Но консоль может предоставить лишь ограниченные возможности проверки наличия антивирусного клиента на каждой системе. Некоторые продукты включают поддержку сценариев регистрации, web-интерфейсов установки, службы Active Directory (AD) или установку по сети. Однако что делать, если вы управляете многодоменным окружением или необходимо проверить компьютеры, которые не входят в ваш главный домен? В таких случаях автоматизированные средства поиска незащищенных клиентов могут не работать.
И вот здесь в игру вступает Nmap. Так как большинство корпоративных антивирусных клиентов прослушивают сетевой порт с целью получить команды от главного (то есть родительского) сервера, мы можем использовать возможности сенсора Nmap (вдобавок к нашим знаниям об антивирусном клиенте) для окончательного сканирования всей подсети и поиска устройств, на которых не запущены антивирусные приложения. Однако стоит помнить, что это тип аудита не определяет правильность настройки антивирусного программного обеспечения. Например, тот факт, что клиент установлен (и прослушивает свой порт), не гарантирует своевременного обновления списка подписей данного клиента. С другой стороны, в процессе аудита будут выявлены клиенты, требующие дополнительного внимания.
Перед тем как начать, я бы хотел рассказать о некоторых аспектах, возникающих при использовании данного решения. Мы применяем универсальный сканер портов, сканируя подсеть с целью получить полезную информацию - в нашем случае выясняем, осуществляется ли прослушивание порта антивирусным клиентом. Данный механизм хорошо работает с такими решениями как Symantec Antivirus редакции Corporate или Enterprise, но может плохо взаимодействовать с другими антивирусными продуктами, особенно с антивирусами, разработанными для домашнего использования, которые могут и не прослушивать соответствующий порт. Кроме того, если вы задействуете локальные брандмауэры, на клиентских системах могут быть заблокированы некоторые процессы, используемые службой Nmap. И, наконец, нужно будет выявить все сетевые устройства (коммутаторы и маршрутизаторы) и компьютеры с системами Linux или Mac OS X в вашей подсети, так как программа всегда будет сообщать о том, что на них не установлен антивирусный клиент.
Определение порта, используемого вашим антивирусом
После того, как вы зайдете на страницу http://insecure.org и скачаете последнюю версию службы Nmap, следующим шагом будет определение сетевого порта, используемого антивирусным клиентом. Вы можете получить эту информацию от поставщика услуг доступа или из Internet - например, первая же ссылка, найденная по запросу "Symantec antivirus network port", приведет вас к статье из базы документации компании Symantec, в которой написано, что основным портом для клиент-серверных соединений является порт TCP 2967. Другим способом определить, какой порт прослушивает антивирусный клиент, является использование команды
netstat -anob
на компьютере с системой Windows XP Service Pack 2 (SP2), где установлена рабочая версия антивирусного клиента.
Старая команда netstat показывает порты, открытые на локальном компьютере, а более новые версии выдают идентификатор процесса (PID) и имя связанного с ним исполняемого файла, при использовании параметров -o и -b соответственно. При запуске этой команды в системе XP SP2 с установленным антивирусным клиентом Symantec AntiVirus 10.0 мы получим подтверждение того, что приложение rtvscan.exe (реальное имя антивирусной программы) работает через сетевой порт TCP 2967.
Настройка службы Nmap
Далее, напишите команду Nmap с соответствующими параметрами для сканирования этого порта, предполагая, что если служба Nmap сообщает об открытом порте, то на данном компьютере установлен антивирусный клиент. Конечно, все информационные среды отличаются друг от друга, поэтому после того, как вы проверите вашу сеть, будьте готовы применить другие методы для подтверждения полученного результата и помните, что данный метод лишь проверяет, прослушивается ли порт, используемый антивирусным клиентом. Он не подтверждает корректность установки антивируса. Если служба Nmap возвращает любой другой результат, то состояние антивирусного клиента неизвестно, и данную систему нужно исследовать с помощью других методик, таких как регистрация на системе и подтверждение наличия антивирусных программ, удаленное подключение к компьютеру и поиск запущенных антивирусных служб, подключение к консоли управления антивирусной службы и поиск ошибок в работе соответствующего антивирусного клиента. Выбор оптимального метода будет зависеть от вашего окружения и используемого антивирусного продукта. Так как мы планируем задействовать службу Nmap только для поиска антивируса, нам потребуется, чтобы она работала максимально быстро, поэтому настроим ее лишь на проверку соответствующего порта:
nmap -p 2967 192.168.1.0/24
Некоторые сетевые фильтры, блокирующие протокол Internet Control Message Protocol (ICMP), могут помешать сканированию портов службой Nmap, так как служба Nmap посчитает, что узел недоступен, и не проверит его. Можно использовать параметр -P0, чтобы запретить службе Nmap предварительно проверять состояние хоста:
nmap -p 2967 -P0 192.168.1.0/24
Процесс сканирования станет более продолжительным, но точность результатов увеличится.
Использование службы Nmap подобным образом позволит получить список всех систем с работающими антивирусными клиентами, однако выходных данных может быть много, и работать с ними будет неудобно (см. Рисунок 1). Для обработки данных и отображения результатов в удобном пользователю виде можно воспользоваться возможностями настройки выходных данных.
Рисунок 1: Служба Nmap определяет, запущен ли антивирусный клиент
Настройка выходных данных
Для настройки выходных данных службы NMAP можно использовать ключ -o[флаг вывода] "имя файла". Служба Nmap поддерживает несколько форматов представления выходных данных, но я предпочитаю формат XML (параметр -oX [имя файла]), так как с его помощью могу легко перевести результаты в любую другую форму. Для проведения максимально быстрого анализа я обычно использую параметр -oG и работаю с выходными данными посредством команды grep - мгновенно отбрасываются ненужные данные. Запуск службы Nmap с использованием команды grep выглядит следующим образом:
nmap -p 2967 -P0 -oG - 192.168.0.0/24 | grep open
Обратите внимание на дополнительный символ дефиса в команде после параметра -oG. Этот символ сообщает службе Nmap, что вы хотите вывести результаты на стандартное устройство ввода-вывода, а не в файл, и позволяет вам отфильтровать выходные данные прямо в команде grep и просмотреть все строки, в которые входит слово «open». Эта команда показывает все узлы, использующие антивирусные клиенты, как показано на Рисунке 2. Отображаются только первые два байта IP-адресов.
Недостаток подобного анализа заключается в том, что для просмотра всех результатов нам придется запускать несколько фильтров, так как служба Nmap сообщает о трех состояниях порта: открыт, закрыт и фильтруется (см. Рисунок 2). Если порт закрыт или фильтруется, это означает, что либо антивирусный клиент не запущен, либо процесс сканирования блокирует служба брандмауэра.
Рисунок 2: Команды Nmap и Grep мгновенно показывают, запущен (open) или нет (closed) антивирусный клиент
Понятные параметры и гибкий механизм вывода
Сегодня выпускаются сканеры портов различных форм и размеров - от «тяжелых», с множеством возможностей и графическим интерфейсом, до простеньких сканеров, работающих из командной строки. Служба Nmap использует понятный синтаксис параметров ввода-вывода. Гибкий механизм вывода делает данную службу идеальным инструментом для построения новых сценариев. В одной из следующих статей я покажу, как переводить в формат XML данные о том, на каких системах установлен антивирусный клиент, а на каких нет. Для этого будем использовать язык XML и механизм коротких преобразований Extensible Style Language Transformations (XSLT).