Google нь хөтөч дээр JavaScript-г ажиллуулснаар Specter-ийн эмзэг байдлыг ашиглаж байгааг харуулж байна

Google нь өмнө нь нэмсэн хамгаалалтын аргуудыг алгасаж, хөтөч дээр JavaScript кодыг ажиллуулахдаа Spectre ангиллын эмзэг байдлыг ашиглах боломжийг харуулсан хэд хэдэн эксплойтийн загваруудыг нийтлэв. Одоогийн таб дээрх вэб контентыг боловсруулах процессын санах ойд хандахын тулд мөлжлөгийг ашиглаж болно. Exploit-ийн ажиллагааг шалгахын тулд leaky.page вэб сайтыг ажиллуулж, ажлын логикийг тодорхойлсон кодыг GitHub дээр байрлуулсан.

Санал болгож буй загвар нь Linux болон Chrome 7-тай орчинд Intel Core i6500-88U процессортой системүүд рүү халдах зориулалттай. Эксплойтийг бусад орчинд ашиглахын тулд өөрчлөлт хийх шаардлагатай. Ашиглалтын арга нь Intel процессоруудад хамаарахгүй - зохих дасан зохицсоны дараа уг эксплойт нь ARM архитектурт суурилсан Apple M1 зэрэг бусад үйлдвэрлэгчийн CPU-тэй системүүд дээр ажиллах нь батлагдсан. Бага зэргийн тохируулга хийсний дараа энэ мөлжлөгийг бусад үйлдлийн системүүд болон Chromium хөдөлгүүрт суурилсан бусад хөтчүүдэд ашиглах боломжтой.

Стандарт Chrome 88 болон Intel Skylake процессорууд дээр суурилсан орчинд одоогийн Chrome tab-д (рендерийн процесс) вэб контентыг боловсруулах үүрэгтэй процессоос секундэд 1 килобайт хурдтай мэдээлэл задруулах боломжтой байсан. Нэмж дурдахад, 8 микросекунд (5 миллисекунд) нарийвчлалтай performance.now() таймерыг ашиглах үед тогтвортой байдлыг бууруулах зардлаар алдагдлыг 0.005кБ/с хүртэл нэмэгдүүлэх боломжийг олгодог эксплойт гэх мэт өөр загваруудыг боловсруулсан. ). Мөн нэг миллисекундын таймерын нарийвчлалтай ажилладаг хувилбарыг бэлтгэсэн бөгөөд энэ нь секундэд 60 байт хурдтай өөр процессын санах ойд хандах хандалтыг зохион байгуулахад ашиглаж болно.

Нийтлэгдсэн демо код нь гурван хэсгээс бүрдэнэ. Эхний хэсэг нь CPU-ийн зааврыг таамаглаж гүйцэтгэсний үр дүнд процессорын кэшэд үлдсэн өгөгдлийг сэргээхэд шаардагдах үйлдлүүдийн гүйцэтгэлийн хугацааг тооцоолохын тулд таймерыг тохируулдаг. Хоёрдахь хэсэг нь JavaScript массивыг хуваарилахдаа ашигласан санах ойн байршлыг тодорхойлдог.

Гурав дахь хэсэг нь тодорхой үйлдлүүдийг таамаглах нөхцөлийг бий болгосны үр дүнд одоогийн үйл явцын санах ойн агуулгыг тодорхойлохын тулд Spectre-ийн эмзэг байдлыг шууд ашигладаг бөгөөд үр дүн нь амжилтгүй болсон таамаглалыг тогтоосны дараа процессороос татгалздаг. гүйцэтгэлийг ерөнхий кэшэд хадгалдаг бөгөөд кэштэй болон кэшгүй өгөгдөлд хандах хугацааны өөрчлөлтөд дүн шинжилгээ хийдэг гуравдагч талын сувгуудаар кэшийн агуулгыг тодорхойлох аргуудыг ашиглан сэргээж болно.

Санал болгож буй ашиглалтын техник нь performance.now() API-ээр дамжуулан ашиглах боломжтой өндөр нарийвчлалтай таймергүйгээр, мөн SharedArrayBuffer төрлийн дэмжлэггүйгээр хийх боломжтой бөгөөд энэ нь хуваалцсан санах ойд массив үүсгэх боломжийг олгодог. Ашиглалтад кодын хяналттай таамаглал гүйцэтгэхэд хүргэдэг Spectre гаджет, таамаглалын явцад олж авсан кэш өгөгдлийг илрүүлдэг хажуугийн сувгийн алдагдлыг анализатор орно.

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

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

Эрсдэлийг бууруулахын тулд сайтын эзэд саяхан хэрэгжиж эхэлсэн Cross-Origin Opener Policy (COOP), Cross-Origin Embedder Policy (COEP), Cross-Origin Resource Policy (CORP), Fetch Metadata Request, X-Frame- гэсэн гарчигуудыг ашиглахыг зөвлөж байна. Сонголтууд, X -Content-Type-Options болон SameSite Cookie. Эдгээр механизмууд нь халдлагаас шууд хамгаалдаггүй ч халдагчийн JavaScript кодыг ажиллуулж болох процессуудад сайтын өгөгдлийг алдагдахаас тусгаарлах боломжийг олгодог (алдагдал нь халдагчийн кодоос гадна одоогийн үйл явцын санах ойноос гардаг. , мөн ижил таб дээр нээгдсэн өөр сайтын өгөгдлийг боловсруулах боломжтой). Гол санаа нь өөр өөр процесс дахь сайтын кодын гүйцэтгэлийг найдваргүй эх сурвалжаас хүлээн авсан гуравдагч этгээдийн кодоос салгах явдал юм, жишээлбэл iframe-ээр дамжуулан оруулсан.



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

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