موضوع مقاله: دستورالعمل‌های RISC تقویت‌شده با سخت‌افزار قابلیت‌محور | مخاطب: عمومی | لحن: دانشنامه‌ای | ساختار: عنوان، مقدمه، 3 بخش، جمع‌بندی | مقاله: | # دستورالعمل‌های RISC تقویت‌شده با سخت‌افزار قابلیت‌محور | مقدمه: هدف CHERI رفع علت ریشه‌ای مشکلات ناشی از نبود ایمنی حافظه در پیاده‌سازی‌های رایج زبان‌های برنامه‌نویسی مانند C و سی++ است که مسئول حدود ۷۰٪ از آسیب‌پذیری‌های امنیتی در سیستم‌های مدرن هستند. | ## بخش 1: دستورالعمل‌های RISC تقویت‌شده با سخت‌افزار قابلیت‌محور | این کار مانع از دسترسی یا تغییر چیزهایی می‌شود که برنامه‌ها نباید به آن‌ها دسترسی داشته باشند. همچنین، این فناوری فریب دادن بخشی از یک برنامه برای دسترسی یا تغییر چیزی که باید به آن دسترسی داشته باشد، اما در زمانی متفاوت، را دشوار می‌سازد. از همین سازوکار برای پیاده‌سازی جداسازی امتیازی استفاده می‌شود که فرآیندها را به بخش‌های مجزا (compartments) تقسیم می‌کند تا آسیب ناشی از یک باگ (امنیتی یا غیر آن) را محدود کند. برای بهره‌مندی از مزایای ایمنی حافظه دقیق CHERI، نرم‌افزار باید دوباره کامپایل شود، اما اکثر نرم‌افزارها به تغییرات کمی در کد منبع (یا هیچ تغییری) نیاز دارند. اهمیت CHERI توسط دولت‌ها به عنوان راهی برای بهبود امنیت سایبری و حفاظت از سیستم‌های حیاتی به رسمیت شناخته شده است. معماری‌های مبتنی بر قابلیت اولیه، مانند رایانه CAP و اینتل آی‌ای‌پی‌اکس ۴۳۲، مدیریت حافظه امنی را به نمایش گذاشتند، اما به دلیل سربارهای عملکردی و پیچیدگی با مشکل مواجه شدند. با سریع‌تر و پیچیده‌تر شدن سیستم‌ها، آسیب‌پذیری‌هایی مانند سرریز بافر و خطاهای استفاده پس از آزادسازی گسترده شدند. CHERI با طراحی‌ای که برای محیط‌های محاسباتی مدرن در نظر گرفته شده، به این چالش‌ها پاسخ می‌دهد. این فناوری ایمنی حافظه را اعمال می‌کند و اشتراک‌گذاری و جداسازی امن را برای مدیریت پیچیدگی روزافزون نرم‌افزار و مقابله با حملات سایبری فراهم می‌آورد. در دهه‌های ۱۹۷۰ و ۱۹۸۰، معماری‌های مبتنی بر قابلیت اولیه مانند رایانه CAP (توسعه‌یافته در دانشگاه کمبریج) و اینتل آی‌ای‌پی‌اکس ۴۳۲ ویژگی‌های امنیتی قدرتمندی را به نمایش گذاشتند. این سیستم‌ها برای مدیریت قابلیت‌ها به جداول غیرمستقیم متکی بودند که با نیاز به چندین جستجو برای دسترسی به حافظه، گلوگاه‌های عملکردی ایجاد می‌کردند. در حالی که این رویکرد زمانی که پردازنده‌ها کند و حافظه سریع بود کارآمد بود، در اواسط دهه ۱۹۸۰ با سریع‌تر شدن پردازنده‌ها و عقب ماندن زمان دسترسی به حافظه، غیرعملی شد. در سال ۲۰۱۰، دارپا برنامه «طراحی از صفر میزبان‌های تاب‌آور، تطبیق‌پذیر و امن» (CRASH) را راه‌اندازی کرد، که شرکت‌کنندگان را موظف به بازطراحی سیستم‌های کامپیوتری برای بهبود امنیت می‌کرد. تیم اس‌آرآی اینترنشنال و دانشگاه کمبریج معماری‌های مبتنی بر قابلیت را بازبینی کردند و به دنبال رفع چالش‌های ایمنی حافظه ذاتی در طراحی‌های متداول بودند. یک سیستم CHERI در سطح سخت‌افزار با ارائه یک نوع داده اعمال‌شده توسط سخت‌افزار (یک قابلیت CHERI) عمل می‌کند که اجازه دسترسی به حافظه را صادر می‌کند. دستورالعمل‌هایی مانند بارگذاری (load)، ذخیره‌سازی (store) و پرش (jump) که به حافظه دسترسی دارند، از یکی از این نوع‌ها برای مجاز شمردن دسترسی استفاده می‌کنند، در حالی که در معماری‌های سنتی، آن‌ها صرفاً از یک آدرس استفاده می‌کردند. | ## بخش 2: دستورالعمل‌های RISC تقویت‌شده با سخت‌افزار قابلیت‌محور | این فراداده به صورت درون‌خطی، در کنار آدرس، در حافظه کامپیوتر ذخیره می‌شود و توسط یک بیت برچسب (tag bit) محافظت می‌شود که در صورت دستکاری قابلیت، پاک می‌شود. این بیت به کامپیوتر اطلاع می‌دهد که کدام نواحی از حافظه از طریق یک عملیات خاص قابل دسترسی هستند و یک برنامه چگونه می‌تواند از طریق آن عملیات، حافظه را تغییر دهد یا بخواند. این ویژگی به سیستم‌های CHERI اجازه می‌دهد مواردی را که در آن به حافظه‌ای خارج از کران‌های تعیین‌شده برای برنامه، خواندن یا نوشتن انجام می‌شود، شناسایی کنند. مرتبط کردن فراداده با مقداری که برای دسترسی به حافظه استفاده می‌شود (در تضاد با واحد مدیریت حافظه)، به جای مرتبط کردن آن با خود حافظه، به این معناست که سخت‌افزار می‌تواند مواردی را که یک برنامه تلاش می‌کند به بخشی از حافظه که باید به آن دسترسی داشته باشد دسترسی پیدا کند، در حالی که قصد دسترسی به قطعه حافظه دیگری را دارد، شناسایی کند. پیاده‌سازی‌های سیستم‌های CHERI همچنین شامل تغییراتی در تخصیص‌دهنده حافظه پیش‌فرض است؛ این جزء مشخص می‌کند که یک محدوده از آدرس‌ها باید توسط یک برنامه به عنوان یک شیء در نظر گرفته شود. در یک سیستم CHERI، این جزء باید این اطلاعات را با تنظیم کران‌ها روی اشاره‌گر (که توسط یک قابلیت CHERI نمایش داده می‌شود) که بازگردانده می‌شود، به سخت‌افزار نیز منتقل کند. همچنین ممکن است طول عمر را نیز برای جلوگیری از باگ‌های استفاده پس از آزادسازی یا استفاده پس از استفاده مجدد، منتقل کند. گزارشی از مایکروسافت در سال ۲۰۱۹ نشان داد که حفاظت‌های CHERI می‌توانند بیش از ۷۰٪ از مشکلات ایمنی حافظه که در آن سال در شرکت شناسایی شده بود را کاهش دهند. معماری‌های CHERI همچنین برای سازگاری با زبان‌های برنامه‌نویسی موجود مانند C و C++ طراحی شده‌اند. یک مطالعه توسط پژوهشگران دانشگاه کمبریج نشان داد که پورت کردن شش میلیون خط کد منبع C و C++ به CHERI تنها به تغییر ۰.۰۲۶٪ از خطوط کد منبع (LoC) نیاز داشت. محدودیت‌ها این معماری به دلیل سازوکارهای بیت برچسب و بررسی‌های قابلیتی که برای اعمال ایمنی حافظه لازم است، پیچیدگی سخت‌افزاری را به همراه دارد. اگرچه بهینه‌سازی‌هایی برای به حداقل رساندن این تأثیرات پیاده‌سازی شده است، اما مبادلات عملکردی بسته به حجم کاری و پیاده‌سازی‌های خاص می‌تواند متفاوت باشد. علاوه بر این، CHERI به تغییراتی در اکوسیستم‌های نرم‌افزاری و سخت‌افزاری نیاز دارد. پیاده‌سازی‌هایی مانند Morello به باینری‌های اصلاح‌نشده اجازه اجرا می‌دهند، اما این باینری‌ها هیچ مزیت امنیتی اضافی دریافت نمی‌کنند. نرم‌افزار باید برای استفاده از مدل مبتنی بر قابلیت CHERI دوباره کامپایل یا تطبیق داده شود و سازندگان سخت‌افزار باید افزونه‌های CHERI را در طراحی‌های خود بگنجانند. در حالی که ابتکاراتی مانند اتحادیه CHERI و استانداردسازی RISC-V با هدف ایجاد پشتیبانی گسترده‌تر انجام می‌شوند، فقدان استانداردهای صنعتی پذیرفته‌شده برای ویژگی‌های CHERI، پذیرش آن را به تأخیر انداخته است. | ## بخش 3: دستورالعمل‌های RISC تقویت‌شده با سخت‌افزار قابلیت‌محور | تطبیق نرم‌افزارهای قدیمی یا بازسازی سیستم‌های موجود برای کار با CHERI می‌تواند چالش‌برانگیز باشد، به ویژه برای پایگاه‌های کد بزرگ و ناهمگون. این دشواری اغلب از شیوه‌های برنامه‌نویسی استفاده شده در طول توسعه اولیه نرم‌افزار، مانند پیاده‌سازی مدیریت حافظه سفارشی، ناشی می‌شود که در آن تشخیص اشاره‌گرها از اعداد صحیح می‌تواند به ویژه مشکل‌ساز باشد. این برد دارای طراحی متن‌باز است که به پژوهشگران و توسعه‌دهندگان اجازه می‌دهد سخت‌افزار و نرم‌افزار آن را تغییر داده و تطبیق دهند. پیاده‌سازی‌های CHERI که سیستم‌عامل‌های اصلی را هدف قرار می‌دهند، برای سازگاری با نرم‌افزارهای قدیمی و نرم‌افزارهای مبتنی بر قابلیت خالص طراحی شده‌اند تا امکان تطبیق تدریجی برای برنامه‌های موجود فراهم شود. این نمونه‌ها یک ریزهسته را با اسمبلی دست‌نویس برای دستکاری قابلیت‌ها اجرا می‌کردند. CHERI به گونه‌ای طراحی شده بود که به راحتی بر روی معماری‌های مدرن پایپ‌لاین سوپراسکالر پیاده‌سازی شود. برخلاف سیستم‌های مبتنی بر قابلیت قدیمی‌تر، CHERI نیاز به جداول غیرمستقیم را از بین برد و از مشکلات عملکردی مرتبط با آن جلوگیری کرد و ثابت نمود که معماری‌های مدرن مبتنی بر قابلیت می‌توانند به طور کارآمد پیاده‌سازی شوند. در سال ۲۰۱۴، سخت‌افزار CHERI توانایی خود را در اجرای یک سیستم‌عامل کامل شبه‌یونیکس، یعنی فری‌بی‌اس‌دی، به نمایش گذاشت. این نمایش نشان داد که مدل مبتنی بر قابلیت CHERI می‌تواند با اکوسیستم‌های نرم‌افزاری موجود ادغام شود. این پیاده‌سازی از قابلیت‌های ۲۵۶ بیتی استفاده می‌کرد که شامل فیلدهایی برای یک پایه ۶۴ بیتی، طول، نوع شیء و مجوزها بود و برخی بیت‌ها برای اهداف آزمایشی رزرو شده بودند. در سال ۲۰۱۵، CHERI یک مدل جدید برای کدگذاری قابلیت معرفی کرد که آدرس (که به آن مکان‌نما گفته می‌شود) را از کران‌ها و مجوزها جدا می‌کرد. این اصلاح باعث شد قابلیت‌ها بتوانند به عنوان اشاره‌گر در کد C کامپایل‌شده عمل کنند و قابلیت استفاده را بهبود بخشیدند. در همان سال، Arm به پروژه پیوست و بازخورد حیاتی ارائه داد و تأکید کرد که اگرچه دو برابر کردن اندازه اشاره‌گرها ممکن است قابل قبول باشد، اما چهار برابر کردن آن‌ها قابل قبول نخواهد بود. در سال ۲۰۱۹، CheriABI یک پیاده‌سازی کاملاً ایمن از نظر حافظه از پازیکس را به نمایش گذاشت که به نرم‌افزارهای دسکتاپ موجود اجازه می‌داد با یک بار کامپایل مجدد، ایمن شوند. تا سال ۲۰۲۰، مشخص شد که فروشندگان نرم‌افزار تمایلی به پورت کردن نرم‌افزار خود بدون پشتیبانی فروشندگان سخت‌افزار ندارند، در حالی که فروشندگان سخت‌افزار نیز تمایلی به تولید تراشه بدون تقاضای کافی مشتری نداشتند. این برنامه ۷۰ میلیون پوند اختصاص داد که با ۱۰۰ میلیون پوند سرمایه‌گذاری صنعتی برای ساخت اکوسیستم نرم‌افزاری CHERI تکمیل شد. | ## جمع‌بندی | اتحادیه CHERI، یک سازمان غیرانتفاعی مستقر در کمبریج، انگلستان، برای ترویج پذیرش فناوری CHERI و ادغام آن در محصولات و سیستم‌های دیجیتال امن تأسیس شد و گوگل یکی از اعضای بنیان‌گذار آن است.