Исследователи безопасности из группы Zero, созданной компанией Google для предотвращения атак, совершаемых с использованием ранее неизвестных уязвимостей, опубликовали (https://googleprojectzero.blogspot.ru/2017/07/trust-issues-e...) результаты поиска уязвимостей в технологии TrustZone (https://www.arm.com/products/security-on-arm/trustzone), позволяющей создавать аппаратно изолированные защищённые окружения, в которых выполняется отдельная специализированная операционная система. Основным предназначением TrustZone является обеспечение изолированного выполнения обработчиков ключей шифрования, биометрической аутентификации, платёжных данных и другой конфиденциальной информации.
В исследовании рассмотрены реализации двух TEE-окружений
(Trusted Execution Environment) - Qualcomm QSEE и Trustonic Kinibi, применяемых в Android-смартфонах и базирующихся на расширениях ARM TrustZone. Обе системы предоставляют урезанные проприетарные операционные системы, работающие на отдельном виртуальном процессоре и позволяющие выполнять специализированные защищённые обработчики (TA, Trusted Applications"). Защищённые обработчики не могут напрямую взаимодействовать с основной операционной системой Android, их вызов и передача данных осуществляется косвенно, через интерфейс диспетчеризации, работу которого обеспечивает устанавливаемые в основной системе библиотеки, процессы-демоны и модули ядра.
Исследование показало недостаточный уровень безопасности рассмотренных решений, в которых было выявлено несколько уязвимостей, а также одна кардинальная архитектурная недоработка, которую невозможно устранить без изменений на аппаратном уровне или снижения стабильности работы устройства. Выполняемые внутри защищённых окружений операционные системы в полной мере не реализуют современные методы блокирования атак (например, защиту от переполнения стека), что позволяет использовать выявленные уязвимости для совершения реальных атак. Проблемы проявляются во всех устройствах на чипах Qualcomm и устройствах на чипах Trustonic Kinibi версии до 400 (т.е. все устройства на базе Samsung Exynos, кроме Galaxy S8 и S8 Plus).
Для получения контроля над компонентами защищённого окружения достаточно найти уязвимость в выполняемых в данном окружении обработчиках, которые написаны без использования языков, обеспечивающих безопасные методы работы с памятью, и содержат типовые ошибки, свойственные коду на языке Си. Например, продемонстрированы методы эксплуатации, которые манипулируют переполнением стека в запускаемом внутри защищённого окружения обработчике одноразовых паролей (OTP). Эксплуатация производится через передачу слишком больших значений токенов, не вмещающихся в буфер, созданный на основании передаваемого в составе команды аргумента с размером токена.Таким образом атака на компоненты защищённой ОС напоминает эксплуатацию уязвимостей в ядре ОС, осуществляемую через манипуляцию с системными вызовами. Но в случае защищённого окружения проблема усложняется тем, что многими производителями смартфонов не предусмотрено средств для отзыва защищённых обработчиков и выявленную уязвимость становится не так просто исправить. Более того, из-за отсутствия системы отзыва цифровых подписей прошивок, имеется возможность применять старые уязвимые прошивки для получения контроля за защищённым окружением, т.е. когда то выявленную уязвимость можно использовать неопределённое время. Во многих случаях обработчики выполняются в привилегированном режиме, что при успешной атаке позволяет не только получить доступ к данным, связанным с обработчиком , но и получить контроль над всем устройством.
URL: https://googleprojectzero.blogspot.ru/2017/07/trust-issues-e...
Новость: http://www.opennet.me/opennews/art.shtml?num=46911
Вот не знаю, кому как - я лично я только рад. Похоже, подобные "открытия" - самый надёжный способ получить контроль над собственным девайсом.
Веселее будет, если уязвимости найдут в чипах AMD, где тоже присутствует TrustZone (во всех современных APU, а начиная с Ruzen - и в CPU)
Мань, интел не продаётся и надо писать про амд недо-FUD? Дык в вашей богадельне те же проприетарные неуправляемые, неотключаемые зонды, да ещё и на два года раньше появились, почти 10 лет назад.
> Мань, интел не продаётся и надо писать про амд недо-FUD? Дык вЯ "очень люблю" квалком, и вот оно снова повторилость.
https://www.reddit.com/r/Amd/comments/5x4hxu/we_are_amd_crea.../
> вашей богадельне те же проприетарные неуправляемые, неотключаемые зонды, да ещё и
> на два года раньше появились, почти 10 лет назад.
[Предыдущий комментарий куда-то пропал]AMD встроила в процессоры "ядро обеспечения безопасности". AMD еще несколько лет назад обещала, что AGESA будет всегда поставляться в виде исходников - сейчас AGESA поставляется в виде блоба.
И это нельзя осуждать, потому что Intel провернула подобное безобразие 10 годами раньше? Пойми, что если кто-то негативно высказывается вот об этом непотребстве, он не обязательно "интелофанат". Я и об Intel ME неоднократно писал в таком же тоне, так чей же я, получается, фанат? ;)
> Веселее будет, если уязвимости найдут в чипах AMD, где тоже присутствует TrustZoneМнээ.. Там точно тот же TrustZone?
> (во всех современных APU, а начиная с Ruzen - и в CPU)
Ryzen таки. И тама вроде как PSP (Platform Security Processor). Не в курсе, насколько это одно и тоже.
там вроде как арм сопроцессор побольше для этого и всё дело в реализации вот этой проприетарной секьюрнаноось которая в нём крутится.
>> Веселее будет, если уязвимости найдут в чипах AMD, где тоже присутствует TrustZone
> Мнээ.. Там точно тот же TrustZone?
>> (во всех современных APU, а начиная с Ruzen - и в CPU)
> Ryzen таки. И тама вроде как PSP (Platform Security Processor). Не в
> курсе, насколько это одно и тоже.PSP основана на Trustonic TEE, которая, в свою очередь, работает на всё той же технологии ARM TrustZone, как и описанные в статье TEE-окружения.
>>> Веселее будет, если уязвимости найдут в чипах AMD, где тоже присутствует TrustZone
>> Мнээ.. Там точно тот же TrustZone?
>>> (во всех современных APU, а начиная с Ruzen - и в CPU)
>> Ryzen таки. И тама вроде как PSP (Platform Security Processor). Не в
>> курсе, насколько это одно и тоже.
> PSP основана на Trustonic TEE, которая, в свою очередь, работает на всё
> той же технологии ARM TrustZone, как и описанные в статье TEE-окружения."Земля вызывает Project Zero!... Земля вызывает Project Zero!... Свежее мясо. Ням-ням!!"
""[...]Vega Pro graphics hardware has a "secure processor" onboard.
Here's how their PR folks describe this secure processor:
[...]During use, the AMD Secure Processor works in tandem with Radeon Pro Software and Microsoft Device Guard to help thwart malicious attacks. During shutdown, the AMD Secure Processor continues securing graphics bound IP until device termination.[...] Though we might not see this support by the open-source driver as to not potentially compromise the secure processor's implementation, just as UVD wasn't initially supported by the open-source Linux driver stack. ""
-- http://www.phoronix.com/scan.php?page=news_item&px=Vega-Pro-......"[U]open-source [,,,] to not potentially compromise the secure processor's implementation[/U]"...
Чёрные шапки, вас его! Ну, пожалуйста.
> Вот не знаю, кому как - я лично я только рад. Похоже,
> подобные "открытия" - самый надёжный способ получить контроль над собственным девайсом.проблема в том что после того как ты получишь полный контроль над своим девайсом - любой вебсайтек точно так же получит полный контроль над твоим девайсом, и ты на это со всем своим контролем никак не повлияешь вообще
и до того как ты получишь - точно так же любой будет получать
Вообще - проблема, но конкретно для меня - вряд ли. Для этого надо, чтобы:1) "любой вебсайтек" был вообще открыт - я довольно консервативен в том, куда хожу.
2) "вебсайтек" вообще что-то исполнил - а обычно у меня скрипты рубятся, а все "продвинутые" возможности, вроде OpenGL и подобного - тем более.
3) была дыра в браузере - бывает, ну так обновляться надо.
4) на эту дыру был в комплекте рабочий эксплоит - несколько экзотичный набор софта, включая браузер, это здорово усложняет.Вообще, надо не на песочницы надеяться, а мусор не запускать, это и к коду с сайтов относится, и к устанавливаемым приложениям.
>проблема в том что после того как ты получишь полный контроль над своим девайсом - любой вебсайтек точно так же получит полный контроль над твоим девайсомВсе поняли? >:-)
Руки прочь от контроля девайсов.
Кстати за ношение контролируемых кем-то но не вами девайсов на себе и по разным закоулкам вообще-то должны бы платить зарплатку...
> Вот не знаю, кому как - я лично я только рад. Похоже,
> подобные "открытия" - самый надёжный способ получить контроль над собственным девайсом.хорошо, если контроль получишь ты, а может выйти что его до тебя получит малварь и ты об этом не узнаешь - код в tz и память tz обычной системе не видно
Пару лет назад (что сейчас, не знаю, не касался), этот TZ активно пиарили по всех конференциях, к месту и не к месту. Постоянно упоминали ARM и его преимущество TZ. Сразу ясно стало, что это лажа всё.
Не лажа, а средство защиты уязвимостей, выходит.
> Не лажа, а средство защиты уязвимостей, выходит.Только не уязвимостей, а сертифицированных бекдорчиков.
> Пару лет назад (что сейчас, не знаю, не касался), этот TZ активно
> пиарили по всех конференциях, к месту и не к месту.drmщикам удобно - ключи не получает даже рут, а так зависит от того чей кот. есоли твой - бу мягкий и пушистый и ключи охраняет, а если проприетарь - она кусачая и заразу разносит.
> достаточно найти уязвимость в выполняемых в данном окружении обработчиках, которые написаны без использования языков, обеспечивающих безопасные методы работы с памятью, и содержат типовые ошибки, свойственные коду на языке Си.Звучит так, как будто они подразумевают существование этих ошибок само собой разумеющимся. Может пора уже писать на языках в которых невозможно сделать такую ошибку?
> Может пора уже писать на языках в которых невозможно сделать такую ошибку?Скажу тебе по секрету: все эти TZ и ME - аппаратные реализации. Предлагаешь заменить вентили... на что? Есть ещё вариант - заменить людей на роботов, которые 100% не сделают ошибок, ну разве что в самих роботах не будет ошибок.
Так есть такие специальные люди, которые заставляют других людей намеренно включать "ошибки" в железо и софт. Поэтому такие особенные люди над роботами, тем более, будут иметь тотальный контроль.
> Так есть такие специальные люди, которые заставляют других людей намеренно включать "ошибки"
> в железо и софт.Зачем? У "других людей" это неплохо получается и когда непреднамеренно. Точнее, вообще у всех людей.
> Так есть такие специальные люди, которые заставляют других людей намеренно включать "ошибки" в железо и софт.Как это коррелируется с "языках в которых невозможно сделать такую ошибку"? Речь вообще не о том была, но анон как всегда всё понял по своему.
> Так есть такие специальные люди, которые заставляют других людей намеренно включать "ошибки"
> в железо и софт.в этом случае больше всего просили drmщики и операторы продающие лоченые телефоны, вместе с компаниями типа эппла желающими контролировать устройство от и до
>> Может пора уже писать на языках в которых невозможно сделать такую ошибку?
> Скажу тебе по секрету: все эти TZ и ME - аппаратные реализации.
> Предлагаешь заменить вентили... на что? Есть ещё вариант - заменить людей
> на роботов, которые 100% не сделают ошибок, ну разве что в
> самих роботах не будет ошибок.вообще-то давно уже не аппаратные. там маломощное урезанное, изолированное ядро\сопроцессор с кусочком пзу в котором суперсекьюрная наноось крутится и задачи сверхсекретные выполняет.
> вообще-то давно уже не аппаратныеВообще-то никогда такими и не были.
в ME - да, а TZ - это просто ещё один режим/уровень привилегий, и исполняется на том же обычном процессоре, что и основная ОС
> с кусочком пзу в котором суперсекьюрная наноось крутится и задачи сверхсекретные
> выполняет.tz сам по себе лишь режим процессора, наиболее привилегированный, в который процессор пускает очень разборчиво. типа smm у интеля, чтоли. если ты там пустил твой код то можешь всех остальных туда не пускать, но если код там запустили до тебя - вот тебя и твой код туда и не пустят как раз. там все просто, кто первый - тот и царь горы.
> Звучит так, как будто они подразумевают существование этих ошибок само собой разумеющимся. Может пора уже писать на языках в которых невозможно сделать такую ошибку?Люди ошибаются, это аксиома. Если на неком языке нельзя будет сделать какую-то ошибку, то сделают другую.
Что-то я не понял, где собственно "архитектурная" уязвимость? Разве TrustZone обещал защиту от кривого кода? Ведь его основная задача - защитить код от внешнего доступа, а то, насколько большой и забагованный этот код - уже дело разработчиков.
> Что-то я не понял, где собственно "архитектурная" уязвимость?Как я понял архитектурная уязвимость связана с непроработкой верификации прошивок по цифровой подписи и возможности загрузки старых версий прошивок для TrustZone. Получается всегда можно загрузить старую прошивку с уязвимостью, хакнуть её и утянуть ключи/обойти аутентификацию для доступа к основной системе.
>> Что-то я не понял, где собственно "архитектурная" уязвимость?
> Как я понял архитектурная уязвимость связана с непроработкой верификации прошивок по цифровой
> подписи и возможности загрузки старых версий прошивок дляДа! надо прошифки с уязвимостями подписывать 16384-битными ключами. Ужо тогда-то все ошибки и переплнения разбегутся и предохнут. Со смешу.
> Что-то я не понял, где собственно "архитектурная" уязвимость?Архитектурная уязвимость — это невозможность обновления.
TrustZone - сама по себе уязвимость.
> TrustZone - сама по себе уязвимость.всёж нет, это полезный инструмент, но по факту ринг0 обычного проца точно так же должно работать как трастзон
проблема в том что сейчас прошивки трастзон - проприетарное г овн ище
Есть OS-TEE но его в продакшене вроде ещё не используют
> проблема в том что сейчас прошивки трастзон - проприетарное г овн ищев uboot есть минимаьлные реализации открытого кода tz - управляет питанием и проч, а на гитхабе "arm trusted firmware" (atf) выложен, прям фирмой arm! на его основе часть проприетари и делают, там лицензия bsd. на половине sbc типа малин и бананов в tz можно свой код запустить. дальше им можно затянуть гайки и например не пускать ядро в периферию кроме как через свой secure monitor, если кодить не лениво. а если secure monitor запустил до тебя вражеский бутлодырь - тебя поимели...
> Проблемы проявляются во всех устройствах на чипах Qualcomm и устройствах на чипах Trustonic Kinibi версии до 400 (т.е. все устройства на базе Samsung Exynos, кроме Galaxy S8 и S8 Plus).это что бы восьмерка лучше продавалась?
Ну как же без конспирологии... Скорее всего, просто нашли это дело не вчера, и в новых железках успели поправить что-то.
> Ну как же без конспирологии... Скорее всего, просто нашли это дело не
> вчера, и в новых железках успели поправить что-то.Скорее всего искали это дело не один месяц, а до новых железок просто ещё руки не дошли.
Вопрос только в том как это можно отключить совсем. Допустим, не хочу я свою ключи хранить в этом модуле, не пользуюсь, но опасность он для меня представляет.
Ага, гораздо надёжней хранить ключи в глобально-читаемом файле на общей флешке.
Очень просто - не покупай.
> Вопрос только в том как это можно отключить совсем. Допустим, не хочу
> я свою ключи хранить в этом модуле, не пользуюсь, но опасность
> он для меня представляет.просверлить дырку в процессоре.
Твои ключи он хранить и не будет, бгг. Это просто красивые слова, по факту просто DRM-зонд и более ничего. Правда DRM он тоже криво обеспечивает, но это уж судьба такая, DRM всегда криво.Так что ломают и пусть ломают.
По факту гугл предатели) в силу того что занимаются DRM.
Вас с андроидом кинули поманив открытостью(а в итоге без плей фреймворка больше половины софта не работает) но про то что кинули только сейчас понял после дрм?
Там 99/100 софта может не то что не запускаться, а вообще не существовать - и пёс бы с ним. Впрочем, что андроид - уродливая дрянь, я не спорю. Удобных мобил вообще нет в природе, судя по всему.
> Вас с андроидом кинули поманив открытостью(а в итоге без плей фреймворка больше
> половины софта не работает) но про то что кинули только сейчас
> понял после дрм?Ну здесь даже не DRM.
Но снова встаёт ребром вопрос использования и поставок открытого ПО в не являющейся открытой системе...
И прочая тивоизация...
"Открытое" ПО для этого и создавалось. В отличие от свободного.
>а в итоге без плей фреймворка больше половины софта не работаетmicrog
> Для получения контроля над компонентами защищённого окружения достаточно
> содержат типовые ошибки, свойственные коду на языке Сикрупнейшая диверсия против человечества продолжается
мыши плакали, кололись, но продолжали жрать кактус
всё время потраченное на отлов и исправление ошибок программ на языке Си если бы направили на создание автоматических оптимизаторов в компиляторах типо ллвм (универсальный байткод или блоксхема в машинный код) - уже яблони на марсе бы были
разве крупнейшая диверсия против человечества -- это не бесчисленное количество Javascript-фреймворков велосипедящих друг друга через резличные хитрозакрученные костыли?
> разве крупнейшая диверсия против человечества -- это не бесчисленное количество Javascript-фреймворков
> велосипедящих друг друга через резличные хитрозакрученные костыли?Не, их npm -- круче!
https://lists.gnu.org/archive/html/guix-devel/2017-07/msg001...
https://lists.gnu.org/archive/html/guix-devel/2017-05/msg004...Из сорсов оно не буилдится, в зависимостях -- разные версии одного и того жепакета, одновременно/, тысячи их/, местами исходников просто нет ипритд