د Zen+ او Zen 2 مایکرو آرکیټیکچرونو پراساس د AMD پروسیسرونو کې د میلټ ډاون ټولګي زیانمنتیا کشف شوې

د ډریسډن تخنیکي پوهنتون څخه د څیړونکو یوې ډلې د Zen+ او Zen 2020 مایکرو آرکیټیکچرونو پراساس د AMD پروسیسرونو کې زیانمنتیا (CVE-12965-2) پیژندلې ، کوم چې د میلټ ډاون ټولګي برید ته اجازه ورکوي. په پیل کې داسې انګیرل کیده چې د AMD Zen+ او Zen 2 پروسیسرونه د میلټ ډاون زیانمننې لپاره حساس ندي، مګر څیړونکو یوه ځانګړتیا په ګوته کړه چې د غیر کانونیکي مجازی پتې کارولو په وخت کې د حافظې خوندي سیمو ته د قیاس السرسۍ المل ګرځي.

د AMD64 جوړښت یوازې د مجازی پتې لومړی 48 بټونه کاروي او پاتې 16 بټونه له پامه غورځوي. دا مشخص شوی چې د 48 څخه تر 63 پورې بټونه باید تل د بټ 47 ارزښت کاپي کړي (د بټ توسیع نښه). که دا حالت سرغړونه وي او د پورتنۍ بټونو د خپلسري ارزښتونو سره پتې ته د لاسرسي هڅه کیږي ، پروسیسر یو استثنا رامینځته کوي. په مکرر ډول د پورتنۍ بټونو ډکول د دې لامل کیږي چې د موجود پته ځای په دوه بلاکونو وویشل شي - یو ټیټ (له 0 څخه تر 00007FFFFFFFFFFFF)، په کوم کې چې پورتنۍ بټونه 800000000000 ته ټاکل شوي، او پورتنۍ بټونه (له FFFF1FFFFFFFFFFFFFFFFFFFFFFFF) ټول پورتنۍ بټونه XNUMX ته ټاکل شوي.

هغه پتې چې په ټاکل شوي بلاکونو کې راځي کینونیکي بلل کیږي، او د پورتنۍ بټونو د خپلمنځي مینځپانګې سره غلط پتې غیر کینونیکي بلل کیږي. د کانونیکي ادرسونو ټیټه لړۍ عموما د پروسې ډیټا لپاره تخصیص کیږي، او پورتنۍ سلسله د کرنل ډیټا لپاره کارول کیږي (د کارونکي ځای څخه دې پتو ته لاسرسی د امتیاز جلا کولو په کچه بند شوی دی).

د کلاسیک میلټ ډاون زیانمنتیا د دې حقیقت پراساس ده چې د لارښوونو قیاس پلي کولو پرمهال ، پروسیسر کولی شي شخصي ډیټا ساحې ته لاسرسی ومومي او بیا پایله له مینځه یوسي ځکه چې ټاکل شوي امتیازات د کارونکي پروسې څخه ورته لاسرسي منع کوي. په برنامه کې ، په قیاس سره اجرا شوی بلاک د مشروط څانګې لخوا د اصلي کوډ څخه جلا شوی ، کوم چې په ریښتیني شرایطو کې تل اوریږي ، مګر د دې حقیقت له امله چې مشروط بیان محاسبه شوي ارزښت کاروي چې پروسیسر د دمخه اجرا کولو پرمهال نه پوهیږي. کوډ، د څانګې ټول انتخابونه په قیاس سره ترسره کیږي.

څرنګه چې په قیاس سره اجرا شوي عملیات د عادي اجرا شوي لارښوونو په څیر ورته کیچ کاروي، دا ممکنه ده چې د قیاس اجرا کولو پرمهال په کیچ کې مارکرونه تنظیم کړئ چې د شخصي حافظې ساحه کې د انفرادي بټونو مینځپانګه منعکس کوي، او بیا په نورمال ډول اجرا شوي کوډ کې د وخت له لارې د دوی ارزښت وټاکي. تحلیلونه زیرمه شوي او غیر محفوظ شوي ډیټا ته لاسرسی لري.

د نوي زیان مننې یوه ځانګړتیا چې د AMD Zen+ او Zen 2 پروسیسرونو باندې اغیزه کوي دا دی چې CPUs د قیاس لوستلو او لیکلو عملیاتو ته اجازه ورکوي چې حافظې ته د غلط غیر کینونیکي ادرسونو په کارولو سره لاسرسی ومومي ، په ساده ډول پورتنۍ 16 بټونه له پامه غورځوي. پدې توګه ، د قیاس کوډ اجرا کولو پرمهال ، پروسیسر تل یوازې ټیټ 48 بټونه کاروي ، او د پتې اعتبار په جلا توګه چیک کیږي. که چیرې ، کله چې د انجینري ژباړې بفر (TLB) کې فزیکي پتې ته غیر کینونیکي مجازی پته وژباړئ ، د پتې په کانونیکي برخه کې میچ وموندل شي ، نو د قیاس کولو بار عملیات به د مینځپانګې په پام کې نیولو پرته ارزښت بیرته راولي. د پورتنۍ 16 بټونو څخه ، کوم چې د تارونو ترمینځ د حافظې شریکولو ته اجازه ورکوي. وروسته، عملیات به باطل او رد شي، مګر د حافظې لاسرسی به بشپړ شي او ډاټا به په زیرمه کې پای ته ورسیږي.

د تجربې په جریان کې ، د فلش + ریلوډ کیچ مینځپانګې ټاکلو تخنیک په کارولو سره ، څیړونکي وکولی شول د پټ ډیټا لیږد لپاره په یوه ثانیه کې د 125 بایټ په سرعت سره یو چینل تنظیم کړي. د AMD چپس سربیره، ستونزه د انټیل ټول پروسیسرونه هم اغیزه کوي، کوم چې د کلاسیک میلټډون زیانمننې لپاره حساس دي. ورته تخنیکونه چې د میلټ ډاون بریدونو مخنیوي کې مرسته کوي ، لکه د LFENCE لارښوونو کارول ، د دې نوي ډول برید پروړاندې د ساتنې لپاره کارول کیدی شي. د مثال په توګه ، که چیرې د انټیل پروسیسر کې د میلټډاون پروړاندې د هارډویر محافظت شامل وي یا سیسټم د سافټویر محافظت فعال شوی وي ، نو دا ډول تشکیلات د نوي برید ډول ته حساس ندي.

په ورته وخت کې ، څیړونکي یادونه کوي چې د انټیل پروسیسرونو په پرتله ، د AMD پروسیسرونو جوړښت د ریښتیني بریدونو ترسره کولو امکان محدودوي ، مګر د دوی اغیزمنتوب ډیرولو لپاره د نورو مایکرو آرکیټیکچر بریدونو سره په ګډه د نوي میتود کارول نه خارجوي. په ځانګړې توګه، وړاندیز شوی برید یو چا ته اجازه نه ورکوي چې د کرنل او نورو پروسو د حافظې ساحې محتويات وټاکي، مګر د ورته برنامه نورو تارونو ته د ورته مجازی حافظې ځای کې د چلولو وړتیا پورې محدود دی.

څرنګه چې د زیان مننې پرته برنامه د دې وړتیا لري چې خپلو تارونو ته لاسرسی ومومي، له عملي نظره دا طریقه د سینڈ باکس انزوا څخه تیرولو او په برنامو کې د نورو تارونو په کار کې د مداخلې تنظیم کولو لپاره ګټوره ده چې د دریمې ډلې اجرا کولو ته اجازه ورکوي. کوډ، لکه ویب براوزرونه او د JIT انجنونه. څیړونکو د برید لپاره د SpiderMonkey JavaScript انجن او لینکس کرنل زیانمنتیا معاینه کړه، مګر د زیان منونکي کوډ سلسلې یې ونه موندلې چې د برید ترسره کولو لپاره کارول کیدی شي. د برید کولو غوښتنلیکونو سربیره ، دا میتود د پروسیسر مایکرو آرکیټیکچرل عناصرو ترمینځ د نه منلو وړ ډیټا جریان ځواک کولو لپاره هم کارول کیدی شي پداسې حال کې چې د نورو مایکرو آرکیټیکچرل زیانونو څخه ګټه پورته کوي.

سرچینه: opennet.ru

Add a comment