Kees Cook, kernel.org-ийн системийн админ асан, удирдагч Ubuntu Аюулгүй байдлын баг одоо Google дээр аюулгүй байдлыг хангахын тулд ажиллаж байна Android болон ChromeOS нь системийн дуудлагыг боловсруулахдаа цөмийн стекийн офсет санамсаргүй байдлыг хэрэгжүүлсэн засваруудын багцыг нийтэлсэн. Эдгээр засварууд нь стекийн зохион байгуулалтыг өөрчлөх замаар цөмийн аюулгүй байдлыг сайжруулж, стекийн халдлагыг мэдэгдэхүйц хэцүү болгож, амжилтгүй болгодог. Анхны хэрэгжилт нь ARM64 болон x86/x86_64 процессоруудыг дэмждэг.
Энэхүү нөхөөсийг хийх анхны санаа нь PaX RANDKSTACK төслөөс гаралтай. 2019 онд Intel-ийн инженер Елена Решетова энэхүү санааг үндсэн цөмд оруулахад тохиромжтой хэрэгжилтийг бий болгохыг оролдсон. LinuxЭнэ санаачилгыг хожим нь Кейт Күүк эхлүүлж, үндсэн цөмийн хувилбарт тохиромжтой хэрэгжүүлэлтийг танилцуулсан. 5.13 хувилбарт нөхөөсүүдийг оруулахаар төлөвлөж байна. Горимыг анхдагчаар идэвхгүй болгоно. Үүнийг идэвхжүүлэхийн тулд цөмийн команд мөрийн параметр "randomize_kstack_offset=on/off" болон CONFIG_RANDOMIZE_KSTACK_OFFSET_DEFAULT тохиргоог санал болгож байна. Горимыг идэвхжүүлэх зардал ойролцоогоор 1%-ийн гүйцэтгэлийн алдагдалтай гэж тооцоолж байна.
Санал болгож буй хамгаалалтын мөн чанар нь системийн дуудлага бүрийн хувьд стекийн офсетийг санамсаргүй байдлаар хуваарилах явдал бөгөөд энэ нь хаягийн өгөгдлийг олж авсны дараа ч санах ой дахь стекийн байршлыг тодорхойлоход хүндрэл учруулдаг, учир нь дараагийн системийн дуудлагад стекийн үндсэн хаяг өөрчлөгдөх болно. PaX RANDKSTACK хэрэгжүүлэлтээс ялгаатай нь цөмд оруулахаар санал болгож буй засварууд нь санамсаргүй хуваарилалтыг эхний шатанд биш (cpu_current_top_of_stack), харин pt_regs бүтцийг тохируулсны дараа гүйцэтгэдэг. Энэ нь удаан үргэлжилсэн системийн дуудлагын үед санамсаргүй офсетийг тодорхойлохын тулд ptrace-д суурилсан аргуудыг ашиглах боломжгүй болгодог.
Эх сурвалж: opennet.ru
