بدافزار Sauron

شنبه ۱۵ آبان ۱۳۹۵
sharif-cert, apa, بدافزار, Sauron
مرکز آپا شریف
SUT-APA-LOGO
چکیده:
پروژه‌ی Sauron یک پلت‌فرم سطح بالای جاسوسی سایبری است که از سال ۱۳۹۰ کار خود را آغاز کرده و تاکنون توانسته است ارتباطات رمزشده‌ی دولت‌ها و سازمان‌های مختلف، در چندین کشور را به‌صورت مخفیانه جمع‌آوری کند. این حمله توانسته است پنج سال مخفیانه به کار خود ادامه دهد. از لحاظ پیچیدگی فنی و پایداری می‌توان پروژه‌ی Sauron را در رده‌ی حملات مهمی مانند Equation، Regin، Duqu و Careto قرار داد. سازمان‌های دولتی، مراکز تحقیقات علمی، نظامی، اپراتورهای ارتباطات تلفنی و مالی مختلفی در کشورهایی نظیر روسیه، ایران، روآندا، چین، سوئد و بلژیک مورد هدف این حمله قرار گرفته‌اند. از آن‌جا که این حمله شباهت‌هایی به حمله‌ی Flame دارد. در حال حاضر چندین آزمایشگاه امنیتی اقدام به ارائه‌ی راه‌حل و پاک‌سازی سیستم‌های آلوده کرده‌اند اما ممکن است سیستم‌هایی آلوده وجود داشته باشند که هم‌چنان شناسایی‌نشده باقی مانده و جاسوس‌افزار به کار خود ادامه دهد.

علت نام‌گذاری این بدافزار چیست؟

عموما انتخاب نام بدافزارها در وهله‌ی اول بر اساس زیرساخت مورد حمله و یافتن عبارتی غیرمعمول و غیررایج در حوزه‌ی کامپیوتر در بدنه‌ی بدافزار صورت می‌گیرد. در صورتی که نام غیرمعمولی یافت نگردد از دسته‌ی این بدافزار برای نام‌گذاری آن استفاده می‌شود. در این پروژه به‌دلیل این‌که نویسنده‌ی این بدافزار در بخشی از فایل پیکربندی آن که حاوی یک کلید است مقدار این کلید را در متغیری به نام Sauron ذخیره کرده است، این واژه برای نام‌گذاری آن انتخاب شده است. این کلمه، کلمه‌ای نامأنوس با حوزه‌ی کامپیوتر و برنامه‌نویسی است و به معنی تمساح عظیم‌الجسه است.

این بدافزار به دنبال چه چیزی است؟ آیا هر فایلی را به سرقت می‌برد؟

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

این بدافزار چگونه منتشر می‌شود؟

نحوه‌ی انتشار این بدافزار متناسب با زیرساخت هدف طراحی می‌گردد. این بدفزار در ابتدا از طریق شبکه‌ی اینترنت به زیرساخت موردنظر نفوذ پیدا می‌کند. در زیرساخت‌های هدف به دلیل آن‌که شبکه‌ی اینترنت از شبکه‌ی محلی جدا شده است و به اصطلاح aire-gap است لازم است بدافزار از طریقی به شبکه‌ی داخلی قربانی منتقل شود. این کار در مرحله‌ی نخست از طریق رسانه‌های قابل حمل و آسیب‌پذیری موجود در کتاب‌خانه‌های سیستم‌عامل ویندوز صورت می‌گیرد. سپس این بدافزار پس از ورود به زیرساخت با تغییر اسکریپت‌های سیستم مرکزی admin، که وظیفه‌ی به‌روزرسانی نرم‌افزارهای قانونی شبکه‌ی زیرساخت را داشته است، به صورت یک به‌روزرسانی معتبر برنامه در سطح شبکه گسترش می‌یابد.

چگونه این بدافزار کشف شده است؟

معمولا شناسایی و کشف بدافزارهای مانای پیشرفته به سادگی صورت نمی‌گیرد و عموما از اشتباه‌های برنامه‌نویسی موجود در آن‌ها جهت کشف استفاده می‌شود کشف این بدافزار از طریق شناسایی یک کتاب‌خانه‌ی ناشناس به عنوان Windws Password Fiter Driver در حافظه‌ی سیستم کنترل‌کننده‌ی دامنه صورت گرفت.

این بدافزار از چه سالی فعال بوده و در چه سالی کشف شده؟

بر اساس بررسی‌های صورت گرفته مشخص شده که این بدافزار از ماه june سال ۲۰۱۱ تا سال ۲۰۱۶ فعال بوده است.

پلتفرم‌هایی که این بدافزار در آن قابل اجرا است چیست؟

این بدافزار بر روی اغلب سیستم‌های عامل ویندوز ۳۲ و ۶۴ بیتی از ویندوز xp تا ویندوز ۱۰ و windows server 2012 قابل اجراست.

آیا بدافزار سارون دارای کارگزار فرمان و کنترل است؟ این کارگزارها در چه کشورهایی قرار دارند؟

این بدافزار ماژول‌های اصلی خود را از با اتصال به ۱۱ نشانی آی‌پی مختلف واقع در ایالات متحده و برخی از کشورهای اروپایی دریافت می‌کند. ISP‌های مورد استفاده توسط این بدافزار شرکت‌های شناخته‌شده‌ای همانند آمازون هستند.

چرا این بدافزار خاص منظوره است؟

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

از چه زبان برنامه‌نویسی برای ساخت و توسعه این بدافزار استفاده شده است؟ چرا؟

اکثر قسمت‌های این بدافزار توسط زبان اسکریپتی lua طراحی شده است دلیل استفاده از این زبان، انعطاف‌پذیری بالای آن است، هرچند که این بدافزار به دلیل استفاده از کاراکترهای غیراسکی و عدم پشتیبانی زبان lua‌ از کاراکترهای غیراسکی نسخه‌ی تغییریافته‌ای از این زبان را طراحی و استفاده می‌نماید که قابلیت پشتیبانی از utf-16 را نیز داشته باشد.

این بدافزار اطلاعات به سرقت برده شده را چگونه به مبدا حمله منتقل می‌کند؟

این بدافزار در ابتدا به محض یافتن یک اتصال usb حجم پارتیشن آن را کاهش داده و یک پارتیشن جدید رمزشده دارای فرمت سفارشی و ناشناخته ایجاد کرده (در حدود چند صد مگابایت) و اطلاعات سرقتی را در آن ذخیره می‌کند. این کار باعث می‌شود تا اطلاعات به سرقت برده شده برای کاربر و حتی سیستم‌عامل غیرقابل دسترسی و مشاهده باشد. در نهایت پس از دسترسی بدافزار به سیستم دارای اینترنت، محتوای اطلاعات به سرقت‌رفته به صورت رمزشده از طریق ارسال پست الکترونیکی و تونل بر روی DNS ارسال می‌گردد، این کار از طریق ماژول DEXT یا همان DNS Filtration Tool انجام می‌شود. بدافزار جهت جلوگیری از احتمال کشف، به آهستگی حرکت کرده و رفتار خود را از این طریق پنهان می‌نماید.

آیا این بدافزار ارتباطی با بدافزارهای دیگری همانند flame، Duqu و Regin دارد؟

جزئیات بدافزار نشان می‌دهد که این بدافزار با اطلاع از ساختار حملات مانای پیشرفته‌ی دیگر همانند Duqu سعی کرده است که از سازوکارهای موجود در آن‌ها استفاده نموده و در عین حال خطاهای آن‌ها را تکرار نماید. به عنوان نمونه این بدافزار:
  • همانند بدافزار Duqu : تنها در حافظه اجرا می‌شود و فایلی بر روی دیسک سخت سیستم قرار نمی‌دهد، از چندین روش رمزنگاری متفاوت استفاده می‌کند، از خط لوله جهت انجام ارتباطات در شبکه محلی استفاده می‌کند و از طریق کاناله‌های توسعه‌ی نرم‌افزارهای قانونی توزیع می‌گردد.
  • همانند بدافزار flame: از زبان lua استفاده می‌کند، به‌صورت امن فایل‌ها را حذف می‌کند و شبکه‌های air-gap را به‌وسیله‌ی removable device دور می‌زنند.
  • همانند بدافزار Equation و Regin : از رمزنگاری RC5/RC6 استفاده می‌کند، Virtual File system ایجاد می‌کند و داده‌ها را بر روی removable device پنهان می‌کند.

آیا می‌توان فهمید که این بدافزار توسط چه فرد و یا گروهی نوشته شده است؟

معمولا از برخی از ردپاهای موجود در بدافزار می‌توان متوجه شد که چه کسانی آن را طراحی کرده‌اند. به‌دلیل این‌که این بدافزار از ماژول‌های موجود در بدافزارهایی همانند فلیم استفاده کرده است به نظر می‌رسد طراحان این بدافزار ارتباطی با طراحی بدافزارهای قبلی همانند فلیم و دوکو دارد. هم‌چنین در اجزایی از این بدافزار واضح است که به دنبال فایل‌هایی با پسوند ایتالیایی زبان است همانند فایل‌های با پسوند *segreto.
از طرفی در ماژول‌های این بدافزار برای جملات یکسان از معادل های انگلیسی و لغات انگلیسی متفاوتی استفاده شده است که نشان می‌دهد طراح این بدافزار یک فرد نیست و یک گروه است. در برخی از جملات از لغات بسیار بومی انگلیسی‌زبانان استفاده شده است که کم‌تر یک فرد غیرانگلیسی بومی با آن‌ها آشناست که این احتمال را ایجاد می‌کند که طراح این بدافزار اصالتا انگلیسی‌زبان است همانند استفاده از واژه‌ی cruft. هم‌چنین از واژه‌هایی استفاده شده است که تنها در سیستم‌عامل یونیکس استفاده می‌شود که نشان‌دهنده آن است که طراح این بدافزار سابقه‌ی کار زیاد با سیستم‌عامل یونیکس را دارد.

آیا این بدافزار خودکشی هم می‌کند؟

بله این بدافزار پس از پایان کار و ارسال اطلاعات به مبداء اجزای خود را به‌صورت امن پاک کرده و سپس خودکشی یا Melt می‌کند.

قربانیان این بدافزار از چه کشورها و یا سازمان‌هایی بوده اند؟

تا کنون حدود ۳۰ سازمان و نهاد آلوده در کشورهای روسیه، ایران، روآندا و تعدادی کشور ایتالیایی‌زبان شناسایی شده‌اند. هر چند که احتمال افزایش این تعداد وجود دارد زیرا این تعداد تنها شامل سیستم‌هایی است که حاوی ضدبدافزار کسپراسکی بوده و توسط این ضدبدافزار پویش شده‌اند. نهادهای آلوده به این بدافزار شامل موارد زیر هستند:
  • نهادهای دولتی
  • مراکز تحقیقات علمی
  • مراکز نظامی
  • سرویس‌دهنده‌های مخابراتی
  • مراکز تجاری-مالی

این بدافزار چگونه رفتار خود را پنهان می‌کند؟

این بدافزار همانند بدافزارهای مانای پیشرفته‌ی دیگر بسیار آرام و آهسته حرکت مي‌کند و از طریق تزریق کد و نرم‌افزارهای معتبر رفتار خود را پنهان می‌نماید. به عنوان نمونه، این بدافزار با همسان‌سازی نام فایل‌هایش با فایل‌های نرم‌افزارهایی معتبر همانند ماژول های Kavupdate.exe, kavupd.exe شرکت کسپراسکی، AssaWrapper.exe, symnet32.dll شرکت سایمنتک ، KB2931368.exe شرکت مایکروسافت ، Hptcpprnt.dll شرکت Hewlett-Packard و VMwareToolsUpgr32.exe شرکت VMware رفتار خود را پنهان می‌نماید. هم‌چنین این بدافزار به‌طور کامل درون حافظه قرار دارد و تنها راه دریافت و تحلیل آن روبرداری (dump) از حافظه‌ی اصلی سیستم آلوده است.
از طرف دیگر این بدافزار جهت ایجاد خاصیت مانایی خود از حالت خواب اولیه استفاده می‌کند. در این حالت بدافزار به مدت طولانی در سیستم قربانی به حالت خواب رفته و پس از دریافت دستور از کارگزار فرمان و کنترل بیدار شده و عملیات مخرب خود را آغاز می‌نماید. روش دیگری که این بدافزار برای پنهان‌سازی خود و سرقت اطلاعات استفاده کرده است بهره‌گیری از ویژگی Windows LSA سیستم‌عامل ویندوز است. این کار از طریق ایجاد یک Windows Filter Driver صورت می‌گیرد. به کمک این ویژگی در هر بار ورود کاربر به سیستم‌عامل ویندوز و یا تغییر گذرواژه‌ی آن، گذرواژه به صورت شفاف (Plain) توسط پردازه‌ی Lsass.exe به این فیلتر درایورها ارسال شده و در آن‌جا از لحاظ طول و کاراکترهای مجاز اعتبارسنجی می‌شود. در این هنگام است که بدافزار این اطلاعات را به سرقت برده و از آن سو استفاده می‌کند.

حجم این بدافزار چقدر است و دارای چه تعداد ماژول است؟

این بدافزار جهت سهولت انتقال در سیستم‌های قربانی در ابتدا دارای حجمی بسیار کم (حدود ۴ الی ۵ کیلوبایت) است. هر چند که در ادامه با تزریق خود به نرم‌افزارهای قانونی موجود در شبکه هدف و اعلام درخواست به‌روزرسانی بدنه‌های اصلی خود را در قالب یک برنامه معتبر دانلود و به‌روزرسانی می‌کند. هم‌چنین این بدافزار دارای حدود ۵۰ ماژول مختلف است. اکثر این ماژول‌ها و اطلاعات انتقالی توسط الگوریتم‌های قوی رمزنگاری همانند Rc6 ،RC5 ،RC4 ،AES و Salsa20 رمزشده است. هر یک از این ۵۰ ماژول دارای معماری منحصر به خود است و دارای نام و اندازه‌ی متفاوتی بوده و برای محیط‌های متفاوت طراحی شده است.