Нууцлагдмал өгөгдлийг задлах эсвэл анклав дахь кодыг ажиллуулахын тулд Intel SGX руу дайраарай

Ардын чөлөөлөх армийн Батлан ​​хамгаалахын шинжлэх ухаан, технологийн их сургууль, Сингапурын үндэсний их сургууль, ETH Zurich-ийн судлаачид Intel SGX (Software Guard eExtensions) тусгаарлагдсан анклавууд руу довтлох шинэ аргыг боловсруулжээ. Энэхүү халдлагыг SmashEx гэж нэрлэдэг бөгөөд Intel SGX-ийн ажиллах үеийн бүрэлдэхүүн хэсгүүдийг ажиллуулах явцад онцгой тохиолдлуудыг шийдвэрлэх үед дахин нэвтрэхтэй холбоотой асуудлаас үүдэлтэй. Санал болгож буй халдлагын арга нь хэрэв та үйлдлийн системийг хянах боломжтой бол анклав дахь нууц мэдээллийг тодорхойлох, эсвэл кодоо анклавын санах ойд хуулбарлах, түүний гүйцэтгэлийг зохион байгуулах боломжтой болгодог.

Intel SGX SDK (CVE-2021-0186) болон Microsoft Open Enclave (CVE-2021-33767) дээр суурилсан ажиллах хугацаатай анклавуудад ашиглах прототипүүдийг бэлтгэсэн. Эхний тохиолдолд HTTPS-д зориулсан вэб сервер дээр ашигласан RSA түлхүүрийг задлах чадварыг харуулсан бөгөөд хоёрдугаарт, анклав дотор ажиллаж байгаа cURL хэрэгслээс олж авсан контентыг тодорхойлох боломжтой болсон. Энэ эмзэг байдлыг Intel SGX SDK 2.13 болон Open Enclave 0.17.1 хувилбаруудад программчлан аль хэдийн шийдвэрлэсэн. Intel SGX SDK болон Microsoft Open Enclave-аас гадна эмзэг байдал нь Google Asylo SDK, EdgelessRT, Apache Teaclave, Rust SGX SDK, SGX-LKL, CoSMIX болон Veracruz-д илэрдэг.

SGX (Software Guard Extensions) технологи нь зургаа дахь үеийн Intel Core процессоруудад (Skylake) гарч ирсэн бөгөөд хэрэглэгчийн түвшний програмуудад агуулгыг нь унших боломжгүй хаалттай санах ойн бүсүүдийг хуваарилах боломжийг олгодог хэд хэдэн зааварчилгааг санал болгодог гэдгийг санацгаая. Цөм болон ring0, SMM, VMM горимд гүйцэтгэсэн кодоор ч өөрчлөгдсөн. Анклав дахь код руу удирдлагыг шилжүүлэх нь уламжлалт үсрэлт функц, регистр, стек бүхий залруулга хийх боломжгүй юм - тусгайлан бүтээсэн шинэ заавар EENTER, EEXIT, ERESUME нь эрх мэдлийн шалгалт хийдэг анклав руу хяналтыг шилжүүлэхэд ашиглагддаг. Энэ тохиолдолд анклавд байрлуулсан код нь анклав доторх функцүүдэд хандахын тулд дуудлагын сонгодог аргууд болон гадаад функцийг дуудах тусгай зааврыг ашиглаж болно. Enclave санах ойн шифрлэлт нь DRAM модульд холбогдох зэрэг техник хангамжийн халдлагаас хамгаалахад ашиглагддаг.

Нууцлагдмал өгөгдлийг задлах эсвэл анклав дахь кодыг ажиллуулахын тулд Intel SGX руу дайраарай

Асуудал нь SGX технологи нь үйлдлийн системд техник хангамжийн онцгой тохиолдлуудыг хаях замаар анклавыг зогсоох боломжийг олгодог бөгөөд анклавууд нь ийм онцгой тохиолдлуудыг атомаар зохицуулах командуудыг зохих ёсоор хэрэгжүүлдэггүй явдал юм. Үйлдлийн системийн цөм болон ердийн програмуудаас ялгаатай нь анклавуудын доторх код нь асинхроноор хаягдсан үл хамаарах зүйлсийг зохицуулах үед атомын үйлдлийг зохион байгуулах командуудад хандах эрхгүй. Заасан атомын командуудгүйгээр анклав нь чухал хэсгүүдийг гүйцэтгэж, аюултай төлөвт байсан ч (жишээ нь, CPU-ийн бүртгэл хадгалагдаагүй/сэргээгдэх үед) ч гэсэн анклавыг хүссэн үедээ тасалдуулж, гүйцэтгэлд нь буцааж болно.

Нууцлагдмал өгөгдлийг задлах эсвэл анклав дахь кодыг ажиллуулахын тулд Intel SGX руу дайраарай

Хэвийн үйл ажиллагааны хувьд SGX технологи нь тохируулж болох тоног төхөөрөмжийн үл хамаарах зүйлүүдээр анклавын гүйцэтгэлийг тасалдуулах боломжийг олгодог. Энэ функц нь анклавын ажиллах цагийн орчинд анклав доторх онцгой тохиолдлуудыг зохицуулах эсвэл дохио боловсруулах боломжийг олгодог боловч дахин нэвтрэх алдааг үүсгэж болно. SmashEx халдлага нь SDK-ийн алдааг ашиглахад суурилдаг бөгөөд үүнээс үүдэн онцгой тохиолдлын зохицуулагчийг дахин дуудах нөхцөл байдал зохих ёсоор шийдэгдээгүй байна. Эмзэг байдлыг ашиглахын тулд халдагч нь анклавын гүйцэтгэлийг тасалдуулж чаддаг байх нь чухал, i.e. системийн орчны ажиллагааг хянах ёстой.

Үл хамаарах зүйл хийсний дараа халдагч жижиг цагийн цонхыг хүлээн авдаг бөгөөд энэ үеэр оролтын параметрүүдийг удирдах замаар гүйцэтгэлийн хэлхээг таслан зогсоож болно. Ялангуяа, хэрэв та системд нэвтрэх боломжтой бол (анклавын гаднах орчин) анклав руу нэвтрэх заавар (EENTER) -ийг гүйцэтгэсний дараа шууд шинэ онцгой тохиолдол үүсгэж болох бөгөөд энэ нь стекийг тохируулах үе шатанд системд хяналтыг буцааж өгөх болно. анклав хараахан дуусаагүй байгаа бөгөөд үүнд CPU-ийн бүртгэлийн төлөв мөн хадгалагдана.

Дараа нь систем нь хяналтыг анклав руу буцааж өгөх боломжтой боловч тасалдал гарах үед анклавын стекийг тохируулаагүй байсан тул анклав нь системийн санах ойд байрлах стекээр ажиллах бөгөөд үүнийг буцаахад чиглэсэн програмчлал (ROP) ашиглахад ашиглаж болно. ) ашиглалтын техник.Баримтлагдсан програмчлал). ROP техникийг ашиглах үед халдагч өөрийн кодыг санах ойд байрлуулахыг оролддоггүй, харин ачаалагдсан номын санд аль хэдийн бэлэн байгаа машины зааврууд дээр ажилладаг бөгөөд хяналтын буцаах зааварчилгаагаар төгсдөг (дүрмээр бол эдгээр нь номын сангийн функцүүдийн төгсгөлүүд юм) . Ашиглалтын ажил нь хүссэн функцийг олж авахын тулд ижил төстэй блокууд ("гаджетууд") руу залгах гинжийг бий болгоход чиглэдэг.

Нууцлагдмал өгөгдлийг задлах эсвэл анклав дахь кодыг ажиллуулахын тулд Intel SGX руу дайраарай
Нууцлагдмал өгөгдлийг задлах эсвэл анклав дахь кодыг ажиллуулахын тулд Intel SGX руу дайраарай


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

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