په eBPF کې زیان منونکي چې کولی شي د سپیکٹر 4 برید محافظت ته مخه کړي

په لینکس کرنل کې دوه زیانمنونکي پیژندل شوي چې د eBPF فرعي سیسټم ته اجازه ورکوي چې د سپیکټر v4 برید (SSB، د قیاس پلورنځي بای پاس) پروړاندې محافظت بای پاس کولو لپاره وکارول شي. د بې ناموسه BPF برنامه په کارولو سره ، برید کونکی کولی شي د ځینې عملیاتو اټکلي اجرا کولو لپاره شرایط رامینځته کړي او د کرنل حافظې د خپلسري ساحو مینځپانګه وټاکي. په کرنل کې د eBPF فرعي سیسټمونو ساتونکي د پروټوټایپ کارونې ته لاسرسی ترلاسه کړ چې په عمل کې د بریدونو ترسره کولو وړتیا ښیې. ستونزې د پیچ ​​(1، 2) په بڼه حل شوي، کوم چې به په راتلونکي لینکس کرنل تازه کې شامل شي. د توزیع کټونو کې تازه معلومات لاهم ندي رامینځته شوي (Debian، RHEL، SUSE، Arch، Fedora، Ubuntu).

د سپیکټر 4 برید میتود د غیر مستقیم ادرس په کارولو سره د بدیل لیکلو او لوستلو عملیاتو پروسس کولو پرمهال د عملیاتو د اټکلي اجرا کولو پایلې له مینځه وړلو وروسته د پروسیسر کیچ کې ذخیره شوي ډیټا بیرته راګرځولو پراساس دي. کله چې د لوستلو عملیات د لیکلو عملیات تعقیبوي (د بیلګې په توګه، mov [rbx + rcx]، 0x0؛ mov rax، [rdx + rsi])، د لوستلو پته د ورته عملیاتو د ترسره کولو له امله دمخه پیژندل کیدی شي (د لوستلو عملیات دي ډیر په مکرر ډول ترسره کیږي او لوستل کیدی شي د کیچ څخه ترسره کیدی شي) او پروسیسر کولی شي په قیاس سره د لیکلو دمخه لوستل ترسره کړي پرته لدې چې د لیکلو غیر مستقیم آفسیټ محاسبه کیدو ته انتظار وکړي.

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

لومړی زیانمنتیا (CVE-2021-35477) د BPF پروګرام تایید میکانیزم کې د نیمګړتیا له امله رامینځته کیږي. د سپیکټر 4 برید په وړاندې د ساتنې لپاره ، تصدیق کونکي حافظې ته د احتمالي ستونزې لرونکي پلورنځیو وروسته اضافي لارښوونې اضافه کوي چې د تیرو عملیاتو نښو بې ځایه کولو لپاره بې ارزښته ارزښت ذخیره کوي. د لیکلو نول عملیات تمه کیده چې خورا ګړندی وي او د قیاس اجرا کول بند کړي ځکه چې دا یوازې د BPF سټیک چوکاټ ته په اشارې پورې اړه لري. مګر په حقیقت کې، دا د داسې شرایطو رامینځته کول ممکن دي چې لاندې لارښوونې د قیاس اجرا کولو ته لار هواروي د پلورنځي عملیاتو دمخه پلي کیږي.

دوهم زیان (CVE-2021-3455) د دې حقیقت له امله دی چې کله د BPF تصدیق کونکي احتمالي خطرناکه حافظه خوندي کولو عملیات پیژني ، نو دا د BPF سټیک غیر پیل شوي ساحې په پام کې نه نیسي ، لومړی د لیکلو عملیات چې خوندي ندي. دا خصوصیت د پلورنځي لارښوونې پلي کولو دمخه د غیر پیل شوي حافظې ساحې پورې تړلي د قیاس لوستلو عملیاتو ترسره کولو امکان رامینځته کوي. د BPF سټیک لپاره نوې حافظه پرته له دې چې مختص شوي حافظه کې مینځپانګې وګوري پرته تخصیص کیږي ، او مخکې لدې چې د BPF برنامه د حافظې سیمې مینځپانګې اداره کولو لپاره پرمخ وړي یوه لاره شتون لري چې بیا به د BPF سټیک لپاره تخصیص شي.

سرچینه: opennet.ru

Add a comment