(Ноябрь 2000)
О технологии обновления микрокодов ― «тайном оружии» корпорации Intel и других производителей аппаратного компьютерного обеспечения.
В дискуссионных интернет-форумах, посвященных вопросам компьютерной безопасности, достаточно регулярно поднимается вопрос о всяких укромных и недокументированных местах машины, не поддающихся контролю со стороны ОС и потенциально дающих приют для упрятывания троянских коней, скрытых лазеек и прочих «черных ходов» в компьютер.
Одним из недавних поводов для такой дискуссии стала публикация в онлайновом (с некоторых пор) журнале BYTE, посвященная малоизвестной технологии Intel, применяемой для обновления микрокодов процессоров Pentium (http://www.byte.com/column/BYT20001016S0006 ).
Основное предназначение технологии ― быстро исправлять и подлатывать баги, обнаруженные в процессорах после их выхода в продажу. В ноябре 1994 года корпорация Intel в избытке хлебнула неприятностей в связи с обнаружением в ее новых процессорах знаментиого «бага с плавающей точкой», поэтому начиная с модели Pentium Pro во всех чипах архитектур IA-32 и IA-64 реализована так называемая возможность «обновления BIOS».
Несмотя на все старания компании сохранить в тайне информацию о подробностях этой технологии, кое-какие данные все же просачиваются и содержат они не всегда приятные открытия. На сегодняшний день о технологии «BIOS Update» известно следующее.
Эта возможность, практически никак не документированная во внешних справочных материалах Intel, позволяет исправлять «баги» путем латания микрокодов внутри микропроцессора. Новые микрокоды-патчи («заплатки»), поставляемые фирмой Intel, прописываются в специальный «блок обновления данных BIOS» длиной 2048 байт и загружаются в процессор при запуске машины.
Непосредственно под микрокоды в этом блоке (BUpdate Data Block) отведено 2000 байт, еще 48 байт – это заголовок и контрольная сумма. Загружается блок обновлений специальным «загрузчиком», который поставщики систем BIOS обязаны зашивать во все свои чипы, предназначенные для работы c процессорами Intel.
На практике процедура «латания» может выглядеть, к примеру, так. Если выявлен очередной «баг», Intel выпускает «пересмотренную версию BIOS», которую OEM и прочие клиенты фирмы могут загрузить с веб-сайта компании. После чего во флэш-память BIOS на материнской плате компьютера следует загрузить эту обновленную версию программы. Что называется, дешево и сердито.
Однако, в связи со всей этой технологией существует весьма серьезная проблема, на которую указали еще года четыре назад, когда впервые появилась информация о «BIOS Update». Применяемые ныне системы BIOS таковы, что не способны верифицировать, действительно ли «законными» являются микрокоды, загружаемые из «блока обновления». Единственное, что требуется для успешной загрузки ― это корректность заголовка и контрольной суммы.
Если тут все в порядке, то BIOS, в принципе, может загрузить в микропроцессор все что угодно. И никакая операционная система не поможет выявить такую закладку.
Естественно, в Intel предприняли все возможные меры для защиты этой технологии от злоупотреблений. Собственно говоря, поддерживаемая вокруг данной возможности плотная завеса секретности, ― это, как предполагается, тоже один из существенных элементов максимальной безопасности.
Сам «блок обновления» существует только в зашифрованном виде, причем алгоритм шифрования неизвестен. Расшифровываются данные непосредственно перед загрузкой. Однако известно, что в расшифрованном виде это уже непосредственный набор микроинструкций, т.е. команд самого нижнего уровня, управляющих работой вентилей микропроцессора.
Трудно сказать, сколь долго корпорации Intelудастся удерживать в секрете подробности технологии «BIOS Update». Вполне определенно известно лишь то, что практика обновления микрокодов применяется в компьютерной промышленности по меньшей мере уже третий десяток лет.
Например, компания ICL начала делать такие вещи еще с конца 1970-х годов. Причем, как вспоминает один из бывших сотрудников ICL, они осуществляли обновление микрокодов своим клиентам даже с помощью модемных соединений через обычные телефонные линии. Имеется информация о практиковании подобных вещей и другими фирмами, благо потенциально технология действительно сулит значительные удобства.
В связи с этим задается даже такой вопрос. А с какой стати, собственно говоря, начинают называть «черным ходом» вполне обычный механизм обновления микрокодов (или программ)? Ведь, к примеру, совершенно обычной практикой является загрузка патчей для программ. В частности, ведь именно так ставятся и новые заплаты для усиления безопасности систем.
Ответ на данный вопрос звучит достаточно просто. Обновление микрокодов именуется «потайным ходом»по той причине, что несет в себе практически все характеристики, таким лазейкам присущие:
- Заинтересованная общественность не ставится в известность об этих возможностях;
- Метод использования технологии сохраняется в тайне;
- Скрытые возможности можно использовать для получения полного контроля над машиной;
- Эти возможности не выявляются с помощью внешних средств поиска вирусов и троянцев.
Так что единственное, на что остается уповать пользователям, это на безупречную порядочность Intel и ее сотрудников, хранящих интимные секреты фирмы.
Одна беда ― под «порядочностью» разные люди понимают очень разные вещи.
___