مایکروسافت میگه یک برنامه هوش مصنوعی آزمایشی به اسم پروژه Ire ساخته که میتونه بدافزارها رو مهندسی معکوس کنه. این کار معمولا فقط از عهده محققهای امنیتی خیلی متخصص برمیاد. هدف این پروژه این بوده که یکی از سختترین کارهای تحقیقات امنیتی رو انجام بده: «مهندسی معکوس کامل یک فایل نرمافزاری بدون هیچ سرنخی از منشا یا هدفش».
این پروژه نتیجه همکاری بین تیمهای تحقیقاتی مایکروسافت، تیم تحقیقاتی مایکروسافت دیفندر و تیم دیسکاوری و کوانتوم مایکروسافت بوده. این همکاری تونسته تخصص امنیتی، دانش عملیاتی، دادههای جهانی بدافزارها و تحقیقات هوش مصنوعی رو کنار هم بیاره.
پروژه Ire چطور کار میکنه و چه فرقی با بقیه داره؟
برنامه Ire با موتورهای آنتیویروس سنتی فرق داره. آنتیویروسهای قدیمی معمولا فایلها رو برای پیدا کردن کدهای شناخته شده یا الگوهای رفتاری خاصی که قبلا توی بدافزارهای دیگه دیده شده اسکن میکنن. مشکل اینجاست که هکرها دائم تکنیکهاشون رو برای مخفی کردن کارهای مخرب عوض میکنن و این باعث میشه شناسایی حملههای جدید سختتر بشه. برای مثال، ممکنه از قابلیتهای داخلی یک نرمافزار قانونی استفاده کنن تا ماژولهای مخرب رو بعدا دانلود کنن.
پروژه Ire تلاش میکنه این چالشها رو با رفتار کردن مثل یک سیستم مستقل حل کنه که از ابزارهای تخصصی برای مهندسی معکوس نرمافزار استفاده میکنه. معماری این سیستم جوریه که میتونه روی چند سطح مختلف فکر و استدلال کنه؛ از تحلیلهای سطح پایین باینری گرفته تا بازسازی جریان کنترلی برنامه و تفسیر سطح بالای رفتار کد.
این سیستم روی یک پایه همکاری و عاملگرا ساخته شده که پشت پروژههایی مثل GraphRAG و Microsoft Discovery هم هست. پروژه Ire از مدلهای زبانی پیشرفته و یک مجموعه از ابزارهای مهندسی معکوس و تحلیل باینری برای پیش بردن تحقیقات و قضاوتش استفاده میکنه.
مراحل کار پروژه Ire
روند ارزیابی هر نمونه با یک مرحله «تریاژ» شروع میشه. توی این مرحله ابزارهای خودکار مهندسی معکوس نوع فایل، ساختارش و قسمتهای جالب توجه رو مشخص میکنن.
بعد از اون، سیستم با استفاده از فریمورکهایی مثل angr و Ghidra، گراف جریان کنترلی نرمافزار رو بازسازی میکنه. این گراف مثل یک نقشه از نحوه اجرای برنامه عمل میکنه و پایه و اساس حافظه پروژه Ire رو تشکیل میده و بقیه تحلیلها رو هدایت میکنه.
در ادامه، طی یک فرایند تکراری، مدل زبان بزرگ (LLM) با استفاده از یک API ابزارهای تخصصی رو فراخوانی میکنه تا عملکردهای کلیدی رو شناسایی و خلاصه کنه. هر نتیجهای که به دست میاد به یک «زنجیره شواهد» اضافه میشه که یک مسیر دقیق و قابل بازبینی از نحوه رسیدن سیستم به نتیجهگیری نهاییش رو نشون میده. این گزارش قابل ردیابی به تیمهای امنیتی برای بازبینی ثانویه کمک میکنه و باعث میشه در صورت طبقهبندی اشتباه، سیستم اصلاح بشه.
برای تایید یافتهها، پروژه Ire میتونه یک ابزار «تایید کننده» یا validator رو فراخوانی کنه. این ابزار ادعاهای توی گزارش رو با زنجیره شواهد مقایسه میکنه و از بیانیههای تخصصی مهندسهای مهندسی معکوس بدافزار که توی تیم پروژه Ire هستن استفاده میکنه. در نهایت، سیستم با استفاده از این شواهد و مدل داخلی خودش، یک گزارش نهایی تهیه میکنه و نمونه رو به عنوان مخرب یا سالم طبقهبندی میکنه.
نتایج آزمایشهای اولیه چی میگن؟
پروژه Ire توی چند تا آزمایش اولیه تست شده تا کاراییش مشخص بشه.
آزمایش اول: مجموعه دادههای عمومی
توی این تست، پروژه Ire روی یک مجموعه داده از درایورهای ویندوز که به صورت عمومی در دسترس بودن ارزیابی شد. بعضی از این درایورها مخرب و بعضی سالم بودن. نمونههای مخرب از پایگاه داده Living off the Land Drivers گرفته شدن که شامل درایورهای ویندوز مورد استفاده مهاجمها برای دور زدن کنترلهای امنیتیه. درایورهای سالم هم از ویندوز آپدیت به دست اومدن.
- عملکرد این طبقهبندیکننده خوب بود و تونست ۹۰ درصد همه فایلها رو درست تشخیص بده و فقط ۲ درصد از فایلهای سالم رو به اشتباه به عنوان تهدید علامت زد.
- این سیستم به دقت (precision) ۰.۹۸ و بازیابی (recall) ۰.۸۳ رسید. این نرخ مثبت کاذب پایین نشون میده که پتانسیل خوبی برای استفاده در عملیاتهای امنیتی در کنار بررسیهای تخصصی مهندسی معکوس داره.
آزمایش دوم: فایلهای دنیای واقعی
تست سختتر شامل نزدیک به ۴۰۰۰ فایل «هدف سخت» بود که سیستمهای خودکار قبلی نتونسته بودن طبقهبندیشون کنن و برای بررسی دستی توسط مهندسهای خبره کنار گذاشته شده بودن. توی این سناریوی دنیای واقعی، پروژه Ire به صورت کامل مستقل روی فایلهایی کار کرد که بعد از تاریخ آموزش مدلهای زبانی ساخته شده بودن و هیچ ابزار خودکار دیگهای توی مایکروسافت در اون زمان نتونسته بود طبقهبندیشون کنه.
- سیستم به امتیاز دقت بالای ۰.۸۹ رسید. این یعنی از هر ۱۰ فایلی که به عنوان مخرب علامت زده بود، تقریبا ۹ تاش واقعا مخرب بودن.
- با این حال، نرخ بازیابی ۰.۲۶ بود که نشون میده تحت این شرایط سخت، سیستم تقریبا یک چهارم کل بدافزارهای واقعی رو شناسایی کرده.
- نرخ مثبت کاذب فقط ۴ درصد بود.
مایکروسافت اشاره کرد که: «با اینکه عملکرد کلی متوسط بود، این ترکیب از دقت بالا و نرخ خطای پایین، پتانسیل واقعی برای استفاده در آینده رو نشون میده».
چند نمونه از تحلیلهای پروژه Ire
برای هر فایلی که Ire تحلیل میکنه، یک گزارش تولید میکنه که شامل بخش شواهد، خلاصهای از همه عملکردهای کد بررسی شده و بقیه موارد فنیه. در ادامه دو تا از نمونههای موفق طبقهبندی بدافزار رو میبینیم:
- پرونده اول: یک روتکیت سطح کرنل (Trojan:Win64/Rootkit.EH!MTB)
سیستم چند تا ویژگی کلیدی رو شناسایی کرد، از جمله jump-hooking، خاتمه دادن به پروسهها و فرمان و کنترل مبتنی بر وب. بعدش هم به درستی نمونه رو به عنوان مخرب علامت زد.
توی باینری یک تابع به اسم
MonitorAndTerminateExplorerThread_16f64
وجود داره که توی یک حلقه بینهایت منتظر میمونه و تحت شرایط خاصی، تردهای سیستمی رو خاتمه میده. این تابع اطلاعات سیستم یا پروسهها رو میخونه، بین پروسهها میگرده و اسمشون رو باExplorer.exe
مقایسه میکنه و مقادیر رجیستری مربوط بهExplorer.exe
رو دستکاری میکنه. این رفتار مشکوکه و با بدافزارهایی که میخوان پروسههای سیستمی رو مختل یا کنترل کنن، همخونی داره.یک تابع دیگه به اسم
HttpGetRequestAndResponse_174a4
درخواستهای HTTP GET رو با تحلیل URL ها، پیدا کردن اسم میزبان، باز کردن سوکتها، ارسال درخواست و خوندن پاسخ انجام میده. این قابلیت ارتباط شبکهای میتونه برای فرمان و کنترل یا سرقت داده استفاده بشه که توی بدافزارها رایجه.باینری یک تابع به اسم
PatchProcessEntryPointWithHook_12b5c
هم داره که نقطه ورود یک پروسه رو با نوشتن یک هوک یا ترامپولین که اجرا رو به یک آدرس مشخص هدایت میکنه، پچ میکنه. این تکنیک معمولا برای تزریق به پروسه یا هوک کردن استفاده میشه و به بدافزار اجازه میده رفتار پروسه رو تغییر بده یا کد مخرب تزریق کنه. - پرونده دوم: ابزار غیرفعالسازی آنتیویروس (HackTool:Win64/KillAV!MTB)
این نمونه برای غیرفعال کردن نرمافزارهای آنتیویروس طراحی شده بود. پروژه Ire به درستی کدی رو که برنامههای آنتیویروس رو پیدا و غیرفعال میکنه شناسایی کرد و شواهدی ارائه داد که فایل مخربه.
توی این باینری چند تا تابع وجود داره که نیت مخرب رو نشون میدن. تابع
register_and_log_known_processes_140001000
اسم پروسههای مربوط به آنتیویروس و نرمافزارهای امنیتی مثلavp.exe
و360Tray.exe
رو ثبت میکنه. این تابع یک تابع دیگه به اسمTerminateProcessesByNameSubstring_1400010f4
رو فراخوانی میکنه که پروسههای سیستم رو لیست میکنه و اونایی که اسمشون شامل زیررشتههای مشخصیه رو خاتمه میده. این رفتار معمول بدافزاریه که میخواد با کشتن پروسههای نرمافزارهای امنیتی، اونها رو دور بزنه.جالبه که توی یک بخش از کد، سیستم به اشتباه یک تابع رو به عنوان رفتار ضد دیباگ شناسایی کرد. برای حفظ دقت، سیستم از ابزار تایید کننده (validator) استفاده کرد تا این ادعا رو به عنوان پشتیبانی نشده علامت بزنه. این مشکل بعدا با بهروزرسانی قوانین دیکامپایلر حل شد، اما این مثال نشون میده که پروژه Ire چطور موقع تحلیل با عدم قطعیت کنار میاد.
جالبه بدونید پروژه Ire اولین مهندس معکوس توی مایکروسافت، چه انسان و چه ماشین، بود که برای یک نمونه بدافزار خاص از یک گروه هکری پیشرفته (APT) یک «پرونده محکومیت» صادر کرد؛ یعنی یک شناسایی اونقدر قوی که مسدود کردن خودکارش رو توجیه میکرد. این نمونه بعدا توسط مایکروسافت دیفندر شناسایی و مسدود شد.
هدف از ساخت این پروژه چیه؟
با اینکه رشد هوش مصنوعی نگرانیهایی رو در مورد جایگزینی انسانها با ماشینها به وجود آورده، مایکروسافت داره پروژه Ire رو به عنوان ابزاری برای کمک به محققان امنیتی و کارمندای آیتی که حجم کاری زیادی دارن، معرفی میکنه. این کار چالشبرانگیزه چون تحلیلگرها اغلب با خستگی ناشی از خطا و هشدارها روبرو میشن. برای همین، متخصصهای امروزی در معرض فرسودگی شغلی قرار دارن که یک مشکل شناخته شده توی این زمینه است.
مایک واکر، مدیر تحقیقات در مایکروسافت، گفته مواردی بوده که استدلال هوش مصنوعی با استدلال یک متخصص انسانی در تضاد بوده و در نهایت مشخص شده که هوش مصنوعی درست میگفته. او اضافه کرده: «چیزی که از این موارد یاد گرفتیم اینه که میتونیم از نقاط قوت مکمل انسان و هوش مصنوعی برای محافظت استفاده کنیم».
آینده پروژه Ire
بر اساس این موفقیتهای اولیه، نمونه آزمایشی پروژه Ire قراره داخل سازمان دیفندر مایکروسافت به عنوان یک «تحلیلگر باینری برای شناسایی تهدید و طبقهبندی نرمافزار» استفاده بشه.
هدف مایکروسافت اینه که سرعت و دقت سیستم رو اونقدر بالا ببره که بتونه فایلها رو از هر منبعی، حتی در اولین برخورد، به درستی طبقهبندی کنه. در نهایت، دیدگاه اونها اینه که بدافزارهای جدید رو به صورت مستقیم توی حافظه و در مقیاس بزرگ شناسایی کنن.
شرکتهای دیگهای مثل گوگل هم دارن روی یک عامل تحلیل بدافزار مشابه کار میکنن و این نشون میده که این احتمالا فقط شروع پیشرفتهای عاملهای هوش مصنوعی در امنیت سایبریه.
تیم سازنده پروژه Ire
افراد زیر در این پروژه همکاری داشتن و در نتایج منتشر شده نقش داشتن:
- Brian Caswell (مهندس اصلی امنیت)
- Dustin Fraze (دانشمند اصلی تحقیقات)
- Sarah Smith (مدیر ارشد برنامه)
- Rodrigo Racanicci (مهندس اصلی نرمافزار)
- Tim Middleton-Sally (محقق ارشد امنیت)
- Shelby Hayes (مدیر ارشد برنامه فنی)
- Stanley He (محقق ارشد امنیت)
- Katy Smith (دانشمند داده)
- Bhakta Pradhan (محقق ارشد امنیت)
- Mike Walker (مدیر تحقیقات)
- Cory Duplantis
- Bob Fleck (مهندس ارشد امنیت)
این سیستم از ابزارهای مختلفی استفاده میکنه، از جمله فریمورک angr که توسط Emotion Labs توسعه داده شده. مایکروسافت در طول توسعه پروژه Ire همکاری گستردهای با Emotion Labs داشته.
منابع
- [۱] Project Ire autonomously identifies malware at scale – Microsoft Research
- [۲] Project Ire – Microsoft Research
- [۳] Microsoft’s Project Ire Autonomously Reverse Engineers Software to Find Malware – SecurityWeek
- [۴] Project Ire: Microsoft’s autonomous malware detection AI agent – Help Net Security
- [۵] Microsoft’s AI Prototype Can Reverse Engineer Malware, No Human Needed | PCMag
- [۶] Microsoft’s new AI agent can autonomously detect malware
دیدگاهتان را بنویسید