SWAPGS - tsietsi e ncha mocheng oa ts'ebetso o inahaneloang oa CPU

Bafuputsi ba Bitdefender senotsoe ts'oaetso e ncha (CVE-2019-1125) ka mokhoa o inahaneloang oa ho phethahatsa litaelo oa li-CPU tsa sejoale-joale, tse bitsoang SWAPGS, tse tsamaellanang le lebitso la taeo ea processor e bakang bothata. Kotsi e lumella lumella mohlaseli ea se nang monyetla ho tseba likahare tsa libaka tsa memori ea kernel kapa mochini o sebetsang. Bothata netefalitsoe ho li-processor tsa Intel (x86_64) le hanyenyane ama Li-processor tsa AMD tseo vector e kholo ea tlhaselo e sa hlahellang. Mekhoa e kileng ea sebelisoa ea ho loantša bofokoli ba Specter le Meltdown ha e sireletse khahlanong le tlhaselo ea SWAPGS ha u sebelisa li-processor tsa Intel, empa litokiso li se li hlahisitsoe bakeng sa Linux, ChromeOS, Android le Windows.

Kotsi ke ea sehlopha sa Specter v1 mme e ipapisitse le mohopolo oa ho khutlisa data ho tsoa ho cache ea processor e setseng ka mor'a ts'ebetso e inahaneloang ea litaelo. Ho ntlafatsa ts'ebetso, likarolo tsa likhakanyo tsa makala tsa li-CPU tsa sejoale-joale li sebelisa ts'ebetso e sa lebelloang ea litaelo tse ka 'nang tsa etsoa, ​​​​empa ntle le ho emela lipalo tsa lintlha tsohle tse khethollang ts'ebetso ea tsona (mohlala, ha maemo a lekala kapa li-parameter tsa phihlello li sa sebetse. leha ho balletsoe). Haeba se boletsoeng esale pele se sa netefatsoa, ​​processor e lahla sephetho sa ts'ebetso e inahaneloang, empa data e sebetsitsoeng nakong ea eona e lula e le ka har'a cache ea processor mme e ka khutlisoa ho sebelisoa mekhoa ea ho tseba se ka hare ho cache ka liteishene tse lehlakoreng, ho sekaseka phetoho ea phihlello. nako ea ho boloka le ho boloka data e sa tsoakoang.

Ntho e ikhethang ea tlhaselo e ncha ke tšebeliso ea ho lutla ho etsahalang nakong ea ts'ebetso e inahaneloang ea taelo ea SWAPGS, e sebelisoang lits'ebetsong tsa ts'ebetso ho nka sebaka sa boleng ba ngoliso ea GS ha taolo e feta ho tloha sebakeng sa mosebelisi ho ea ho OS kernel (the GS). boleng bo sebelisitsoeng sebakeng sa mosebelisi bo nkeloa sebaka ke boleng bo sebelisitsoeng nakong ea ts'ebetso kernel ). Ka har'a kernel ea Linux, GS e boloka sesupa sa per_cpu se sebelisetsoang ho fumana lintlha tsa kernel, le lintlha tsa polokelo ea sebaka sa basebelisi ho TLS (Thread Local Storage).

Ho qoba ho letsetsa litaelo tsa SWAPGS habeli ha o fihlella kernel hape ho tloha sebakeng sa kernel kapa ha o etsa khoutu e sa hlokeng phetoho ea register ea GS, cheke le lekala le nang le maemo li etsoa pele ho taelo. Enjene ea ts'ebetso e inahaneloang e tsoela pele ho etsa khoutu ka taelo ea SWAPGS ntle le ho emela sephetho sa cheke, 'me haeba lekala le khethiloeng le sa netefatsoe, le lahla sephetho. Ka hona, boemo bo ka hlaha ha lekala le sa akarelletseng ts'ebetso ea SWAPGS le khethiloe ka mokhoa o inahaneloang, empa nakong ea ts'ebetso e inahaneloang boleng ba rejista ea GS bo tla fetoloa ke taelo ea SWAPGS mme e sebelisoe ts'ebetsong ea memori e itšetlehileng e qetellang ka cache ea CPU.

Bafuputsi ba hlahisitse maemo a mabeli a tlhaselo eo ho lokiselitsoeng li-prototypes tsa tlatsetso. Boemo ba pele bo ipapisitse le boemo boo taelo ea SWAPGS e sa phethisoeng ka mokhoa o inahaneloang, leha e hlile e sebelisoa ho phethahatsa, 'me ea bobeli ke e fapaneng, ha taeo ea SWAPGS e etsoa ka mokhoa o inahaneloang, leha e hlile e sa lokela ho etsoa. Boemong bo bong le bo bong, ho na le likhetho tse peli bakeng sa tlhekefetso: mohlaseli a ka tseba boleng ba aterese e itseng sebakeng sa kernel, 'me mohlaseli a ka batla boleng bo itseng ho liaterese tse sa reroang ho kernel. Ho etsa tlhaselo ho nka nako e telele mme tlhekefetso e ka hloka lihora tse 'maloa ho qeta ho lutla.

Ho na le bothata ho Linux kernel felisitsoe ka ho fetola mohopolo oa ho bitsa taelo ea SWAPGS (ho thibela ts'ebetso e inahaneloang), e ts'oanang le tokiso ea bofokoli bo bong ba sehlopha sa Specter v1. Tšireletso e ekelitsoeng e lebelletsoe ho ba le tšusumetso e fokolang ts'ebetsong ea meroalo e tloaelehileng ea mosebetsi. Latency e etsahala nakong ea phetoho pakeng tsa sebaka sa mosebedisi le kernel, e leng se ka fellang ka ts'ebetso e mpe ha, ka mohlala, ho na le mohala o boima oa tsamaiso ho tloha ho kopo kapa ho hlahisa hangata ha NMI le ho sitisa.

Tokiso e hloka ho kenya ntlafatso ea kernel ho sistimi ea moamoheli le libaka tsa baeti, e lateloe ke ho qala sistimi. Ho thibela ts'ireletso ho Linux, khetho ea "nospectre_v1" e ka sebelisoa, e thibelang mehato ea ho thibela ts'oaetso ea SWAPGS. Tokiso e fumaneha joalo ka patch bakeng sa Linux kernel, e seng e kenyelelitsoe liphatlalatsong 4.19.65, 5.2.7, 4.14.137, 4.9.188 le 4.4.188. Lintlafatso tsa kabo ea Linux ha li so lokolloe (Debian, RHEL, Fedora, Arch Linux, SUSE/openSUSE, Botho). Ho Windows, bothata bo ile ba rarolloa ka khutso Phetoho ea July. Google Company lokisitsoe lokisa bakeng sa kernel 4.19 e rometsoe ka ChromeOS le Android.

Ho ea ka bafuputsi ba Bitdefender, Intel e ile ea tsebisoa ka bothata morao ka August selemong se fetileng. Ho ile ha etsoa qeto ea ho lokisa bothata ka mokhoa o hlophisitsoeng, oo baetsi ba Microsoft, Google le Linux kernel ba kentseng letsoho ntlafatsong e hokahaneng ea tokiso. Li-processor tsa khale tsa Intel, pele ho Ivy Bridge, li thata haholo ho li hlasela ka lebaka la khaello ea ts'ehetso bakeng sa taeo ea WRGSBASE e sebelisitsoeng molemong. Lisebelisoa tsa ARM, POWER, SPARC, MIPS, le RISC-V ha li amehe ke bothata hobane ha li tšehetse taelo ea SWAPGS.

Bothata bo ama haholo-holo beng ba li-processor tsa Intel -
Lits'ebetsong tsa AMD, ke boemo ba bobeli ba tlhaselo feela bo ileng ba khona ho hlahisoa hape, bo lekanyelitsoeng ho ts'ebetso e inahaneloang ea boleng ba motheo ba registara ea GS, e ka sebelisoang ho batla litekanyetso tse ikhethileng libakeng tsa memori tse sa reroang. Ho thibela khetho ena ea tlhaselo e lekane mekhoa e teng ea ts'ireletso khahlanong le Specter v1.

Source: opennet.ru

Eketsa ka tlhaloso