|
В докладе рассматривается организация мониторинга действий пользователя в операционной системе Windows XP. Описаны основные компоненты для осуществления мониторинга, их взаимосвязь и описание способов их программной реализации.
Системы мониторинга действий пользователя ПК - это программное обеспечение, призванное отслеживать, какие действия совершал пользователь во время работы на ПК:
Большинство систем мониторинга реализуют только часть этих функций.
Так как перечисленные выше действия являются непосредственно связанными с взаимодействием с операционной системой, которое, в первую очередь, заключается в обмене сообщениями между операционной системой и приложениями, то и программная реализация мониторинга этих действий заключается в написании так называемых хуков.
Хуком называется механизм перехвата особой функцией событий (сообщений) до того, как они дойдут до приложения. Эта функция может затем реагировать на события и, в некоторых случаях, изменять или отменять их. Сами функции, получающие уведомления о событиях, называются фильтрующими функциями и различаются по типам перехватываемых ими событий. Чтобы Windows смогла вызывать функцию-фильтр, эта функция должна быть привязана к хуку. Если к одному хуку прикреплено несколько фильтрующих функций, Windows реализует очередь функций, причем функция, прикрепленная последней, оказывается в начале очереди, а самая первая функция - в ее конце. [1]
Приложения Windows используют следующие функции для управления очередью функций-фильтров хука:
При установке хука при помощи функции SetWindowsHookEx, необходимо указать ID хука - тип событий, который необходимо обрабатывать. Наиболее часто используемые из них в системах мониторинга следующие:
WH_SHELL - для обработки запуска пользователем навых приложений;
WH_KEYBOARD - для логирования введенных с клавиатуры данных.
Из-за того, что фильтры никак не сортируются при помещении их в очередь, нельзя быть увереным, где находится созданная функция в любой момент времени кроме момента установки, когда она помещается в самое начало очереди. В результате, никогда нельзя точно знать, что каждое событие в системе дойдет до нужного фильтра. Фильтрующая функция перед созданной функцией в цепочке - то есть функция, которая была установлена позже - может не передать обработку события.
Также из описанных выше возможностей хуков вытекает угроза их использования злонамеренных целях, так называемых spyware-модулях. Они используются как рекламные модули, трояны, клавиатурные шпионы и пр. Как следствие есть вероятность, что антивирус, установленный на машине пользователя распознаст в системе мониторинга, используещей хуки, троян и заблокирует её.
При использовании .NET Framework наиболее мощным средством для программной реализации системы мониторинга действий пользователя ПК является инструментарий WMI.
Инструментарий управления Windows (WMI - Windows Management Instrumentation) — это стандартом инструментальных средств по доступу к информации управления в системе Windows. Эта информация включает в себя состояние памяти системы, информацию об установленных клиентских приложениях и другие данные о статусе клиента.
Одним из основных преимуществ WMI является то, что они позволяют разработчикам приложений получать доступ к сведениям из разнообразных источников с помощью общей архитектуры. Источником сведений может быть часть аппаратного обеспечения, операционная система или программное приложение.
Архитектура WMI состоит из следующих трех ярусов: [2]
В .NET Framework пространство имен System.Management предоставляет основные классы для работы с WMI.
System.Management - обеспечивает доступ к широкому набору управляющих данных и событий, связанных с управлением системой, устройствами и приложениями, оснащенными в соответствии с инфраструктурой WMI. Приложения и службы могут получать важные управляющие сведения (например, об объеме свободного места на диске, текущем уровне загрузки процессора, о том, к какой базе данных подключено конкретное приложение и т. п.).
Данный доклад обращает внимание на ключевые моменты организации системы мониторинга действий пользователя и на наиболее используемые программные средства программной реализации, что дает заинтересованным лицам отправную точку и направления поиска детальной информации при необходимости написания своей системы мониторинга.
|