Linux 6.2 kodola ievainojamība, kas var apiet Spectre v2 aizsardzību pret uzbrukumiem

Linux kodolā 6.2 ir konstatēta ievainojamība (CVE-2023-1998), kas atspējo aizsardzību pret Spectre v2 uzbrukumiem, kas ļauj piekļūt citu procesu atmiņai, kas darbojas dažādos SMT vai Hyper Threading pavedienos, bet tajā pašā fiziskajā procesorā. kodols. Ievainojamību, cita starpā, var izmantot, lai izraisītu datu noplūdi starp virtuālajām mašīnām mākoņsistēmās. Problēma skar tikai Linux 6.2 kodolu, un to izraisa nepareiza optimizācijas ieviešana, kas izstrādāta, lai samazinātu ievērojamās Spectre v2 aizsardzības piemērošanas izmaksas. Ievainojamība tika novērsta Linux 6.3 kodola eksperimentālajā daļā.

Lietotāju telpā, lai aizsargātu pret Spectre uzbrukumiem, procesi var selektīvi atspējot spekulatīvu instrukciju izpildi, izmantojot prctl PR_SET_SPECULATION_CTRL vai izmantot sistēmas zvanu filtrēšanu, pamatojoties uz seccomp mehānismu. Saskaņā ar pētnieku, kuri identificēja problēmu, nepareiza optimizācija kodolā 6.2 atstāja bez pienācīgas aizsardzības vismaz viena galvenā mākoņdatošanas pakalpojumu sniedzēja virtuālās mašīnas, neskatoties uz to, ka tika iekļauts spektra BTI uzbrukuma bloķēšanas režīms, izmantojot prctl. Ievainojamība parādās arī parastajos serveros ar kodolu 6.2, tos ielādējot tiek izmantots iestatījums “spectre_v2=ibrs”.

Ievainojamības būtība ir tāda, ka, izvēloties IBRS vai eIBRS aizsardzības režīmus, ieviestās optimizācijas atspējoja STIBP (Single Thread Indirect Branch Predictors) mehānisma izmantošanu, kas nepieciešams, lai bloķētu noplūdes, izmantojot vienlaicīgu daudzpavedienu tehnoloģiju (SMT vai Hyper- Vītņošana). Tomēr tikai eIBRS režīms nodrošina aizsardzību pret noplūdi starp pavedieniem, bet ne IBRS režīmu, jo šajā gadījumā IBRS bits, kas nodrošina aizsardzību pret noplūdēm starp loģiskajiem kodoliem, tiek notīrīts veiktspējas iemeslu dēļ, kad kontrole atgriežas lietotāja telpā, kas padara pavedieni lietotāja telpā nav aizsargāti pret Spectre v2 uzbrukumiem.

Avots: opennet.ru

Pievieno komentāru