Retbleed د Intel او AMD CPUs د اټکلي اجرا کولو میکانیزم باندې نوی برید دی

د ETH زیورخ څخه د څیړونکو یوې ډلې په CPU کې د غیر مستقیم لیږدونو اټکل شوي اجرا کولو میکانیزم باندې نوی برید په ګوته کړی ، کوم چې دا امکان ورکوي چې د کرنل حافظې څخه معلومات راوباسي یا د مجازی ماشینونو څخه کوربه سیسټم باندې برید تنظیم کړي. زیانمنتیاوې د Retbleed په نوم نومول شوي (CVE-2022-29900, CVE-2022-29901) او په طبیعت کې د Specter-v2 بریدونو ته نږدې دي. توپیر د "ret" (بیرته راستنیدنې) لارښوونې پروسس کولو پرمهال د خپل سري کوډ قیاس اجرا کولو تنظیم ته راځي ، کوم چې د سټیک څخه کود کولو لپاره پته راوړي ، د "jmp" لارښوونې په کارولو سره د غیر مستقیم کود پرځای ، له پتې څخه پته پورته کوي. حافظه یا د CPU راجستر.

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

د اټکلي عملیاتو وروسته په زیرمه کې پاتې ډیټا معلومولو لپاره ، برید کونکی کولی شي د پاتې ډیټا ټاکلو لپاره د اړخ چینل تخنیکونه وکاروي ، لکه کیش شوي او غیر محفوظ شوي ډیټا ته د لاسرسي وختونو کې بدلونونو تحلیل. د نورو امتیازاتو په کچه د ساحو څخه په قصدي توګه د معلوماتو راټولولو لپاره (د مثال په توګه، د کرنل حافظې څخه)، "ګاجټونه" کارول کیږي - په دانا کې موجود کمانډونو سلسله چې د خارجي شرایطو پورې اړه لري چې د حافظې څخه د اټکل شوي معلوماتو لوستلو لپاره مناسب دي چې کولی شي اغیزمن شي. برید کوونکی

د کلاسیک سپیکټر کلاس بریدونو څخه د ساتنې لپاره چې مشروط او غیر مستقیم کود لارښوونې کاروي، ډیری عملیاتي سیسټمونه د "retpoline" تخنیک کاروي، کوم چې د غیر مستقیم کود عملیات د "ret" لارښوونې سره ځای پرځای کوي، د کوم لپاره چې پروسیسرونه د جلا سټیک حالت وړاندوینې واحد کاروي. د شاخ وړاندوینې بلاک نه کارول. کله چې retpoline په 2018 کې معرفي شو، داسې انګیرل کیده چې د سپیکٹر په څیر د پتې لاسوهنې د "ret" لارښوونې په کارولو سره د قیاس څانګې لپاره عملي نه وې.

هغه څیړونکي چې د Retbleed برید میتود یې رامینځته کړی د "ret" لارښوونې په کارولو سره د قیاس لیږد پیل کولو لپاره د مایکرو آرکیټیکچر شرایطو رامینځته کولو احتمال څرګند کړ او د لینکس کرنل کې د زیانونو څخه د ګټې اخیستنې لپاره مناسب د لارښوونو (ګاجټونو) ترتیبونو پیژندلو لپاره چمتو شوي وسیلې خپرې کړې ، په کوم کې چې دا ډول شرایط پخپله څرګندیږي.

د څیړنې په جریان کې، یو کاري استخراج چمتو شوی و چې د Intel CPUs سره سیسټمونو ته اجازه ورکوي چې د کارن په ځای کې د غیرمستقیم پروسې څخه د 219 بایټس په هر ثانیه کې او 98٪ دقت سره د کارنیل حافظې څخه خپل سري معلومات استخراج کړي. د AMD پروسیسرونو کې، د استخراج موثریت خورا لوړ دی — د لیک کچه په هره ثانیه کې 3.9 KB ده. د عملي مثال په توګه، موږ وښایه چې څنګه د /etc/shadow فایل مینځپانګې معلومولو لپاره وړاندیز شوي استحصال وکاروو. د Intel CPUs سره په سیسټمونو کې، د روټ کاروونکي پاسورډ هش ټاکلو لپاره برید په 28 دقیقو کې ترسره شو، او په سیسټمونو کې د AMD CPUs سره - په 6 دقیقو کې.

برید د Intel پروسیسرونو 6-8 نسلونو لپاره تایید شوی چې د Q3 2019 (د سکیلیک په شمول) دمخه خپور شوی و ، او د Zen 1 ، Zen 1+ او Zen 2 مایکرو آرکیټیکچرونو پراساس د AMD پروسیسرونه چې د Q2021 3 دمخه خپاره شوي و. په نوي پروسیسر ماډلونو کې لکه AMD ZenXNUMX او Intel Alder Lake، او همدارنګه د ARM پروسیسرونو کې، ستونزه د موجوده محافظت میکانیزمونو لخوا بنده شوې. د مثال په توګه، د IBRS (د غیر مستقیم څانګو محدودیت قیاس) لارښوونې کارول د بریدونو په وړاندې ساتنه کې مرسته کوي.

د لینکس کرنل او Xen هایپروایزر لپاره د بدلونونو سیټ چمتو شوی ، کوم چې به په زړو CPUs کې سافټویر کې ستونزه بنده کړي. د لینکس کرنل لپاره وړاندیز شوی پیچ 68 فایلونه بدلوي، 1783 لینونه اضافه کوي، او 387 لینونه حذف کوي. بدبختانه ، محافظت د پام وړ سر لګښتونو لامل کیږي - په AMD او Intel پروسیسرونو کې ترسره شوي متنونو کې ، د فعالیت کمښت له 14٪ څخه تر 39٪ پورې اټکل شوی. دا غوره ده چې د IBRS لارښوونو پراساس محافظت وکاروئ ، د Intel CPUs نوي نسلونو کې شتون لري او د لینکس کرنل 4.19 سره پیل کولو ملاتړ کیږي.

په Intel پروسیسرونو کې، د قیاس غیر مستقیم کود لپاره د پتې بدیل د یوې ځانګړتیا څخه مننه ترسره کیږي چې ښکاري کله چې د بیرته ستنیدو بفر کې د ټیټ حد (انډر فلو) له لارې ډیر جریان واقع کیږي. کله چې داسې شرایط رامنځ ته شي، د "ret" لارښوونې د پتې انتخاب منطق پلي کول پیل کوي لکه څنګه چې د نورمال غیر مستقیم کودونو لپاره کارول کیږي. د لینکس کرنل کې له زرو څخه ډیر ځایونه موندل شوي چې د داسې بیک فلو پیل کولو لپاره شرایط رامینځته کوي او د سیسټم تلیفونونو له لارې د لاسرسي وړ دي.

د AMD پروسیسرونو کې، د "ret" لارښوونې اټکلي اجرا کول د سټیک ځانګړي بفر (د بیرته راستنیدو پته سټیک) ته اشاره کولو پرته ترسره کیږي او د شاخ وړاندوینې واحد د "ret" لارښوونې د کنټرول بیرته ستنیدو په توګه نه بلکه د غیر مستقیم څانګې په توګه په پام کې نیسي. او، په دې اساس، د وړاندوینې غیر مستقیم لیږد لپاره ډاټا کاروي. د دې شرایطو لاندې، په حقیقت کې هر ډول "ret" عملیات د سیسټم کال له لارې د لاسرسي وړ کیدی شي ګټه پورته کړي.

برسیره پردې، یوه بله مسله هم په AMD CPUs (CVE-2022-23825، د برانچ ډول کنفیوژن) د جعلي څانګو پلي کولو پورې اړوند پیژندل شوې - د څانګې وړاندوینې شرایط حتی د اړین شاخ لارښوونې پرته پیښ کیدی شي ، کوم چې د شاخ وړاندوینې بفر اغیزې ته اجازه ورکوي. د "ret" لارښوونې پرته. دا خصوصیت د پام وړ د محافظت پلي کول پیچلي کوي او د شاخ وړاندوینې بفر ډیر فعال پاکولو ته اړتیا لري. کرنل ته د بشپړ محافظت اضافه کول تمه کیږي چې سر به 209٪ ډیر کړي.

سرچینه: opennet.ru

Add a comment