کسپرسکی در ماه مارس 2024، یک بدافزار اندرویدی جدید به نام جاسوس افزار LianSpy را شناسایی کرد که تمرکز آن بر روی کاربران روسیه بود.
LianSpy از تکنیکهای پیچیده مبتکرانهای برای شناسایی نشدن خود استفاده میکند. این جاسوس افزار به منظور ادغام با سایر اپلیکیشنهای قانونی، به عنوان برنامه Alipay یا یک سرویس سیستمی ظاهر میشود.
شواهد حاکی از آن است که این جاسوس افزار از ماه جولای 2021 فعال میباشد اما قابلیتهای مخفی کاری گسترده به آن کمک کرده است تا در این سه سال شناسایی نگردد.
جاسوس افزار LianSpy دارای قابلیت تهیه اسکرین شات، استخراج فایل، جمعآوری لاگهای تماس و لیست برنامهها با استفاده از دسترسی root است. مهاجمانی که پشت LianSpy قرار دارند از چندین تاکتیک مانند سرویس ابر روسی و Yandex Disk برای ارتباطات C2 خود استفاده میکنند.
این گروه از داشتن زیرساخت اختصاصی اجتناب کرده و از سایر امکانات نیز برای ناشناخته نگه داشتن بدافزار جاسوسی خود استفاده کرده است. نتایج بررسیها بیانگر آن است که جاسوس افزار LianSpy به احتمال زیاد از طریق یک آسیب پذیری ناشناخته و یا دسترسی فیزیکی مستقیم به دستگاه قربانی مستقر میشود.
LianSpy از یک باینری su به همراه یک نام تغییر یافته برای دسترسی root استفاده میکند. نمونههای تحلیل شده این بدافزار در تلاش هستند تا یک باینری mu را در دایرکتوریهای پیشفرض su بیابند. تمامی این اقدامات و تدابیر برای فرار از شناسایی است.
جاسوس افزار LianSpy از ویژگیهای بسیار زیادی برای پنهان نگه داشتن خود استفاده میکند که از جمله آنها میتوان به دور زدن ویژگی امنیتی «شاخصهای حریم خصوصی» در اندروید 12 و جدیدتر اشاره کرد.
LianSpy با افزودن مقدار “cast” به پارامتر تنظیمات امن اندروید (icon_blacklist)، این ویژگی را دور میزند تا نوتیفیکیشنهای Cast مسدود شوند و قربانی متوجه رکورد شدن صفحه نمایش خود نگردد.
یکی دیگر از راهکارهایی که جاسوس افزار LianSpy برای مخفی ساختن فعالیتهای خود به کار گرفته است، استفاده از NotificationListenerService برای جلوگیری از نمایش نوتیفیکیشنها توسط عبارات کلیدی میباشد.
فهرستی از عبارات کلیدی مورد استفاده برای حذف نوتیفیکیشنها از نوار وضعیت به شرح زیر است:
- running in the background
- using battery
- в фоновом режиме
- использует батарею
- используют батарею
LianSpy میتواند با استفاده از فرمان سیستمی screencap که معمولاً برای اهداف دیباگ استفاده میشود اما با مجوزهای root قابل دسترسی است، اسکرین شات تهیه کند. این دستور هیچ اثری از گرفتن اسکرین شات باقی نمیگذارد و به مهاجمان اجازه میدهد مخفیانه صفحه نمایش را کپچر کنند.
جاسوس افزار LianSpy در نهایت، دادههای استخراج شده را با استفاده از یک طرح رمزگذاری قوی رمزگذاری کرده کرد و به C2 ارسال میکند.
جزییات فنی جاسوس افزار LianSpy
بدافزار LianSpy شامل طیف گستردهای از ویژگیها و مکانیزمهای قدرتمند برای پنهان ساختن خود در دستگاه قربانی است. همانطور که گفته شد، جاسوس افزار هنگامی که بر روی دستگاه اندروید نصب میشود، به عنوان یک سرویس سیستمی اندروید یا اپلیکیشن Alipay ظاهر میگردد.
جاسوس افزار LianSpy پس از راهاندازی، ابتدا بررسی میکند که آیا به عنوان یک برنامه سیستمی اجرا میشود یا خیر؟ اگر پاسخ مثبت باشد میتواند به طور خودکار مجوزهای مورد نیاز خود را دریافت کند.
در غیر این صورت، مجوزهایی را برای نوتیفیکیشنها، فعالیتهای پسزمینه، مخاطبین، لاگهای تماسها و غیره درخواست میکند. جاسوس افزار LianSpy پس از دریافت مجوزها، تأیید میکند که در یک محیط دیباگ اجرا نمیشود.
چنانچه محیط عاری از آبجکتهای دیباگر باشد، LianSpy پیکربندی خود را با مقادیر از پیش تعریف شده تنظیم میکند و این دادهها را بهعنوان مجموعهای از جفتهای key-value (کلید-مقدار) به صورت لوکال در SharedPreferences ذخیره میکند. SharedPreferences، مکانیزم ذخیرهسازی دادههای برنامه است که معمولاً برای ذخیره تنظیمات برنامه استفاده میشود.
این پیکربندی درصورت راهاندازی مجدد دستگاه باز هم وجود خواهد داشت و از کلیدهای عدد صحیح مرتبط با تنظیمات جاسوس افزار در SharedPreferences استفاده میشود. فهرست دقیق پارامترهای پیکربندی، از جمله توضیحات و مقادیر پیش فرض، در جدول زیر ارائه شده است.
ID (کلید) | توضیحات | مقدار پیش فرض |
100 | آیا اولین راه اندازی است؟ | false |
110 | در صورت اتصال به Wi-Fi، اجازه اجرا داده شود | true |
111 | در صورت اتصال به شبکه تلفن همراه، اجازه اجرا داده شود | true |
113 | شناسه Yandex (یاندکس) هکر | REDACTED |
115 | توکن Disk OAuth یاندکس هکر | REDACTED |
121 | جمع آوری لیست برنامه های نصب شده روی دستگاه مورد نظر | true |
123 | جمع آوری گزارش تماس ها | true |
124 | جمع آوری لیست مخاطبین | true |
128 | تهیه اسکرین شات با سدترسی root توسط باینری screencap | false |
136 | کپچر صفحه نمایش توسط API | true |
302 | تعیین فاصله زمانی بین اسکرین شات ها بر حسب میلی ثانیه | 5000 (5s) |
308 | تعیین فاصله زمانی بین تسک های استخراج داده بر حسب میلی ثانیه | 1200000 (20min) |
400 | لیست اپلیکیشن های جدا شده با کاما برای کپچر کردن صفحه نمایش | whatsapp, viber, skype, chrome, vkontakte, telegram, android.gm, gallery, thoughtcrime.securesms, facebook, tencent.mm, snapchat, icq, tencent.mobileqq, imoim, mailapp, instagram, kakao.talk, discord, chrome, internet, browser, dolphin, firefox, opera, safari, uc browser, maxthon, baidu, yandex |
420 | استفاده نشده | – |
450 | User ID (شناسه کاربر) | – |
جاسوس افزار LianSpy پس از فعال شدن، آیکون خود را پنهان میکند و یک گیرنده پخش داخلی را برای فعالیتهای مخرب مختلفی همچون کپچر صفحه نمایش از طریق API، تهیه اسکرینشات با دسترسی root، استخراج داده و بهروزرسانی پیکربندی فعال میکند.
LianSpy برای بهروزرسانی پیکربندی خود، هر 30 ثانیه یک بار فایلی را جستجو میکند که با عبارت منظم “^frame_.+\\.png$” در Yandex Disk هکر مطابقت داشته باشد. در صورت مطابقت، فایل در دایرکتوری اطلاعات داخلی برنامه، دانلود میشود.
جاسوس افزار LianSpy در نهایت، فایل پیکربندی را به روزرسانی میکند. لیست جامعی از دستورات موجود در این فایل به شرح زیر است.
نام فرمان | توضیحات |
*con+ | فعال سازی مجموعه لیست مخاطبین |
*con- | غیرفعال سازی مجموعه لیست مخاطبین |
*clg+ | فعال سازی مجموعه لاگ تماس |
*clg- | غیرفعال سازی مجموعه لاگ تماس |
*app+ | فعال سازی مجموعه لیست برنامه های نصب شده |
*app- | غیرفعال سازی مجموعه لیست برنامه های نصب شده |
*rsr+ | زمان بندی تهیه اسکرین شات |
*rsr- | متوقف ساختن فرآیند گرفتن اسکرین شات |
*nrs+ | فعال سازی ضبط صفحه نمایش |
*nrs- | غیرفعال سازی ضبط صفحه نمایش |
*swl | لیست برنامه های جدید را که درست بعد از رشته فرمان ذخیره می شوند، برای ضبط صفحه نمایش تنظیم میکند |
*wif+ | در صورتی که دستگاه به Wi-Fi متصل باشد، به بدافزار اجازه اجرا میشود |
*wif- | اگر دستگاه فقط به Wi-Fi متصل است، بدافزار اجرا نخواهد شد |
*mob+ | در صورتی که دستگاه به شبکه تلفن همراه متصل باشد، بدافزار اجازه اجرا خواهد داشت |
*mob- | در صورتی که دستگاه به شبکه تلفن همراه متصل باشد، بدافزار اجازه اجرا نخواهد داشت |
*sci | تنظیم فاصله زمانی کپچر شدن صفحه نمایش برحسب میلی ثانیه |
*sbi | تنظیم فاصله زمانی استخراج داده برحسب میلی ثانیه |
دادههای جمع آوری شده به صورت رمزگذاری شده در جدول Con001 پایگاه داده SQL ذخیره میشوند که شامل اطلاعات دستگاه، لیست مخاطبین، لاگ تماسها و هش SHA-256 میباشند. دادهها سپس با استفاده از طرح زیر رمزگذاری خواهند شد:
- یک کلید AES برای رمزگذاری دادهها با استفاده از مولد اعداد شبه تصادفی ایمن (PRNG) تولید میگردد. این رویکرد، حملات مبتنی بر زمان بندی را که به طور بالقوه میتوانند توسط طرفهای غیرمجاز مورد سوء استفاده قرار گیرند، خنثی میکند.
- یک کلید RSA عمومی هاردکد شده در جاسوس افزار وجود دارد که کلید AES را رمزگذاری میکند.
این طرح رمزگذاری قوی تضمین میکند که تنها یک هکر دارای کلید خصوصی RSA مربوطه است و میتواند دادههای ربوده شده را رمزگشایی کند.
منبع
مقالات مرتبط:
یک بدافزار اندرویدی از هزاران ربات تلگرام برای ربودن SMS سوء استفاده میکند
تروجان BingoMod: یک RAT جدید اندرویدی که رباینده پول و پاک کننده داده ها است
جاسوس افزار اندرویدی Mandrake دوباره به گوگل پلی بازگشت
تروجان CapraRAT در چهار اپلیکیشن اندرویدی جدید شناسایی شد
تروجان Rafel RAT، نسخه های قدیمی اندروید را مورد نفوذ قرار داد
جاسوس افزار LightSpy، کاربران iOS را در جنوب آسیا مورد هدف قرار داد
نفوذ جاسوس افزار eXotic Visit به کاربران اندروید در هند و پاکستان