Виртуальная машина как средство обеспечения безопасного удаленного доступа

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

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

Слабое звено

Уровень защиты данных, передаваемых по открытым сетям, определяется протоколом, который используется для создания VPN-соединения. Протоколы L2TP/IPSec и SSL/TLS, применяемые в настоящее время, обеспечивают надежное шифрование передаваемых данных, гарантию целостности, а также взаимную аутентификацию компьютеров, образующих VPN-туннель. Но данная защита ограничивается оконечными точками VPN-туннеля и никак не распространяется на сеть за сервером VPN и на клиентские компьютеры.

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

Наибольшие опасения вызывают клиентские компьютеры пользователей, работающих удаленно. Прежде всего, не всегда имеется физический доступ к таким компьютерам. Кроме того, администратор имеет возможность контролировать компьютеры лишь в то время, когда они подключены к сети организации — либо локально, либо удаленно. Если речь идет о корпоративных компьютерах, то у администратора все же сохраняются определенные рычаги влияния на конфигурацию безопасности. Администратор может следить за актуальностью обновлений операционной системы и антивирусной программы, запрещать пользователям изменять настройки системы и устанавливать новые приложения. Но даже если принята строгая политика безопасности, служба технической поддержки бывает вынуждена сообщить сотруднику пароль локального администратора, например для настройки подключения к Internet из дома либо для решения проблем, когда удаленное соединение недоступно.

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

Сетевой карантин

Сегодня сетевой карантин является стандартной методикой, обеспечивающей технический контроль состояния клиентских компьютеров при установлении VPN-соединения. Эта функциональность поддерживается службой RRAS в Windows Server 2003. Сетевой карантин не допустит подключения к корпоративной сети, если клиентский компьютер не соответствует принятой политике безопасности. В процессе подключения, сразу после фазы аутентификации, клиентский компьютер получает лишь ограниченный доступ к сети. На компьютер загружается сценарий, собирающий информацию о конфигурации, установленных обновлениях операционной системы, сигнатурах антивирусной программы и т. д. Сценарий заранее разрабатывается администратором сервера удаленного доступа. Результат выполнения сценария передается серверу. Успешное выполнение сценария означает соответствие клиентского компьютера текущей политике безопасности, и, как следствие, ему предоставляется полный доступ к сети организации. В противном случае следует разрыв удаленного соединения.

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

Виртуальные машины как средство защиты

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

Изоляция процессов в виртуальных машинах позволяет реализовать предложенный подход в пределах одного физического компьютера. Идея совместить технологии безопасности и виртуализации может показаться необычной, но она не нова. На страницах журнала уже рассматривались технические решения на основе виртуальных машин для работы в корпоративных сетях с несовпадающими политиками безопасности (см. статью Эн Грабб ?Virtual PC как средство обеспечения безопасности? в № 8 «Windows IT Pro/RE» за 2006 г., с. 58) и для безопасного доступа в Internet (Марк Барнетт, «Практикум по защите сети компании», тот же номер, с. 78). Применение виртуальных машин оказывается полезным и в нашей ситуации: оно позволяет выдержать баланс между удобством пользователей, работающих на домашних компьютерах, и безопасностью. Рассмотрим практическую реализацию VPN-доступа на основе виртуальных машин.

Сотруднику, которому предстоит работать удаленно, передается предварительно настроенная виртуальная машина с установленной операционной системой, VPN-клиентом и принятым в качестве стандарта организации программным обеспечением. Настройки операционной системы и приложений выполняются в соответствии с политикой безопасности организации. Также передается для последующей установки на компьютер менеджер виртуальных машин, например VMware Player. Все необходимые настройки сети и VPN-клиента в виртуальной машине сделаны заранее. От пользователя требуется лишь установить виртуальную машину на свой компьютер и запустить подключение к Internet. Пользователь не имеет административных прав на виртуальную машину и, следовательно, не может изменить конфигурацию сети и настройки безопасности.

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

Рисунок. Схема построения решения для обеспечения безопасного удаленного доступа

Для установки гостевой операционной системы можно использовать менеджеры виртуальных машин VMware Workstation 5.5 или Microsoft Virtual PC 2004. Забегая вперед, отметим, что в нашем случае выбор VMware Workstation оказывается предпочтительным. Тип сетевого соединения в виртуальной машине должен быть установлен как NAT (Shared Networking). В этом режиме виртуальная машина получает доступ к внешним сетям через базовую (host) операционную систему, которая выполняет преобразования NAT на своем сетевом интерфейсе. Кроме того, виртуальная машина получает IP-адрес с DHCP-сервера, в качестве которого выступает менеджер виртуальных машин.

Виртуальные машины устанавливаются в соответствии с принятой политикой информационной безопасности предприятия. Очень важно предусмотреть использование только сложных паролей, не применять для аутентификации слабые протоколы LM и NTLM и отключить хранение хеш-функций паролей LM.

Для запуска виртуальных машин у сотрудников удобно воспользоваться бесплатной программой VMware Player. Она способна запустить виртуальную машину, подготовленную как в VMware Workstation, так и в Microsoft Virtual PC. К сожалению, менеджер виртуальных машин от Microsoft не подходит для нашей задачи. В реализации NAT в Microsoft Virtual PC 2004 имеется ошибка, приводящая к некорректной обработке фрагментированных IP-пакетов. Это отражается на производительности сети в гостевой операционной системе. Ошибка не исправлена и в Service Pack 1 для Virtual PC 2004, так что остается надеяться на следующие версии этого продукта.

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

Если установка виртуальной машины выполняется под управлением VMware Workstation, то можно установить расширение VMware Tools. Этот компонент существенно повышает производительность гостевой операционной системы, а также содержит ряд средств интеграции виртуальной машины с физическим компьютером. В числе улучшений — более удобная работа с мышью, оптимизированный SVGA-видеодрайвер, автоматическое изменение разрешения экрана при изменении размеров окна, в котором запущена виртуальная машина, синхронизация времени с базовой операционной системой и т. д. Установка VMware Tools запускается из интерфейса VMware Workstation, но протекает в гостевой операционной системе. Расширение VMware Tools полностью поддерживается в среде VMware Player. Следует отметить, что аналогичное средство — Virtual Machine Additions — входит в состав Microsoft Virtual PC 2004 и может быть установлено в гостевых операционных системах, однако оно не будет выполняться под управлением VMware Player.

Выбор VPN-клиента для виртуальной машины зависит от того, какое решение удаленного доступа на основе VPN уже используется в сети предприятия. Кроме того, не все протоколы VPN совместимы с трансляцией адресов NAT. Если планируется развернуть VPN-доступ «с нуля», лучше остановиться на бесплатном продукте OpenVPN. Как известно, OpenVPN представляет собой одну из реализаций SSL VPN, а значит, сетевой трафик OpenVPN свободно проходит через NAT и через многие proxy-серверы. Клиент OpenVPN может работать в режиме службы и будет устанавливать VPN-соединение всякий раз, когда клиентский компьютер подключается к Internet.

В одном из номеров журнала уже рассматривался процесс базовой настройки сервера и клиента OpenVPN применительно к Windows-платформе (см. статью Джефа Феллинга «Работаем с OpenVPN», http://old.osp.ru/win2000/506_36.htm). Поэтому перечислим меры, которые усилят безопасность клиента OpenVPN в гостевой операционной системе.

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

С этой целью нужно создать локальную учетную запись, с реквизитами которой будет выполняться служба OpenVPN Service. Задайте сложный пароль, установите неограниченный срок действия пароля и добавьте учетную запись в группу локальных администраторов. Назначение административных полномочий для учетной записи службы нельзя назвать удачным подходом, но это единственная возможность, если в виртуальной машине установлена Windows 2000. Для Windows XP существует более безопасное решение. Следует предоставить учетной записи службы необходимые разрешения NTFS на папку, в которую были установлены файлы OpenVPN Service (по умолчанию %ProgramFiles%OpenVPN). Как минимум, требуются разрешения чтения на корневую папку, все подпапки и файлы и разрешения записи на подпапку OpenVPNLog. Добавьте учетную запись службы в локальную группу Network Configuration Operators. Тогда VPN-клиент будет иметь возможность перестраивать таблицу маршрутизации, но не будет выполняться с правами локального администратора.

В качестве дополнительной меры безопасности можно открыть консоль Local Security Policy и назначить для учетной записи привилегию Deny access to this computer from network. В консоли Services настройте запуск службы OpenVPN Service в контексте только что созданной учетной записи.

Далее, используя созданную учетную запись, зарегистрируйтесь локально в гостевой операционной системе. Создайте папку, в которую будет помещен закрытый ключ клиента OpenVPN. Установите атрибут Encrypt content to secure data.

Не выходя из системы, перепишите закрытый ключ в зашифрованную папку. Очень важно сразу копировать ключ в папку, не допускается копировать ключ в незашифрованные области файловой системы, даже если в дальнейшем он будет оттуда удален. Также следует переписать в виртуальную машину сертификаты клиента и центра сертификации, но, в отличие от ключа, хранить их в зашифрованном виде не обязательно. Наконец, убедитесь, что конфигурационный файл клиента OpenVPN (файл с расширением .ovpn, находящийся в папке OpenVPNconfig) содержит правильные пути к закрытому ключу и сертификатам, и перезапустите службу OpenVPN Service.

Поверхность атаки

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

Более серьезная опасность возникает, если злоумышленник сумеет получить в свое распоряжение файлы виртуальной машины (правда, это более чем 1 Гбайт данных). Тогда, применив одну из утилит обнуления паролей в локальной базе SAM, он сможет зарегистрироваться в виртуальной машине как пользователь или администратор и получить вход в корпоративную сеть. Если в виртуальной машине установлена операционная система Windows 2000, то можно даже получить доступ к закрытому ключу клиента OpenVPN.

Существует способ не допустить такое развитие событий, и он состоит в применении утилиты Syskey как средства дополнительной защиты системного ключа Windows. Ключ может быть сохранен на дискете или зашифрован паролем. В зависимости от того, какой из вариантов был выбран, при загрузке виртуальной машины потребуется вставить дискету с системным ключом либо ввести пароль с клавиатуры. В отсутствие ключа загрузить виртуальную машину или получить доступ к файлам, зашифрованным средствами EFS, будет невозможно. Применение утилиты Syskey подробно описано в статье базы знаний Microsoft KB310105 «How to use Syskey utility to secure Windows SAM database».

VMware ACE

Возможно, даже такое решение покажется кому-то недостаточно безопасным. Если необходим более высокий уровень защиты, то имеет смысл воспользоваться коммерческим продуктом VMware ACE. Он решает те же задачи — обеспечивает стандартизованный и безопасный вход в корпоративную сеть с гостевых компьютеров. Аббревиатура ACE означает «среда доверительных вычислений». В основе продукта лежит технология виртуальных машин компании VMware. С помощью VMware ACE Manager администратор создает проект, в состав которого входят виртуальная машина, приложение для ее запуска и управляющие политики. В свою очередь, виртуальная машина включает операционную систему, установленные приложения и данные. Далее на основе проекта создаются пакеты ACE, которые могут быть загружены по сети или переданы пользователям на любых носителях.

Политики предоставляют мощные инструменты безопасности и централизованного управления виртуальными машинами. Среди функций политик — авторизация запуска пакетов ACE по паролю либо по учетной записи AD, шифрование файлов виртуальной машины, в том числе содержимого виртуального жесткого диска, защита от копирования, определение сроков действия пакетов ACE (пакет с истекшим сроком действия не запустится).

В продукте VMware ACE применяется следующая схема лицензирования. Компьютер, предназначенный для работы с проектами и создания пакетов ACE, должен иметь лицензию VMware ACE Manager. Для установки и запуска пакета ACE потребуется выделить на каждый компьютер по одной клиентской лицензии VMware ACE по цене 99 долл. (без налогов). А стоимость продукта VMware ACE Starter Kit, включающего ACE Manager и четыре клиентские лицензии, составляет 995 долл. Подробную информацию о продукте VMware ACE, в том числе технические руководства, можно получить на сайте компании VMware: http://www.vmware.com/products/ace/.

Домашняя работа под защитой!

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

Олег Ржевский (rjevskiy@zerich.ru) работает в инвестиционной компании "ЦЕРИХ Кэпитал Менеджмент", к.ф.м.н., имеет сертификат MCSE:Security.