Chrome дахь Spectre-ийн эмзэг байдлыг ашиглах шинэ техник

Америк, Австрали, Израилийн их дээд сургуулиудын хэсэг судлаачид Chromium хөдөлгүүрт суурилсан хөтчүүдийн Spectre зэрэглэлийн эмзэг байдлыг ашиглахын тулд хажуугийн сувгийн довтолгооны шинэ аргыг санал болгов. Spook.js кодтой халдлага нь JavaScript кодыг ажиллуулж сайтыг тусгаарлах механизмыг тойрч гарах, одоогийн үйл явцын бүх хаягийн орон зайн агуулгыг унших боломжийг олгодог, i.e. бусад таб дээр ажиллаж байгаа хуудсуудын өгөгдөлд хандах, гэхдээ ижил процессоор боловсруулсан.

Chrome нь өөр өөр сайтуудыг өөр өөр процессоор ажиллуулдаг тул практик халдлага хийх чадвар нь өөр өөр хэрэглэгчдэд хуудсаа байршуулах боломжийг олгодог үйлчилгээнүүдэд хязгаарлагддаг. Энэ арга нь халдагч өөрийн JavaScript кодыг оруулах боломжтой хуудаснаас тухайн сайтаас хэрэглэгчийн нээсэн бусад хуудсууд байгаа эсэхийг тодорхойлж, тэдгээрээс нууц мэдээлэл, жишээлбэл, итгэмжлэл эсвэл орлуулсан банкны дэлгэрэнгүй мэдээллийг гаргаж авах боломжийг олгодог. вэб маягт дахь талбаруудыг автоматаар дүүргэх системээр. Жагсаалт болгон, хэрэв эзэмшигч нь ижил үйлчилгээнд байршуулсан халдагч нарын блогийг өөр таб дээр нээвэл Tumblr үйлчилгээ дээрх хэн нэгний блог руу хэрхэн халдаж болохыг харуулж байна.

Энэ аргыг ашиглах өөр нэг сонголт бол хөтчийн нэмэлтүүд рүү халдах бөгөөд халдагчийн удирддаг нэмэлтийг суулгахдаа бусад нэмэлтүүдээс өгөгдлийг гаргаж авах боломжийг олгодог. Жишээлбэл, бид хортой нэмэлт суулгаснаар LastPass нууц үгийн менежерээс нууц мэдээллийг хэрхэн гаргаж авах боломжтойг харуулж байна.

Судлаачид Chrome 89-д CPUIntel i7-6700K болон i7-7600U бүхий системүүд дээр ажилладаг мөлжлөгийн прототипийг нийтлэв. Exploit-ийг үүсгэх үед өмнө нь Google-ээс нийтэлсэн JavaScript кодын прототипүүдийг Specter зэрэглэлийн халдлагад ашигласан. Судлаачид Intel болон Apple M1 процессорууд дээр суурилсан системүүдийн ажлын эксплойтуудыг бэлтгэж чадсан нь санах ойн унших ажиллагааг секундэд 500 байт хурдтай, 96% нарийвчлалтай зохион байгуулах боломжтой болсон гэж тэмдэглэжээ. Энэ аргыг AMD процессоруудад бас ашиглах боломжтой гэж үзэж байгаа боловч бүрэн ажиллагаатай мөлжлөгийг бэлтгэх боломжгүй байсан.

Энэхүү халдлага нь Google Chrome, Microsoft Edge, Brave зэрэг Chromium хөдөлгүүрт суурилсан бүх хөтчүүдэд хамаарна. Судлаачид мөн энэ аргыг Firefox-той ажиллахад тохируулж болно гэж үзэж байгаа ч Firefox-ийн хөдөлгүүр нь Chrome-оос тэс өөр учраас ийм мөлжлөг үүсгэх ажлыг ирээдүйд үлдээсэн байна.

Заавруудын таамаглалыг гүйцэтгэхтэй холбоотой хөтөч дээр суурилсан халдлагаас хамгаалахын тулд Chrome хаягийн зайг сегментчилдэг - хамгаалагдсан хязгаарлагдмал орчинд тусгаарлалт нь JavaScript-д зөвхөн 32 битийн заагчтай ажиллах боломжийг олгодог бөгөөд 4 ГБ зайтай овоолон боловсруулагчийн санах ойг хуваалцдаг. Процессын хаягийн орон зайг бүхэлд нь хангаж, 32 битийн хязгаарлалтыг даван туулахын тулд судлаачид Type Confusion хэмээх аргыг ашигласан бөгөөд энэ нь JavaScript хөдөлгүүрийг буруу төрөлтэй объектыг боловсруулахад хүргэдэг бөгөөд энэ нь 64 бит үүсгэх боломжтой болгодог. 32 битийн хоёр утгын хослол дээр суурилсан заагч.

Энэхүү халдлагын мөн чанар нь JavaScript хөдөлгүүрт тусгайлан зохион бүтээсэн хортой объектыг боловсруулахдаа массив руу нэвтрэх зааврыг таамаглаж гүйцэтгэх нөхцлийг бүрдүүлдэг. Объектыг 64 битийн заагч ашиглаж байгаа хэсэгт халдагчийн удирддаг талбаруудыг байрлуулах байдлаар сонгосон. Хортой объектын төрөл нь боловсруулж буй массивын төрөлтэй таарахгүй байгаа тул ердийн нөхцөлд эдгээр үйлдлийг Chrome-д массив руу нэвтрэхэд ашигладаг кодыг оновчтой болгох механизмаар хаадаг. Энэ асуудлыг шийдэхийн тулд Type Confusion халдлагын кодыг нөхцөлт "if" блокт байрлуулсан бөгөөд энэ нь хэвийн нөхцөлд идэвхждэггүй, харин процессор цаашдын салбарлахыг буруу таамагласан тохиолдолд таамаглалын горимд ажилладаг.

Үүний үр дүнд процессор нь үүсгэсэн 64 битийн заагч руу таамаглалтайгаар хандаж, бүтэлгүйтсэн таамаглалыг тодорхойлсны дараа төлөвийг буцаана, гэхдээ гүйцэтгэлийн ул мөр нь хуваалцсан кэшэд үлдэж, өөрчлөлтөд дүн шинжилгээ хийдэг хажуугийн сувгийн кэш илрүүлэх аргуудыг ашиглан сэргээх боломжтой. кэштэй болон кэшгүй өгөгдөлд хандах хугацаа. JavaScript дээр ашиглах боломжтой таймерын нарийвчлал хангалтгүй нөхцөлд кэшийн агуулгыг шинжлэхийн тулд Google-ийн санал болгосон аргыг ашигладаг бөгөөд энэ нь процессоруудад ашигладаг Tree-PLRU кэшийг зайлуулах стратегийг хууран мэхэлж, мөчлөгийн тоог нэмэгдүүлэх боломжийг олгодог. кэшэд утга байгаа болон байхгүй үед цагийн зөрүүг мэдэгдэхүйц нэмэгдүүлэх.

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

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