Winternals Protection Manager: ПО «по карточкам»

17 апрель, 2006 - 23:00Игорь Дериев

Хотя серверные решения давно доказали свою эффективность, в вопросах безопасности, к сожалению, сегодня только ими не обойтись. Никакие брандмауэры и анализаторы трафика не в состоянии помешать пользователю загрузить из Интернета малоизвестного «троянца» и запустить его на своей машине. Не помогут в такой ситуации и локально установленные средства вроде антивирусов и antispyware. Более универсальным и надежным видится подход, основанный на политиках доступа к конкретным приложениям, и на его основе уже работает несколько интересных продуктов.

Любая политика безопасности, касающаяся рабочих мест, представляет собой некий компромисс между жесткостью (и, как следствие, эффективностью) правил и удобством работы как конечных пользователей, так и технического персонала. При этом обилие доступных инструментов – и встроенных в операционные системы, и автономных – отнюдь не упрощает задачу нахождения золотой середины. Хорошим примером могут служить программные ограничения в групповых политиках Windows XP – неплохой и довольно гибкий, на первый взгляд, механизм на поверку оказывается пригодным разве что для организации так называемых «киосков», предназначенных для выполнения строго ограниченного круга приложений. При этом нетрудно заметить, что его создатели изначально были вынуждены оставить опасные лазейки, разрешив, например, запускать любой код из папок %SystemRoot% и %SystemRoot%System32. Неудивительно, что именно туда и пытается проникать всевозможное spyware.

Подобные проблемы, конечно, возникли не вчера, и разработчики ПО постоянно пытаются найти все более эффективные их решения. Как известно, много нового в этой области появится в Windows Vista, в первую очередь механизм UAC (User Account Control), обеспечивающий автоматическое понижение привилегий при выполнении повседневных задач. Однако нередко сторонние разработчики в состоянии предложить что-то не менее интересное и действенное, причем уже сегодня. Речь не идет о порядком надоевших антивирусах и персональных брандмауэрах, в настоящее время все большую популярность приобретает подход, состоящий в запрещении (или всемерном контроле) выполнения неавторизованного программного кода. Одно из решений данного класса недавно создала и компания Winternals.

Winternals Protection Manager ПО «по карточкам»
Рабочим режимом для большинства ролей должен быть Enforced, только в нем реально вступают в силу все основные запреты

По мнению ее специалистов, Protection Manager представляет собой абсолютно уникальное решение, что, на наш взгляд, не совсем корректно. Недавно мы писали о компании Bit9, в арсенале которой имеется семейство продуктов Parity, реализующее, по большому счету, те же идеи, но ориентированное на крупные организации. Решение же Winternals традиционно демократично в том смысле, что имеет предельно простую архитектуру, минимальные системные запросы и согласно работать в сетях любых конфигураций (хотя наличие Active Directory существенно упрощает развертывание и первичную настройку). Кроме того, для ряда функций Protection Manager аналоги нам действительно неизвестны.

В основу Protection Manager положены традиционные для Winternals архитектура и механизмы, отлаженные на других сетевых продуктах. Центральная консоль обнаруживает все доступные сетевые структуры (от каталогов и доменов до рабочих групп и отдельных серверов или ПК) и позволяет дистанционно установить клиентские модули, которые и представляют основное ноу-хау. Вся принципиальная функциональность базируется на двух патентованных технологиях – SmartStop и SmartRun. С помощью первой осуществляется мониторинг создания любых системных процессов, вторая обеспечивает запуск программ с измененными привилегиями. Все остальное в Protection Manager фактически является лишь «обвязкой», необходимой для их эффективного использования в распределенной среде.

На внешнем уровне Protection Manager функционирует на основе классификации приложений и пользователей (или компьютеров) и объединении их в «группы по интересам».

Winternals Protection Manager ПО «по карточкам»
Администратору (а также уполномоченному сотруднику) поступает вся информация об использовании неавторизованных программ, в том числе и объяснения пользователей

Информация обо всех доступных на рабочих станциях исполняемых файлах собирается клиентами и накапливается в центральной базе данных. Для каждого определяется ряд характерных признаков, в число которых входят производитель, цифровой сертификат (если имеется), хэш-значение (рассчитывается по алгоритму SHA-1). Несколько необычно, что учитывается также «владелец», т. е. учетная запись, от имени которой программа появилась в системе, но эта информация действительно может пригодиться в ряде сценариев. По данным признакам файлы объединяются в наборы (File Set) четырех типов: запрещенные (Enabled) или разрешенные (Disabled), подлежащие выполнению с повышенными (Run with Administrative Rights) или пониженными (Run as Limited User) привилегиями.

В свою очередь, объединения пользователей (или компьютеров) называются ролями и обладают целым рядом параметров. Среди прочего им может назначаться произвольное число файловых наборов (при этом все остальные файлы будут считаться неавторизованными). Кроме того, каждой роли назначается один из четырех режимов. Первый – Disabled (не учитывающий вообще никаких ограничений) – пригодится разве что на начальном этапе внедрения Protection Manager в организации. Два следующих – Silent Deployment и Interactive Deployment – предназначены для сбора дополнительной информации, соответственно скрытого (когда информация о запуске неавторизованных приложений накапливается без оповещения пользователя) либо интерактивного (когда пользователь может отправить запрос-объяснение администратору). Последний – Enforced – собственно, и является единственным «рабочим».

Таким образом, внедрение Protection Manager предполагается поэтапным – развертывание агентов и сбор первичной информации, создание ролей и уточнение набора применяемых приложений, перевод всех (или большинства) ролей в режим Enforced. В результате для каждого пользователя все приложения окажутся поделенными на несколько четких категорий: запрещенные, разрешенные, выполняемые с пониженными или повышенными привилегиями и все прочие, т. е. неавторизованные. При этом последние будут блокироваться, но можно послать запрос на изменение политики.

Исходя из этой картины несложно понять преимущества Protection Manager по сравнению со стандартными средствами и представить типовые сценарии его использования.

Прежде всего, большинству пользователей можно смело оставить привилегии локального администратора, отнеся все потенциально уязвимые приложения в наборы типа Run as Limited User – так стоит поступить как минимум со всеми сетевыми приложениями, в первую очередь с Internet Explorer.

Возможна и обратная ситуация, когда права пользователей должны быть все-таки ограничены, но им необходимо работать с рядом программ, требующих привилегий администратора (часто это касается унаследованных корпоративных систем). В этом случае последние следует объединить в набор Run with Administrative Rights и назначить его соответствующим ролям.

Необходимо иметь в виду, что в обоих случаях используемые режимы будут распространяться и на все дочерние процессы. Убедиться же в действенности данного механизма проще всего с помощью бесплатной утилиты Process Explorer.

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

Тем не менее основное назначение Protection Manager все же заключается в запрете выполнения неавторизованных приложений, а главное отличие от стандартных механизмов ОС состоит в двустороннем характере функционировании системы: правила распространяются сверху вниз (т. е. от центрального компонента к рабочим станциям), а запросы и сопутствующая информация – в обратном направлении. Это позволяет осуществлять полный контроль (с использованием как инструментов самого Protection Manager, так и штатных журналов событий) и при необходимости оперативно уточнять политики.

В Protection Manager также присутствует ряд вспомогательных, но довольно полезных решений. К примеру, администратор может делегировать свои обязанности по обслуживанию конкретных ролей определенным сотрудникам (для этого в системе присутствует специальная предопределенная группа Delegators), которым достаточно зарегистрироваться на любой рабочей станции с предустановленным клиентом. Со всеми прочими нюансами вполне можно разобраться с помощью документации, доступной на сайте Winternals.

В целом Protection Manager выглядит достаточно эффективным и продуманным продуктом, как, в общем-то, и все разработки Winternals. Вопрос же о том, насколько будет оправданным его применение, требует, по-видимому, разбирательства в каждой конкретной ситуации. На наш взгляд, однако, Protection Manager интересен даже как прецедент – оказывается, для решения довольно серьезных проблем вовсе не обязательны громкие инициативы и кардинальная переработка начинки ОС и важных приложений.