“امروزه، اشتراک گذاری رایانه با دیگران بسیار رایج است، به خصوص اگر در حال انجام محاسبات در فضای ابری یا حتی در دستگاه تلفن همراه خود هستید. بسیاری از این اشتراک گذاری منابع در حال انجام است. از طریق این منابع مشترک، مهاجم می تواند به دنبال آن باشد. منجیا یان، نویسنده ارشد، استادیار مهندسی برق و علوم کامپیوتر (EECS) و یکی از اعضای آزمایشگاه علوم کامپیوتر و هوش مصنوعی (CSAIL) میگوید، حتی اطلاعات بسیار دقیق.
یکی از راههای جلوگیری از این نوع حملات این است که اجازه دهید تنها یک برنامه در هر زمان از کنترلر حافظه استفاده کند، اما این امر محاسبات را به طور چشمگیری کاهش میدهد. در عوض، تیمی از محققان MIT رویکرد جدیدی ابداع کردهاند که به اشتراکگذاری حافظه اجازه میدهد تا در عین امنیت قوی در برابر این نوع حملات کانال جانبی ادامه یابد. روش آنها می تواند در مقایسه با طرح های امنیتی پیشرفته 12 درصد سرعت برنامه ها را افزایش دهد.
نویسندگان مشترک، دانشجویان فارغ التحصیل CSAIL، پیتر دویچ و یونگ یانگ هستند. نویسندگان دیگر شامل جوئل امر، استاد این عمل در EECS، و دانشجویان فارغ التحصیل CSAIL، توماس بورژات و ژول درین هستند. این تحقیق در کنفرانس بین المللی پشتیبانی معماری از زبان های برنامه نویسی و سیستم عامل ها ارائه خواهد شد.
این برنامه مخرب هنگام تلاش برای دسترسی به حافظه رایانه متوجه تاخیر می شود، زیرا سخت افزار بین همه برنامه هایی که از دستگاه استفاده می کنند به اشتراک گذاشته می شود. سپس میتواند این تأخیرها را برای به دست آوردن اسرار برنامه دیگری مانند رمز عبور یا کلید رمزنگاری تفسیر کند.
می توان حافظه رایانه را به عنوان یک کتابخانه و کنترل کننده حافظه را به عنوان درب کتابخانه در نظر گرفت. یک برنامه برای بازیابی برخی از اطلاعات ذخیره شده باید به کتابخانه برود، به طوری که آن برنامه درب کتابخانه را برای ورود به داخل خیلی کوتاه باز می کند.
گول زدن مهاجم
دویچ توضیح میدهد: “وقتی این ویژگیهای امنیتی را اضافه میکنید، در مقایسه با یک اجرای معمولی کاهش مییابد. برای این کار هزینه پرداخت میکنید.”
با در دست داشتن این نتایج دلگرمکننده، محققان میخواهند رویکرد خود را در ساختارهای محاسباتی دیگری که بین برنامهها مشترک هستند، مانند شبکههای روی تراشه، اعمال کنند.. دویچ میگوید، آنها همچنین علاقهمند به استفاده از DAGguise برای تعیین کمیت نوع خاصی از حملات کانال جانبی هستند تا درک بهتری از عملکرد و معاوضههای امنیتی داشته باشند.
یک برنامه می تواند هر زمان که نیاز داشته باشد یک درخواست حافظه را به DAGguise ارسال کند و DAGguise زمان آن درخواست را تنظیم می کند تا همیشه امنیت را تضمین کند. مهم نیست که پردازش یک درخواست حافظه چقدر طول می کشد، مهاجم فقط می تواند ببیند که درخواست واقعاً چه زمانی به کنترل کننده ارسال می شود، که در یک برنامه زمان بندی ثابت اتفاق می افتد.
برای جلوگیری از حملات مجادله، محققان طرحی را ایجاد کردند که درخواست های حافظه یک برنامه را به یک الگوی از پیش تعریف شده «شکل می دهد» که مستقل از زمانی است که برنامه واقعاً نیاز به استفاده از کنترل کننده حافظه دارد. قبل از اینکه یک برنامه بتواند به کنترل کننده حافظه دسترسی پیدا کند و قبل از اینکه بتواند با درخواست حافظه برنامه دیگر تداخل داشته باشد، باید از یک “شکل دهنده درخواست” عبور کند که از ساختار گراف برای پردازش درخواست ها و ارسال آنها به کنترل کننده حافظه در یک زمان بندی ثابت استفاده می کند. این نوع نمودار به عنوان گراف غیر چرخه ای جهت دار (DAG) شناخته می شود و طرح امنیتی این تیم DAGguise نامیده می شود.
به گفته محققان، علاوه بر ارائه امنیت بهتر و در عین حال محاسبات سریعتر، این تکنیک میتواند برای طیف وسیعی از حملات کانال جانبی مختلف که منابع محاسباتی مشترک را هدف قرار میدهند، اعمال شود.
محققان DAGguise را با شبیه سازی نحوه عملکرد آن در یک پیاده سازی واقعی آزمایش کردند. آنها دائماً سیگنالهایی را به کنترلکننده حافظه ارسال میکردند، به این ترتیب یک مهاجم سعی میکرد الگوهای دسترسی به حافظه برنامههای دیگر را تعیین کند. آنها رسماً تأیید کردند که با هر تلاش احتمالی، هیچ داده خصوصی درز نکرده است.
DAGguise درخواست های دسترسی به حافظه برنامه را به صورت نمودار نشان می دهد، جایی که هر درخواست در یک “گره” ذخیره می شود و “لبه” هایی که گره ها را به هم متصل می کنند، وابستگی زمانی بین درخواست ها هستند. (درخواست A باید قبل از درخواست B تکمیل شود.) لبه های بین گره ها – زمان بین هر درخواست – ثابت هستند.
سپس از یک کامپیوتر شبیه سازی شده استفاده کردند تا ببینند که چگونه سیستم آنها می تواند عملکرد را در مقایسه با سایر رویکردهای امنیتی بهبود بخشد.
این کار تا حدی توسط بنیاد ملی علوم و دفتر تحقیقات علمی نیروی هوایی تامین شد.