Bitdefender-ийн судлаачид
Энэ эмзэг байдал нь Spectre v1 ангилалд хамаарах бөгөөд зааварчилгааг гүйцэтгэсний дараа үлдсэн процессорын кэшээс өгөгдлийг сэргээх санаан дээр суурилдаг. Гүйцэтгэлийг сайжруулахын тулд орчин үеийн CPU-ийн салбарыг урьдчилан таамаглах нэгжүүд нь гүйцэтгэх магадлал өндөр байгаа зарим зааврыг урьдчилан гүйцэтгэх аргыг ашигладаг, гэхдээ тэдгээрийн гүйцэтгэлийг тодорхойлдог бүх хүчин зүйлийн тооцоог хүлээхгүйгээр (жишээлбэл, салбарын нөхцөл эсвэл хандалтын параметрүүд байхгүй үед) тооцоолсон хэвээр байна). Хэрэв таамаглал батлагдаагүй бол процессор нь таамаглалын гүйцэтгэлийн үр дүнг арилгадаг боловч түүний явцад боловсруулсан өгөгдөл нь процессорын кэшэд үлддэг бөгөөд хажуугийн сувгаар кэшийн агуулгыг тодорхойлох, хандалтын өөрчлөлтөд дүн шинжилгээ хийх аргыг ашиглан сэргээж болно. кэш болон кэшгүй өгөгдөлд цаг хугацаа.
Шинэ халдлагын онцлог нь хэрэглэгчийн орон зайгаас үйлдлийн системийн цөмд (GS) удирдлага шилжих үед GS регистрийн утгыг солихын тулд үйлдлийн системд ашигладаг SWAPGS зааврыг таамаглаж гүйцэтгэх явцад үүссэн алдагдлыг ашиглах явдал юм. Хэрэглэгчийн орон зайд ашигласан утгыг цөм дэх үйл ажиллагааны явцад ашигласан утгаар солино). Линуксийн цөмд GS нь цөмийн өгөгдөлд хандахад ашигладаг per_cpu заагчийг хадгалдаг бөгөөд хэрэглэгчийн зай нь TLS (Thread Local Storage) руу заагчийг хадгалдаг.
Цөмд дахин нэвтрэх үед эсвэл GS регистрийг өөрчлөх шаардлагагүй кодыг гүйцэтгэх үед SWAPGS зааврыг хоёр удаа дуудахаас зайлсхийхийн тулд зааврын өмнө шалгалт болон нөхцөлт салбарыг гүйцэтгэдэг. Таамаглалын гүйцэтгэлийн хөдөлгүүр нь шалгалтын үр дүнг хүлээлгүйгээр SWAPGS заавартай кодыг идэвхтэй ажиллуулж, хэрэв сонгосон салбар нь батлагдаагүй бол үр дүнг устгана. Иймд SWAPGS-ийн гүйцэтгэлийг оролцуулаагүй салбарыг таамаглалаар сонгосон тохиолдолд нөхцөл байдал үүсч болзошгүй боловч таамаглалын гүйцэтгэлийн явцад GS регистрийн утгыг SWAPGS зааварчилгаанд өөрчилж, CPU-ийн кэшэд дуусдаг хамааралтай санах ойн үйлдлүүдэд ашиглах болно.
Судлаачид дайралтын хоёр хувилбарыг санал болгосноор ашиглалтын прототипийг бэлтгэсэн байна. Эхний хувилбар нь SWAPGS заавар нь бодитоор хэрэглэгдэж байгаа хэдий ч таамаглалаар гүйцэтгэгдээгүй нөхцөл байдал дээр суурилдаг бол хоёр дахь хувилбар нь эсрэгээр, SWAPGS заавар нь бодитоор хэрэгжих ёсгүй ч таамаглалаар гүйцэтгэгддэг. Сценари бүрийн хувьд мөлжлөгийн хоёр сонголт байдаг: халдагчид цөмийн талбар дахь тодорхой хаяг дээрх утгыг тодорхойлж, халдагчид цөм дэх санамсаргүй хаягуудаас тодорхой утгыг хайж олох боломжтой. Довтолгоог явуулахад удаан хугацаа шаардагдах бөгөөд алдагдлыг дуусгахад хэд хэдэн цаг шаардлагатай.
Линуксийн цөмд асуудал байна
Засвар нь хост систем болон зочны орчинд хоёуланд нь цөмийн шинэчлэлт суулгаж, дараа нь системийг дахин ачаалах шаардлагатай. Линукс дээрх хамгаалалтыг идэвхгүй болгохын тулд "nospectre_v1" сонголтыг ашиглаж болох бөгөөд энэ нь мөн SWAPGS эмзэг байдлыг хаах арга хэмжээг идэвхгүй болгодог. Засварыг дараах байдлаар ашиглах боломжтой
Bitdefender-ийн судлаачдын үзэж байгаагаар Intel-д энэ асуудлын талаар өнгөрсөн оны наймдугаар сард мэдэгдсэн байна. Асуудлыг программчлан засахаар шийдсэн бөгөөд үүний тулд Microsoft, Google болон Linux цөмийн хөгжүүлэгчид засварын зохицуулалтыг боловсруулахад оролцсон. Ivy Bridge-ээс өмнөх Intel-ийн хуучин процессоруудыг ашиглахад ашигладаг WRGSBASE зааврыг дэмждэггүй тул халдлага хийхэд илүү хэцүү байдаг. ARM, POWER, SPARC, MIPS, RISC-V системүүд нь SWAPGS зааврыг дэмждэггүй тул асуудалд өртөхгүй.
Асуудал нь ихэвчлэн Intel процессор эзэмшигчдэд нөлөөлдөг -
AMD системүүд дээр зөвхөн хоёрдахь халдлагын хувилбарыг хуулбарлах боломжтой байсан бөгөөд энэ нь санамсаргүй санах ойн хэсгүүдэд тодорхой утгыг хайхад ашиглаж болох GS бүртгэлийн үндсэн утгыг таамаглах замаар хязгаарлагддаг. Энэ халдлагын сонголтыг хаахын тулд
Эх сурвалж: opennet.ru