Архивы: по дате | по разделам | по авторам

Технологии компьютерной безопасности. Часть 1. Intel LaGrande Technology — архитектура компьютерной безопасности

АрхивПлатформа
автор : Сергей Озеров   16.03.2004

«Технология LaGrande — это аппаратная защита будущего», — утверждает Давид Гроурок (David Grawrock), ведущий специалист по системам безопасности из корпорации Intel и один из главных идеологов LT.

В этом цикле статей мы поговорим о грядущих технологиях аппаратной защиты, которые нынче у всех на слуху и которые с нетерпением ожидает индустрия. Вашему вниманию предлагаются четыре статьи. Первая посвящена концепции компьютерной безопасности LaGrande, активно развиваемой корпорацией Intel и названной так в честь городка в штате Орегон (см. фото). Вторая — относительно простой технологии Execution Protection, на которую, тем не менее, возлагаются немалые надежды. Третья — фундаментальному подходу к аппаратной защите информации, который развивает известный российский разработчик микропроцессоров «Эльбрус» Борис Бабаян. А четвертая рассказывает о недавно вышедшем процессоре AMD Alchemy Au1550 для систем сетевой безопасности.

«Технология LaGrande — это аппаратная защита будущего», — утверждает
Давид Гроурок (David Grawrock, на фото), ведущий специалист по системам
безопасности из корпорации Intel и один из главных идеологов LT.




Великая кирпичная стена

Если XXI век считать веком информации, то его главной головной болью, похоже, придется объявить вопросы безопасности информации. Объяснять причины этого, пожалуй, не стоит — достаточно вспомнить соответствующие новости хотя бы за последние полгода. Сегодня в крупных корпорациях больше половины парка ПК работает под управлением устаревших операционных систем. По данным Института компьютерной безопасности, лишь 15% из опрошенных за прошедший год 538 компаний не обнаружили у себя утечку конфиденциальной информации, а почти две трети компаний несут из-за таких утечек финансовые потери, оценивающиеся сотнями тысяч и даже миллионами долларов. Согласно обзору PWC и DTI «Information Security Breaches Survey 2002», британский бизнес ежегодно теряет до 18 млрд. фунтов стерлингов из-за несоблюдения правил информационной безопасности. А стремительный рост рынка мобильных компьютеров и беспроводных коммуникаций лишь усугубляет эту ситуацию, — по оценкам компании IDC, рынок программного обеспечения в области безопасности мобильных устройств к 2006 году достигнет миллиарда долларов, хотя в 2001 году он оценивался всего в 75,3 миллиона.

По данным Gartner Group, повышение информационной безопасности стоит на втором месте в списке главных задач для IT-менеджеров современных компаний, и, например, европейский рынок программных решений в области IT-безопасности достигнет в текущем году отметки в 2 млрд. долларов. А в мире в целом затраты на ПО для обеспечения Интернет-безопасности в 2002 году составляли 14 млрд. долларов, и к 2006 году на их долю придется около 11% от всех расходов индустрии информационных технологий (по прогнозам IDC). «Компьютерная безопасность стала одной из важнейших проблем как для домашних ПК, так и для корпоративных сетей. Для борьбы со злоумышленниками требуется мощная комбинация аппаратных и программных средств», — хором утверждают менеджеры ведущих IT-компаний.

Неудивительно, что так или иначе проявить себя в этой области постарались практически все крупные игроки рынка IT. Не остались в стороне и производители микропроцессоров: например, в семейство AMD K8 (Athlon 64/Opteron) встроена технология Execution Protection (читайте вторую статью цикла), призванная защитить от распространенной уязвимости, известной как «ошибка переполнения буфера». Чтобы технология заработала, требуется установить второй пакет обновлений (Service Pack 2) в операционной системе Microsoft Windows XP, который должен появиться в середине года. Аналогичная технология ожидается и в 32-разрядных процессорах Intel (в семействе IA-64 она уже давно имеется). Но в этой статье речь пойдет о куда более масштабном проекте, скорее даже о целой идеологии компьютерной безопасности и аппаратной защиты, разработанной и продвигаемой корпорацией Intel, — LaGrande Technology (сокращенно LT).

Официально технология LaGrande была объявлена полтора года назад на Форуме Intel для разработчиков (IDF), проходившем в калифорнийском городе Сан-Хосе (см. www.terralab.ru/system/20087). Однако тогда информация о ней была крайне скупа, хотя представители Intel и сказали (подтвердив это через полгода, см. www.terralab.ru/system/23898), что технология будет присутствовать уже в процессорах с ядром Prescott. Более подробно об LT было рассказано осенью 2003 года на Форумах в Сан-Хосе (см. ../system/29226) и Москве (см. ../system/30348), а на недавнем февральском IDF (см. ../system/32360) различным аспектам LT и сопутствующим решениям было посвящено сразу несколько докладов в рамках технических сессий. По тому интересу, который проявили к докладам посетители IDF (а это, как правило, ведущие специалисты отрасли со всего мира), и по многочисленным вопросам к докладчикам можно сделать вывод о больших перспективах LT.

Подчеркнем: LT — технология дней грядущих, а не настоящих. Ее практическая реализация невозможна без создания принципиально новой операционной системы, хотя сама LT базируется именно на аппаратных изменениях платформы — процессора, чипсета, видеоускорителя и пр. Поэтому пользоваться преимуществами технологии мы сможем не раньше 2005 года — когда выйдет Windows Longhorn (и аналогичные варианты Linux), которая проектируется с учетом всех требований LaGrande. Переверните страницу >>>

Основное предназначение LT — защита хранящихся на ПК, вводимых и передаваемых данных от вредоносных программ (см. табл. 1). Intel оценивает эффективность LT как высокую, если технология применяется для защиты от программных атак (вирусов, троянских коней, атак по локальной сети), информация статично хранится на компьютере, а пользователь «добропорядочен». Несколько меньшая защита обеспечивается, если с данными активно работают, могут происходить различные нештатные ситуации (например, потеря питания во время работы) или злоумышленники имеют свободный доступ к внутренностям компьютера (см. рисунок).

Уровни защиты технологии LaGrande.

Наконец, LaGrande практически не способна защитить от «аппаратных» атак, связанных с непосредственным подключением к «железу» специальных устройств (например, аппаратных «жучков», записывающих все, что вводится с клавиатуры компьютера). Кстати, от нерадивых пользователей (стирающих свои же документы или отключающих защиту в приложениях), а также от любителей записывать пароли на бумажке и от прочих «человеческих факторов» LT тоже не спасает.

Таблица 1. Цели технологии LaGrande

Защитить… • Конфиденциальные данные и средства связи;
• Коммерческие транзакции;
от… • Программных атак на систему;
• Программных атак на сеть;
• Непреднамеренного раскрытия информации из-за дискредитированного ПО;
без ущерба для… • Легкости использования;
• Управляемости;
• Конфиденциальности;
• Производительности;
• Универсальности;
• Обратной совместимости.

Рис. 1. Условное представление технологии LaGrande.

Условно LaGrande можно представить в виде «защищенного хранилища» (рис. 1), где в раздельных отсеках хранятся требующие защиты данные и работают использующие их приложения. Если пользователю нужно поработать с этими данными, он запускает соответствующую программу, которую можно сравнить с приходящим в хранилище клерком: на входе его досматривают, проверяют пропуск в хранилище, и если у него есть все необходимые права — провожают в бронированную комнату, где он может свободно работать с документами. При наличии соответствующих ключей программа-клерк может открывать находящиеся там же «сейфы» — хранящие, например, криптографические ключи (поскольку много данных в «сейф» все равно не поместится), и работать с любой общедоступной информацией компьютера. Программа может хранить основные данные на жестком диске в зашифрованном виде, а ключи к ней — в «сейфе». Находясь в «хранилище», программа безбоязненно расшифровывает данные, поскольку никто кроме нее прочитать их извне не сможет. По окончании работы данные снова зашифровываются, сохраняются на диск, а ключи убираются в сейф. Поскольку обычно «клерк» при работе активно взаимодействует с пользователем, в «хранилище» протянуты «бронированные кабели» от средств ввода-вывода (клавиатуры, мыши, видеокарты), исключающие возможность перехвата или подмены информации. Наконец, находясь в «хранилище», «клерк» защищен не только от «подглядывания», но и от различного «силового» воздействия со стороны других программ. Как легко догадаться, LaGrande во всем этом отводится роль «кирпичных стен» (по терминологии Intel) и прочих защитных элементов. Читать дальше >>>

Масштабы задумки впечатляют — фактически LT защищает буквально все аспекты функционирования компьютерной системы и требует для своей реализации изменений в архитектуре центрального процессора, контроллера памяти и контроллеров ввода-вывода (AGP и USB), добавления в систему особого устройства — модуля TPM, существенной переработки BIOS и операционной системы, а в идеале — еще и использования специальных видеокарты, клавиатуры и мыши! Самое удивительное, что по всем пунктам уже выработаны необходимые спецификации, поддерживаемые крупнейшими участниками рынка. Intel и AMD обеспечивают поддержку LT в своих процессорах и чипсетах, Microsoft делает операционную систему New Generation of Secure Computing Base (NGSCB), а судя по участию в альянсе TCG (www.trustedcomputinggroup.org, занимается продвижением LT и подобных технологий) таких имен, как Nvidia, ATI, Phoenix, ALi, SiS и еще двух десятков не менее известных, за остальные слагаемые LT можно не волноваться. Конечно, доводка технологии займет немало времени, но калибр взявшихся за дело фирм не оставляет сомнений, что LT пойдет в массы.

Способов атаковать компьютерную систему, по сути, всего два. Первый — «вынести» из нее все хранящиеся данные и потом уже с ними разбираться. Но если данные зашифрованы, а ключи хранятся в надежном месте (классический пример — программа использует вводимый пароль), то этот способ, как правило, бесполезен. Более того, в LT предусмотрено и специальное защищенное хранилище — Trusted Platform Module (TPM), прочитать данные из которого сможет лишь записавшая их туда программа (взломать TPM без специального оборудования практически невозможно). TPM можно «привязать» к конкретному компьютеру — в модуле хранится специальный хэш1, вычисляемый на основе информации об основном оборудовании компьютера, и его можно настроить так, чтобы при несовпадении сохраненного и вычисленного при загрузке ОС хэшей модуль отказался выдавать данные. Так что копировать защищенную информацию (или красть винчестер с нею) бесполезно даже при наличии всех необходимых паролей. То же самое можно сказать и о попытке установить специальные «хакерские железки», маскирующиеся под компоненты системы (видеокарту, например, — она имеет прямой доступ в оперативную память компьютера). Правда, если ставится задача — уничтожить информацию или нарушить работу компьютера, то никакая LT в случае физического воздействия на оборудование, увы, не поможет.

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

Проблему несколько смягчают антивирусы, но в базе данных антивируса может и не найтись конкретной вредоносной программы (особенно если ведется целенаправленная атака на систему), и тогда он окажется бесполезен. А вот технология LaGrande, по крайней мере теоретически, позволяет организовать идеальную защиту. Во-первых, можно «подписать» все приложения и просто не разрешать запуск неподписанных приложений2 — именно такой способ несколько лет назад продвигала Microsoft со своим Palladium. Реакцию общественности на эту инициативу мы хорошо помним (см. врезку), но в корпоративном секторе метод теоретически может и прижиться, если компании-пользователи получат возможность самостоятельно создавать электронные подписи и подписывать ими нужные для работы приложения. Во-вторых, можно воспользоваться хорошо отработанным на системах сетевой безопасности принципом «обучения» — сначала мы «учим» систему, указывая, какие приложения можно запускать (система сохраняет соответствующую информацию в TPM), а затем переключаем ее в «рабочий» режим, запрещая запуск всех других приложений (или хотя бы научив ее предупреждать пользователя при попытке запуска подозрительного кода). Этот способ немного лучше, но его сложнее реализовать и с ним неудобно работать (кто хоть раз работал с файрволлом в «режиме обучения», это поймет, — а ведь программ на компьютере запускается намного больше, чем сетевых приложений). Так что защита от запуска не идеальна и к тому же не решает проблему целиком.

Microsoft Palladium. Краткие сведения

Впервые информация о Palladium была опубликована в июне 2002 года. Microsoft предложила свое видение «защищенных вычислений» на компьютере — использовать специальную операционную систему (доработанную версию MS Windows) и слегка модифицировать аппаратную часть (сильно упрощенный аналог LaGrande). Palladium должен был защищать от запуска вредоносных программ и обеспечивать безопасность хранящихся и передаваемых данных. Обещана поддержка AMD и Intel, ориентировочные сроки выхода первой версии — 2004 год.

Как и всякая крупная инициатива, Palladium немедленно оказался в центре общественного внимания. Как и всякое начинание Microsoft, он не избежал жесткой критики. Сразу же выяснилось, что предлагаемая схема изрядно напоминает схему, использующуюся для защиты игровой консоли XBox, — разрешается запуск лишь специальным образом «подписанных» приложений (проверку выполняет специальный чип, установленный в ПК). Аналогия очевидна — запуск только программ, разрешенных MS (или, скажем, консорциумом TCG, «курирующим» разработки систем аппаратной безопасности, — но разница непринципиальна), искоренение пиратства, взломанных версий программ, а заодно и «вредных» операционных систем вроде Linux. Раскопали и патенты 6,330,670 и 6,327,652 от декабря 2001 года — «A digital rights management operating system protects rights-managed data, such as downloaded content, from access by untrusted programs».

Palladium ведет к тому, что защищенные данные (например, специально подписанные музыка и видео) можно будет открыть только с помощью таких же «защищенных» программ. Прощай, WinAMP, здравствуйте, Microsoft Windows Media Player и надежно защищенные авторские права. Далее — ПК, оснащенный системой защиты MS Palladium, должен был содержать уникальные идентификаторы, доступные для прочтения извне (а это одновременно — и защита от «краж личности», когда кто-то, скажем, использует чужой номер кредитной карточки, выдавая себя за ее владельца, и крест на какой бы то ни было приватности в Интернете), а также иметь средства защиты от прочтения и автоматического удаления «плохих» документов («устаревшей» или не предназначавшейся именно данному компьютеру электронной почты и документов, защиты от спама и прочее). Все это было так очевидно и вопиюще, что не «проехался» по Palladium только ленивый (см. хотя бы www.gnu.org/philosophy/can-you-trust.html).

Тем не менее Microsoft продолжает защищать Palladium (см. www.microsoft.com/presspass/features/ 2002/jul02/024palladiumwp.asp), всячески открещиваясь от любых обвинений. Например, говорится, что Palladium не содержит в себе средств DRM («цифровой подписи») — и это правда, но только если не учитывать, что DRM на такой защищенной системе организуется с легкостью, а без подобной защиты это едва ли возможно. Однако звучное название успело скомпрометировать себя настолько, что в январе 2003 его заменили на длинную аббревиатуру NGSCB, которая теперь становится неотъемлемой составной частью Intel LaGrande.

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

Рис. 2. Схема функционирования современной
многозадачной операционной системы.

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

Рис. 3. Возможные варианты атаки прикладного приложения.

Начнем сверху — с непосредственной атаки на приложение. Способ более чем популярный (и, забегая вперед, — почти единственно возможный в семействе Unix-систем). Подробно он описан во второй статье цикла, здесь же мы просто отметим, что никакой защиты на этом уровне технология LaGrande не предоставляет.

Следующий уровень атак — через программные интерфейсы или ядро системы. Идея здесь такова: ядро (а в операционных системах корпорации Microsoft — еще и большая часть всевозможных интерфейсов) работает в так называемом нулевом кольце (ring 0) системной защиты. Проще говоря, весь этот код находится в привилегированном положении, и никакие ограничения безопасности на него не действуют. Так что если мы не можем взломать приложение — мы взломаем его окружение. Принципы атаки остаются прежними, ведь и ядро, и программные интерфейсы — в общем-то, вполне обычные программы. И если ядро (сравнительно небольшое по размерам и объему выполняемых функций) можно сделать очень надежным (что, собственно говоря, и реализовано в Unix-системах), то в программных интерфейсах исключить ошибки и уязвимости практически нереально. В Unix проблем это не вызывает — всевозможные системные библиотеки просто наследуют права доступа от работающего с ними приложения, и атаковать, по сути дела, оказывается нечего. С продукцией Microsoft ситуация иная: в погоне за производительностью компания давно перевела в ring 0 почти все критичные к скорости компоненты операционной системы, например DirectX. Ради той же скорости действия приложения в интерфейсах обычно еще и не проверяются на допустимость — фактически большинство функций может вызвать любая программа и с любыми параметрами. В результате у хакерского приложения появляется возможность обойти защиту (рис. 4).

Рис. 4.

Кроме того, ОС от Microsoft (все по той же причине — из-за внесения программных интерфейсов в ring 0) нередко позволяют напрямую обращаться к оборудованию компьютера. Это может быть чтение или модификация видеопамяти (хакерская программа «видит» все, что видит пользователь, и способна подделывать изображение на экране), перехват нажатия кнопок на клавиатуре и движений мыши или, наоборот, их эмуляция (перехватываются вводимые пароли, хакерская программа имитирует работу человека, чтобы использовать нормальную программу в своих целях). Есть и весьма экзотические виды атак — например, использование контроллера DMA. Этот контроллер имеет свободный доступ к памяти и программируется пользователем, так что хакерской программе нужно всего лишь «попросить» DMA залезть в недоступную ей память. В Unix все эти атаки практически невозможны4, поскольку любые действия приложения, проходящие через ядро (а любая непрямая атака проходит через ring 0, в котором в Unix-системах «живет» только ядро), строго контролируются операционной системой, которая не позволит напрямую обращаться к оборудованию без надлежащих прав доступа (рис. 5).5

Рис. 5.

Вернемся к ключевым пунктам защиты. То, что операционные системы семейства Unix защищены лучше ОС от Microsoft, слышали, наверное, все. Но почему так происходит, знают немногие. А причина проста: Unix-системы реализуют «наиболее правильную» защиту системы в целом — любые действия любого приложения, выходящие за пределы «компетенции» самого приложения, обязательно проходят проверку. Сделать это несложно, поскольку во «вседозволенном» режиме работает только ядро, в котором реализован весьма ограниченный набор функций. Но такой подход требует грамотного проектирования прикладных интерфейсов, чтобы по возможности минимизировать число обращений к аппаратным ресурсам.6 Читать дальше >>>


1. Хэш-функция сопоставляет набору разных данных (в нашем случае — серийных номеров, названий производителей и т. п.) какое-то число — хэш от этих данных. «Хорошая» хэш-функция наверняка даст для разных наборов разные числа, поэтому вместо громоздкой информации сохраняется лишь относительно небольшое число. [вернуться]

2. Напомним, что, во-первых, подписать программу, не зная соответствующих криптографических ключей, практически невозможно, а во-вторых, электронная подпись индивидуальна для каждой программы — в отличие от бумажной ее нельзя скопировать, чтобы подписать другое приложение. Любое изменение в подписанном приложении будет сразу же обнаружено, и запустить приложение не удастся. В LaGrande механизм этой проверки тщательно продуман — например, обойти защиту, «взломав» сам проверяющий код, невозможно. [вернуться]

3. Наборы функций, предназначенных для выполнения различных стандартных операций, таких, например, как «создать окно приложения» или «записать порцию данных в файл». [вернуться]

4. Сомневающиеся могут сравнить результаты, выдаваемые google.com по запросам «keylogger for windows» и «keylogger for unix OR linux». [вернуться]

5. Впрочем, некоторые хитрые трюки порой срабатывают даже здесь. Например, при неверных настройках контроллера памяти различным физическим адресам могут соответствовать одни и те же ячейки памяти («сворачивание» памяти) — знание этой особенности можно использовать для обхода защиты. Но это уже экзотика, присущая конкретному компьютеру, и хотя LaGrande помогает решить и эту проблему (специальным тестированием оборудования при запуске — в случае чего LT просто не запустится), едва ли это можно отнести к большим достижениям технологии. [вернуться]

6. Поясним это следующим примером: представьте себе защищенное здание, в котором располагается, скажем, фабрика кондитерских изделий (ядро операционной системы и драйверы) и торговые ряды, где реализуется готовая продукция (программные интерфейсы). Можно вынести ряды за пределы здания, оставив несколько хорошо защищенных проходов, но тогда продавцам, которым для обслуживания посетителя обычно требуется проделать множество действий (например, продать пять-шесть видов продукции), придется постоянно возвращаться на завод — а дело это небыстрое, посетитель на такой неторопливый сервис плюнет и уйдет. Чтобы избежать этого, прибегают к тем же способам, что и в реальной жизни: продавец заранее запасается необходимыми материалами (кэширование данных), а при обслуживании покупателя, вместо того чтобы бегать по каждому его требованию, внимательно его выслушивает, составляет списочек и уже затем, «за один заход», все выполняет. Это требует определенных усилий от продавца, зато фабрика оказывается надежно защищена. Но есть и другой способ обеспечить скорость работы — разобрать полстены и перенести рынок внутрь здания, на первый этаж. От защиты при этом мало что остается, зато продавцам далеко ходить не надо, и заказы исполняются быстро. [вернуться]

Итак, главная причина введения LaGrande, как ни печально, — необходимость компенсировать недостатки операционных систем семейства Microsoft Windows. Нет, LT, конечно, помогает и в других случаях (мы с них и начали), но если бы дело ограничивалось только этим, то безопасность работы возросла бы ненамного (что, кстати, ставит под вопрос целесообразность введения поддержки LaGrande в Unix) и не потребовалась бы такая сложная система защиты. Но работать в «самой популярной» операционной системе хочется многим, а переделывать Windows уже поздно (проще совершенно новую ОС написать). Так что смиримся с этим и посмотрим, что нам предлагается в качестве решения в LT.

Рис. 6. Взявшись защищать программу, а не операционную
систему в целом, мы вынуждены возводить вокруг нее
«великую китайскую стену».


Рис. 7.

А предлагается фактически «сдать» операционную систему без боя, но зато выстроить оборону вокруг критических приложений (см. рис. 7). По запросу приложения ему предоставляется безопасная область памяти, «залезть» в которую не может никто — ни другая программа, ни сама операционная система, ни даже любое внешнее оборудование (вроде DMA-контроллера). К программе приставляют небольшого помощника (кто-то же должен выполнять в этой области основные функции ОС), и мы получаем то, что Intel называет доменом, — изолированный участок пространства с собственной маленькой операционной системой и единственным запущенным приложением. Домен может свободно общаться с окружающей средой (кроме других защищенных доменов, конечно), а вот окружающая среда повлиять на него не может. Вернее, почти не может — ведь обычно программе, работающей в домене, требуется как-то общаться с пользователем, путь к которому пролегает по «враждебной территории» операционной системы. Хакерская программа по-прежнему может подслушивать беседу пользователя и защищенной программы; более того — обманывать их (представляясь пользователю нужной ему программой или выдавая свои действия за действия пользователя программе). В итоге в такую схему вынужденно добавляется необходимость организации специальных защищенных каналов связи домена с видеокартой, мышкой, клавиатурой (рис. 8) — поэтому полноценная поддержка LaGrande, строго говоря, потребует замены и этих устройств. В общем, взявшись защищать программу, а не операционную систему в целом, мы вынуждены возводить вокруг нее «великую китайскую стену» (рис. 6).

Рис. 8.

Встает вопрос надежности подобной стены — вдруг в определенных ситуациях через нее удастся перелезть (например, при возникновении системной ошибки в приложении или сбое в питании компьютера)? Чтобы не утомлять читателя подробным перечислением применяемых мер, скажем кратко: предусмотрено практически все, и уровень защиты технология обеспечивает вполне достаточный. Как один из примеров — по завершении работы программы все остающиеся в памяти данные тщательно уничтожаются, так что выудить секреты не удастся. При перезагрузке доступ к памяти блокируется: если там остались защищенные данные, то запускается модуль SCLEAN AC, который прописывает каждый байт памяти. При «засыпании» компьютера на памяти может остаться напряжение питания, но оно отсутствует на других компонентах LT, в результате чего защита памяти при выходе из спящего режима может не восстановиться. Здесь применяется шифрование содержимого памяти: ОС посылает сигнал о спящем режиме блоку управления доменами (DM), он шифрует всю защищенную память, и питание с нее снимается. При выходе из спящего режима OC запускает DM, а тот дешифрует данные в памяти.

Таблица 2. Характеристики безопасности LT

Характеристики

Почему это важно?

Защищенное исполнение
Часть платформы, где приложение выполняется без вмешательства и наблюдения.

Аппаратное внедрение разделения доменов.

Аттестация
Аппаратное подтверждение защищенности среды.

Вы вводите новую конфиденциальную информацию только в ту среду, которой доверяете. Среда = аппаратные средства и исполняемое ПО. Нельзя просто обратиться к приложению — оно может быть дезориентировано злоумышленниками.

Опечатанное хранение
Хранит конфиденциальную информацию для защищенной среды.

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

Защищенный ввод/вывод
 Гарантия безопасной связи с защищенным разделом.

Предоставляет инфраструктуру для создания доверительных каналов к устройствам ввода/вывода. Предоставляет защищенному разделу способность создавать доверительные пути.

И последний штрих. Чтобы пользователь мог убедиться, что он работает в защищенной системе с защищенной программой (а не вводит пароли в хакерскую фальшивку, имитирующую настоящее приложение), в LaGrande предусмотрены специальные возможности проверки подлинности. Подойдя к компьютеру, можно легко выяснить, стоит ли с ним работать (или пора звать специалиста по безопасности). Выглядит это примерно так: пользователь подключает к компьютеру специальную смарт-карту, карта проводит проверку системы (на основе данных модуля TPM о защищаемом приложении; информации LT о том, запущено ли искомое приложение, видно ли оно на экране и т. п.) и сигнализирует о результатах. Вместо смарт-карты можно использовать и специальные веб-сервисы, проводящие удаленную аттестацию системы. Основные характеристики безопасности LaGrande сведены в табл. 2. Читать дальше >>>

Как уже говорилось, для реализации LT придется переделать почти все аппаратное обеспечение (рис. 9): процессор (аппаратная поддержка доменов), контроллер памяти (защита отдельных участков памяти от любых атак), контроллер AGP и, возможно, видеокарту (защищенный вывод и видеопамять), а также контроллер USB (к которому подключается мышь и клавиатура — PS/2 давно уже «не в моде» и в который раз его пытаются из ПК удалить). Мышку и клавиатуру тоже придется модифицировать. Кроме того, появляется еще один компонент — к южному мосту по шине LPC подключается модуль TPM. Спецификации TPM, кстати, разрабатываются отдельно от LaGrande; технология уже продается на рынке, правда, только для целей защищенного хранения данных и проверки подлинности аппаратного обеспечения ПК. LT для своей работы требует TMP версии не ниже 1.2.

Рис. 9. Аппаратные компоненты LaGrande Technology.

Для полноты картины остается добавить, что пользователь может включать и выключать LaGrande в любой момент, даже не перезагружая систему, а внедрение технологии, видимо, произойдет через несколько лет, в процессорах с кодовым названием Tejas; хотя, как мы уже отмечали, ядро Prescott (и вероятно — Dothan и Nocona) уже содержит блоки для LaGrande, да и выходящие вскоре чипсеты Alterwood и Grandsdale тоже оснащены необходимыми блоками.

Чтобы систематизировать все вышесказанное, мы составили табл. 3.

Таблица 3. Проблемы безопасности и методы борьбы с ними

Проблема

Решение

Аппаратная реализация

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

Проверка подлинности запускаемого приложения («защищенный старт»)

TPM + операционная система NGSCB

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

В общем виде не существует, но можно предотвратить наиболее «популярные» атаки

Технология Execution Protection (непосредственно к LaGrande не относится)

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

В Unix-системах атака затруднена.
В Windows-системах защита обеспечивается запуском приложения в специальном изолированном домене («защищенное выполнение»)

Изменения в процессоре и контроллере памяти; ОС NGSCB и специальная BIOS с поддержкой доменов

Возможность перехвата и модификации вводимых пользователем данных, атака путем имитации действий пользователя

В Unix атака затруднена.
В Windows защита обеспечивается созданием специального защищенного канала ввода

Изменения в контроллере USB и устройствах ввода — мыши и клавиатуре; поддержка BIOS и NGSCB

Возможность перехвата и модификации выводимых пользователю данных

В Unix атака затруднена.
В Windows защита обеспечивается созданием специального защищенного канала вывода

Изменения в контроллере AGP и в видеокарте; поддержка BIOS и NGSCB

Возможность маскировки хакерского приложения под нормальную программу

Специальные механизмы проверки подлинности запущенных приложений

TPM + специальные сервисы или устройства аттестации

Возможность добавления в систему специального хакерского оборудования либо неправильной настройки оборудования. Возможность кражи информации (в другой компьютер)

Проверка подлинности и корректной работы компьютера, на котором выполняется приложение

TPM (непосредственно к LaGrande не относится)

Возможность атаки при возникновении нештатных ситуаций в программе

В Unix атака затруднена. В Windows требуется усиление защиты

Ряд специальных решений в LT

 

Послесловие

LaGrande появилась отнюдь не на пустом месте — о необходимости разработки аппаратной защиты ПО от вредоносных программ говорили давно. Корнями LT уходит в концепцию «безопасных вычислений» — TC, продвигаемую альянсом TC Group (Microsoft, Intel, IBM, AMD и Hewlett-Packard) 7. Однако, к сожалению, долгое время TC продвигалась под знаменами защиты копирайта и Digital Rights Management (DRM). Проще говоря, защищать программы и информацию предполагалось от самих пользователей. Так, летом 2002 года корпорация Microsoft объявила о введении в операционки нового поколения (которые как раз должны были появиться в 2004 году) системы защиты Palladium. Тогда это вызвало такой сильный общественный резонанс, что Рэдмонду пришлось отказаться от своих планов. Но TCG от своих планов отказываться не собирается — изменена лишь тактика действий. Сегодня «безопасные вычисления» продвигаются под девизом улучшения безопасности и преподносятся от лица производителей процессоров. «Заклятые друзья» Intel и AMD совместно вводят в свои процессоры Execution Protection, а в следующем поколении процессоров обеих корпораций обещается полноценная поддержка и LaGrande. Хорошо это? В целом да, но ведь не зря же NGSCB — лишь новое название для Palladium (см. www.computerra.ru/offline/2003/491/26495). Все это не может не вызывать опасений по поводу того, что после массового внедрения технологии мы «вдруг» обнаружим, что защита операционных систем Microsoft использует TPM, а установка, скажем, Linux неожиданно вызывает множество осложнений. И это еще не все — система с LT может быть однозначно идентифицирована по Сети. Помните историю с уникальными серийными номерами в процессорах Pentium III (см. www.computerra.ru/offline/1999/283/2289)? А теперь сопоставьте это с возможностью «аттестации с использованием удаленных веб-сервисов». LT можно применять для защиты документов (например, привязывая их к конкретному компьютеру, на котором они создавались) — вот где раздолье правозащитникам (можно будет безбоязненно копировать музыку с CD на компьютер — никуда больше перенести ее не удастся). Но вот можно ли будет открыть такие «защищенные» данные где-нибудь, кроме как в программах от Microsoft, — большой вопрос. Мало? В LT предусмотрены средства автоматического уничтожения документов. Скажем, можно указать, что конфиденциальная электронная почта должна удаляться через полгода после получения. И где гарантия, что эти же средства не будут применены при обнаружении пиратского контента? Технически LaGrande позволяет раз и навсегда претворить в жизнь самые смелые мечты поклонников DMCA. Так что, похоже, нам в очередной раз предлагают безопасность в обмен на свободу. Стоит ли LT этого или лучше все же перейти на безопасные операционные системы — решать вам.


7. Интересно, что аббревиатуру TC каждый из участников расшифровывает по-своему: IBM придерживается изначального «Trusted Computing», Microsoft успела переименовать концепцию в «Trustworthy computing», Intel теперь предпочитает название «Safer Computing»… За множеством имен скрывается общая идея — радикально улучшить защиту хранящейся информации и максимально осложнить взлом программ. [вернуться]

© ООО "Компьютерра-Онлайн", 1997-2019
При цитировании и использовании любых материалов ссылка на "Компьютерру" обязательна.