II международная студенческая научно-техническая конференция "Информатика и компьютерные технологии 2006" ДонНТУ декабрь 2006 г.
Назад в библиотеку

ОРГАНИЗАЦИЯ СИСТЕМЫ МОНИТОРИНГА
ДЕЙСТВИЙ ПОЛЬЗОВАТЕЛЯ В WINDOWS XP

Таран А.В., Ладыженский Ю.В.
Донецкий национальный технический университет


          В докладе рассматривается организация мониторинга действий пользователя в операционной системе Windows XP. Описаны основные компоненты для осуществления мониторинга, их взаимосвязь и описание способов их программной реализации.

          

1. Описание основных компонентов системы мониторинга.

          Системы мониторинга действий пользователя ПК - это программное обеспечение, призванное отслеживать, какие действия совершал пользователь во время работы на ПК:

          Большинство систем мониторинга реализуют только часть этих функций.

          

2. Использование хуков.

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

           Хуком называется механизм перехвата особой функцией событий (сообщений) до того, как они дойдут до приложения. Эта функция может затем реагировать на события и, в некоторых случаях, изменять или отменять их. Сами функции, получающие уведомления о событиях, называются фильтрующими функциями и различаются по типам перехватываемых ими событий. Чтобы Windows смогла вызывать функцию-фильтр, эта функция должна быть привязана к хуку. Если к одному хуку прикреплено несколько фильтрующих функций, Windows реализует очередь функций, причем функция, прикрепленная последней, оказывается в начале очереди, а самая первая функция - в ее конце. [1]

          Приложения Windows используют следующие функции для управления очередью функций-фильтров хука:

          При установке хука при помощи функции SetWindowsHookEx, необходимо указать ID хука - тип событий, который необходимо обрабатывать. Наиболее часто используемые из них в системах мониторинга следующие:
WH_SHELL - для обработки запуска пользователем навых приложений;
WH_KEYBOARD - для логирования введенных с клавиатуры данных.

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

          Также из описанных выше возможностей хуков вытекает угроза их использования злонамеренных целях, так называемых spyware-модулях. Они используются как рекламные модули, трояны, клавиатурные шпионы и пр. Как следствие есть вероятность, что антивирус, установленный на машине пользователя распознаст в системе мониторинга, используещей хуки, троян и заблокирует её.

          

3. Использование WMI

          При использовании .NET Framework наиболее мощным средством для программной реализации системы мониторинга действий пользователя ПК является инструментарий WMI.

          Инструментарий управления Windows (WMI - Windows Management Instrumentation) — это стандартом инструментальных средств по доступу к информации управления в системе Windows. Эта информация включает в себя состояние памяти системы, информацию об установленных клиентских приложениях и другие данные о статусе клиента.

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

          Архитектура WMI состоит из следующих трех ярусов: [2]

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

          В .NET Framework пространство имен System.Management предоставляет основные классы для работы с WMI.

          System.Management - обеспечивает доступ к широкому набору управляющих данных и событий, связанных с управлением системой, устройствами и приложениями, оснащенными в соответствии с инфраструктурой WMI. Приложения и службы могут получать важные управляющие сведения (например, об объеме свободного места на диске, текущем уровне загрузки процессора, о том, к какой базе данных подключено конкретное приложение и т. п.).

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

          

Литература

[1] Kyle Marsh. Хуки в Win32. Статья на RSDN.
http://www.rsdn.ru/article/baseserv/winhooks.xml
[2] Библиотека MSDN
http://msdn.microsoft.com/library/rus/default.asp

II международная студенческая научно-техническая конференция "Информатика и компьютерные технологии 2006" ДонНТУ декабрь 2006 г.
Назад в библиотеку