Безусловно, Windows Vista представляет собой серьезный шаг на пути к повышению уровня безопасности. В некоторых публикациях уже описываются конкретные детали и одновременно называются потенциальные проблемы, в частности, сложное администрирование, что чревато новыми брешами в системе обеспечения безопасности. Данная статья посвящена не отдельным деталям использования и конфигурации, а скорее общему анализу двух вопросов:
-
ключ файловой системы с технологией BitLocker спрятан в микросхеме TPM и его нельзя прочитать — так ли это?
-
Internet Explorer работает под управлением Vista с пониженным приоритетом. Возможны ли тем не менее атаки, и если да, то какого рода?
Рассмотрение указанных вопросов основывается на доступной литературе, информации, полученной автором во время конференции RSA в Ницце на стенде Microsoft, а также интервью со Стивеном Тулузом, менеджером программы безопасности Microsoft.
Сначала о шифруемой файловой системе с технологией BitLocker. Известно, как часто крадут ноутбуки с важной информацией, и не секрет, что пользователи недостаточно защищены от подобных неприятностей, поэтому шифрование критически важных файлов, а еще лучше — применение шифруемых файловых систем играет все более важную роль. Если в рамках Windows используется шифруемая файловая система (Encrypted File System, EFS), то пароль вводится при запуске компьютера вручную или загружается с накопителя USB. Однако обе возможности не слишком удобны, и пользователь обычно хранит пароль на диске, «хорошо упрятав» его, если он вообще использует EFS, — вот настоящая находка для хакеров и, прежде всего, для тех, кто занимается промышленным шпионажем.
По словам криптолога Нильса Фергюсона, одного из разработчиков файловой системы BitLocker, поиск решения дилеммы привел к идее применить для этой цели модули Trusted Platform Module (TPM), ранее известные как микросхемы TCPA или Fritz и имеющиеся на большинстве современных системных плат. Хотя типичным использованием TPM является вызвавшее множество нареканий управление цифровыми правами (Digital Rights Management, DRM), но TPM вполне может послужить и «благим целям».
ПРОБЛЕМЫ ТРМ
Как утверждают в компании Microsoft, теперь ключ хранится в недрах аппаратного обеспечения и прочитать его нельзя. На первый взгляд это утверждение правильно: при отсутствии полномочий прочитать данные, содержащиеся в модуле ТРМ, можно, но усилий понадобится много — к примеру, придется разрушить микросхему. Для того чтобы выявить возможные уязвимые места, надо вспомнить, какие свойства ТРМ вообще используются в Vista.
В ТРМ помимо вычисления и проверки цифровых подписей мо-гут генерироваться и сохраняться небольшие объемы данных — как правило, криптографические ключи. Особенность микросхемы ТРМ заключается в том, что она выдает ключи не всякому, кто проявит к ним интерес, а лишь по «предъявлении» определенной контрольной суммы (hash sum). Для этой цели у модуля TPM имеются так называемые регистры конфигурации платформы (Platform Configuration Register, PCR): при запуске компьютера они обнуляются и не могут быть возвращены в исходное состояние. В то же время TPM на основе PCR и предъявленной контрольной суммы может вычислить ее новое значение и сохранить его в том же PCR (инкрементальное хэширование). Лишь когда значение PCR соответствует заданному, ТРМ выдает ключ. Из соображений экономии затрат на реализацию у ТРМ нет своего криптографического процессора — он передает ключ внешнему процессору или программному обеспечению. Последнее, как это имеет место в случае использования системы BitLocker в ОС Vista, должно работать на максимально возможном числе компьютеров и не ориентироваться на какое-либо специальное аппаратное обеспе-чение.
Ключ «на свободе» — привлекательная цель для атаки, и при типичном применении ТРМ в системах DRM ее пытаются предотвратить с помощью «защищенной загрузки» (secure boot): сначала при запуске компьютера выполняется заслуживающая доверие часть BIOS, которая и формирует контрольную сумму для самой себя и собственно BIOS. Контрольная сумма «предъявляется» PCR. После этого на основе части конфигурации аппаратного обеспечения составляется другая контрольная сумма, которая, в свою очередь, предоставляется тому же PCR, а затем — с помощью главной загрузочной записи (Master Boot Record, MBR) —менеджеру загрузки и операционной системе. Тем самым гарантируется, что только заслуживающая доверия операционная система сможет получить секретный ключ. «Заслуживающая доверия» в этом случае означает «с правильной контрольной суммой», что аналогично действительной цифровой подписи сертифицированного производителя.
Вот здесь и скрывается логическая ошибка, которая повторяется с самого начала жарких дискуссий о TCPA/TPM: заверенное авторство программного обеспечения гарантирует только его происхождение, но не безопасность. Насколько опасно непонимание разницы, было продемонстрировано на примере элементов управления Active-X, действительные сертификаты которых должны были бы являться гарантами безопасности. Эксперт в области безопасности Брюс Шнайер в своей книге «Secrets and Lies» («Секреты и ложь») пишет, что по сути Active-X можно уподобить тому, как если бы всех взломщиков заставили носить бэджики со своей фамилией, одновременно сняв все дверные замки.
В случае проникновения в «заслуживающую доверия» операционную систему (а до сих пор это всегда удавалось), в принципе можно добраться и до секретного ключа в ТРМ. Поэтому утверждение о невозможности чтения ключа, спрятанного в аппаратном обеспечении, — ложное маркетинговое обещание. Фактически оно выполняется лишь до тех пор, пока с ключом никто не работает!
В ОС Vista, по утверждению сотрудника Microsoft, «защищенная загрузка» отсутствует, что совпадает с данными в соответствующих документах Technet: проверке подлежат, среди прочего, защищенная часть BIOS (Core Root of Trust for Measurement, CRTM), BIOS, аппаратные расширения, главная загрузочная запись, загрузочный сектор и загрузочный блок файловой системы NTFS, а также менеджер загрузки. Лишь когда сразу все эти компоненты предоставляют правильное значение контрольной суммы, ТРМ выдаст ключ, и зашифрованная файловая система с BitLocker сможет быть прочитана.
В самой проверке операционной системы или даже в проверке приложений нет смысла, поскольку после каждой установки заплат обращение к файловой системе BitLocker стало бы невозможным (или возможным только с помощью ключа восстановления, см. ниже). По сравнению с прежней шифруемой файловой системой EFS, когда ключ зачастую находится на диске в явном виде, BitLocker, безусловно, предлагает очевидные преимущества при почти таком же уровне комфорта. Но насколько защищена файловая система с BitLocker на самом деле? Чтобы вынести свое суждение по этому поводу, мы рассмотрим самый опасный сценарий — кража защищенного ноутбука с критически важными для компании данными.
Анализ данных в этом случае — процесс далеко не рутинный, он требует ручной работы. Так, злоумышленники, конечно же, будут пытаться добраться до рабочего ключа, который во время работы хранится в оперативной памяти. Даже если поначалу непонятно, как они это сделают, в том, что сделают, едва ли могут быть сомнения: раз уж устройство попало в руки злоумышленников, в их распоряжении имеются все средства доступа.
Однако еще более опасна вторая возможность. Упомянутые выше алгоритмы хэширования известны (или станут таковыми рано или поздно), и, возможно, известны также все данные, на основе которых составляется хэш — вплоть до защищенной части BIOS. Предположительно, можно прочитать и CRTM или, по меньшей мере, с незначительными издержками перехватить сгенерированное значение контрольной суммы, затем «вручную» изготовить все контрольные суммы, предоставляемые PCR, и таким образом получить секретный ключ. Защититься от такой атаки помогли бы вводимый при запуске компьютера PIN-код или отдельный накопитель USB, однако тогда система BitLocker уже не будет обладать никакими преимуществами.
Оба типа атаки можно эффективно предотвратить, но для этого ТРМ должны быть оснащены встроенным криптографическим процессором AES и быстрым интерфейсом ввода/вывода. Первичная же цель использования ТРМ состояла, скорее, в управлении цифровыми правами, а это уже совершенно другая концепция применения. Для переноски действительно важных данных на ноутбуке, лучшим вариантом являются, пожалуй, жесткие диски и файловые системы с внешними ключами (и надежной криптографической концепцией), поскольку в связи с растущим распространением Vista и BitLocker атаки могут приобрести более рутинный характер.
Конечно, атаку на работающую систему Vista можно совершить и через сеть, хотя поначалу осуществить это будет сложнее, чем против старых версий Windows. Шифруемая файловая система не нацелена на защиту от таких атак.
Даром ничего не дается, и в случае BitLocker возникает типичная проблема, которая обсуждалась уже и для TPM/TCPA: при изменении в процессе загрузки хотя бы одной контрольной суммы, пользователь уже не получит доступ к своей шифруемой файловой системе. Это может быть вызвано изменением в аппаратном обеспечении или обновлением менеджера загрузки. Не удастся даже использовать жесткий диск с системой BitLocker на другом ноутбуке с ТРМ.
О таком варианте развития событий подумали заранее. В качестве опции во время установки файловой системы администратору предлагается создать ключ восстановления (recovery key) и сохранить его в Active Directory. Из описания, приведенного в обзоре BitLocker Drive Encryption (см. врезку «Ресурсы Internet»), можно заключить, что речь идет просто о секретном разделении ключа (Secret Splitting), т. е. о разбиении полного ключа на две независимых части, сложение которых по модулю 2 даст в итоге исходный ключ. Одна его часть сохраняется локально на компьютере без защиты, вторая составляет ключ восстановления. Это был бы надежный способ, хотя по закону Мерфи катастрофа обязательно произойдет именно тогда, когда срочно понадобятся некоторые данные, а администратор будет как раз недоступен. Только с помощью ключа восстановления возможен перенос всей системы на другие компьютеры.
Изменить впоследствии MBR, чтобы в качестве опции загрузить Linux, Vista, оснащенная системой BitLocker, уже не позволит. BitLocker невозможно загрузить на компьютер с компакт-диска Linux Live CD, что зачастую рассматривается как последняя возможность для решения проблем. Даже если когда-нибудь режим шифрования BitLocker будет реализован в свободно распространяемом программном обеспечении — извлечь ключ из ТРМ не удастся. Между тем, путем изменения неиспользуемого разряда в MBR можно провести чрезвычайно опасную атаку по типу «отказ в обслуживании» (Denial of Service, DoS), причем распознать причину проблемы чрезвычайно сложно. Подобную модификацию легко произвести с помощью диска Live CD и соответствующего (простого) программного обеспечения при условии, что злоумышленнику удастся получить кратковременный физический доступ к компьютеру.
Можно сказать, что система BitLocker хотя и помогает против «обычных» хакеров, едва ли способна противостоять опытным профессиональным взломщикам, защиту от которых она, собственно, и должна обеспечивать.
НАПОЛОВИНУ БЕЗОПАСНАЯ НАВИГАЦИЯ ПОСРЕДСТВОМ IE7
Вряд ли какое-либо другое приложение Windows заставило говорить о себе и своей подверженности атакам больше, чем Internet Explorer. Вместе с тем, если верить разработчикам, Vista должна положить этому конец. Сейчас в этой ОС для процессов различают три приоритета, проще говоря, три разных уровня доступа. IE работает в самом низком классе, и взломанный IE (что никогда нельзя исключить из-за наличия действующих кодов на страницах Web) уже больше не будет опасен. На первый взгляд это правильная концепция, однако некоторые детали ее реализации настораживают.
Хотя в рамках Windows некоторые процессы общаются друг с другом при помощи сообщений, IE не разрешено отправлять сообщения процессам с более высоким приоритетом (к примеру, обычным пользовательским процессам). В результате в буфер обмена нельзя даже скопировать ссылку. Для таких процессов имеется «брокер», который в зависимости от конфигурации решает, какие сообщения можно отсылать, а какие нельзя. Намеренно ограниченный интеллект указанного брокера в части конфигурации и функционирования, естественно, может сделать его выгодной целью для атаки. Неясно также, использует ли Mozilla Firefox иную конфигурацию брокера.
В то же время интересным выглядит сравнение с известными системами многоуровневой защиты (Multi-Level Security, MLS; см., к примеру, ссылку на «Linux от NSA?» в «Ресурсах Internet», где эта концепция описывается для SELinux). Там все наоборот: процесс с более высоким приоритетом не может передавать сообщения процессу с более низким приоритетом. Подоплека заключается в том, что иначе конфиденциальные данные сохранялись бы в незащищенных областях. Процесс с более низким приоритетом хотя и способен отправлять сообщения процессу с более высоким приоритетом, но не вправе выполнять никаких действий. Отсутствие различия между действием и сообщением (характерное для Windows в целом) создает проблему.
В рамках Vista следствие обращения принципа MLS выглядит так: поскольку пользовательские процессы могут бесконтрольно отправлять сообщения IE, взломанный пользовательский процесс способен сколько угодно использовать IE в злонамеренных целях, в частности, для автоматического заполнения форм Web.
В данном случае напрашивается сравнение с UNIX/Linux: там обеспечивается запуск браузера от имени особого пользователя, чей личный каталог не содержит важных данных и чьи права доступа существенно урезаны. В частности, у этого пользователя нет прав на запись в чужие каталоги. Такой способ применения не столь удобен, как навигация по Internet от собственного имени, однако благодаря выданным операционной системой правам строится «песочница», которая не зависит от того, о каком приложении и какого рода сообщениях идет речь. В противном случае неизбежно появятся новые эффективные атаки на систему безопасности с использованием IE.
Остается констатировать, что, несмотря на весь прогресс в области обеспечения безопасности в системе Vista, на злоумышленников, конечно, вряд ли произведут впечатление эффекты графического интерфейса Aero, и поэтому они будут целенаправленно выискивать самые слабые точки системы и атаковать их. И чем сложнее будет система, тем скорее им это удастся.
Райнхарт Вобст — д-р естественных наук, специалист в области криптографии и ОС UNIX/Linux.
© AWi Verlag
Ресурсы Internet
BitLocker Drive Encryption: Technical Overview; http://technet.microsoft.com/en-us/windowsvista/aa906017.aspx.
N. Ferguson, AES-CBC + Elephant diffuser, A Disk Encryption Algorithm for Windows Vista; http://download.microsoft.com/download/0/2/3/0238acaf-d3bf-4a6d-b3d6-0a0be4bbb36e/BitLockerCipher200608.pdf.
M. a Campo, Ausgesperrt (Prozess-Ausfuehrungsrechte unter Vista). iX 9/2006. S. 125 bis 127.
R. Wobst, Linux von der NSA?. LANline 10/2001. S. 52-58.