Найдены два способа взламывать чипы повышенной защищенности

Южнокорейские эксперты из Национального института исследования вопросов безопасности описали два типа кибератак на так называемые TPM-микроконтроллеры.

Аббревиатура TPM расшифровывается как Trusted Platform Module (модуль доверенной платформы): это ряд специализированных процессоров, отвечающих за авторизацию аппаратного обеспечения в компьютерной системе при загрузке и при обычной работе. Чаще всего такие чипы используются в компьютерных системах, нуждающихся в повышенной защищённости, но нередко применяются и в обычных пользовательских рабочих станциях.

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

Во всех современных компьютерах реализованы средства оптимизации энергопотребления: попросту говоря, запитанными оказываются не все компоненты системы, а только те, которые должны работать в данный момент. Для этого существуют специализированные API, распределяющие электроэнергию в соответствии с текущей задачей, и переводящие в «спящий режим» те компоненты, которые в этой задаче не задействуются.

Южнокорейские эксперты описали два типа кибератак на чипы повышенной защищенности - TPM-микроконтроллеры

TPM-контроллеры поддерживают интерфейс ACPI (Advanced Configuration and Power Interface), и это как раз один из инструментов, которые операционные системы используют для управления и оптимизации энергопотребления периферийными компонентами.

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

Первая атака

Первая атака работает против компьютеров, в которых применяются TPM-чипы, использующие статический корень измерения доверия (Static Root of Trust Measurement, SRTM) при загрузке.

По мнению экспертов, причина уязвимости заключается в недостатках спецификаций TPM 2.0. Поскольку никто до сих пор не заметил этих ошибок, они распространились по компьютерным системам большинства производителей ПК. Индекс уязвимости - CVE-2018-6622.

Сценарий атаки предполагает, что злоумышленник использует сбои питания и процедуру восстановления состояния TPM для получения валидных хэшей для компонентов, задействованных в процессе загрузке; эти хэши затем направляются на тот же TPM-чип с поддержкой SRTM, заставляя его думать, что он использует авторизованные компоненты, даже если на деле задействованы уже совсем другие устройства.

В ходе экспериментов исследователи смогли вносить неавторизованные изменения в системы с TPM, произведённые Intel, Dell, Gigabyte и ASUS. Вполне вероятно, ими проблема не ограничивается.

В настоящее время, как минимум, Intel и Dell занимаются подготовкой патчей для BIOS и UEFI, но, очевидно, что пройдёт ещё какое-то время, прежде чем обновления распространятся по конечным системам.

Вторая атака

Вторая атака направлена на TPM-чипы с поддержкой динамического корня измерения доверия (DRTM). К счастью, данная атака охватывает значительно меньшее количество систем, чем первая: фактически всё ограничивается теми компьютерами, в которых реализована технология Intel Trusted eXecution Technology (TXT). Именно в открытой библиотеке tboot, используемой в TXT, и содержится уязвимость, делающая атаку возможной.

Уязвимость была исправлена ещё в ноябре 2017 г.

«Обе уязвимости требуют физического доступа к компьютеру для эксплуатации - считает Роман Гинятуллин, эксперт по информационной безопасности компании SEC Consult Services. - Это условие, казалось бы, снижает степень угрозы, но с другой стороны возникает вопрос: сколько времени пройдёт, прежде чем необходимые обновления BIOS/UEFI будут установлены на конечных устройствах?»

Полный текст исследования южнокорейских экспертов доступен по ссылкам.


Источник: CNEWS


Добавить комментарий

Оставить комментарий

Кликните на изображение чтобы обновить код, если он неразборчив