پژوهشگران دانشگاه کارنگی ملون ایالات متحده یک نقص در طراحی SSDهای مبتنی بر تراشه های حافظه MLCC شناسایی کرده اند که آنها را در برابر نوع خاصی از حملات آسیب پذیر کرده است. این نقص به سازنده خاصی محدود نمی شود و تمامی SSDهای مجهز به تراشه های MLC آسیب پذیر هستند. حملات احتمالی می تواند به  خرابی داده های ذخیره شده و همچنین خرابی غیر قابل برگشت SSD بیانجامد. بدتر اینکه حالا با انتشار این مقاله نحوه اجرای حملات نیز در دسترس است.

نقص مورد بحث با پیچیدگی فنی بالایی همراه است و قصد نداریم شما درگیر جزئیات آن شوید اما تلاش می کنیم  بدون درگیر شدن با جزئیات فنی به آن بپردازیم. همانطور که احتمالاً می دانید، تراشه های FLASH حاوی سلول های حافظه از نوع ترانزیستور هستند. اطلاعات در این تراشه ها به صورت بار الکتریکی بر روی ترانزیستورها ذخیره می شود، بنابراین نوشتن اطلاعات به صورت اعمال بار و خواندن اطلاعات به صورت  اندازه گیری بار است. مشکل آنجاست که با کوچک تر شدن فناوری ساخت تراشه های حافظه، سلول ها به قدری به یکدیگر نزدیک هستند که دیگر نمی توان بار لازم را برای نگه داری داده ها را به صورت یکباره اعمال کرد، چراکه اعمال یکباره ولتاژ لازم باعث تاثیر پذیری سلول های همسایه سلول مورد نظر می شود. سازندگان این مشکل را از طریق نوشتن دو مرحله ای برطرف کرده اند که در این روش بار لازم در دو مرحله  با فاصله از یکدیگر از طریق ولتاژ کمتر اعمال می شود تا بار ترانزیستور به مقدار لازم برای نگه داری داده ها برسد.

در نوشتن به روش دو مرحله ای که در تراشه های نوع MLC مورد استفاده قرار می گیرد خود تراشه ها دارای یک حافظه موقت برای نگه داری اطلاعات مرحله اول و تکمیل فرآیند نوشتن در مرحله دوم هستند، پژوهشگران متوجه شده اند با اعمال الگوهای خاص در نوشتن اطلاعات می توان بار ترانزیستورهای همسایه سلول مورد نظر را به دلیل اثر  ﺗزوﯾﺞ ﺧﺎزﻧﯽ تحت تاثیر قرار داد که باعث بروز خطا و خرابی داده ها می شود. الگوهای خرابکارانه می تواند موقع خواندن داده نیز اعمال شود.

طبق یافته های این پژوهشگران خطاهای القایی به این روش باعث تنزل شدید طول عمر SSD می شوند.

از آنجایی که این نقص در طراحی تراشه های MLC نهفته است، تنها با تغییر نحوه نوشتن اطلاعات می توان آن را برطرف کرد و صرفاً از طریق بروزرسانی قابل حل نیست.

خوشبختانه پژوهشگران راه حل هایی به منظور برطرف کردن این آسیب پذیری ارائه کرده اند. برای جلوگیری از این نوع حملات باید سازندگان نحوه نوشتن اطلاعات را به گونه ای تغییر دهند که داده ها توسط خود کنترلر در دو مرحله نوشته شوند، در روش فعلی اطلاعات یکبار به تراشه فرستاده می شود و توسط خود تراشه در دو مرحله نوشته می شود. طبق آنچه که گفته شد راه حل رفع این مشکل حذف کش سازی (نوشتن دو مرحله ای) در محیط تراشه های حافظه است اما این کار باعث افزایش تاخیر می شود.

پژوهشگران سه روش برای رفع این مشکل پیشنهاد کرده که اولین آنها انتقال کامل کش سازی به درون کنترلر است که میزان خطا را 100 درصد کاهش می دهد اما باعث افزایش 5 درصدی  تاخیر می شود. دو روش پیشنهادی دیگر کمتر موثر هستند و هنوز احتمال القای خطا وجود دارد.

یافته های مشابه نشان می دهد SSDهای مجهز به تراشه های TLC نیز دارای این آسیب پذیری هستند.

منبع