APT28 Campaign Against Ukraine
مقاله
  • ۲۹ بهمن ۱۴۰۲
  • Learning Road Map
  • ۵ دقیقه خواندن

APT28 Campaign Against Ukraine

طبق گفته محققان Malwarebytes در کمپین اخیر خود، APT 28، یک APT مرتبط با اطلاعات روسیه، تمرکز خود را معطوف اوکراین کرده است.  APT28 در این کمپین، کاربران را با بدافزارهایی هدف قرار داده است که پسوردهای ذخیره شده در مرورگرها را می‌دزدد.

APT28 (همچنین با نام‌های Sofacy، Pawn Storm، Fancy Bear و Sednit نیز شناخته می‌شود) یک گروه جاسوسی سایبری است که گمان می‌رود با روسیه ارتباط دارد و توسط NSA و FBI به اطلاعات ارتش روسیه (GRU) نسبت داده شده است.  این گروه که احتمالاً از سال 2004 فعالیت می‌کند، شناخته شده است که سازمان‌های دولتی، نظامی و امنیتی را هدف قرار می‌دهد و به طیف گسترده‌ای از ابزارها برای ویندوز، لینوکس و مک دسترسی دارد و این ابزارها را به‌طور مداوم به‌روزرسانی می‌کند.

در این مقاله، TTP اخیر این APT را بررسی کرده، نحوه شکار این تهدیدات را نشان می‌دهیم و در نهایت به تحلیل بدافزار استفاده شده در کمپین اخیر این گروه می‌پردازیم. Chain های مختلف حمله این گروه بر علیه اوکراین در ماه‌های اخیر در شکل زیر آمده است.

Figure 1

Initial Access

این سند مخرب یک فایل docx است که از Remote Templateای استفاده می‌کند که در فایل Document.xml.rels وجود دارد. با استفاده از این تکنیک، یک فایل HTML از آدرس https://kitten-268.frge[.]io/article.html را دریافت می‌کند. بررسی و شکار این تکنیک توسط محققین آکادمی راوین به صورت کامل در اینجا توضیح داده شده است.

فایل HTML، با استفاده از جاوا اسکریپت و پروتکل ms-msdt یک کد Powershell انکود شده را لود و اجرا می‌کند. اسکریپت decode شده از cmd برای اجرای کد Powershell استفاده می‌کند که Payload نهایی را دانلود و اجرا می‌کند.

Threat Hunting Malware Payload

این بدافزار پسوردها و کوکی‌های ذخیره شده در Firefox، Chrome و Edge را کپی می‌کند.

Figure 2

همچنین Credentialها بر روی دیسک به صورت دو فایل جداگانه به نام CP و CC ذخیره می‌شوند.

Figure 3

سپس بدافزار، SQLIte.Intero.dll را برای Parse کردن پایگاه داده SQLite مرورگر که با استفاده از DPAPI رمزگذاری/محافظت شده است، لود می‌کند.

Figure 4

سپس بدافزار، اطلاعات استخراج شده شامل رمزعبور و کوکی را با استفاده از تابع Decrypt، Unprotect می‌کند.

Figure 5

در نهایت این بدافزار، اطلاعات استخراج شده را به C&C می‌فرستد.

Figure 6

APT28’s Credential Stealer

این بدافزار در ابتدا توسط Google’s TAG وقتی که بر علیه کاربران اوکراینی استفاده می‌شد، کشف و گزارش شد. این بدافزار، وظیفه استخراج Credential های ذخیره شده در مرورگرها و فرستادن آن‌ها به C&C را دارد و در .NET نوشته شده است. برای استخراج داده‌ها از Chrome و Edge از i[5][4][3][2][1] DPAPI استفاده می‌کند. همچنین برای اطمینان از انجام موفق عملیات، بر روی کپی فایل‌ها و نه فایل‌های اصلی عملیات استخراج را انجام می‌دهد. در انتها فایل‌های ایجاد شده در طول عملیات را پاک می‌کند.

Stealing Google Chrome and Edge Credentials

این بدافزار در ابتدا چک می‌کند که آیا اطلاعات موردنیاز – شامل نام کاربری و رمزعبور - در کروم وجود دارد یا خیر. برای این‌کار، وجود فایل AppDataLocalGoogleChromeUser DataDefaultLogin Data را بررسی می‌کند. (این فایل حاوی نام کاربری و رمزعبورهایی است که کاربر در کروم ذخیره کرده است.) اگر این فایل وجود داشت آن را به فایلی به اسم cp کپی می‌کند. کپی فایل، احتمالا برای این انجام می‌شود که محصولات امنیتی که دسترسی مستقیم به فایل Login Data را بررسی می‌کنند و آن را رفتاری مخرب در نظر می‌گیرند را دور بزند. همچنین با این کار اطمینان حاصل می‌کند که فایل هنگامی که نام کاربر و رمزعبور را استخراج می‌کند، توسط مرورگر lock نشده باشد.

Figure 7 - Check Existence of Login Data

کروم، نام کاربر و رمزعبور را در یک دیتابیس SQLite ذخیره می‌کند. به همین دلیل، بدافزار به دیتابیس Connect می‌شود و Query زیر را اجرا می‌کند. این دستور، نام کاربر، رمزعبور و آدرس سایت مربوطه را از دیتابیس استخراج می‌کند.

Figure 8 - SQL Query For Getting Chrome Login Data

کروم از ورژن 80 به بعد، نام کاربری، رمزعبور و کوکی‌ها را با استفاده از AES256-GCM، Encrypt می‌کند. کلید AES در فایل Local State ذخیره می‌شود و این کلید به عنوان blob DPAPI رمزگذاری‌ شده، محافظت می‌شود. DPAPI توسط چندین مؤلفه سیستم عامل برای ذخیره ایمن رمزهای عبور، کلیدهای رمزگذاری یا هر نوع داده حساس دیگری استفاده می‌شود.

Figure 9 - Extract Chrome Login Data

بدافزار همین عملیات را برای کوکی‌های ذخیره شده در کروم که در ادرس زیر ذخیره شده‌اند، انجام می‌دهد.

Figure 10 - Chrome's Cookie Path

در بعضی مواقع می‌توان از کوکی‌های استخراج شده برای دسترسی به یک سایت استفاده شده توسط کاربر (مثل Gmail) استفاده کرد. کد استخراج کوکی‌ و رمزعبور از مروگر Edge مشابه کد استفاده شده برای کروم است. به همین دلیل به تحلیل آن در اینجا نمی‌پردازیم.

Stealing Firefox Credentials

برای فایرفاکس، به ازای هر پروفایل، فایل‌های مربوط به نام کاربری و رمزعبور را می‌خواند، با استفاده از Base64 آن‌ها را Encode می‌کند و آن‌ها را با استفاده از ایمیل برای مهاجمین می‌فرستد. فایل logins.json حاوی نام کاربری و رمز عبور است. این فایل با استفاده از 3DES که کلید آن در key4.db قرار دارد، Encrypt شده است. فایل‌های نشان داده شده در شکل برای بدست آوردن رمزعبور و certificate کاربر و در صورت نیاز کرک Master Password به صورت آفلاین، ضروری می‌باشد.

Figure 11 - Extracting Firefox Credential and Exfiltrating them

بدافزار، برای بدست آوردن کوکی‌ها به ازای هر پروفایل، Query نشان داده شده در شکل را اجرا می‌کند.

Figure 12 - Extract Cookies from Firefox

مسیر کوکی‌ها به صورت زیر است:

Figure 13 - Firefox's Cookie Path

سپس نام، مقدار و host هر کوکی را استخراج می‌کند.

Figure 14 - Extracting name, value and host of each cookie

اطلاعات استخراج شده از طریق پروتکل IMAP، به یک ایمیل – تحت کنترل مهاجم - فرستاده می‌شود.

در نهایت تمام فایل‌های ایجاد شده را با استفاده از File.Delete پاک می‌کند:

Figure 15 - Deleting Evidences

Indicators of Compromise (IOCs)

IoCهای زیر نمونه‌ای از شاخصهای مرتبط با کمپینهای اخیر APT28 را نشان می‌دهند.