کمیته رکن چهارم – مایکروسافت فرآیند پیچیدهی آلودهسازی FinFisher را تشریح میکند
محافظت پیشرفته در برابر تهدید ویندوز دیفندر یا همان ATP ویندوز دیفندر قادر است پس از تحلیل فرآیند آلودهسازی بدافزار، رفتارهای مربوط به جاسوسافزار پیچیدهی FinFisher را شناسایی کند.
در واقع FinFisher یک راهحل مشکوک قانونی است که توسط FinFisher GmbH مستقر در آلمان ساخته شده است و آن را به طور انحصاری به دولتها میفروشد. همچنین این بدافزار که با نام FinSpy نیز شناخته شده است از بیش از نیم دههی وجود داشته و با پویشهای نظارتی مختلف در ارتباط بوده است.
در ماه سپتامبر سال گذشته، پس از آنکه این بدافزار در حال بهرهبرداری از یک آسیبپذیری روز-صفرم چارچوب داتنت (CVE-۲۰۱۷-۸۷۵۹) برای آلودهسازی مشاهده شد، ESET هشدار داد که ارائهدهندگان خدمات اینترنتی (ISP) احتمالاً در فرآیند توزیع FinFisher شرکت خواهند کرد.
طبق گفتهی مایکروسافت، FinFisher پیچیده است و روشهای خاصی برای کرک آن مور نیاز است اما با وجود پیچیدگی، این بدافزار نمیتواند ابزارهای امنیتی را دور بزند. این ابزارهای امنیتی شامل محافظت در برابر تهدید پیشرفتهی آفیس ۳۶۵ و ATP ویندوز دیفندر هستند که تابستان امسال در دستگاههایی با ویندوز ۷ و ۸٫۱ ارائه خواهند شد.
مایکروسافت میگوید، با شناساییهای مختلف و قابلیت ضد تحلیل، از جمله دستورالعملهای ناخواسته و «کد اسپاگتی»، شناسایی ماشین مجازی چند لایهای، و چند اقدام ضد اشکالزدایی و دفاعی، تجزیه و تحلیل FinFisher آسان نیست.
با افزودن کد اسپاگتی، نویسندگان FinFisher اطمینان حاصل کردند که خواندن جریان برنامه سخت است و میتواند برنامههای جداسازی را سردرگم کند. افزونههای معکوسسازی نیز که در چنین شرایطی کمک میکنند، هیچ کدام با این بدافزار کار نمیکنند.
اولین چیزی که این شرکت کشف کرد، آرایهای از دستورالعملها است که یک برنامهی ماشین مجازی سفارشی میتواند آن را تفسیر کند. ۳۲ روال متفاوت با کارکردهای بسیار متفاوت کشف شد که برنامهی بدافزار آنها را اجرا میکند.
استفاده از مجموعه دستورالعملهای مجازی اطمینان میدهد که تجزیه و تحلیل با استفاده از ابزارهای معمولی امکانپذیر نیست، اما ترفندهای ضد اشکالزدایی و ضد تحلیل در کد مجازیسازیشده تلاش میکند تا ابزارهای تحلیل پویا را دور بزند.
غول نرمافزاری تشریح میکند: «هر دستورالعمل مجازی در یک ساختار دادهای خاصی ذخیره میشود که شامل تمام اطلاعات مورد نیاز برای خوانده شدن و اجرا شدن توسط ماشین مجازی است. مدیر ماشین مجازی قادر است بلوکهای کد کاملاً متفاوتی تولید کند و به دلیل تصادفی بودن فضای آدرس از کد مکانیابی مجدد استفاده کند. همچنین قادر است در صورت نیاز اجرای کد را به مکانهای متفاوتی منتقل کند.»
مرحلهی اول FinFisher یک ابزار بارگیری برای شناسایی محیطهای جعبهی شنی است. اگر مجموعه بررسیهای اولیه را بگذراند، ابزار بارگیری ۴ کتابخانهی وارد شده از دیسک را میخواند و آنها را مجدد در حافظه نگاشت میکند.
سپس، این بدافزار بررسیهای ضد جعبهی شنی بیشتری را اجرا میکند، و تلاش میکند تا از جعبهی شنی و یا محصولات امنیتی اجتناب کند و همچنین محیطهای مجازیسازیشده را بررسی میکند.
تنها در صورتی که تمام این بررسیها انجام شود، ابزار بارگیری به مرحلهی بعدی که یک ماشین مجازی چند بستری دیگری را نمایش میدهد خواهد رفت.
مایکروسافت تشریح میکند: «بدافزار ۳۲ بیتی مرحلهی دوم از یک سازوکار بارگیری سفارشی استفاده میکند و تنها یک تابع صادر میکند. برای بدافزار ۶۴ بیتی مرحلهی دوم، با استفاده از یک روش شناختهشده به نام Heaven Gate اجرای کد از ابزار بارگیری منتقل میشود.»
بدافزار ۶۴ بیتی مرحلهی دوم ابزار بارگیری و ماشین مجازی دیگری را اجرا میکند که دارای معماری مشابه با مراحل قبلی است، اما از کدهای متفاوتی استفاده میکند. این ماشین مجازی، بدافزار مرحلهی سوم را استخراج و رمزگشایی میکند. پس از رمزگشایی، این بار داده مجدد در حافظه نگاشت و اجرا میشود.
بدافزار مرحلهی سوم، که مرحلهی نصب و پایداری این بدافزار را نشان میدهد، برنامهی نصب FinFisher است و مدت کمی است که از یک ماشین مجازی یا مبهمسازی استفاده میکند. این کد میتواند بدافزار را در یک محیط UAC با مجوزهای محدود و یا با مجوزهای مدیریتی کامل نصب کند. با این حال، هیچ کد افزایش امتیازی در این بدافزار یافت نشده است.
در طول مرحلهی نصب، بار دادهی مرحلهی ۴، مرحلهی ۵ و مرحلهی ۶ به همراه پروندههای دیگر به یک پوشهای در آدرس C:/ProgramData و یا در پوشهی دادهی برنامهی کاربر منتقل میشود. بدافزار مرحلهی چهارم یک ابزار بارگیری برای دور زدن UAC یا نصب با مجوزهای مدیر است، بدافزار مرحلهی پنجم نیز یک بار دادهی تزریقشده در explorer.exe و یا winlogon است، و بدافزار مرحلهی ۶ بدافزار قابل اجرای اصلی است.
بدافزار مرحلهی پنجم تنها یک لایه برای مبهمسازی بار دادهی نهایی ارائه میدهد و یک روال خاص برای مدیریت وقفهی ساختیافته ایجاد میکند تا از عملیات مخفیانه اطمینان یابد. پس از بررسی دوبارهی محیط، بار دادهی نهایی را استخراج و در فرآیند تزریقشده اجرا میکند (از RunDll برای اجرای جاسوسافزار استفاده میکند).
منبع : news.asis.io