چرا روزنههای امنیتی ۲۰ ساله اینتل طی چند ماه و توسط چند گروه شناسایی شدند؟
سه پژوهشگر جوان با نامهای مورتیز لیپ، دانیل گراس و مایکل شوارز در روزی سرد در اوایل ماه ژانویه، در شهر گراتس اتریش در خانههایشان پشت کامپیوتر نشستند و سعی کردند به اساسیترین بخش امنیتی خود نفوذ کنند.
دو روز قبل از آن، این سه نفر تصمیم گرفته بودند ایدهای را که هفتهها ذهنشان را به خود مشغول کرده بود، بررسی کنند و بفهمند که چگونه پردازندهها از حساسترین حافظه میلیاردها کامپیوتر محافظت میکنند. آنها پس از گذراندن آن شب با یکدیگر، هرکدام روز بعد بهصورت مستقل کدی نوشتند تا عملا حمله به آسیبپذیری را تست کنند و نتیجه را فورا از طریق پیامهایی به یکدیگر گزارش دهند.
عصر آن روز، گراس به دو نفر دیگر گفت موفق شده است کدی طراحی کند که میتواند اطلاعات را از عمیقترین و حفاظتشدهترین بخش سیستمعامل کامپیوتر (کرنل) بدزدد. این اطلاعات همراه با کاراکترهای تصادفی نبود؛ بلکه دادههایی حقیقی از این بخش حساس ماشین بود: خلاصههایی از تاریخچهی مرورگر وب و متن از مکالمات خصوصی ایمیل. گراس بیش از اینکه احساس موفقیت کند، شوکه و ناامید شد. گراس میگوید:
واقعا ترسناک بود. شما انتظار این را ندارید که مکالمات خصوصی شما بدون اجازه از یک برنامه خارج شود.
لیپ و شوارتز هم بهزودی کدهای خود را اثبات کردند و به نتایج یکسانی رسیدند: لیپ شاهد بیرون آمدن نشانیهای اینترنتی و اسامی فایلها بود. او میگوید:
ناگهان رشتههایی را دیدم که بدانجا تعلق نداشتند. پیش خودم فکر کردم کد من واقعا کار میکند.
این سه پژوهشگر در آن شب نتوانستند بیش از چند ساعت بخوابند. روز بعد آنها به اینتل پیامی فرستادند و درمورد نقصهای بالقوه تراشههای آن هشدار دادند. آنها در واقع شکافی در یکی از اساسیترین سیستمهای امنیتی دنیای کامپیوتر پیدا کرده بودند و پیشنهاد کردند که از دسترسی برنامههای غیر قابل اعتماد به سایر پردازشهای کامپیوتر یا عمیقترین لایههای سیستمعامل کامپیوتر که حساسترین اطلاعات محرمانه در آنجا نگهداری میشود، جلوگیری شود. با این شکاف، هر هکری میتواند با اجرای کد روی کامپیوتر هدف از طریق برنامهی دارای ضعف، به اطلاعات محرمانهای که در کرنل کامپیوتر ذخیره شده است (مثلا فایلهای شخصی، گذرواژهها، یا کلیدهای رمزنگاری) دسترسی پیدا کند.
یک ماشین مجازی مخرب میتواند در سرویسهای ابری مانند خدمات وب آمازون، به اطلاعات محرمانهی همسایگان آن دست پیدا کند. در این سرویسها، ماشینهای مجازی در یک سرور فیزیکی بهطور همزمان در یکجا وجود دارند و امکان درز اطلاعات از طریق ماشین مجازی مخرب بیشتر است. کشف تیم سهنفرهی گراتس که از حمله آن با نام Meltdown یاد میشود، نشان داد که شکافی حیاتی در اساسیترین بخش حفاظتی کامپیوتری و محاسباتی وجود دارد و شاید مهمترین مشکل این باشد که این شکاف در تراشههای اینتل از اوایل دههی ۱۹۹۰ وجود داشته است. احتمال وقوع این حمله بدون اینکه به اطلاع عموم برسد، به مدت دهها سال وجود داشته است.
با این حال کمپانی اینتل پس از یک هفته سکوت، پاسخی شگفتانگیز به این سه پژوهشگر داد. کمپانی اینتل که درحال یافتن راه حلی برای این مشکل بود، اعلام کرد که این تیم سهنفره اولین کسانی نیستند که درمورد این آسیبپذیری به اینتل هشدار میدهند. در واقع دو تیم تحقیقاتی دیگر قبلا این آسیبپذیری را به گوش کمپانی رسانده بودند. با احتساب تکنیکی دیگر به نام اسپکتر، اینتل به این سه پژوهشگر گفت آنها در واقع چهارمین تیم تحقیقاتی هستند که مشکل کلاس جدید را آن هم ظرف مدت چند ماه گزارش میکنند.
پل کوچر، یکی از پژوهشگران مشهور امنیتی و یکی از دو نفری که بهطور مستقل گزارش مربوط به حمله اسپکتر را به سازندههای تراشه داد، میگوید:
اگر نظر من را بخواهید، رخ دادن همهی این اتفاقات بهطور همزمان دیوانهکننده است. این دو رشته اجرایی هیچ نقطهی اشتراکی با هم ندارند و دلیلی وجود ندارد که کسی قبلا نتوانسته باشد آنها را کشف کند و لزوما امروز باید کشف شود.
برخورد چهارگانه
درواقع اینکه همهی پژوهشگران در یک زمان متوجه مشکلی شدند که دو دهه است وجود دارد، این سؤال را به وجود میآورد که آیا قبل از آنها، کسی از وجود این نقطهضعف آگاهی داشته و از آن برای جاسوسی طی سالها استفاده کرده است یا خیر. در آن هفته و پس از رسوایی، همهی شرکت فناوری بزرگ برای جلوگیری از آسیب، به اصلاح نرمافزارهای خود پرداختند.
طبق گفتههای بروس اشنایر، پژوهشگر امنیتی و عضو مرکز هاروارد بلفر، هماهنگی یافتهها در مورد حمله به این پردازندهها نهتنها یک راز را برملا میکند، بلکه درسی در مورد سیاست به ما میدهد: زمانیکه سازمانهای اطلاعاتی مثل آژانس امنیت ملی آمریکا آسیبپذیریهای قابل هک را کشف و بهطور مخفیانه از آنها استفاده میکنند، نمیتوان فرض را براین گرفت که این باگها توسط سایر هکرها کشف نخواهد شد (صنعت امنیتی نام این پدیده را برخورد باگ میگذارد).
ملتداون و اسپکتر اولین باگهایی نیستند که بهطور همزمان اتفاق میافتند. چیزی (که حتی اشنایر هم اعتراف میکند که نمیداند چیست) باعث میشود بهترین پژوهشگران امنیتی دنیا تقریبا بهطور همزمان کشفهایی در این مورد انجام دهند؛ همانطور که لایبنیتس و نیوتون همزمان محاسبات دیفرانسیل و انتگرال را در اواخر قرن ۱۷ کشف کردند و ۵ مهندس مختلف بهطور مستقل در دهه ۱۹۲۰ تلویزیون را اختراع کردند.
اشنایر که تابستان گذشته در مورد کشف باگها، مقالهای بهصورت مشترک نوشت، میگوید:
این خیلی عجیب است. انگار نکتهای عجیب درمورد آن وجود دارد. اتفاقی در جامعه رخ میدهد و اذهان را به خودش معطوف میکند. افراد تصمیم میگیرند آن را ارزیابی کنند. مورد مشخص این است که این اتفاق زیاد هم شانسی نیست.
وقتی آژانس امنیت ملی آمریکا آسیبپذیری روز صفر (یک نقص قابل هک شدن که قبلا در نرمافزار و سختافزارها وجود داشت) را کشف میکند، اشنایر معتقد است که باید دو نکته در نظر گرفته شود: اینکه آیا آژانس از این باگ برای جاسوسی استفاده میکند یا اینکه برای رفع، آن را گزارش میدهد. اشنایر باور دارد که همزمان بودن کشف باگهایی مثل اسپکتر و ملتداون، بدین معنا است که آنها برای جلوگیری از مشکلات به افشای آن پرداختند: بر اساس برآوردهای تقریبی او در مطالعهاش در دانشگاه هاروارد، یکسوم باگهای روز صفر، در همان سال احتمالا اولین بار توسط آژانس امنیت ملی کشف شدهاند. اشنایر میگوید:
اگر من چیزی را بعد از ۱۰ سال خاموش ماندن کشف کنم، حتما چیزی باعث این کشف شده است و این مورد جدای از تصادف، باعث خواهد شد افراد دیگری نیز آن را کشف کنند. بنابراین اگر آژانس امنیت ملی آن را کشف کند، احتمال این وجود دارد که آژانسهای اطلاعاتی دیگر نیز آن را کشف کنند و حداقل احتمال کشف آن فراتر از شانس و تصادف است.
حدس و گمانهزنی
برخی از عناصر برخورد باگهای ملتداون و اسپکتر هنوز غیر قابل توضیح است؛ ولی برخی از پژوهشگران از شواهد عمومی یکسانی برای کشفهای خود استفاده میکنند. آندرس فگ، یک تحلیلگر بدافزار آلمانی شرکت جیدیتا، در ماه جولای (خرداد) سال گذشته در وبلاگ خود نوشت که او در حال کشف یک قابلیت عجیب از ریزپردازندههای مدرن به نام speculative execution بوده است. سازندگان تراشه در این تکنیک برای تسریع پردازش، پردازندههایی طراحی میکنند که بهجای تلف کردن وقت برای گلوگاههای پردازشی، از اجرای کدها چشمپوشی و پرش کند و نتایج را بهصورت نامنظم پردازش کند تا زمان بیشتری ذخیره شود.
تراشه با حذف عمل بررسی کدها، این فرصت را در اختیار کدهای مخرب قرار میدهد
فگ معتقد است که چشمپوشی و پرش میتواند به کدهای مخرب اجازه بدهد با دستکاری پردازنده، به بخشی از حافظه که نباید به آن دسترسی داشته باشد، (مثلا کرنل) دسترسی پیدا کند. درواقع تراشه با حذف عمل بررسی کدها این فرصت را در اختیار کدهای مخرب قرار میدهد. حتی بعد از اینکه پردازنده متوجه اشتباه خود شود و نتایج دسترسی کد مخرب را پاک کند، کد مخرب میتواند دوباره پردازنده را فریب بدهد و کش (بخش کوچکی از حافظه که به پردازنده برای دسترسی آسان و نگهداری اطلاعات استفادهشده اخیر اختصاص داده میشود) و حافظه را بررسی کند. برنامه میتواند با مشاهدهی زمانبندی این بررسیها، راههای دسترسی به اطلاعات محرمانه کرنل را پیدا کند.
فگ موفق نشد حملهای مؤثر برای اثبات ادعایش انجام دهد، با این حال هشدار داد که speculative execution به احتمال زیاد برای امنیت آینده مشکلاتی به وجود خواهدآورد.
فگ هنوز هم هشدارهایی برای جامعهی تحقیقاتی امنیتی سختافزاری ارائه میدهد. چند ماه پس از هشدارهای او بود که سه پژوهشگر دانشگاه تکنولوژی گراتس تهدید را جدی گرفتند. اولین سرنخ واقعی آنها از لیست ایمیل کرنل لینوکس به دست آمد: آنها در ماه اکتبر متوجه شدند که سازندگان کمپانیهای بزرگ مثل اینتل، آمازون و گوگل بهطور ناگهانی به بازسازی طرح دفاعی خود از سیستمهای عامل به نام کایزر علاقهمند شدند. پژوهشگران گراتس این طرح را بهمنظور ایزوله کردن بهتر حافظه برنامههای مربوط به حافظه سیستمعامل طراحی کرده بودند.
پژوهشگران گراتس انتظار داشتند کایزر مشکلات جدیتر از ملتداون و اسپکتر را نیز حل کند. تمرکز این پژوهشگران روی مخفی کردن مکان حافظه کامپیوتر در مقابل کدهای مخرب بود؛ نه اینکه لزوما دسترسی آنها را به این حافظه مسدود کند. لیپ میگوید:
ما خوشحال بودیم. افراد به پیادهسازی اقدامات متقابل ما علاقه نشان دادند.
اما بهزودی توسعهدهندگان گزارش دادند که لیست ایمیل با پچ کایزر روی برخی از تراشههای اینتل کند میشود. سرعت پردازش آن چیزی بین ۵ تا ۳۰ درصد در برخی از پردازشها کاهش مییابد (اثر جانبی جدی که پژوهشگران گراتس انتظار آن را نداشتند). اینتل و سایر غولهای فناوری هنوز در حال تلاش برای اصلاح بودند. لیپ میگوید:
حتما مسئلهی مهمتر و بزرگتری در اینجا مطرح است.
آیا شرکتهای فناوری که از پچ کایزر استفاده میکنند، نقص پنهانی و شدید دیگری ارائه میکنند؟ او و سایر پژوهشگران گراتس با پرسیدن این سؤال از خود، بار دیگر به سمت گفتههای فگ درمورد حمله ناموفق speculative execution رفتند. وقتی آنها تصمیم گرفتند خودشان آن را امتحان کنند، شوکه شدند و فهمیدند که میتوانند با اصلاح تکنیک فگ، کارهایی انجام دهند. البته آنها تنها نبودند. چند هفته قبل از این ماجرا، پژوهشگری به نام توماس پرچر در درسدن (شرکت امنیت آلمانی سایبروس) بهطور تصادفی روش فگ را امتحان کرده بود. پرچر میگوید:
من ۶ ماه پیش به این روش نگاهی انداخته بودم و ایدههای جالبی هم پیدا کرده بودم، ولی آنها را فراموش کردم. در نوامبر بهطور شانسی دوباره سراغ آن رفتم و تصمیم گرفتم که آن را امتحان کنم. من خیلی سریع آن را راهاندازی کردم.
در پایان، سایبروس و پژوهشگران گراتس اوایل دسامبر، کار خود را به اینتل گزارش دادند. اینتل در اواسط ماه دسامبر ۲۰۱۷ به آنها گفت قبلا کسی باگهای ملتداون و اسپکتر (حمله speculative execution) را گزارش داده است. این هشدار از طرف گروه پروژهی صفر گوگل (تیم زبده هکرهای شکارچی باگ) به اینتل داده شده بود. درواقع جان هورن، پژوهشگر پروژهی صفر، این حمله را در ماه ژوئن و هفتهها قبل از پست وبلاگ فگ کشف کرده بود.
آغاز از صفر
هورن چگونه توانست بهطور مستقل به حملهی speculative execution در تراشههای اینتل پی ببرد؟ وی میگوید با خواندن کتابچه راهنما این کار را انجام داده است. هورن که هکری ۲۲ ساله است در اواخر ماه آوریل سال گذشته کار خود را در پروژهی زیرو پس از فارغالتحصیلی شروع کرد. او در زوریخ سوئیس در کنار همکارش شروع به نوشتن نرمافزاری برای تمرکز بر پردازنده کرد. این نرمافزار نسبت به عملکرد تراشههای اینتل بسیار حساس بود؛ به همین دلیل هورن وارد جزئیات اینتل شد تا بفهمد چهمقدار از برنامه پردازندههای اینتل میتواند برای سرعت بخشیدن به آن، خارج از نظم کار کند.
او خیلی سریع متوجه شد اینتل در نقطهای از کدی که او روی آن کار میکرد، تغییری ناگهانی به دلیل speculative execution انجام میدهد تا سرعت تراشه را بالا ببرد و این عملکرد باعث میشود یک جای مخفی بهطور تصادفی در کش پردازنده ذخیره شود. بهعبارتدیگر، این عملکرد فرصت را برای یک حملهکننده یا هکر برای نفوذ فراهم میکند. هورن یک ایمیل به وایرد فرستاد. او میگوید:
من متوجه شدم که این میتواند (حداقل از نظر تئوری) چیزی فراتر از کد را تحت تأثیر قرار دهد، بنابراین تصمیم گرفتم آن را بیشتر مورد بررسی قرار دهم.
هورن در اوایل ماه مه (اردیبهشت) این تکنیک را توسعه داد و حملهای را ترتیب داد که با نام اسپکتر معروف شد. اسپکتر برخلاف ملتداون که مستقیما از پردازنده سوءاستفاده میکند، با بهرهگیری از speculative execution برنامهها و پردازشهای سیستم کامپیوتر را فریب میدهد تا اطلاعات محرمانه را در کش پردازنده ذخیره کنند و این اطلاعات در آنجا همانند حملهی زمانی ملتداون دراختیار هکر قرار بگیرند. بهعنوان مثال اسپکتر میتواند با دستکاری یک مرورگر وب به تاریخچه یا گذرواژههای آن دسترسی پیدا کند.
استفاده از اسپکتر برای هکرها سختتر از ملتداون و اصلاح آن پیچیدهتر است. این تکنیک حمله فقط مخصوص تراشههای اینتل نیست و روی تراشههای ARM و AMD نیز جواب میدهد. مشکلاتی که اسپکتر به وجود میآورد سنگینتر و طولانیتر هستند. هورن دستاوردهای خود را در یکم ژوئن به سازندگان تراشه گزارش داد و به کشف قابلیتهای دیگر speculative execution ادامه داد و بعد از سه هفته متوجه حملهی ملتداون شد و آن را گزارش داد.
سرانجام نوبت به همزمان شدن ملتداون و اسپکتر رسید. درزمانی که هورن درحال بررسی و آزمایش حملاتش بود، پلکوچر در کمپانی وابسته به سانفرانسیسکو (کمپانی تحقیق رمزنگاری) که خودش تاسیس کرده بود شروع به مطالعه کرد. او زمان میخواست تا مسئلهای عظیم در امنیت کامپیوتر را کشف کند: استخراج بهترین عملکرد از ریزپردازندهها به هر قیمتی (شاید شامل به قیمت اساسیترین بنیان امنیتی آنها).
مایک همبرگ (همکار سابق کوچر) در کنفرانسی درمورد رمزنگاری و سختافزار در تایپه در تابستان گذشته، ابهاماتی در مورد speculative execution مطرح کرد. کوچر فورا درصدد اثبات مشکل برآمد. کوچر میگوید:
وقتی من به این تکنیک برای بالابردن سرعت تراشه نگاه کردم، بهعنوان یک فرد مسئول در امر امنیتی متوجه شدم که این تکنیک واقعا ایده بدی است.
کوچر بعد از این ماجرا از تایپه بازگشت و کد خود را نوشت (بدون اینکه درمورد دستاوردهای هورن چیزی بداند.)
خارج از محدوده یا گفتن یک حکایت؟
سؤال کلیدی برای کوچر این نبود که چگونه این تعداد از پژوهشگران همزمان حملهای یکسان را کشف میکنند. درواقع سؤال او این بود که چگونه این حملات پس از گذشت این همه زمان هنوز کشف نشده بودند؛ یا کشف شده بودند و برای جاسوسی و هک در اختفا مورد استفاده قرار میگرفتند. کوچر میگوید:
اگر از من بپرسید آیا سازمانهای اطلاعاتی سالها پیش آنها را کشف کردهاند، باید بگویم قطعا همینطور است. این سازمانها بهترین و بیشترین تلاش را برای این قبیل کارها انجام میدهند. بنابراین اینکه آنها از این نواقص آگاهی داشته باشند کاملا محتمل است و تازمانیکه اطلاعات خوبی به دست بیاورند این راز را افشا نمیکنند. آژانس امنیت ملی آمریکا تنها سازمان اطلاعاتی نیست که به این نواقص آگاهی دارد و سایر هکرهای استخدام دولتی نیز به احتمال زیاد مهارتهایی در این زمینه دارند تا بتوانند اسپکتر و ملتداون را شناسایی کنند.
راب جویس، هماهنگکنندهی امنیت سایبری کاخ سفید و عضو ارشد سابق آژانس امنیت ملی آمریکا، به واشینگتنپست گفت که این آژانس در مورد اسپکتر و ملتداون اطلاعی نداشته و از آنها استفاده نکرده است. جویس همچنین نشان داد که آژانس قوانینی برای افشای آسیبپذیریهایی که کشف میکند دارد و آن را در اختیار عموم قرار میدهد.
آژانس امنیت ملی آمریکا تنها سازمان اطلاعاتی نیست که به این نواقص آگاهی دارد
با وجود شواهد غیر طبیعی برای کشف باگهای اسپکتر و ملتداون، هنوز هم مشخص نیست که این پدیده چگونه پیش میرود. بروس اشنایر یک مجموعه گزارش باگ حاوی ۴۳۰۰ آسیبپذیری را مورد بررسی قرار داد. ۱۴ درصد از آسیبپذیریهای مربوط به اندروید و حدود ۱۳ درصد از باگهای کروم، پس از گذشت ۶۰ روز از افشای اولیه آنها دوباره گزارش شدند. اشنایر میگوید:
نگهداری آسیبپذیریها برای آژانس امنیت ملی بسیار خطرناکتر از چیزی است که شما فکر میکنید و اعداد خام را ارائه میدهد.
اما مطالعهی دیگری که در سال گدشته توسط شرکت راند انجام شد (بررسی باگها توسط یک سازمان پژوهشی بینام انجام شد)، نشان داد که تنها ۵.۷ درصد احتمال گزارش شدن مجدد یک باگ در یک سال وجود دارد. البته این مطالعه درمورد سایر کشفهای باگ مخفی چیزی ارائه نداد. لیلین آبلون یکی از نویسندههای این مطالعه، تمامی باگها را متوجه اسپکتر و ملتداون نمیداند و تنها معتقد است که این موارد میتوانند چشمها را بهسوی یک زمینه واحد و محدود متمرکز کنند. او میگوید:
ممکن است در این زمینه همزمانی کشف باگ وجود داشته باشد؛ ولی نمیتوان تنها با استناد به این برخورد ادعا کرد که همیشه شاهد تقارن باگها خواهیم بود. پایگاههای کد و کلاسهایی از باگ وجود خواهند داشت که توجهی به سمت آنها جلب نخواهد شد.
از نظر کوچر، درس واقعی از ماجرا این است که جامعه پژوهشی امنیت باید بهجای دنباله کردن رد پای بقیه، به یافتن و اصلاح باگهای کدهای مبهمی بپردازد که بهندرت توجه گستردهای را به خود جلب میکنند. کوچر میگوید:
من در طول حرفهام هرموقع به جایی نگاه کردم که مسئول امنیتی ندارد، چیز خوشایندی در آنجا دیدم. مسئله شوکهکننده برای من این است که این حملات سالها ست که کشفنشده بودند و سؤال و ترس من از این است که چه تعداد از موارد ناشناخته اینچنینی هنوز وجود دارد که به مدت ۱۰ تا ۱۵ سال کشف نشده است.