روش اجرای ماکروهای آلوده روی macOS
بسیاری از کاربران کامپیوتر macOS هنوز هم بر این باورند که دستگاههایشان نیازی به محافظت ندارد. بدتر اینکه ادمینهای سیستمِ شرکتها –جایی که کارمندان با سختافزار اپل کار میکنند- اغلب همین عقیده را دارند.
در بلکهت آمریکا 2020 پاتریک واردلِ محقق، سعی داشت با ارائهی تجزیه و تحلیل بدافزاری روی macOS و ساخت یک زنجیره اکسپلویت برای در دست گرفتن کنترل کامپیوتر اپلی، آن دسته از مخاطبین را که بر این باور غلط اصرار میورزیدند از اشتباه دربیاورد. در ادامه خواهیم دید چطور بیسر و صدا ماکروهای آلوده روی macOS اجرا میشوند. با ما همراه شوید.
مایکروسافت، ماکروها و مک
یکی از شایعترین روشهای حمله به کامپیوترهایی که macOS اجرا میکنند از طریق داکیومنتهای درآمیخته با ماکروهای آلوده انجام میگیرد؛ بهتر بگوییم از طریق اپلیکیشنهای Microsoft Office. به طور حتم، با وجود اینکه خود اپهای بهرهوری اپل قابلدسترسی هستند اما باز هم بسیاری از کاربران ترجیح میدهند از Microsoft Office استفاده کنند.
برخی از روی عادت چنین ترجیحی دارند و عدهای نیز به دلیل قابلیت سازگارپذیری با داکیومنتهایی که همکارانشان درست میکنند. البته که دیگر بر همگان عیان است داکیومنتهای حاوی ماکروها میتوانند بالقوه چقدر تهدیدآمیز باشند. بنابراین، هم مایکروسافت و هم اپل، مکانیزمهایی برای محافظت از کاربر دارند.
مایکروسافت وقتی کاربران داکیومنتی حاوی یک ماکرو باز میکنند به آنها هشدار میدهد. افزون بر این، اگر کاربر تصمیم بر اجرای ماکرو (با همه خطراتی که میتواند داشته باشد) بگیرد، سپس کدی در سندباکس اجرا میشود که بر طبق گفتههای توسعهدهندگان مایکروسافت نمیگذارد این کد به فایلهای کاربران دسترسی پیدا نموده یا به سیستم لطمات دیگری وارد کند. در مورد اپل نیز این شرکت چندین قابلیت امنیتی جدید را در آخرین نسخهی سیستمعامل خود (macOS Catalina) معرفی کرده است.
این قابلیتها به طور خاص شامل قرنطینهی فایل و notarization (تنظیم اسناد) –فناوریای که مانع اجرای قابلاجراها[1] از منابع خارجی میشود- میشوند. در اصل این فناوریها (ترکیبشان با هم) باید آنقدری کافی باشند که جلوی لطمات را از جانب ماکروهای آلوده بگیرند. به لحاظ تئوریک، هرچیزی به نظر تماماً امن و امان میآید.
زنجیره اکسپلویت ماکرو را از سندباکس بیرون میکند
در عمل اما بسیاری از مکانیزمهای امنیتی با مشکل پیادهسازی میشوند. بنابراین، محققین (یا مهاجمین) میتوانند به طور بالقوه متودهایی برای دور زدنشان پیدا کنند. واردل با نمایش زنجیرهای از اکسپلویتها سخنرانی خود را ارائه داد.
• دور زدن این مکانیزم (که باعث غیرفعالسازی ماکروها میشود)
برای مثال، سیستمی را که هنگام شناسایی یک ماکرو در داکیومنت هشدار میدهد در نظر بگیرید. در اکثر موارد آنطور که توسعهدهندگان در نظر گرفتهاند کار میکند اما در عین حال نیز این امکان وجود دارد که داکیومنتی ساخته شود که در آن، ماکرو به طور خودکار و بدون اینکه هشداری به کاربر داده شود اجرا شود (حتی اگر ماکروها در تنظیمات غیرفعال شده باشند).
این کار را میشود با استفاده از فرمت فایل Sylk (SLK) انجام داد. این فرمت –که از زبان ماکروی XLM استفاده میکند- در دهه 80 میلادی توسعه داده شد و آخرین بار سال 1986 بروزرسانی گشت. با این حال، اپهای مایکروسافت (برا مثال اکسل) هنوز هم به دلیل ویژگی سازگاری عقبرو[2] از Sylk پشتیبانی میکنند. این آسیبپذیری، چندان هم تازه نیست و در سال 2019 مفصلاً شرح جزئیاتش بیرون آمد.
• فرار از سندباکس
همانطور که اکنون ثابت شد، مهاجم میتواند به طور نامرئی و بسیار بیسر و صدا ماکرویی را اجرا کند درحالیکه کد هنوز داخل سندباکس ایزولهی مایکروسافت آفیس اجرا شده است. به هر روی، چطور یک هکر میتواند به کامپیوتر حمله کند؟ بسیارخوب، اینطور پی بردیم که فرار از سندباکس مایکروسافت روی مک چندان هم کار دشواری نیست.
این که نمیتوانید فایلهای از قبل ذخیرهشده روی کامپیوتر خود در داخل سندباکس را دستکاری کنید اما میتوانید آنها را ایجاد کنید! این اکسپلویت از پیش نیز برای فرار از سندباکس مورد استفاده قرار میگرفته و به نظر میرسد مایکروسافت برای بستن این آسیبپذیری آپدیتی نیز منتشر کرد. با این وجود، این مشکل از اساس حل نشد زیرا بررسی جزئیتر روی پچ آن نشان میدهد که:
این فیکس، به علایم و نشانهها پرداخته و ایجاد فایل را در مکانهایی که برخی توسعهدهندگان «ناامن» خواندند (مانند فولدر LaunchAgents که لوکیشن ذخیرهسازی مخصوص اسکریپتهایی است که به طور خودکار بعد از ریبوت لانچ میشوند) مسدود ساخته است.
اما اساساً چه کسی تعیین کرده که وقتی مایکروسافت پچی بیرون میدهد دیگر مو لای درزش نمیرود؟ شاید تعجبآور باشد اما حقیقت دارد که اسکریپتی نوشتهشته به زبان پیتون و اجراشده از داکیومنت آفیس –و بنابراین اجراشده داخل یک سندباکس- میتواند برای ساخت چیزی به نام Login Item مورد استفاده قرار گیرد. چیزی با این اسم به طور خودکار وقتی کاربر به سیستم لاگین میشود لانچ میگردد. این سیستم، آن چیز را لانچ کرده تا خارج از سندباکس آفیس اجرا شود و بدینترتیب محدودیتهای امنیتی مایکروسافت را دور بزند.
• دور زدن مکانیزمهای امنیتیِ اپل
بنابراین اکنون ما میدانیم چطور میشود مخفیانه یک ماکرو را اجرا نموده و Login Item را ساخت. البته که مکانیزمهای امنیتی در macOS هنوز هم مانع لانچ بکدر میشوند، اینطور نیست؟ از طرفی میشود گفت بله همینطور است: مکانیزمهای امنیتی اپل به طور حتم اجرای کد بدستآمده به چنین روشی را بلاک میکند اما از طرفی هم میشود گفت نه اینطور نیست: اگر به عنوان یک Login Item به آرشیو ZIP رخنه کنید آنوقت سیستم در لاگین بعدی به طور خودکار فایل را unzip خواهد کرد. دیگر تنها کاری که مهاجم مانده انجام دهد انتخاب لوکیشن درست برای unzip کردنِ فایل است. بعنوان مثال، این آرشیو میتواند در همان دایرکتوریی آرشیوهای کاربری قرار گیرد.
خود این آرشیو میتواند شامل دایرکتوریای به نام LaunchAgents شود که حاوی اسکریپت Launch Agent است. وقتی اسکریپت unzip شد برای اجرا روی ریبوت در فولدر LaunchAgents قرار داده میشود. این اسکریپت -ساختهشده توسط برنامه قابلاطمینان (Archiver) و نداشتن خصیصههای قرنطینه- میتواند برای لانچ چیزی خطرناکتر مورد استفاده قرار گیرد.
مکانیزمهای امنیتی حتی جلوی لانچ این فایل را هم نمیگیرند. در نتیجه، مهاجم میتواند از طریق پوستهی فرمان Bash برای پیدا کردن دسترسی ریموت، مکانیزمی را لانچ کند. این فرآیند Bash را میتوان برای دانلود فایلها استفاده کرد که همچنین فاقد خصیصهی قرنطینه هستند. بدینترتیب به مهاجم این اجازه داده میشود تا کد بسیار مخرب را دانلود نموده و بدون هیچ محدودیتی اجرایش کند.
خلاصه:
• مهاجم میتواند مخفیانه بدون نمایش هیچ هشداری یا پرسیدن هیچ سوالی (حتی اگر اجرای ماکرو در تنظیمات غیرفعال نیز شده باشد) ماکروی مخربی را لانچ کند. فقط کافیست کاربر داکیومنت آفیس را دانلود کرده و بازش کند!
• سپس، مهاجم میتواند از سندباکس مایکروسافت آفیس فرار کند و Login Item و آرشیوی با Launch Agent داخل آن (که در لاگین بعدی به صورت خودکار خارج سندباکس اجرا میشود) بسازد.
• مهاجم با چند گام دیگر میتواند براحتی مکانیزمهای امنیتی اپل را با استخراج یک Launch Agent دور بزند. این برنامه که از این رو از مکانیزمهای امنیتی سیستم طفره رفته است میتواند بخش «کُمبَت»[3] کد آلوده را دانلود و اجرا کند.
راهکارهای امنیتی
البته این محقق یافتههای خود را هم به اپل و هم مایکروسافت گزارش داد و هر دوی این شرکتها نیز بدون تبلیغ آنها یا حتی تعیین رسمی شناساگرهای CVE برای این آسیبپذیریها اصلاحاتی انجام دادند؛ با این حال بر اساس بررسیهای انجامشده روی مکانیزمهای امنیتی، امکان پیدا شدن متودهای دور زدن آنها کاملاً وجود دارد. در گذشته، macOS بسیار امن تلقی میشد اما این بیشتر به دلیل تمرکز نکردن مهاجمین روی آن بوده تا داشتن تنظیمات پیشرفته امنیتی! (به محض اینکه هکرها اراده کنند میتوانند دخل این سیستمعامل را درآورند).
با این حال کامپیوترهای اپل دارند بیش از هر زمان دیگری محبوب میشوند و از این رو آسیبپذیریشان از سوی مهاجمین از هر زمان دیگری قریبالوقوعتر است. برای همین به منظور رعایت جانب امنیت، نه تنها باید همیشه سیستم و تمامی نرمافزارهای رویش را بهروز نگه دارید که همچنین میبایست از راهکارهای امنیتی استفاده کنید که قادرند فعالیت مشکوک را شناسایی و با آن مبارزه کنند. بعنوان مثال خط محصولات امنیتی ما –هم برای کاربران خانگی و هم مشتریان سازمانی- نسخهی macOS دارد.
[1] executables
[2] پس سازگاری یا سازگاری عقب رو یک ویژگی از ابزار یا فناوریهایی است که توانایی کار کردن با ورودیهای درستشده در نسخههای پیش از خود را در آنها ممکن میسازد و غالباً در مخابرات و رایانش مطرح میشود.
[3] اصطلاحاً یعنی بخش مهم و مرکزی
منبع: کسپرسکی آنلاین
تنظیم: روابط عمومی شرکت ایدکو (توزیع کننده محصولات کسپرسکی در ایران)
- ۹۹/۰۶/۲۱