محققان کلاس جدیدی از حملات کانال جانبی حافظه پنهان (cache side-channel attacks) را کشف کردهاند که میتواند دادههای خصوصی را از شبکههای عصبی عمیق (DNNs) در حین اجرا استخراج کند. این حملات فعالیتهای حافظه پنهان سختافزاری را میخوانند و از طریق تحلیل زمانبندی، ورودیها یا پارامترهای حساس مدل را بازسازی میکنند؛ امری که هر سرویسی را که بر استنتاج روی دستگاه (on-device inference) متکی است، تهدید میکند.
چرا سختافزار اهمیت دارد
شبکههای عصبی عمیق (DNNs) بیشتر زمان محاسباتی خود را صرف جابهجایی دادهها بین CPU، سلسلهمراتب حافظه پنهان (cache hierarchy) و حافظه اصلی میکنند. حافظه پنهان (cache) یک فضای ذخیرهسازی بسیار کوچک و سریع است که دادههای اخیراً استفاده شده را نگه میدارد تا سرعت دسترسیهای بعدی را افزایش دهد. وقتی یک مدل یک ورودی را پردازش میکند، الگوی خواندن و نوشتن در حافظه پنهان، اطلاعاتی درباره آن ورودی فاش میکند. مهاجمی که این الگوها را زیر نظر میگیرد — از طریق اجرای یک فرآیند مخرب روی همان ماشین یا با سوءاستفاده از زیرساختهای ابری مشترک — میتواند بدون دسترسی به کد یا وزنهای (weights) مدل، دادههای در حال پردازش را استخراج کند.
آنچه این مطالعه نشان میدهد
- نشت حافظه پنهان (cache) واقعی است. محققان با اندازهگیری مدت زمان انجام عملیاتهای خاص نشان دادند که یک مهاجم میتواند بین ورودیهای مختلف تمایز قائل شود و حتی بخشهایی از وزنهای یادگرفتهشده مدل را بازیابی کند.
- راهکارهای نرمافزاری کافی نیستند. دفاعهای سنتی — مانند پاکسازی ورودی (input sanitization)، الگوریتمهای زمانثابت (constant-time algorithms) یا رمزنگاری مدل — ترافیک حافظه سطح پایین را که حافظه پنهان فاش میکند، پنهان نمیکنند.
- نیاز به دفاع در سطح سختافزار است. اقدامات اصلاحی باید در پردازنده یا معماری سیستم تعبیه شوند؛ برای مثال از طریق بخشبندی حافظههای پنهان (partitioning caches)، تصادفیسازی الگوهای دسترسی، یا افزودن نویز به اندازهگیریهای زمانبندی.
چه کسی برنده و چه کسی بازنده است
مالکان و توسعهدهندگان مدل در معرض خطر از دست دادن مالکیت معنوی انحصاری و مهمتر از آن، از دست دادن حریم خصوصی کاربران هستند (مثلاً در صورت استخراج تصاویر پزشکی یا شناسههای شخصی توسط مهاجمان). ارائهدهندگان خدمات ابری نیز با خطر ایجاد احساس امنیت کاذب برای مشتریانی که از سختافزار فیزیکی مشترک استفاده میکنند، روبرو هستند. مهاجمان — هر طرفی که بتواند کدی را روی همان تراشه اجرا کند — به یک بردار (vector) ارزان و پنهان برای جمعآوری دادهها دست مییابند.
هزینه پنهان نادیده گرفتن سختافزار
تکیه کردن صرف به وصلههای نرمافزاری، توسعهدهندگان را مجبور میکند تا مدام کدها را بهروزرسانی کرده و تستهای بازگشت (regression testing) انجام دهند، در حالی که همچنان یک کانال جانبی فیزیکی باز باقی میماند. پیادهسازی دفاعهای سختافزاری ممکن است مستلزم طراحیهای جدید سیلیکونی یا بهروزرسانیهای میانافزار (firmware) باشد؛ این کار هزینههای اولیه بیشتری دارد اما نشتی را از منبع آن میبندد. سازمانهایی که توان مالی بازطراحی سختافزار را ندارند، میتوانند از تراشههای استنتاج (inference chips) اختصاصی با قابلیت جداسازی حافظه پنهان (cache isolation) به عنوان یک راهکار موقت و کاربردی استفاده کنند.
دیدگاه مقابل
برخی استدلال میکنند که تغییرات سختافزاری کند و پرهزینه هستند و اکثر بارهای کاری استنتاج (inference workloads) در محیطهایی اجرا میشوند که مهاجمان دسترسی لازم برای نظارت بر حافظه پنهان را ندارند. این تحقیق در پاسخ میگوید که نمونههای ابری با منابع مشترک و دستگاههای لبه (edge devices) — جایی که چندین اپلیکیشن روی یک پردازنده مشترک وجود دارند — دقیقاً همان محیطهایی هستند که تهدید در آنها بیشترین واقعگرایی را دارد.
آنچه باید در آینده زیر نظر داشت
- پذیرش ویژگیهای بخشبندی حافظه پنهان (cache-partitioning) در پردازندههای آینده.
- توسعه ابزارهای کامپایلر که به طور خودکار الگوهای دسترسی به حافظه را برای استنتاج DNN تصادفی میکنند.
- دستورالعملهای صنعتی که کانالهای جانبی حافظه پنهان را به عنوان یک ملاحظه امنیتی اجباری برای بارهای کاری هوش مصنوعی طبقهبندی میکنند.
خلاصه کلام: اگر دادههای حساس خود را به شبکههای عصبی عمیق میسپارید، ایمنسازی مدل در سطح نرمافزار دیگر کافی نیست. سختافزاری که مدل را اجرا میکند باید مقاومسازی شود، در غیر این صورت، همان سرعت بالایی که هوش مصنوعی را کاربردی میکند، به مجرایی برای سرقت دادهها تبدیل خواهد شد.
