Ali Shahrab
Ali Shahrab
خواندن ۱۴ دقیقه·۴ سال پیش

در پشتی در فروشگاه های برنامه موبایل

باسمه تعالی

Phantom Lancer
Phantom Lancer

مقدمه

در سال ۲۰۱۹ بر اساس گزارشی که آنتی ویروس Dr. Web درباره یک در پشتی در google play داده بود securelist به بررسی آن پرداخت و پس از بررسی متوجه شد که این در پشتی مانند بسیاری از بد افزار ها برای دزدی پول و یا نمایش تبلیغات ساخته نشده است. پس از بررسی های بیشتر مشخص شد این بدافزار از سال ۲۰۱۶ به صورت گسترده به کار گرفته شده است و به دلیل شباهت هایی که به بدافزار های گروه APT32 دارد این بدافزار را به این گروه اطلاق می کنند و اسم آن را هم به خاطر اسم اولین دامنه انتخابی برای این بدافزار، phantomLance گذاشته اند.

گروه APT32 یا Ocean lotus گروهی ویتنامی هستند که از سال ۲۰۱۴ با فعالیت های خرابکارانه خودشان را مطرح کردند و در حال حاضر به جزو گروه هایی شناخته می شوند که از بد افزار های شخصی و پیشرفته استفاده می کنند.

در این مقاله secureList به بررسی نحوه انتشار بدافزار، نحوه پشت سر گذاشتن فیلتر های google play و بررسی نسخه های این بدافزار می پردازد که این بررسی در ۵ بخش اصلی ارائه می شود:

  1. نسخه های بدافزار
  2. نحوه انتشار
  3. ساختار
  4. هدف های مورد نظر بدافزار
  5. شباهت های این بدافزار به گروه APT 32

نسخه های بدافزار

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

نسخه ۱

در این نسخه از در هم ریختگی کد استفاده نشده است و بر خلاف نسخه دیگر از بارگیری و نصب برنامه دیگر استفاده نمی شود. در manifest برنامه هیچ مجوزی خاص و مهمی وجود ندارد ولی بسیاری از تابع های این بدافزار برای اجرا نیاز به دسترسی root دارند که این دسترسی از سه طریق زیر بدست می آید:

  1. در بعضی از نسخه ها از یک تابع غیر مستند شده برای بدست آوردن دسترسی استفاده می شود. اسم این تابع setUidMode می باشد که از نسخه Android SDK 19 به بعد قابل استفاده است.
  2. استفاده از exploit برای بدست آوردن دسترسی به طوری که payload مربوط به exploit از طریق سرور و با توجه به اطلاعات گوشی موبایل بارگیری می شود.
  3. استفاده از مهندسی اجتماعی برای تشویق کردن کاربر به دادن اجازه دسترسی. به طور مثال پیغامی نمایش داده می شود که Browser cleaner تنها در صورتی میتواند کار کند که دسترسی root داشته باشد و کاربر با این پیام قانع می شود که دسترسی بالاتری به برنامه بدهد.

نسخه ۲

این نسخه در سال ۲۰۱۹ مشاهد شده است و با توجه به مشاهدات و Time Stamp های موجود در برنامه احتمالا این نسخه جایگزین نسخه ۳ بد افزار می باشد که در سال ۲۰۱۹ اثری از آن دیده نمی شود.

تفاوت اصلی این نسخه با نسخه اول در این است که قسمت کد های مخرب برنامه در یک payload رمز شده قرار دارد که در پوشه asset ذخیره شده است. این payload با الگوریتم AES رمز شده است که در ابتدای آن کلید و بردار شروعی (IV) قرار دارد.بعد از بازگشایی payload متوجه می شویم که اطلاعات دارای دو قسمت می باشد. قسمت اول یک APK می باشد که همان برنامه مخرب می باشد و قسمت دوم که در ابتدای فایل قرار دارد یک string می باشد که اسم تابع مورد نظر در APK مخرب را در خود دارد که با استفاده از روش reflection این تابع فراخوانی می شود.

در این نسخه نیز دسترسی های مورد نیاز برنامه در manifest برنامه وجود ندارد و با استفاده از تابع غیر مستند گفته شده در نسخه ۱ این سطح دسترسی تامین می شود.

نسخه ۲.۱

این نسخه بسیار شبیه به نسخه دو می باشد و تنها در مواردی خاص تفاوت دارد که به همین دلیل آن را نسخه ۲.۱ در نظر میگیریم. اولین تفاوت مربوط به کلید AES مربوط به payload کد های مخرب می باشد. در این نسخه بر خلاف نسخه دوم کلید از طریق پلتفرم firebase google دریافت می شود و نیازی به ذخیره سازی آن در ابتدای payload نیست.

با توجه به متغیرهای json مربوط به اطلاعاتی که از firebase دریافت می شد می توان برداشت کرد که این قسمت از برنامه دچار تغییر زیادی شده است.

تفاوت دیگر این نسخه با نسخه ۲ وجود یک payload دیگر در برنامه می باشد. این payload در payload گفته شده در قسمت قبل ذخیره شده است ذخیره شده است. این payload در واقع یک apk می باشد که ۲۷ بایت اول آن دستکاری شده است و برای بازیابی آن از روشی که در شکل زیر آمده است استفاده می شود.

از این apk برای ماندگاری در هدف ( persist) استفاده می شود و البته به وسیله آن ارتباط C&C با سرور های phantomLancer برقرار می شود. در این apk یک کد به زبان C به اسم deamon.c وجود دارد که فرآیند ماندگاری را انجام می دهد.

نسخه ۳

این نسخه از لحاظ فنی بسیار پیچیده تر از نسخه ۲ می باشد ولی در سال ۲۰۱۹ اثری از استفاده جدید از آن دیده نمی شود. نکته جالب دیگر در مورد این نسخه مربوط به certificate آن می باشد که یک certificate مربوط به debug می باشد. همچنین در این نسخه از در هم ریختگی کد نیز استفاده نمی شود به همین خاطر می توان حدس زد این نسخه به نحوی نسخه لو رفته از یک برنامه می باشد.

فرق مهم این نسخه با نسخه دوم نحوه استخراج کردن کدهای مخرب توسط dropper می باشد. در این نسخه مانند نسخه دوم برای رمز گشایی payload از الگوریتم AES استفاده می شود ولی در این نسخه payload مد نظر به بخش های ۱۰۲۵۶ بایتی تقسیم شده است. در کنار این بخش های رمز شده یک بخش رمز شده دیگر برای تنظیمات مربوط به payload وجود دارد. در این نسخه طریقه استخراج apk به صورت زیر می باشد.

  1. ابتدا بخش تنظیمات توسط یک کلیدی که در حافظه در جای ثابت قرار دارد رمزگشایی می شود. در این بخش اطلاعات زیر وجود دارد.
    1. کلید بخش های مختلف payload
    2. اسم کلاس ها و تابع هایی که برای فراخوانی به صورت reflection مورد استفاده قرار می گیرد.
    3. هش MD5 مربوط به apk
    4. ترتیب و اسم قسمت های مختلف payload
  2. رمز گشایی کردن header های مربوط به apk که حتما در اولین قسمت قرار دارند و نوشتن آن ها در جای خود در apk
  3. رمز گشایی قسمت های مختلف payload و نوشتن آن ها در جای خودشان به کمک ترتیب و نام های که در در payload مربوط به تنظیمات وجود داشت
  4. چک کردن صحت apk با MD5 موجود در تنظیمات
  5. اجرا کردن apk ساخته شده

نحوه انتشار

یکی از بهترین راههای انتشار بدافزار ها از طریق فروشگاه های مجازی برنامه های موبایل می باشد. در این فروشگاه ها یک فروشنده برنامه خود را برای استفاده عموم به نمایش می گذارد. این برنامه ها گاهی اوقات رایگان ارائه میشوند و گاهی اوقات در قبال برنامه باید پول پرداخت شود. یکی از این فروشگاه های بزرگ google play می باشد که نمونه های زیادی از بدافزار ها در آن قابل دسترسی بوده ولی در حال حاضر حذف شده اند. در آینده نیز بدافزار های زیادی وجود خواهند داشت که عضو این لیست شوند. جدول زیر تعدادی از این بدافزار های را مشخص کرده است.

در ادامه باید گفت همه فروشگاه ها های دنیا مانند google play در رصد این بد افزار ها موفق نیستند وبسیاری از بدافزار ها همچنان در فروشگاه های اینترنتی قابل دستر سمی باشند. همچنین این نکته قابل توجه است که بسیاری از بدافزار ها که در فروشگاه های متفرقه مجازی دیده می شود زمانی در google play در دسترس بوده اند. باید گفت که بسیاری از فروشگاه ها محصولات خودشان رو از طریق رصد کردن google play بدست می آورند به طوری که اگر برنامه جدیدی در google play اضافه شود با یک فاصله زمانی در این فروشگاه ها نیز اضافه می شود.

بد افزار ها برای ماندگاری بیشتر در فروشگاه های اینترنتی از روش هایی استفاده می کنند که یکی از این روش ها ایجاد حساب های کاربری دروغین github است به طوری که برای عادی نشان دادن برنامه لایسنس تقلبی خود را در این حساب های کاربری نگهداری می کنند. روش دیگر که تاثیر زیادی در سالم نشان دادن برافزار ها تاثیر دارد انتشار نسخه های اولیه بدون کد های مخرب می باشد. در این روش نسخه هایی اولیه تنها کار های قانونی که نرم افزار برای آن ساخته شده است را انجام می دهد و کد های مخرب در بروزرسانی های بعدی که تحویل فروشگاه های اینترنتی می شود اضافه می شود.

ساختار

بررسی secureList در مورد ساختار سرور های C2 مربوط به phantomLancer نشان میدهد که تعداد دیگری دامنه وجود دارد که شبیه دامنه های شناسایی شده است ولی در هیچ کدام از نسخه ها بدافزارهای شناسایی شده اثری از آنها یافت نشده است. این مطلب نشان می دهد این تحقیقات همه قسمت های حمله این گروه را در بر نمی گیرد.

با توجه به تحقیقاتی که ۴ سال پیش در مورد این گروه انجام شده است نشان می دهد که تعدادی از دامنه های منقضی شده آن ها تمدید شده است که احتمالا قصد استفاده از آن ها در آینده را دارند.

تحقیقات نشان میدهد که بدافزار pahntomLancer تنها از طریق زیر دامنه های با سرور ها در ارتباط هستند. به طوری که بسیاری از دامنه های اصلی به یک آدرس خاص اشاره می کنند ولی آدرس مربوط به زیر دامنه ها متفاوت می باشد. آدرس بسیاری از دامنه های اصلی برابر ۱۸۸.۱۶۶.۲۰۳،۵۷ می باشد که مربوط به سرور های digital ocean می باشد این آدرس میزبان حدود ۱۲۹ سایت می باشد.

بسیاری از این سایت ها جزو سایت های بدون اعمال مجرمانه می باشد ولی تعدادی از آن ها مربوط به phantomLancer و دو عدد از آن ها مربوط به بدافزار های دیگر APT27 می باشد که خود این عاملی برای وصل کردن pahntomLancer به APT27 می باشد.

هدف های مورد نظر بدافزار

حدود ۳۰۰ حمله بر روی دستگاه های اندروید دیده شد که این حمله های در کشورهایی مانند ویتنام، بنگلادش، هند و کشور های دیگه انجام شده است. عکس زیر کشورهایی که حمله در آن دیده شده است را مشخص می کند.

چون این بدافزار در فروشگاه های اینترنتی قرار می گرفته است و هر فردی می توانسته آن را نصب کند نمی توان هدف های آن را از طریق وجود برنامه در کشور های مختلف متوجه شد به همین خاطر secureList به بررسی نوع برنامه هایی که برای انتشار این بدافزار در نظر گرفته شده پرداخته است. در کنار عنوان های فریب دهنده عادی مانند flash plugin، cleaner چند عنوان وجود دارد که تنها مختص به ویتنام می باشد که این موضوع این فرضیه را تقویت می کند که هدف اصلی کشور ویتنام بوده است.

عنوان ها مربوط به کشور ویتنام به شرح زیر می باشد:

  • عنوان luxury.BeerAddress که برنامه ای برای پیدا کردن نزدیک ترین نوشیدنی فروشی می باشد.
  • عنوان codedexon.churchaddress که برنامه ای مربوط به پیدا کردن نزدیک ترین کلیسا می باشد.
  • عنوان bulknewsexpress.news که مربوط به خواندن روزنامه های روزانه می باشد.

شباهت های این بدافزار به گروه APT 32

در این قسمت شباهتهایی که بین phantomLancer و فعالیت های مربوط به گروه APT32 هست را بررسی می کنیم. در اواخر سال ۲۰۱۹ گزارش هایی در مورد قرارگاه phantomLancer منتشر شد که ادعا می کرد این قرارگاه مربوط به APT32 می باشد. بعد از بررسی های بیشتر توسط secureList آنها متوجه شاهت تکنیک های phantomLancer با فعالیت های انجام گرفته توسط APT27 در سال ۲۰۱۴ شدند.

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

اولین شباهت آن ها نحوه انتشار آن ها می باشد. هر دو برنامه خود را در یک فروشگاه اینترنتی به نمایش گذاشته و با فرستادن لینک دانلود آن از طریق پیامک یا رایانامه هدف را ترغیب به نصب بدافزار می کردنند.

همچنین شروع کار phantomLancer از سال ۲۰۱۷ و خاتمه کار قرارگاه قبلی APT32 نیز در همین سال می باشد.

وجود الگوهای یکسان مانند استفاده یکسان از تابع ها در کد های موجود از APT32 و کدهای phantomLancer حدس ارتباط این دو را تقویت می کند به طور مثال عکس زیر تابع های کلاس parser موجود در هر دو بدافزار را نشان می دهد. کد های phantomLancer مربوط به نسخه سوم آن می باشد( نسخه ای که بدون در هم ریختگی کد استفاده شده بود). در کنار این ها تکنولوژی بررسی شباهت کد آزمایشگاه secureList شباهت ۲۰ درصدی بین کد ها را تشخیص می دهد.

همچنین پس از بررسی کد های مربوط بدافزار های mac os که به APT32 ربط داده شده بود حدس ارتباط این دو گروه را افزایش داد. اگرچه کد ها مربوط به دو سیستم عامل جدا می باشند و هر کدام قواعد خود را دارند ولی وجود تکنیک های یکسان و یکسان بودن ۳ اسم از ۷ اسم کلاس های مهم برنامه نشانی از شباهت دو بدافزار می باشد.

در نهایت با توجه به این که هدف اصلی هر دو گروه در ویتنام قرار داشت استه، شباهت آن ها در استفاده از یک سرور C&C برای هر بدافزار ساخته شده، استفاده از زیر دامنه ها برای ارتباط به سرور، شباهت کد های phantomLancer با کد ها mac os و کدها اندروید موجود از APT32 می توان با احتمال بالایی حدس زد که pahntomLancer مربوط به APT32 می باشد.

منابع:

https://securelist.com/apt-phantomlance/96772/

backddortrojangoogleplayبدافزارتروجان
شاید از این پست‌ها خوشتان بیاید