Уразлівасць у чыпах Qualcomm, якая дазваляе выняць зачыненыя ключы са сховішча TrustZone

Даследчыкі з кампаніі NCC Group раскрылі дэталі уразлівасці (CVE-2018-11976) у чыпах Qualcomm, якая дазваляе вызначыць змесціва закрытых ключоў шыфравання, размешчаных у ізаляваным анклаве Qualcomm QSEE (Qualcomm Secure Execution Environment), заснаваным на тэхналогіі ARM TrustZone. Праблема праяўляецца ў большасці SoC Snapdragon, якія атрымалі распаўсюджванне ў смартфонах на базе платформы Android. Выпраўленні, якія ўхіляюць праблему, ужо ўключаны у красавіцкае абнаўленне Android і ў новыя выпускі прашывак для чыпаў Qualcomm. На падрыхтоўку выпраўлення кампаніі Qualcomm спатрэбілася больш за год – першапачаткова звесткі аб уразлівасці былі накіраваныя ў Qualcomm яшчэ 19 сакавіка 2018 года.

Нагадаем, што тэхналогія ARM TrustZone дазваляе ствараць апаратна ізаляваныя абароненыя асяроддзі, якія цалкам аддзеленыя ад асноўнай сістэмы і выконваюцца на асобным віртуальным працэсары з выкарыстаннем асобнай спецыялізаванай аперацыйнай сістэмы. Асноўным прызначэннем TrustZone з'яўляецца забеспячэнне ізаляванага выканання апрацоўшчыкаў ключоў шыфравання, біяметрычнай аўтэнтыфікацыі, плацежных дадзеных і іншай канфідэнцыйнай інфармацыі. Узаемадзеянне з асноўнай АС ажыццяўляецца ўскосна праз інтэрфейс дыспетчарызацыі. Зачыненыя ключы шыфравання размяшчаюцца ўсярэдзіне апаратна ізаляванага сховішчы ключоў, што пры належнай рэалізацыі дазваляе прадухіліць іх уцечку ў выпадку кампраметацыі асноўнай сістэмы.

Уразлівасць звязана з недапрацоўкай у рэалізацыі алгарытму апрацоўкі эліптычных крывых, якая прыводзіла да ўцечкі інфармацыі аб ходзе апрацоўкі дадзеных. Даследнікі распрацавалі тэхніку нападу па іншых каналах, якая дазваляе па наяўных ускосным уцечкам аднавіць змесціва зачыненых ключоў, размешчаных у апаратна ізаляваным Android Keystore. Уцечкі вызначаюцца на аснове аналізу актыўнасці блока прадказанні пераходаў і змены часу доступу да дадзеных у памяці. У ходзе эксперыменту даследчыкі паспяхова прадэманстравалі аднаўленне 224 – і 256-разрадных ключоў ECDSA з апаратна ізаляванага сховішчы ключоў, які ўжываецца ў смартфоне Nexus 5X. Для аднаўлення ключа спатрэбілася генерацыя каля 12 тысяч лічбавых подпісаў, на якую спатрэбілася больш за 14 гадзін. Для правядзення нападу выкарыстоўваўся інструментар Cachegrab.

Асноўнай прычынай узнікнення праблемы з'яўляецца сумеснае выкарыстанне агульных апаратных кампанентаў і кэша для вылічэнняў у TrustZone і ў асноўнай сістэме - ізаляцыя выканана на ўзроўні лагічнага падзелу, але з выкарыстаннем агульных вылічальных блокаў і з ссяданне слядоў вылічэнняў і інфармацыі аб адрасах пераходаў у агульным працэсарным кэшы. Пры дапамозе метаду Prime+Probe, заснаванага на адзнацы змены часу доступу да пракэшаванай інфармацыі, можна праз праверку наяўнасці вызначаных шаблонаў у кэшы з досыць высокай дакладнасцю адсочваць струмені дадзеных і прыкметы выканання кода, звязанага з вылічэннямі лічбавых подпісаў у TrustZone.

Вялікая частка часу фармавання лічбавага подпісу з выкарыстаннем ключоў ECDSA у чыпах Qualcomm марнуецца на выкананне аперацый множання ў цыкле з выкарыстаннем нязменнага для кожнага подпісу вектара ініцыялізацыі (нунцый). Калі атакавалы зможа аднавіць хаця б некалькі бітаў з інфармацыяй аб дадзеным вектары, з'яўляецца магчымасць здзяйснення нападу па паслядоўным узнаўленні ўсяго зачыненага ключа.

У выпадку з Qualcomm выяўлена два месцы ўцечкі падобнай інфармацыі ў алгарытме множання: пры выкананні аперацый пошуку ў табліцах і ў кодзе ўмоўнага вымання дадзеных на аснове значэння апошняга біта ў вектары "nonce". Нягледзячы на ​​наяўнасць у кодзе Qualcomm мер па процідзеянні ўцечкам звестак па іншых каналах, распрацаваны метад нападу дазваляе абыйсці гэтыя меры і вызначыць некалькі бітаў значэння "nonce", якіх дастаткова для аднаўлення 256-разрадных ключоў ECDSA.

Крыніца: opennet.ru

Дадаць каментар