Zehfbûna di mekanîzmaya darvekirina spekulatîf a pêvajoyên AMD de

Projeya Grsecurity hûrgulî û xwenîşandanek rêbaza êrîşê ya ji bo qelsiyek nû (CVE-2021-26341) di pêvajoyên AMD-ê de têkildarî darvekirina spekulatîf a rêwerzan piştî operasyonên pêşwext ên bê şert û merc weşandiye. Ger êrîş serketî be, qelsî dihêle ku naveroka deverên bîranîna keyfî were destnîşankirin. Mînakî, lêkolîneran îstismarek amade kirine ku destûrê dide wan ku layout navnîşan diyar bikin û mekanîzmaya parastinê ya KASLR (randomkirina bîranîna kernel) bi cîbicîkirina koda bêdestûr di binpergala kernel ePBF de derbas bikin. Senaryoyên din ên êrişê nayên derxistin ku dibe sedema derketina naveroka bîranîna kernelê.

Qelsî dihêle hûn şert û mercên ku pêvajoker, di dema darvekirina pêşîlêgirtinê de, bi spekulatîf talîmatê tavilê li dû talîmata bazdanê di bîranînê de biafirîne (SLS, Straight Line Speculation). Digel vê yekê, xweşbîniyek wusa ne tenê ji bo operatorên bazdanê yên şertî, lê di heman demê de ji bo rêwerzên ku bazdana rasterast a bêşert jî vedigire, wek JMP, RET û CALL jî dixebite. Li dû rêwerzên bazdanê yên bê şert, daneyên keyfî yên ku ji bo darvekirinê ne têne danîn dikarin bêne danîn. Piştî ku tesbît dike ku şax pêkanîna rêwerzek din pêk nayîne, pêvajoker bi tenê dewletê paşde vedigerîne û înfaza spekulatîf paşguh dike, lê şopa darvekirina rêwerzan di cacheya hevbeş de dimîne û ji bo analîzê bi karanîna teknîkên vegerandina kanala alîgir peyda dibe.

Mîna ku bi îstismarkirina lawaziya Specter-v1 re, ji êrîşê re hebûna hin rêzikên rêwerzan (gadgetan) di kernelê de hewce dike ku rê li darvekirina spekulatîf digire. Astengkirina qelsiyek di vê rewşê de bi naskirina kelûpelên weha di kodê de û lê zêdekirina rêwerzên pêvek li wan tê ku darvekirina spekulatîf asteng dike. Mercên ji bo darvekirina spekulatîf jî dikarin ji hêla bernameyên bêdestûr ên ku di makîneya virtual eBPF-ê de têne xebitandin werin afirandin. Ji bo astengkirina şiyana çêkirina kelûpelên bi karanîna eBPF, tê pêşniyar kirin ku gihandina bêdestûr a eBPF di pergalê de neçalak bike (“sysctl -w kernel.unprivileged_bpf_disabled=1”).

Zelalbûn bandorê li pêvajoyên li ser bingeha mîkroarchitectural Zen1 û Zen2 dike, di nav de nifşên yekem û duyemîn ên AMD EPYC û AMD Ryzen Threadripper, û her weha AMD Ryzen 2000/3000/4000/5000, AMD Athlon, AMD Athlon Threa. Prosesorên rêzikên PRO û APU A. Ji bo astengkirina pêkanîna spekulatîf a rêwerzan, tê pêşniyar kirin ku piştî operasyonên şaxê (RET, JMP, CALL) gazî rêwerzên INT3 an LFENCE bikin.

Source: opennet.ru

Add a comment