Процессор Amlogic S905 используется во многих Android TV ящиках и платах развития ODROID-C2 реализует расширения системы безопасности ARM TrustZone для запуска Trusted Execution Environment (тройник) ,используемый для DRM и других функций безопасности. Тем не менее, Фредерику Бассу, инженеру безопасности, удалось обойти безопасную загрузку Amlogic S905 Android TV Box, а именно Inphic i7, но любое другое устройство на базе этого процессора думаю ломается таким же образом.
Он объясняет по шагам которые нужны и как им удалось использовать уязвимость для обхода безопасной загрузки в подробном посте в техническом блоге.
Они сначала начали с поиска информации в техническом описании Amlogic S905, но большинство информации о TrustZone были удалены из публичной версии. Так что не так уж много помощи они получили, кроме потенциального адреса для BOM Root (ROMBOOT_START 0xD9040000). Следующим шагом надо было соединить UART для того,чтобы получить доступ к последовательной консоли, но он не смог считать BootROM оттуда , скорее всего , потому , что вы не можете получить доступ к безопасному коду из незащищенной памяти.
Тем не менее, более близкий взгляд на загрузочный журнал привел их к идее о том что, чтобы найти загрузчики к ARM Trusted Firmware (ATF), в которые включены BL1x (BootROM в SoC), BL2 и BL3x загрузчики , как показано на рисунке ниже.
Он объясняет различные попытки получить доступ с помощью U-Boot загрузчика, SMC интерфейса (Secure Monitor Call), а также в обход безопасной загрузки цепочки. Первая попытка была не-Stater, вторая могла быть годной для использования , но , возможно, потребуется некоторые навыки и время экспертов, но третья была успешной после анализа механизма , используемого BL2 для анализа и проверки подлинности BL31, и нахождение криптографического кода,который пришел из OSS PolarSSL / mbed проекта TLS .
Далее обратный инжиниринг разъема “аутентификации” показал , что BL2 доступен только с помощью SHA-256 хэш для проверки целостности прошивки, и что на самом деле аутентификации нет. Чтобы подтвердить свои выводы, они установили на BL31 прошивку, обновление хэш SHA-256 ( с использованием сценария AML-Загрузчик-инструмент ), и он будет загружаться, и в конце концов им удалось сбросить BootROM от Amlogic S905 SoC.
Это вывод:
S905 SoC обладает аппаратными средствами для поддержки безопасной загрузки, однако OEM-производители могут по-прежнему включать его или нет. Но даже когда Secure загружается принудительно, ошибка в текущей версии BL2 Amlogic позволяет обойти его. Так Trusted Execution Environment нельзя доверять. Хорошей новостью является то BL2 может быть исправлен, в отличие от BootROM.
Благодарим сайт cnx-software.com за предоставленную информацию
Оригинал статьи тут