TrustZone сангаас хувийн түлхүүрүүдийг гаргаж авах боломжийг олгодог Qualcomm чипүүдийн эмзэг байдал

NCC группын судлаачид илэрсэн дэлгэрэнгүй мэдээлэл эмзэг байдал (CVE-2018-11976) ARM TrustZone технологи дээр суурилсан Qualcomm QSEE (Qualcomm Secure Execution Environment) тусгаарлагдсан анклавд байрлах хувийн шифрлэлтийн түлхүүрүүдийн агуулгыг тодорхойлох боломжийг олгодог Qualcomm чипүүдэд. Асуудал нь өөрөө илэрдэг ихэнх нь Android платформ дээр суурилсан ухаалаг гар утсанд өргөн тархсан Snapdragon SoC. Асуудлыг засах засварууд аль хэдийн байна орсон 19-р сард Android-ийн шинэчлэлт болон Qualcomm чипүүдэд зориулсан шинэ програм хангамжийн хувилбарууд. Засвар бэлтгэхэд Qualcomm жил гаруй хугацаа зарцуулсан; эмзэг байдлын талаарх мэдээллийг 2018 оны XNUMX-р сарын XNUMX-нд Qualcomm руу илгээсэн.

ARM TrustZone технологи нь үндсэн системээс бүрэн тусгаарлагдсан, тусдаа тусгай үйлдлийн систем ашиглан тусдаа виртуал процессор дээр ажилладаг техник хангамжаар тусгаарлагдсан хамгаалагдсан орчинг үүсгэх боломжийг олгодог гэдгийг санацгаая. TrustZone-ийн гол зорилго нь шифрлэлтийн түлхүүр, биометрийн баталгаажуулалт, төлбөрийн өгөгдөл болон бусад нууц мэдээллийн процессоруудыг тусгаарлах замаар хангах явдал юм. Үндсэн үйлдлийн системтэй харилцах нь диспетчерийн интерфейсээр дамждаг. Хувийн шифрлэлтийн түлхүүрүүд нь техник хангамжаас тусгаарлагдсан түлхүүрийн дэлгүүрт хадгалагддаг бөгөөд хэрэв зөв хэрэгжүүлбэл үндсэн систем нь эвдэрсэн тохиолдолд алдагдахаас сэргийлж чадна.

Энэ эмзэг байдал нь зууван муруй боловсруулах алгоритмыг хэрэгжүүлэх явцад гарсан алдаатай холбоотой бөгөөд энэ нь өгөгдөл боловсруулах явцын талаарх мэдээлэл алдагдсанаас үүдэлтэй юм. Судлаачид одоо байгаа шууд бус алдагдлыг ашиглан техник хангамжаас тусгаарлагдсан хувийн түлхүүрүүдийн агуулгыг сэргээх боломжийг олгодог хажуугийн сувгийн довтолгооны аргыг боловсруулсан. Android түлхүүрийн дэлгүүр. Салбарын урьдчилан таамаглах блокийн идэвхжил, санах ой дахь өгөгдөлд хандах хугацааны өөрчлөлтийн дүн шинжилгээнд үндэслэн алдагдлыг тодорхойлно. Туршилтаар судлаачид Nexus 224X ухаалаг гар утсанд ашигладаг техник хангамжаас тусгаарлагдсан түлхүүрийн дэлгүүрээс 256 ба 5 битийн ECDSA түлхүүрүүдийг сэргээж чадсаныг амжилттай харуулсан. Түлхүүрийг сэргээхэд 12 мянга орчим тоон гарын үсэг үүсгэх шаардлагатай байсан бөгөөд үүнд 14 цаг гаруй хугацаа зарцуулсан. Довтолгоонд ашигласан багаж хэрэгсэл Cachegrab.

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

Qualcomm чип дэх ECDSA түлхүүрүүдийг ашиглан дижитал гарын үсэг үүсгэхийн тулд ихэнх цагийг гарын үсэг бүрт өөрчлөгдөөгүй эхлүүлэх векторыг ашиглан давталтаар үржүүлэх үйлдлүүдийг хийхэд зарцуулдаг (Nuncio). Хэрэв халдагч энэ векторын талаарх мэдээллээр дор хаяж хэдэн битийг сэргээж чадвал хувийн түлхүүрийг бүхэлд нь дараалан сэргээх халдлага хийх боломжтой болно.

Qualcomm-ийн хувьд үржүүлэх алгоритмд ийм мэдээлэл алдагдсан хоёр газрыг тодорхойлсон: хүснэгтээс хайх үйлдлийг гүйцэтгэх үед болон "nonce" вектор дахь сүүлчийн битийн утгыг үндэслэн нөхцөлт өгөгдөл хайх код. Qualcomm код нь гуравдагч этгээдийн сувгаар дамжуулан мэдээлэл алдагдахаас урьдчилан сэргийлэх арга хэмжээг агуулдаг хэдий ч боловсруулсан халдлагын арга нь эдгээр арга хэмжээг тойрч гарах, 256 битийн ECDSA түлхүүрүүдийг сэргээхэд хангалттай "nonce" утгын хэд хэдэн битийг тодорхойлох боломжийг олгодог.

Эх сурвалж: opennet.ru

сэтгэгдэл нэмэх