گروهی از محققان دانشگاه Vrije آمستردام آسیبپذیری جدیدی را در ساختارهای ریزمعماری پردازندههای اینتل و ARM شناسایی کردهاند که نسخه توسعهیافته آسیبپذیری Spectre-v2 است که به فرد اجازه میدهد مکانیسمهای حفاظتی eIBRS و CSV2 اضافه شده به پردازندهها را دور بزند. . این آسیبپذیری چندین نام دارد: BHI (Branch History Injection، CVE-2022-0001)، BHB (Branch History Buffer، CVE-2022-0002) و Spectre-BHB (CVE-2022-23960)، که تظاهرات مختلفی را توصیف میکنند. همان مشکل (BHI - حمله ای که سطوح مختلف امتیازات را تحت تأثیر قرار می دهد، به عنوان مثال، فرآیند کاربر و هسته، BHB - حمله در همان سطح امتیاز، به عنوان مثال، eBPF JIT و هسته).
محققان یک اکسپلویت کاری را نشان دادهاند که اجازه میدهد دادههای دلخواه از حافظه هسته از فضای کاربر استخراج شود. به عنوان مثال، نشان داده شده است که چگونه با استفاده از یک اکسپلویت آماده شده، می توان از بافرهای هسته یک رشته را با هش رمز عبور کاربر ریشه بارگذاری شده از فایل /etc/shadow استخراج کرد. این اکسپلویت امکان بهره برداری از یک آسیب پذیری را در یک سطح امتیاز (حمله هسته به هسته) با استفاده از یک برنامه eBPF بارگذاری شده توسط کاربر نشان می دهد. همچنین می توان به جای eBPF از ابزارهای موجود Spectre در کد هسته، از دنباله ای از دستورات استفاده کرد که منجر به اجرای گمانه زنی دستورالعمل ها می شود.
این آسیبپذیری در اکثر پردازندههای فعلی اینتل، به استثنای پردازندههای خانواده Atom، دیده میشود. در میان پردازندههای ARM، Cortex-A15، Cortex-A57، Cortex-A7*، Cortex-X1، Cortex-X2، Cortex-A710، Neoverse N1، Neoverse N2، Neoverse V1 و احتمالاً برخی از تراشههای Cortex-R تحت تأثیر این مشکل قرار دارند. طبق تحقیقات، این آسیب پذیری در پردازنده های AMD ظاهر نمی شود. برای از بین بردن مشکل، چندین روش نرم افزاری برای مسدود کردن آسیب پذیری پیشنهاد شده است که می توان قبل از ظاهر شدن محافظت سخت افزاری در مدل های آینده CPU از آنها استفاده کرد.
برای مسدود کردن حملات از طریق زیرسیستم eBPF، توصیه میشود با نوشتن عدد 1 در فایل «/proc/sys/kernel/unprivileged_bpf_disabled» یا اجرای دستور «sysctl -w kernel»، بهطور پیشفرض، قابلیت دانلود برنامههای eBPF را برای کاربران غیرمجاز غیرفعال کنید. unprivileged_bpf_disabled=1”. برای جلوگیری از حملات ابزار، توصیه می شود از دستورالعمل LFENCE در مناطقی از کد استفاده کنید که به طور بالقوه منجر به اجرای حدس و گمان می شود. قابل توجه است که پیکربندی پیشفرض اکثر توزیعهای لینوکس از قبل حاوی اقدامات حفاظتی لازم برای جلوگیری از حمله eBPF است که توسط محققان نشان داده شده است. توصیههای اینتل برای غیرفعال کردن دسترسی غیرمجاز به eBPF نیز پیشفرض از هسته لینوکس 5.16 است و به شعبههای قبلی بکپورت میشود.
از نظر مفهومی، BHI یک نسخه توسعه یافته از حمله Spectre-v2 است که در آن، برای دور زدن حفاظت اضافه شده (Intel eIBRS و Arm CSV2) و سازماندهی نشت داده، از جایگزینی مقدار در بافر تاریخچه شاخه استفاده می شود که در CPU برای افزایش پیش بینی استفاده می شود. انشعاب دقت با در نظر گرفتن تاریخچه گذارهای گذشته. در حین حمله، از طریق دستکاری با تاریخچه انتقال، شرایطی برای پیشبینی نادرست انتقال و اجرای گمانهزنی دستورات لازم ایجاد میشود که نتیجه آن به حافظه پنهان ختم میشود.
به جز استفاده از Branch History Buffer به جای Branch Target Buffer، حمله جدید مشابه Spectre-v2 است. وظیفه مهاجم ایجاد شرایطی است که آدرس هنگام انجام یک عملیات گمانه زنی از ناحیه داده های تعریف شده گرفته شود. پس از انجام یک پرش غیرمستقیم گمانهزنی، آدرس پرش خوانده شده از حافظه در حافظه پنهان باقی میماند و پس از آن میتوان از یکی از روشهای تعیین محتویات حافظه پنهان برای بازیابی آن بر اساس تجزیه و تحلیل تغییرات زمان دسترسی به حافظه پنهان و غیر کش استفاده کرد. داده ها.
منبع: opennet.ru