از ژانویه ۲۰۱۸، صنعت کامپیوتر با کشف دو آسیبپذیری بحرانی در پردازندهها به نامهای Meltdown و Spectre وارد مرحله جدیدی از هشدار امنیتی شد. این نقصها مرزهای امنیتی بنیادی سیستمعامل را که حافظه Kernel و User Space را جدا میکرد، از بین بردند. ریشه این مشکلات در قابلیتی به نام Speculative Execution (اجرای گمانهزنی) در CPUهای مدرن نهفته است.
چالشهای رفع آسیبپذیریهای سختافزاری
برخلاف نرمافزارها، برخی آسیبپذیریهای سختافزاری را نمیتوان بهطور کامل بدون جایگزینی نسل جدید قطعات برطرف کرد. برخی دیگر از طریق Firmware یا بهروزرسانیهای Microcode قابل مدیریت هستند، اما فرآیند Patch کردن در سطح سختافزار پیچیده است و باعث میشود این نقصها برای مدت طولانی روی دستگاهها باقی بمانند.
بررسی مهمترین آسیبپذیریهای CPU و DRAM
- Spectre (Variant 1 & 2): این حملات با سوءاستفاده از Branch Prediction، اطلاعات حساس را از حافظه سایر پروسهها از طریق Side-channel استخراج میکنند.
- Meltdown: این نقص در CPUهای Intel اجازه میدهد یک پروسه کاربر، حافظه محافظتشده Kernel را بخواند. راهکار آن استفاده از مکانیزمهایی مانند KPTI در لینوکس است.
- Foreshadow: حملهای علیه L1 Data Cache در پردازندههای Intel که بهویژه در محیطهای مجازیسازی (VM) خطرناک است و اجازه استخراج داده از SMM را میدهد.
- Starbleed: یک نقص طراحی در رمزنگاری Bitstream در FPGAهای شرکت Xilinx که اجازه رمزگشایی و تغییر پیکربندی سختافزاری را میدهد.
- PLATYPUS: حملهای که از رابط RAPL برای اندازهگیری مصرف انرژی CPU استفاده کرده و میتواند کلیدهای رمزنگاری را از حافظه Kernel یا Intel SGX استخراج کند.
- Retbleed: این تکنیک با دور زدن دفاعهای نرمافزاری مانند Retpoline، از طریق Return Stack Buffer Underflow در CPUهای Intel و AMD دادهها را نشت میدهد.
- Hertzbleed: یک حمله Side-channel که از Dynamic Frequency Scaling استفاده میکند و حتی پیادهسازیهای Constant-time را در رمزنگاریهای پساکوانتومی (PQC) هدف قرار میدهد.
- Zenbleed و Downfall: آسیبپذیریهایی در خانواده Zen 2 شرکت AMD و نسلهای مختلف Intel که اجازه نشت دادههای قدیمی (Stale Data) از رجیسترهای سختافزاری را میدهند.
- SinkClose: یک نقص قدیمی در CPUهای AMD (EPYC, Ryzen) که اجازه ارتقای سطح دسترسی به Ring -2 را داده و امکان کاشت Implant در UEFI را فراهم میکند.
- GoFetch: حملهای علیه پردازندههای سری M اپل که از Data Memory-Dependent Prefetcher برای استخراج کلیدهای OpenSSL و الگوریتمهای Kyber استفاده میکند.
- EntrySign: نقصهای جدیدی در CPUهای Zen 1 تا Zen 5 شرکت AMD که اجازه جعل امضای Patchهای Microcode و تخریب امنیت SEV-SNP را میدهد.