Retbleed ke tlhaselo e ncha holim'a mokhoa o inahaneloang oa ho bolaoa oa Intel le AMD CPUs

Sehlopha sa bafuputsi ba ETH Zurich se khethile tlhaselo e ncha holim'a mochini oa ts'ebetso e inahaneloang ea phetoho e sa tobang ho CPU, e etsang hore ho khonehe ho ntša tlhahisoleseling ho tsoa mohopolong oa kernel kapa ho hlophisa tlhaselo ea sistimi ea moamoheli ho tsoa mecheng ea sebele. Bofokoli ke codenamed Retbleed (CVE-2022-29900, CVE-2022-29901) 'me e haufi ka tlhaho le tlhaselo ea Specter-v2. Phapang e tla ho tlhophiso ea ts'ebetso e inahaneloang ea khoutu e sa reroang ha o sebetsana le taeo ea "ret" (khutla), e nkang aterese ho tlola ho tloha ho stack, ho fapana le ho tlola ka tsela e sa tobang ho sebelisa taelo ea "jmp", ho kenya aterese ho tsoa. memori kapa rejisetara ea CPU.

Mohlaseli a ka theha maemo bakeng sa ho bolela esale pele ka phetoho e fosahetseng mme a hlophisa phetoho e lebisitsoeng, e inahaneloang ho block of code e sa fanoang ke moralo oa ts'ebetso ea lenaneo. Qetellong, processor e tla etsa qeto ea hore ponelopele ea lekala e ne e sa nepahala 'me e tla khutlisetsa ts'ebetso boemong ba eona ba pele, empa datha e sebetsitsoeng nakong ea ts'ebetso e inahaneloang e tla qetella e le ka har'a cache le li-buffers tse nyane tsa meralo. Haeba block e entsoeng ka phoso e fihlella mohopolong, ts'ebetso ea eona e inahaneloang e tla lebisa ho data e baloang ho tsoa mohopolong e kentsoeng ka har'a cache e arolelanoang.

Ho fumana lintlha tse setseng ka har'a cache ka mor'a ts'ebetso e inahaneloang, mohlaseli a ka sebelisa mekhoa ea li-channel ho fumana lintlha tse setseng, tse kang ho hlahloba liphetoho linakong tsa ho fihlella ho data e bolokiloeng le e sa bolokehang. Ho ntša tlhahisoleseling ka boomo libakeng tse boemong bo bong ba tokelo (mohlala, ho tsoa mohopolong oa kernel), ho sebelisoa "lisebelisoa tsa lisebelisoa" - tatellano ea litaelo tse teng ka har'a kernel tse loketseng ho bala data ka mohopolo ho tsoa mohopolong ho latela maemo a kantle a ka susumetsoang ke mohlaseli.

Ho itšireletsa khahlanong le litlhaselo tsa sehlopha sa Specter tse sebelisang litaelo tsa ho tlola ka maemo le ka tsela e sa tobang, litsamaiso tse ngata tsa ts'ebetso li sebelisa mokhoa oa "retpoline", o ipapisitseng le ts'ebetso ea ho tlola ka tsela e sa tobang sebaka ka taelo ea "ret", eo li-processor li sebelisang yuniti e arohaneng ea boemo ba boemo bo holimo. .ho sa sebedise boloko ba ho bolela esale pele ka lekala. Ha retpoline e ne e hlahisoa ka selemo sa 2018, ho ne ho lumeloa hore maqheka a aterese a Specter a ne a sa sebetse bakeng sa makala a inahaneloang a sebelisa taelo ea "ret".

Bafuputsi ba ntlafalitseng mokhoa oa tlhaselo oa Retbleed ba bonts'itse monyetla oa ho theha maemo a manyane a meralo bakeng sa ho qala phetoho e inahaneloang ba sebelisa taelo ea "ret" le lisebelisoa tse lokiselitsoeng ho tsebahatsa tatellano ea litaelo (lisebelisoa) tse loketseng ho sebelisa monyetla oa ho ba kotsing ea kernel ea Linux, tseo maemo a joalo a iponahatsang ho tsona.

Nakong ea lipatlisiso, ho ile ha lokisetsoa ts'ebetso e sebetsang e lumellang, ho litsamaiso tse nang le Intel CPUs, ho ntša data e sa lekanyetsoang ho tsoa mohopolong oa kernel ho tsoa ts'ebetsong e sa tsitsang sebakeng sa basebelisi ka lebelo la li-byte tse 219 motsotsoana le ho nepahala ha 98%. Ho li-processor tsa AMD, katleho ea tšebeliso e phahame haholo - sekhahla sa ho lutla ke 3.9 KB motsotsoana. E le mohlala o sebetsang, re bonts'a mokhoa oa ho sebelisa ts'ebeliso e reriloeng ho fumana se ka hare ho file ea /etc/shadow. Lits'ebetsong tse nang le Intel CPUs, tlhaselo ea ho fumana hore na motso oa password ea mosebelisi hash e entsoe ka metsotso e 28, le lits'ebetsong tse nang le li-CPU tsa AMD - ka metsotso e 6.

Tlhaselo e netefalitsoe melokong ea 6-8 ea li-processor tsa Intel tse lokollotsoeng pele ho Q3 2019 (ho kenyeletsoa Skylake), le li-processor tsa AMD tse thehiloeng ho Zen 1, Zen 1+, le Zen 2 microarchitectures tse lokollotsoeng pele ho Q2021 3. Mefuteng e mecha ea processor e kang AMD ZenXNUMX le Intel Alder Lake, hammoho le li-processor tsa ARM, bothata bo koetsoe ke mekhoa ea ts'ireletso e teng. Ka mohlala, ho sebelisa litaelo tsa IBRS (Indirect Branch Restricted Speculation) ho thusa ho sireletsa khahlanong le litlhaselo.

Sehlopha sa liphetoho se lokiselitsoe kernel ea Linux le Xen hypervisor, e tla thibela bothata ho software ho li-CPU tsa khale. Patch e reriloeng bakeng sa kernel ea Linux e fetola lifaele tse 68, e eketsa mela ea 1783, 'me e hlakola mela e 387. Ka bomalimabe, ts'ireletso e lebisa litšenyehelong tse kholo - litemaneng tse entsoeng ho li-processor tsa AMD le Intel, ho fokotseha ha ts'ebetso ho hakanngoa ho tloha ho 14% ho isa ho 39%. Ho molemo haholo ho sebelisa ts'ireletso e thehiloeng ho litaelo tsa IBRS, tse fumanehang melokong e mecha ea Intel CPUs 'me e tšehetsoa ho qala ka Linux kernel 4.19.

Ho li-processor tsa Intel, phetisetso ea aterese bakeng sa ho tlola ho sa tobang ka mokhoa o inahaneloang ho etsoa ka lebaka la tšobotsi e hlahang ha phallo e hlaha ka sekhahla se tlase (tlaase) ho Return Stack Buffer. Ha maemo a joalo a etsahala, taelo ea "ret" e qala ho sebelisa mokhoa oa ho khetha aterese o tšoanang le o sebelisoang bakeng sa ho tlola ho tloaelehileng ho sa tobang. Libaka tse fetang sekete li fumanoe ka har'a kernel ea Linux tse etsang maemo a ho qala ts'ebetso e joalo ea morao-rao mme li fumaneha ka mehala ea sistimi.

Ho li-processor tsa AMD, ts'ebetso e inahaneloang ea taelo ea "ret" e etsoa ntle le ho buffer ho buffer e ikhethileng (Return Address Stack) mme lekala la ponelopele ea lekala le nka taelo ea "ret" eseng joalo ka puseletso ea taolo, empa e le lekala le sa tobang. , 'me, ka hona, e sebelisa data bakeng sa ho bolela esale pele liphetoho tse sa tobang. Tlas'a maemo ana, ts'ebetso efe kapa efe ea "ret" e fumanehang ka mohala oa sistimi e ka sebelisoa hampe.

Ho feta moo, taba e 'ngoe e boetse e khethiloe ho AMD CPUs (CVE-2022-23825, Pherekano ea Mofuta oa Lekala) e amanang le ts'ebetsong ea makala a iqapetsoeng - maemo a ho bolela esale pele lekala a ka etsahala ntle le litaelo tse hlokahalang tsa lekala, tse lumellang ho susumetsa "buffer" ea lekala. ntle le taelo ea "ret". Ts'ebetso ena e thatafatsa ts'ebetso ea ts'ireletso mme e hloka ho hloekisoa ka matla ho feta ha "buffer" ea ho bolela esale pele ea lekala. Ho eketsa ts'ireletso e felletseng ho kernel ho lebelletsoe ho eketsa bokaholimo ka 209%.

Source: opennet.ru

Eketsa ka tlhaloso