Network Access Protection на базе инфраструктуры Microsoft

23 май, 2008 - 11:38Игорь Шаститко

Сегодня компьютерную безопасность в корпоративной среде принято рассматривать «вглубь» – она должна быть комплексной и обеспечивать защиту на каждом из уровней сети: периметре, внутрикорпоративных серверах, клиентских местах. Однако, как показывает опыт, именно последний уровень является наиболее проблематичным, поскольку включает пресловутый человеческий фактор. Тем не менее ряд современных механизмов дает возможность максимально нивелировать его влияние, и об одном из них речь и пойдет в настоящей статье.

Итак, почему для обеспечения безопасности на рабочих местах недостаточно просто наличия антивирусного ПО (антишпионского и т. п.), пусть и самого что ни на есть корпоративного? Ответов может быть много, но большая часть из них так или иначе связана с динамикой современного бизнеса, подразумевающей, что сотрудник должен быть постоянно вовлечен в соответствующие процессы независимо от его местонахождения. Вследствие этого удаленные подключения к корпоративным системам и сети могут производиться откуда угодно. Далеко не самый плохой вариант – когда для этого используется рабочий ноутбук, лишь слегка «адаптированный» великоразумным чадом владельца. Но нужда может заставить воспользоваться и общественным ПК в гостинице или интернет-кафе, уже абсолютно неконтролируемыми. Очевидно, что в таком случае говорить о безопасности даже не приходится, ведь публичный компьютер может попросту послужить «шлюзом» для злоумышленников.

Поэтому одна из наиболее острых проблем, стоящих перед ИТ-службами крупных компаний, заключается в обеспечении адекватного управления конфигурацией рабочих мест (в том числе динамически подключаемых), не исключая при этом вмешательства в нее со стороны пользователя, как того могут требовать задачи бизнеса. Сегодня принято характеризовать такую конфигурацию, ее соответствие установленным корпоративным стандартам и политикам термином «здоровье» (буквально – health). Соответственно, контроль за ним позволяет защитить не только сам клиентский компьютер, но и локальную сеть – от него.

Уже несколько лет различные компании предлагают собственные решения по анализу состояния «здоровья» ПК, но чаще всего это разрозненные инструменты, нацеленные на контроль узкой «сферы интересов» каждого производителя и работающие в основном с его продуктами. Наиболее универсальным выглядит подход Cisco, получивший название Network Access Protection, – он позволяет интегрировать разные средства данного класса в единый комплекс и обеспечивает управление на сетевом уровне. Microsoft вышла в этот сегмент совсем недавно, но сразу предложила фактически законченную и очень простую в обслуживании инфраструктуру. С ее помощью можно централизованно формировать политики и проверять соответствие им в любых точках подключения.

Предназначение

Network Access Protection на базе инфраструктуры Microsoft
Возможные методы взаимодействия между элементами NAP

NAP в реализации Microsoft представлена набором компонентов, присутствующих в Windows Server 2008, Windows Vista и Windows XP Service Pack 3, который позволяет администраторам решать основные задачи по управлению «здоровьем» рабочих мест.

Прежде всего обеспечивается проверка состояния «здоровья» всех вновь подключающихся к корпоративной сети или ее элементам компьютеров, т. е. соответствие их конфигурации предопределенным политикам. Последние могут подразумевать наличие системных служб и определенные их настройки (например, локального брандмауэра); антивирусного, антишпионского ПО и актуальных сигнатур для них; критических (или любых других) обновлений ОС и многое другое. Успешное прохождение такой проверки, естественно, обеспечит полный доступ, в противном же случае могут быть предусмотрены различные «санкции».

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

Эта довольно простая схема может оказаться весьма эффективной в самых разных сценариях.

Находясь вне корпоративной сети, мобильные компьютеры сотрудников могут не получать всех необходимых обновлений, ПО и измененных системных политик и пр. Известно, что специфика использования на ноутбуках учетных записей с высокими административными полномочиями делает их более уязвимыми для вредоносного ПО. Соответственно, уже в момент подключения зараженного компьютера опасности подвергается практически вся сеть. А его изоляция с помощью NAP (до приведения в «здоровое» состояние) фактически ликвидирует угрозу.

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

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

Аналогично можно обслуживать и неуправляемые домашние ПК сотрудников, подключаемые, скажем, через VPN. В данном сценарии NAP также предотвратит проникновение в корпоративную сеть вредоносного кода, публикацию внутренних ресурсов в Интернете и многое другое. Однако в этом случае возможны варианты не только полной изоляции, но и рекомендательный подход к конфигурированию параметров безопасности таких ПК самими пользователями (и даже с частичной автоматизацией) с дальнейшим предоставлением «оздоровленным» доступа не только к карантинной сети VPN, но и к прочим внутренним ресурсам.

Реализация

Network Access Protection на базе инфраструктуры Microsoft
Схема внутреннего взаимодействия между компонентами NAP

Для того чтобы эффективно использовать возможности NAP, необходимо достаточно глубоко понимать принципы работы этой технологии. Как уже говорилось выше, NAP – это набор компонентов, интегрированных в клиентские и серверные части ИТ-инфраструктуры и взаимодействующих между собой. К ним относятся: клиентские агенты сбора информации о «здоровье» системы (System Health Agents, SHAs) и соответствующие серверные службы проверки «здоровья» (System Health Validators, SHVs); серверные и клиентские механизмы инициализации компонентов NAP (Enforcement Clients, ECs; Enforcement Servers, ESs) и принудительного применения политик для различных типов коммуникаций; собственно сервер NAP, управляющий компонентами и обеспечивающий механизмы их взаимодействия и администрирования (Network Policy Server, NPS); серверы автоматизации применения политик и прочие ресурсы, к которым разрешен доступ клиентов, даже если они находятся в изоляции (Remediation servers).

Все эти компоненты должны обязательно присутствовать в инфраструктуре и поддерживаться соответствующими ее элементами вроде коммутаторов или шлюзов. Однако вовсе не обязательно все они будут поставляться Microsoft – любой сторонний производитель может создать свои, поскольку (как это будет показано ниже) взаимодействие в рамках инфраструктуры NAP осуществляется на базе открытых протоколов. Более того, некоторые из них наверняка будут реализованы аппаратно – к примеру, в качестве Enforcement Servers могут выступать маршрутизаторы или коммутаторы.

Итак, алгоритм работы NAP можно описать как процесс взаимодействия всех этих компонентов между собой. Самый простой случай – реализация механизма NAP на уровне DHCP-сервера, который, наряду с IPsec, IEEE 802.1X, VPN и Terminal Server (TS) Gateway, служит одним из механизмов принудительного применения политик NAP на клиентских компьютерах. Опять же, IPSec, IEEE 802.1X и VPN совершенно не обязательно должны реализоваться программно – на рынке уже существуют NAP-совместимые аппаратные решения, к примеру от Cisco, способные корректно распознать и обработать запрос от NAP-клиента. Но поняв, как работает NAP на основе DHCP, можно будет легко перейти к любым другим сценариям.

Механизм инициализации NAP в случае DHCP начинается на клиентском ПК. Windows Vista и Windows XP Service Pack 3 имеют в своем составе модифицированную DHCP-службу – в архитектуре NAP именно она является DHCP NAP Enforcement Client (EC). Задача этого EC – инициировать обращение NAP-клиента к локальному агенту «здоровья» (System Health Agent, SHA) и затем передать полученную информацию для проверки серверу – System Health Validator (SHV). SHA – это часть механизмов Windows, известная также пользователям как Windows Security Center. SHA возвращает NAP-клиенту так называемый пакет статуса состояния «здоровья» системы (System Statement of Health, SSoH), в котором содержится информация о наличии и активности локального брандмауэра, антивирусного и антишпионского ПО (а также об актуальности их сигнатур), корректности конфигурации службы обновлений Windows Update (а если агент обновлений совместим с запросами SHA, то также будет предоставлен список последних «заплаток» с рубрикацией по категориям).

Затем NAP-клиент передает SSoH компоненту EC, который, являясь в данном случае частью клиентской службы DHCP, формирует специализированный пакет DHCP-запроса. Это может быть DHCPDiscover, DHCPRequest, DHCPInform, но так или иначе в нем будут содержаться данные SSoH в качестве параметров производителя.

После приема такого DHCP-пакета (скажем, DHCPDiscover) NAP-совместимым DHCP-сервером (в настоящий момент из продуктов Microsoft это может быть только Windows Server 2008) на нем активизируется серверная часть компонентов NAP, отвечающих за принудительное применение политик, – DHCP NAP Enforcement Server (ES). Работая в рамках DHCP-сервера ES разбирает содержимое пакета DHCPDiscover и извлекает из его параметров данные SSoH, описывающие «здоровье» запрашивающего IP-адрес клиентского компьютера. Затем SSoH передается ES на определенный администратором сервер политик «здоровья» NAP – Network Policy Server (NPS) – посредством сообщения RADIUS с соответствующей аутентификацией сторон.

NPS – новая роль Microsoft Windows Server 2008, которая включает в себя не только службы NAP, но у другие, предназначенные для управления инфраструктурой AAA (Authentication, Authorization and Accounting) и известные в ранних версиях Windows Server как Internet Authentication Service (IAS), а также службы удаленного доступа (Dial-up & VPN) и маршрутизации (Routing & Remote Access Service, RRAS). NAP-составляющая NPS извлекает данные SSoH из сообщения RADIUS и передает их соответствующему компоненту проверки состояния «здоровья» (System Health Validator, SHV).

Здесь следует сделать небольшое отступление. Все компоненты NAP являются «парными», т. е. для любого клиентского агента, собирающего некоторую информацию о «здоровье», на сервере должен присутствовать компонент, способный интерпретировать именно эту информацию. Для стандартного SHA, использующего в качестве источника Windows Security Center, с NPS в Windows Server 2008 поставляется SHV, способный обрабатывать данную информацию в пакетах SSoH. Но модульная архитектура NAP позволяет зарегистрировать для одного клиентского EC (в нашем случае DHCP NAP EC) сразу несколько SHA (в том числе и сторонних). Все отчеты, полученные в результате их поочередного выполнения, в виде пакетов SSoH будут переданы на ответную серверную часть ES (в нашем случае DHCP NAP ES). Таким образом, каждый из них пройдет описанный выше путь и в конце концов будет обработан соответствующим SHV, который, кстати, вовсе не обязательно должен выполнять все проверки самостоятельно – он может являться лишь шлюзом между серверными службами NAP на NPS и каким-то специальным ПО. С помощью такого подхода можно контролировать любые параметры системы и учитывать их при принятии решения об изоляции клиентского ПК. В качестве примера от Microsoft можно привести реализацию компонентов NAP в рамках Microsoft System Center Configuration Manager 2007, что позволяет администраторам внедрять политики соответствия клиентских ПК тем или иным аппаратным и программным требованиям. Аналогично некоторые производители корпоративных антивирусов уже поставляют NAP-совместимые компоненты для своей продукции.

Итак, в конце долгого пути серверный компонент проверки «здоровья» SHV получает пакет SSoH от своего клиентского «собрата» SHA. Затем SHV выполняет разбор и анализ SSoH и возвращает службам NAP NPS результат проверки в виде пакета System Statement of Health Response (SSoHR). В SSoHR также могут содержаться инструкции для служб и компонентов NAP (как серверных, так и клиентских) – например, какие обновления должны быть установлены в автоматическом режиме (посредством NAP-совместимой службы обновления) или каким образом аппаратный NAP-совместимый маршрутизатор должен перестроить конфигурацию VLAN.

Службы NAP NPS обрабатывают и дополняют пакет SSoHR различной информацией, например списком Remediation servers, исходя из политик безопасности, которые должны быть применены к «здоровому» или «нездоровому» ПК, и посредством еще одного сообщения RADIUS отправляют пакет на DHCP NAP ES. Получив пакет, требующий изоляции «нездорового» клиента, DHCP-сервер использует довольно элегантный механизм – в пакете DHCPAck, кроме параметров, содержащих тело SSoHR (для обработки SHA), содержатся крайне простые параметры IP – адрес из соответствующей области, но с маской 255.255.255.255 и шлюзом 0.0.0.0. Тем самым клиент оказывается запертым внутри своей «персональной» подсети. Но для доступа к некоторым важным ресурсам (серверам обновлений, корпоративных политик и т. п. – Remediation servers) DHCP-сервер, исходя из полученных в пакете SSoHR данных, явно добавляет в виде расширенных параметров DHCP-пакета маршруты к ним.

SHA на клиентском компьютере, получив SSoHR, требующий модификации настроек, обращается к соответствующим серверам за обновлениями и политиками. После успешного выполнения всех действий (согласно той же информации в SSoHR) заново запускается процесс сбора информации о «здоровье» (SSoH), сообщение отправляется DHCP-серверу, и весь процесс повторяется до тех пор, пока от всех или части SHV – в зависимости от политик NPS – не поступят SSoHR, подтверждающие факт «здоровья» клиента.

Примерно такая же схема, с небольшими вариациями, используется при обращении NAP-клиента и к другим точками принудительного применения политик типа IPSec, IEEE 802.1x, VPN и т. д.

Вывод

Таким образом, новая платформа для защиты корпоративных сетей от потенциально опасных компьютеров, предлагаемая Microsoft в виде технологии Network Access Protection, с одной стороны, способна обеспечить безопасность в различных точках подключения и взаимодействия ПК с корпоративной сетью, а с другой – опирается на открытые протоколы и собственную открытую архитектуру. Этот факт крайне важен, поскольку, исходя из потребностей бизнеса и связанных с ними специфических угроз, в разных случаях могут потребоваться особые методики оценки «здоровья» ПК и методы принудительного применения политик в отдельных точках подключения или при использовании каких-то протоколов, а также специальные методы изоляции и конфигурирования не совместимых с политиками ПК. Соответственно, все эти нюансы можно будет реализовать сторонними средствами, которые интегрируются в общую стандартную инфраструктуру, не нарушая ее целостности и даже не влияя на ее текущее функционирование (при обслуживании более «стандартных» рабочих мест).