В статье "PortQry - сканер сетевых портов" (опубликованной в № 5 Windows IT Pro/RE за 2005 год) я представил одно из двух средств Microsoft, которые могут помочь определить, какие программы обращаются к сетевым портам вашего компьютера. Подобные средства важны, если вам требуется наладить работу сетевых служб или обнаружить нежелательные программы. Средство PortQry, которое я рассматривал в той статье, является ориентированным на Microsoft сканером сетевых портов с функциями наблюдения за локальным узлом. На этот раз я хочу рассказать о средстве Port Reporter (PortRptr.exe), которое позволяет контролировать сетевую активность на отдельном компьютере в течение длительного времени. В отличие от средства PortQry, обеспечивающего возможность просмотра в реальном времени работающих сетевых приложений и их поиск в сети, служба Port Reporter протоколирует активность портов TCP и UDP, собирает хронику сетевой активности и работы соответствующих приложений в течение некоторого периода времени, так что вы можете просмотреть результаты позже. Port Reporter также предоставляет возможность многословного протоколирования в случаях, когда основные приложения меняют сетевые соединения, например, когда они принимают новое соединение. Можно вручную просмотреть эту информацию, чтобы установить, например, какие приложения принимают или порождают сетевые соединения. Служба Port Reporter также отмечает библиотеки DLL, используемые приложениями, так что вы будете точно знать, какой код обращается к сети.

В зависимости от объема трафика, журналы службы Port Reporter часто становятся слишком большими для анализа. Для таких журналов можно использовать другое бесплатное средство Microsoft - Port Reporter Parser - чтобы интерпретировать и анализировать данные и представлять их в рационализированном формате. Давайте познакомимся с этими двумя средствами.

Загрузка Port Reporter

Port Reporter является бесплатным средством от Microsoft, которое устанавливает себя как службу. Вы загружаете файлы средства Port Reporter с сайта Microsoft и распаковываете их в любую папку по своему выбору. Запустите программу установки (setup.exe), чтобы разместить приложение на компьютере, который хотите проверять. По умолчанию программа устанавливает Port Reporter в папку C:\Program Files\PortReporter. С точки зрения процесса установки, служба Port Reporter не так гибка как PortQuery, но как вы сами убедитесь, она предоставляет гораздо больше информации.

В программе Administrative Tools меню Control Panel нужно открыть папку Services. Найдите запись Port Reporter и запустите службу, как показано на Рисунке 1. Если оставить эту службу работать под учетной записью LocalSystem, она сможет собирать информацию обо всех процессах, которые могла пропустить при работе под менее привилегированными учетными записями. Port Reporter сохраняет журналы данных в папке \LogFiles, также используемой другими приложениями Windows (например, %systemroot%\System32\LogFiles\PortReporter). Можно настроить службу Port Reporter таким образом, что она будет чередовать журналы, создавая новый журнал каждый раз при запуске, каждый день или же при превышении заданного размера файла. По умолчанию Port Reporter создает новый файл журнала, когда объем текущего файла превышает 5 Мбайт. Вы можете изменить местоположение и максимальный размер файлов журнала с помощью диалогового окна Properties, выбрав панель General и задав собственные стартовые параметры для службы. Например, стартовые параметры

-ld 'C:\PRLogFiles' -ls 10000

определяют, что служба Port Reporter будет размещать свои журналы в папке C:\PRLogFiles и создавать новый файл журнала, когда объем старого файла превысит 10 000 Кбайт.

При запуске службы Port Reporter создает три независимых файла журналов (INITIAL, PORTS и PIDS), имена которых формируются на основе даты создания, например PR-INITIAL-04-08-28-16-7-19.log, PR-PORTS-04-08-28-16-7-19.log и PR-PIDS-04-08-28-16-7-19.log.

  • Файл журнала INITIAL содержит информацию о портах, в которых замечена активность на момент запуска службы. Он напоминает выходные данные команды NetStat, иллюстрирующие всю сетевую активность, и отражает при этом идентификатор процесса (PID), порт, локальные и удаленные адреса. Вдобавок этот отчет содержит полную информацию не только об основном приложении (например, msmsgs.exe), но и о его библиотеках DLL. Эта информация упрощает обнаружение приложений-взломщиков, таких как "троянские кони", так как она заостряет внимание не только на основном приложении, но и на библиотеках, используемых этим приложением.
  • Файл журнала PORTS представляет собой простой список всех сетевых соединений, с указанием даты и времени подключения, протокола (TCP или UDP), порта, адресов источника и приемника, имени приложения и имени пользователя, под которым запущено это приложение. Например, когда я запускаю Microsoft Internet Explorer (IE) и регистрируюсь в службе MSN Messenger, Port Reporter незамедлительно добавляет в журнал информацию, показанную на Рисунке 2. Формат данных с разделением запятой (CSV) позволяет легко импортировать информацию в Microsoft Excel для анализа. Или же можно использовать средство Port Reporter Parser, о котором я расскажу ниже. Поскольку Port Reporter работает как служба, он незаметно проводит протоколирование в фоновом режиме, позволяя периодически проверять, какие сетевые приложения действовали в определенный период времени в данной системе.
  • Файл журнала PIDS является самым объемным из трех. В отличие от журнала PORTS, записывающего каждое новое соединение как отдельную строку данных, в файле журнала PIDS записывается вся программная и модульная информация о процессе, инициализирующем сетевую активность. Так, например, в результате выполнения программы ftp.exe в отчете появится масса информации не только о службе FTP, но и о модулях, выполняемых совместно с приложением ftp.exe. На Рисунке 3 показана часть данных, содержащихся в журнале PIDS. Эти подробности полезны, если необходимо выяснить, где вредоносная программа внедрила себя в состав IE в качестве модуля, или если червь или вирус пытаются использовать сеть.

Port Reporter Parser

Служба Port Reporter предоставляет массу информации с помощью трех типов файлов журнала. В качестве помощи в организации процесса интерпретации и корреляции этих данных из трех файлов, Microsoft прелагает средство анализа журналов службы Port Reporter.

Загрузите Port Reporter Parser (prparser.exe) с сайта Microsoft и распакуйте файл в любую папку. Запустите программу установки prpsetup.msi, которая сохранит приложение в папке C:\Program Files\Microsoft\PR-Parser. Для использования файла Prpsetup.msi необходимо предварительно установить пакет Windows .NET Framework 1.1. Запустите приложение и выберите для анализа журнал PORTS. Служба Port Reporter Parser открывает файл и представляет его в виде матрицы данных, как показано на Рисунке 4.

На первый взгляд, представление данных службой Port Reporter Parser не отличается от формата представления CSV в Excel, но на самом деле Port Reporter Parser делает гораздо больше. Можно выбрать любую запись журнала и получить по ней подробную информацию из файла PIDS. Вдобавок можно фильтровать или выделять данные, указав свои критерии. Вы можете указать критерий, основанный на имени модуля, IP-адресе, портах, учетных записях пользователя или имени основного узла. Когда вы применяете критерий, служба Port Reporter Parser выделяет соответствующие критерию записи красным цветом, таким образом, их легко заметить среди остальных. Кроме того, когда вы обращаетесь за подробной информацией по выделенной записи, Port Reporter Parser предупреждает вас, что данные были помечены, и выводит уведомление, вид которого можно настроить.

Служба Port Reporter Parser также обеспечивает для протоколированных IP-адресов анализ DNS и может выполнять основные статистические подсчеты в различных формах: использование локального TCP порта (Local TCP Port Usage), использование процесса (Process Usage), перечень svchost.exe (svchost.exe Enumeration), использование удаленного IP-адреса (Remote IP Address Usage), применение окружения пользователя (User Context Usage), почасовое использование порта (Port Usage by Hour) или iexplore.exe (iexplore.exe Usage). Эта статистика открывает массу полезной информации, касающейся сетевой активности компьютера. Например, перечень svchost.exe отображает все службы, вызванные процессом svchost.exe, программой, которая озадачивает большинство пользователей, скрывая приложения в окне Task Manager под общим именем svchost.exe.

Рисунок 5 иллюстрирует простые выходные данные анализа журнала для проверки использования процесса, отображающие количество сетевых соединений, вызванных различными процессами. Программа также позволяет открыть соответствующий журнал INITIAL и применить критерий, который, к примеру, выделяет в данном журнале определенные порты и приложения.

Совместное использование

Как и средство PortQry, службы Port Reporter и Port Reporter Parser увеличивают прозрачность сетевой активности в системах Windows и заметно усиливают набор средств обеспечения безопасности. Пакеты Port Reporter и Port Reporter Parser обеспечивают понимание и анализ данных сетевой активности в конкретном узле. Эти средства обрабатывают информацию и представляют ее в уникальной форме, помогая точно определить, какие приложения используют вашу сеть.

Джеф Фелинг (jeff@blackstatic.com) - Глава отдела информационной безопасности компании aQuantive. Автор книги IT Administrator’s Top 10 Introductory Scripts for Windows (Charles River Media).