حملات adversarial در مدل‌های هوش مصنوعی

زمان مطالعه: 10 دقیقه
حملات adversarial

همیشه هم اینطور نیست که دور زدن سیستم تشخیص تقلب بانکی به هک کردن سرور بانک‌ها و رمزها احتیاج داشته باشد. گاهی کار بسیار ساده‌تر از این حرف‌هاست، کافی است چند عدد در تراکنش تغییر کند یا جا‌به‌جایی خیلی کوچکی در زمان و مکان تراکنش ایجاد شود تا سیستم به طور کلی هک شود. در این صورت کارمند بانک هم متوجه چیز مشکوکی نمی‌‎‌شود. اما آنچه در پشت صحنه صورت گرفته، این است که پول از سیستم خارج می‌شود، مدل هوش مصنوعی بانک فریب می‌خورد و تصور می‌کند که تراکنش‌های تقلبی کاملا قانونی هستند. این دقیقا همان کاری است که حملات Adversarial انجام می‌دهند، یعنی حمله‌هایی که به جای شکستن سیستم، ادراک آن را دستکاری می‎کنند. در این یادداشت همراه ما باشید تا بررسی کنیم که این حملات دقیقا چطور کار می‌کنند و چگونه می‌توان جلوی آن‌ها را گرفت؟

حملات Adversarial چگونه کار می‌کنند؟ 


حملات Adversarial در مرحله اول به این احتیاج دارند که بفهمند مدل هوش مصنوعی چطور فکر می‌کند و از چه الگوهایی برای تصمیم‌گیری استفاده می‌کند. به خاطر همین هم سیستم را زیرنظر می‌گیرند و آن را بررسی می‌کنند تا ببینند مدل به چه ورودی‌هایی حساس است و چه چیزی باعث می‌شود تصمیمش را عوض کند. بنابراین با ارسال ورودی‌های مختلف، رفتار مدل را حدس می‌زنند. بعد از آن، نوبت به بخش‌ مهم‌ ماجرا می‌رسد و آن هم ساختن ورودی‌های فریب‌دهنده است. در اینجا داده‌هایی طراحی می‌شوند که در ظاهر کاملا عادی هستند، اما یک تغییر بسیار کوچک و هدفمند دارند. این تغییرات معمولا آن‌قدر جزئی هستند که حتی انسان متوجه آن نمی‌شود، ولی برای مدل مانند یک سیگنال اشتباه عمل می‌کند.

حملات Adversarial چگونه کار می‌کنند؟ 


حملات Adversarial در مرحله اول به این احتیاج دارند که بفهمند مدل هوش مصنوعی چطور فکر می‌کند و از چه الگوهایی برای تصمیم‌گیری استفاده می‌کند. به خاطر همین هم سیستم را زیرنظر می‌گیرند و آن را بررسی می‌کنند تا ببینند مدل به چه ورودی‌هایی حساس است و چه چیزی باعث می‌شود تصمیمش را عوض کند. بنابراین با ارسال ورودی‌های مختلف، رفتار مدل را حدس می‌زنند. بعد از آن، نوبت به بخش‌ مهم‌ ماجرا می‌رسد و آن هم ساختن ورودی‌های فریب‌دهنده است. در اینجا داده‌هایی طراحی می‌شوند که در ظاهر کاملا عادی هستند، اما یک تغییر بسیار کوچک و هدفمند دارند. این تغییرات معمولا آن‌قدر جزئی هستند که حتی انسان متوجه آن نمی‌شود، ولی برای مدل مانند یک سیگنال اشتباه عمل می‌کند.

 adversarial

با حملات Adversarial در یادگیری ماشین ممکن است یک تصویر، یک متن یا حتی یک تراکنش بانکی با روش‌های ریاضی یا الگوریتمی طوری تغییر پیدا کند که مدل آن را اشتباه تفسیر کند و بر اساس همان تصمیم بگیرد. شما می‌توانید در جدول زیر حملات سنتی سایبری را با حملات Adversarial مقایسه کنید:

ویژگیحملات سنتی سایبریحملات  Adversarial
هدف حملهسرورها، شبکه‌ها و زیرساخت‌هامدل‌های هوش مصنوعی و سیستم‌های  ML
نوع آسیب‌پذیریباگ‌های نرم‌افزاری و ضعف‌های سیستمیرفتار، منطق و تصمیم‌گیری مدل
روش حملهexploit  کردن کد و نفوذ مستقیمدستکاری ورودی یا داده‌ها
قابلیت شناساییمعمولا با ابزارهای امنیتی قابل تشخیصاغلب نامرئی و سخت‌تشخیص
نتیجه حملهکرش سیستم، نفوذ یا دسترسی غیرمجازفریب مدل و تصمیم‌گیری اشتباه
سرعت اثرگذاریمعمولا سریع و مستقیمتدریجی و پنهان

تأثیر حملات Adversarial بر کسب‌وکارها


نکته مهمی که اول از همه باید در نظر بگیرید، این است که حملات Adversarial تنها یک مشکل برای تیم‌های فنی و یا متخصصین هوش مصنوعی نیستند، بلکه آن‌ها می‌توانند روی درآمد، اعتبار و حتی امنیت یک شرکت به طور واضح و غیرقابل انکاری تاثیر بگذارند. بیایید همین مثال استفاده از مدل AI برای تشخیص تقلب بانکی را در نظر بگیریم. اگر یک مهاجم بتواند با ورودی‌های هوشمند این مدل را دور بزند، تراکنش‌های جعلی ممکن است بدون اینکه قابل شناسایی باشند رخ بدهد و در نتیجه نه‌تنها ضرر مستقیم مالی داشته باشد، بلکه از آن بدتر، اگر مدل شما به داده‌های حساس کاربران دسترسی داشته باشد، به طور ناخواسته ممکن است اطلاعات خصوصی لو برود و اعتماد مشتری خدشه‌دار شود و در نهایت برند شما آسیب ببیند و رقبا از این ضعف استفاده کنند و میدان را در دست بگیرند.

انواع حملات Adversarial در مدل‌های هوش مصنوعی


حملات Adversarial در یادگیری ماشین مدل‌های متنوعی دارند. این حملات، بر اساس مرحله‌ چرخه عمر (ML lifecycle) مورد حمله و همچنین نحوه تعامل مهاجم با مدل دسته‌بندی می‌شوند. در ادامه همراه ما باشید تا با هر کدام از این موارد آشنا شویم:

حملات Evasion فریب در زمان استفاده از مدل

حملات Evasion در زمان استفاده از مدل رایج‌ترین نوع حمله است. در این حمله مدل به طور کامل آموزش دیده و کار می‌کند، اما مهاجم ورودی را بسیار جزئی، هدفمند و با دست گذاشتن روی نقاط حساس طوری تغییر می‌دهد که مدل در نهایت تصمیمات اشتباهی بگیرد. بگذارید این را با یک مثال ساده بگوییم. مثلا مهاجم تصویر یک گربه را طوری تغییر می‌دهد که برای ما همان گربه باشد، اما مدل آن را سگ تشخیص دهد! در واقع مدل در اینجا سالم است، اما ورودی اشتباه باعث گمراهی آن می‌شود.

حملات Poisoning، مسموم‌سازی داده‌های آموزشی

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

حملات Model Extraction یا کپی کردن مدل

در حملات کپی کردن مدل (Model Extraction) تنها با دیدن ورودی و خروجی و بدون دسترسی به مدل، منطق آن حدس زده می‌شود و یک نسخه مشابه آن مدل ساخته می‌شود. مهاجم این کار را با ارسال تعداد زیادی درخواست (query) به مدل و ثبت جواب‌ها و آموزش دادن مدل جدید از روی آن‌ها انجام می‌دهد. مثلا یک API هوش مصنوعی را بارها صدا می‌زند، جواب‌ها را جمع می‌کند و یک مدل تقریبا شبیه همان می‌سازد تا در مواقع لازم علیه مدل اصلی استفاده کند.

حملات Membership Inference  لو دادن داده‌های خصوصی

در اینجا هدف حمله این نیست که عملکرد مدل را تخریب کند، بلکه این است که اطلاعات محرمانه را درباره افراد کشف کند. مثلا می‌خواهد اطلاعات بانکی یک شخص خاص را در مدل پیدا کند. مسلم است که در این روش مهاجم به صورت مستقیم به داده‌های آموزشی دسترسی ندارد؛ اما می‌تواند با بررسی خروجی‌های مدل و میزان اطمینان آن، سعی کند حدس بزند آیا داده مربوط به آن فرد در فرآیند آموزش استفاده شده یا نه. از آنجا که مدل‌ها معمولا نسبت به داده‌هایی که قبلا دیده‌اند، واکنش مطمئن‌تری نشان می‌دهند، همین تفاوت رفتاری به مهاجم سرنخ می‌دهد و در نتیجه حتی بدون دسترسی مستقیم به دیتابیس، ممکن است اطلاعات حساسی مانند وضعیت مالی، سوابق پزشکی یا حضور یک فرد در یک سیستم خاص فاش شود.

حملات Prompt Injection مخصوص مدل‌های زبانی مثل چت‌بات‌ها

حملات تزریق دستور در متن (Prompt Injection) معمولا در مدل‌های زبانی رایج هستند. به جای اینکه سیستم هک شود، مهاجم مدل را تنها با متن و دستورهای هوشمندانه فریب می‌دهد. مثلا نوعی ورودی می‌نویسد که در آن دستور پنهان یا جهت‌دهی خاصی هست تا مدل از قوانین خودش منحرف شود و اطلاعات مورد نظر مهاجم را لو بدهد.

روش‌های دفاع در برابر حملات Adversarial

دفاع در برابر حملات Adversarial تنها به نصب چند ابزار امنیتی محدود نیست، بلکه بیشتر شبیه این می‌ماند که شما به عنوان توسعه‌دهنده و برنامه‌نویس کل مسیر طراحی، آموزش و اجرای مدل را طوری بچینید که فریب دادن مدل سخت و پرهزینه باشد زیرا این حملات می‌توانند بسیار ظریف باشند و معمولا باید از چند لایه دفاعی همزمان استفاده شود. در ادامه همراه ما باشید تا مهم‌ترین روش‌های دفاعی را به صورت بسیار ساده و کاربردی بررسی کنیم:

· آموزش مقاوم: در روش آموزش مقاوم (Adversarial Training) به غیر از اینکه مدل با داده‌های عادی آموزش داده می‌شود، از همان اول، داده‌های دستکاری شده (adversarial examples) را هم به آن نشان می‌دهند تا از همان ابتدا مدل با این نوع از فریب‌ها آشنا شود و یاد بگیرد حتی در مواقعی که داده ورودی، کمی تغییر می‌کند، به درستی تصمیم بگیرد. این روش مقابله با حملات بسیار موثر است، اما معمولا هزینه محاسباتی بالایی دارد.

· اعتبارسنجی و پاکسازی ورودی: روش اعتبارسنجی و پاکسازی ورودی (Input Validation) به این صورت است که قبل از اینکه داده وارد مدل شود، از همان اول از نظر طبیعی و سالم بودن بررسی می‌شود. در اینجا اگر ورودی نشانه‌هایی از دستکاری، نویز غیرعادی یا الگویی مشکوک داشته باشد، آن داده یا اصلاح می‌شود یا به طور کلی کنار گذاشته می‌شود. در واقع می‌‌توان گفت این مرحله درست مانند یک فیلتر اولیه عمل می‌کند و باعث می‌شود از همان ابتدا داده خراب به مدل نرسد.

· استفاده از چند مدل: در روش چند مدل (Ensemble Methods) همان‌طور که از اسمش پیداست، به جای اینکه فقط یک مدل به تنهایی تصمیم بگیرد، چند مدل مختلف به صورت همزمان خروجی می‌دهند و نتیجه نهایی در واقعی ترکیبی از این مدل‌ها می‌شود. ایده اصلی این روش دفاعی، این است که اگر یک مدل فریب بخورد، بقیه مدل‌ها به کمک آن می‌آیند و اشتباه را تشخیص می‌دهند. این کار باعث می‎شود دقت و مقاومت کل سیستم در برابر انواع حملات بالا برود.

· پایش و تشخیص ناهنجاری: در روش پایش و تشخیص ناهنجاری (Monitoring & Anomaly Detection) ورودی‌ها، خروجی‌ها و به طور کلی رفتار مدل در زمان اجرا به صورت دائم زیرنظر گرفته می‌شود تا اگر الگوهایی غیرعادی مانند افت ناگهانی دقت یا خروجی‌های عجیب دیده شد، سریعا هشدارهای لازم ارسال شود. این روش کمک می‌کند حملات در اسرع وقت و پیش از آنکه آسیبی جدی وارد کنند شناسایی شوند.

· امن‌سازی چرخه توسعه: همان‌طور که از نام روش امن‌سازی چرخه توسعه (Secure ML Lifecycle) مشخص است، دفاع و حفظ امنیت باید مربوط به کل فرایند توسعه باشد و نه فقط مرحله اجرا، یعنی از مرحله جمع‌آوری داده تا آموزش و استقرار باید امن باشد. این یعنی کنترل دسترسی، بررسی داده‌ها، تست امنیتی و تهدیدسنجی در کل مسیر وجود دارد. این روش باعث می‌شود نقاط ضعف از همان ریشه از بین برود یا به حداقل خود برسد.

بهترین روش‌ها برای ساخت مدل‌های امن AI

حالا که با انواع حملات Adversarial در یادگیری ماشین آشنا شدید و همچنین بهترین روش‌های مقابله با حملات AI را بررسی کردیم، وقت آن است با روش‌های ساخت مدل‌های امن هوش مصنوعی آشنا شوید. حتما می‌دانید وقتی از مدل امن حرف می‌زنیم، منظورمان فقط مدلی نیست که دقیق کار کند، بلکه مدلی است که علاوه بر داشتن دقت بالا، در برابر دستکاری، فریب و سوء‌استفاده هم مقاوم باشد.

زیرا در دنیای واقعی، تهدیدات امنیتی مدل‌های هوشمند بسیارند و مدل‌های AI همیشه در معرض داده‌های آلوده، ورودی‌ مخرب و حملات هدفمند هستند، پس معقولانه است از همان ابتدا یعنی از همان مرحله طراحی، حفظ امنیت را جدی بگیرید.

در ادامه همراه ما باشید تا به مهم‌ترین اصول ساخت مدل‌های امن هوشمند بپردازیم:

· طراحی امنیت از مرحله اول: شما باید از همان اول مشخص کنید مدل قرار است با چه تهدیداتی مواجه شود و چه جاهایی ممکن است آسیب‌پذیر باشد. این یعنی از همان مرحله طراحی مدل (Security by Design) حفاظت در برابر تهدیدات را در نظر بگیرید نه اینکه آخر کار تازه به فکر محافظت از هوش مصنوعی در برابر حملات سایبری باشید. این کار باعث می‌شود اصل «علاج واقعه قبل از وقوع باید کرد» را جدی بگیرید تا بسیاری از ضعف‌ها در همان اول وارد سیستم نشوند.

· استفاده از داده‌های سالم و کنترل‌شده: اگر مدلی هوشمند و امن می‌خواهید، باید حتما به ورودی‌های آن توجه کنید. کیفیت داده‌هایی که مدل با آن آموزش می‌بیند بسیار مهم است. به طوری که اگر داده‌ها آلوده یا دستکاری‌شده باشند، مدل از همان پایه به صورت اشتباه یاد می‌گیرد. برای همین خیلی مهم است داده‌ها قبل از آموزش فیلتر، پاکسازی و اعتبارسنجی شوند.

· تست مداوم در برابر حملات: نباید بگذارید مدل یک‌دفعه با حملات سایبری به هوش مصنوعی غافل‌گیر شود! یعنی از همان ابتدا علاوه بر اینکه مدل را با داده‌های عادی تست کردید، باید عمدا با ورودی‌‌های فریب‌کارانه هم آزمایش شود. روش تست مداوم در برابر حملات (Adversarial Testing) که شبیه یک مانور است، به شما کمک می‌کند تا متوجه شوید مدل در چه جاهایی آسیب‌پذیر است، تا آن را قبل از انتشار اصلاح کنید.

· محدود کردن دسترسی به مدل: اگر امنیت مدل‌های هوش مصنوعی توسعه‌داده شده برای شما مهم است، نباید بگذارید هر کسی بتواند به مدل یا API آن دسترسی آزادانه داشته باشد. محدود کردن تعداد درخواست‌ها، احراز هویت و کنترل دسترسی جلوی بسیاری از حملات را می‌گیرد. زیرا بسیاری از حملات و تهدیدات سایبری فقط با زیاد پرسیدن از مدل شروع می‌شود که محدود کردن دسترسی به مدل (Adversarial Testing) از همان ابتدا جلوی آن را می‌گیرد.

· به‌روزرسانی و بازآموزی مداوم مدل: از آنجا که تهدیدات سایبری همواره ثابت نمی‌ماند و ترفندهای آن تغییر می‌کند، پس مدل شما هم نباید ثابت بماند. بنابراین شما باید با داده‌های جدید و الگوهای تازه حمله، مدل را به صورت مرتب به‌روزرسانی کنید. این کار به محافظت از مدل‌های AI کمک می‌کند و باعث می‌شود آن مدل انواع ترفندهای جدید حمله Adversarial را بشناسد و همواره به‌روز بماند و قدیمی نشود.

· استفاده از لایه‌های امنیتی مکمل: پس از اینکه بهترین روش‌ها برای ساخت مدل‌های امن هوش مصنوعی را امتحان کردید، باید این واقعیت را بپذیرید که هیچ مدل هوشمندی به‌تنهایی نمی‌تواند به صورت صد در صدی امن باقی بماند. بنابراین باید کنار مدل از ابزارهایی مانند تشخیص ناهنجاری، مانیتورینگ و کنترل‌کننده‌های ورودی و خروجی مدل نیز استفاده کنید. این لایه‎‌‎ها به مدل کمک می‌کنند تا اگر یک بخش آسیب دید، کل سیستم به کار خود ادامه دهد و از کار نیفتد.

امنیت مدل‌های زبانی بزرگ و Prompt Injection

حالا که تا اینجا با انواع روش‌های محافظت مدل‌های AI آشنا شدید، وقت آن است که به تهدیدات امنیتی مدل‌های زبانی بپردازیم که خودش یک مبحث و مقوله جداگانه است. زیرا مدل‌های زبانی بزرگ که شما معمولا در چت‌بات‎ها با آن‌ها مواجه می‌شوید، بر خلاف سیستم‌های کلاسیک با کد مستقیم هک نمی‌شوند، بلکه نقطه ضعف آن‌ها بیشتر خود متن ورودی (Prompt) است. یعنی اگر کسی بتواند با ترفندهایی متن‌های گمراه‌کننده طراحی کند، می‌تواند رفتار مدل را تا حدی منحرف کند.

البته مدل‌های زبانی بزرگ فقط محدود به چت‌بات‌ها نیستند و در سرویس‌هایی مثل وب سرویس متن به صوت یا تبدیل گفتار به متن هم استفاده می‌شوند، به همین دلیل اگر ورودی این سیستم‌ها به‌درستی کنترل نشود، ممکن است مهاجم بتواند با طراحی ورودی‌های خاص، رفتار آن‌ها را دستکاری کند. در ادامه همراه ما باشید تا مهم‌ترین نکات و روش‌های این نوع از حملات سایبری به هوش مصنوعی را به‌صورت ساده و دقیق بررسی کنیم:

· تزریق دستور در متن: در روش تزریق دستور در متن (Prompt Injection) مهاجم داخل متن ورودی، یک دستور پنهان یا فریب‌دهنده قرار می‌دهد و از آنجا که مدل این دستور را از همان اول قابل اعتماد فرض می‌کند، ممکن است از قوانین خودش عدول کند. در نتیجه می‌تواند خروجی‌های غیرمجاز تولید کند و یا اطلاعات را لو دهد.

· دور زدن محدودیت‌ها با زبان طبیعی: این روش بار فنی کمتری دارد و بیشتر به هوش کلامی مهاجم مربوط می‌شود! زیرا با جمله‌بندی خاص باید سعی کند مدل را قانع کند تا کاری انجام دهد و یا تصور کند لازم نیست محدودیت‌های خاصی رعایت شود.

· نشت اطلاعات: اگر توسعه‌دهنده از همان ابتدا مدل را به درستی آموزش ندهد و آن را کنترل نکند، ممکن است اطلاعات حساسی را در پاسخ‌هایش بازتولید کند. این اطلاعات می‌تواند شامل داده‌های حساس، تنظیمات داخلی یا بخشی از داده‌های آموزشی باشد. تکنیک نشت اطلاعات (Data Leakage) یکی از جدی‌ترین ریسک‌ها در محیط‌های واقعی محسوب می‎شود.

· تخریب دستورهای مخرب با متن عادی: یکی دیگر از تهدیدات امنیتی مدل‌های زبانی، این ترفند محسوس است که مهاجم دستور مخرب را داخل یک متن عادی پنهان کند. زیرا مدل، متن را به صورت یکپارچه خواهد دید و تشخیص دستور اصلی و دستور مخفی برای آن دشوار می‎شود.

· حملات چندمرحله‌ای: بعضی از حملاتی که امنیت مدل‌های زبانی بزرگ را در معرض خطر قرار می‌دهند حملات چندمرحله‌ای (Multi-turn Attacks) است که تشخیص آن دشوار است، زیرا بسیار طبیعی به نظر می‌رسد. این نوع از حملات معمولا در یک پیام اتفاق نمی‌افتد، بلکه در چند مکالمه تدریجی، مدل را به سمت اشتباه می‌برند. ترفند حمله به این شکل است که مهاجم کم‌ کم اعتماد مدل را جلب می‌کند و بعد در مرحله آخر درخواست اصلی را اجرا می‌کند.

جمع‌بندی

حملات Adversarial در هوش مصنوعی به ما نشان می‌دهند یک تغییر مهم در دنیای امنیت و تهدید رخ داده است. زیرا به جای اینکه سیستم از بیرون خراب شود، مهاجمان از نحوه فکر کردن و تصمیم گرفتن خود مدل سوء‌استفاده می‌‎کنند. به این معنی که کاری می‌کنند تا سیستم از درون به اشتباه بیفتد. همان‌طور که در این یادداشت نشان دادیم، حملات سایبری به هوش مصنوعی می‌توانند در مراحل مختلف صورت بگیرند، از دستکاری داده‌های آموزشی در همان ابتدا گرفته تا فریب دادن مدل با پرامپت‌های اشتباه و استخراج اطلاعات حساس از آن.

نکته بسیار مهمی که باید به آن توجه کنید این است که بسیاری از اوقات این حملات نامرئی و تدریجی هستند و ممکن است بسیار دیر شناسایی شوند. بنابراین حفظ امنیت مدل‌های هوش مصنوعی چیزی نیست که در انتها به آن توجه کنید و به عنوان یک لایه اضافه به آن نگاه کنید، بلکه در تمام چرخه توسعه، یعنی از ساخت و استفاده مدل، از داده تا آموزش، از اجرا تا مانیتورینگ و به طور کلی در همه جا باید برای حملات Adversarial در یادگیری ماشین آماده بود. در نهایت می‌توان گفت، در دنیای هوش مصنوعی، مسئله فقط توسعه مدل‌های قدرتمند AI نیست، بلکه ساخت مدل مقاوم در برابر حمله و فریب هم به همان اندازه اهمیت دارد و باید جدی گرفته شود.



این مطلب را با دوستان خود به اشتراک بگذارید:
اشتراک در
اطلاع از
0 نظرات
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها

راهکارهای هوشمند ویرا برای رشد کسب‌وکار شما آماده‌اند!