شرح کلی
نوع:جاسوس افزار (Spyware)
اسامی بدافزار:
Spy.Android.InfoStealer.Covid
درجه تخریب: متوسط
میزان شیوع: متوسط
جاسوس افزار (Spyware) چیست؟
اين گونه از بدافزارها براي اهداف جاسوسي و سرقت اطلاعات شخصي و سازماني مورد استفاده قرار ميگيرند. با نصب شدن spyware بر روي گوشی، هميشه اطلاعات کاربر از نظر امنيتي در معرض تهديد قرار دارد و در هر لحظه ممکن است این اطلاعات به سرقت رفته و به افراد غير مجاز تحويل داده شود. معمولا جاسوس افزارها به صورت پنهان و به دور از ديد کاربر بر روي گوشی نصب ميشوند و به صورت کاملا مخفيانه فعاليتهاي خود را انجام ميدهند. جاسوس افزارها معمولا با فريب دادن کاربران در اينترنت در قالب یک برنامه کاربردی و مفید بر روي گوشی آنها نصب ميشوند. به طور معمول این نوع از بدافزارها اطلاعاتي در خصوص فعاليتهاي يک کاربر بر روي گوشی اعم از پسوردها، اطلاعات کارتهاي اعتباري و ساير اطلاعات امنیتی از قبيل کليدهاي فشرده شده توسط کاربر، لیست تماسهای کاربر، لیست دفترچه تلفن، پیامهای متنی ارسالی و دریافتی و … را جمع آوري و برای شخص دیگری ارسال میکنند.
خانواده بدافزاری InfoStealer چیست؟
بدافزارنویسان باتوجه به شرایط کنونی مردم جهان، به ترویج خانوادههای مختلف بدافزاری spyware ،Banking Trojan و SLocker Trojan با محوریت بیماری همهگیر COVID-19 پرداختهاند. مجرمان از وضعیت فعلی برای توزیع برنامههای مخرب مربوط به ویروس کرونا، از کاربران سوءاستفاده میکنند. دستهای از این برنامهها شامل ردیابهای Coronavirus، شناسایی علائم، نقشهها و … هستند. در شرایط فعلی، مردم تمایل بیشتری به نصب چنین برنامههایی دارند و احتمال اینکه این دسته از برنامهها را از منابع یا مارکتهای غیرمعتبر دانلود کنند بسیار زیاد است. در بسیاری از موارد، هدف این است که دادههای شخصی از جمله پیامهای کوتاه، گزارش تماسها، لیست مخاطبین و موارد دیگر را سرقت کنند. خانواده InfoStealer تنها یک نمونه از مجموعه برنامههای جاسوسی با مضمون COVID-19 است.
توضیحات فنی
کاربران این برنامه را به عنوان اپلیکیشنی جهت نمایش اطلاعات بیشتر درمورد بیماری همهگیر کرونا نصب میکنند ولی از آنجایی که فایل مورد نظر جاسوس افزار است، اطلاعات حساس زیادی را از گوشی کاربر جمعآوری و به سمت سرور آلوده خود ارسال میکند. به محض اجرای برنامه، فعالیت اصلی برای لحظهای راه اندازی میشود و بلافاصله صفحه برنامه بسته میشود. اما در پس زمینه، پردازهای راه اندازی میشود که به واسطه آن کدهای مخرب اجرا شده و عملیات آلودهسازی صورت میگیرد. بدافزار با سرور آلوده خود، یعنی سرور فرماندهی و کنترل (C&C) ارتباط برقرار کرده و اطلاعات حساس جمعآوری شده از گوشی کاربر را به آن ارسال میکند. آدرس این سرور آلوده، در فایل settings.xml در پوشه assets برنامه قرار دارد.
پس از برقراری ارتباط بدافزار با سرور آلوده، اطلاعات زیر را از گوشی کاربر جمعآوری و به سمت سرور خود ارسال میکند:
- در مرحله اول “phone_Id” گوشی را به دست میآورد. این شناسه برای هر گوشی اندرویدی یکتاست و برای بررسی این موضوع، در ابتدا نوع پردازنده گوشی را چک میکند که 64بیتی باشد. اگر نسخه SDK کوچکتر از ۲۱ باشد، مقدار CPU_ABI قابل بازگردانی نیست چون در این نسخه deprecated شده است. در غیر این صورت، مقدار بازگشتی نشاندهنده شناسه یکتای گوشی کاربر خواهد بود. همچنین مقدار دیگر SUPPORTED_64_BIT_ABIS را به دست میآورد که مربوط به لایههای زیرین سیستم عامل اندروید و پردازههای آن است.
- تعداد خطهای فعال برروی گوشی کاربر و همچنین شناسه سیم کارتها را به دست میآورد.
public static String GetLine1Number()
{
String str2 = ((TelephonyManager)BA.applicationContext.getSystemService("phone")).getLine1Number();
String str1 = str2;
if (str2 == null) {
str1 = "";
}
return str1;
}
public static String GetSimSerialNumber()
{
String str2 = ((TelephonyManager)BA.applicationContext.getSystemService("phone")).getSimSerialNumber();
String str1 = str2;
if (str2 == null) {
str1 = "";
}
return str1;
}
- کارخانه سازنده و مدل گوشی همراه را مشخص میکند.
- اپراتور و نوع اتصال شبکه را مشخص میکند. اطلاعاتی از قبیل LTE ،GPRS و …
public static String GetNetworkType()
{
switch (((TelephonyManager)BA.applicationContext.getSystemService("phone")).getNetworkType())
{
default:
return "UNKNOWN";
case 7:
return "1xRTT";
case 4:
return "CDMA";
case 14:
return "EHRPD";
case 2:
return "EDGE";
case 5:
return "EVDO_0";
case 6:
return "EVDO_A";
case 12:
return "EVDO_B";
case 1:
return "GPRS";
case 8:
return "HSDPA";
case 10:
return "HSPA";
case 15:
return "HSPAP";
case 9:
return "HSUPA";
case 11:
return "IDEN";
case 13:
return "LTE";
}
return "UMTS";
}
- روش مورد استفاده برای انتقال تماس صوتی را در گوشی کاربر مشخص میکند.
public static String GetPhoneType()
{
switch (((TelephonyManager)BA.applicationContext.getSystemService("phone")).getPhoneType())
{
default:
return "NONE";
case 2:
return "CDMA";
}
return "GSM";
}
- لیست اپراتورهای گوشی را برای سیم کارتهای فعال بدست میآورد. همچنین این بدافزار با استفاده از دستوراتی که از سمت سرور خود دریافت میکند، میتواند اطلاعات قربانیان را سرقت کند. این اطلاعات در دستهبندی زیر مشخص شده است:
- CP: لیست تمام مخاطبین را از دستگاه قربانی جمع آوری کرده و آنها را به سرور فرماندهی و کنترل ارسال میکند.
- Call: لیست تمام تماسهای تلفنی گرفته شده با دستگاه کاربر را جمعآوری کرده و آنها را به سرور فرماندهی و کنترل ارسال میکند.
- Info: اطلاعات حساس مربوط به دستگاه جمعآوری شده و به سرور فرماندهی و کنترل ارسال میشود. این اطلاعات شامل simOperator ،phonetype networkType ،networkOperatorName، مدل، سازنده، شماره سریال سیم کارت، شماره و آدرس wifi_ip ،IP هستند.
- MSG: نمایش یک پیام در صفحه.
- CL: یازده میلی ثانیه پس از اجرا، صفحه را میبندد و در نهایت بلافاصله پردازه برنامه را خاتمه داده و از برنامه خارج میشود.
- SMS: شماره و محتویات متنی، تمام پیامهای دریافتی کاربر(sms) را جمع آوری و چک میکند و به سمت سرور فرماندهی و کنترل ارسال میکند.
public static _message[] _parsesmsintent()
throws Exception
{
Object localObject2 = new IntentWrapper();
((IntentWrapper)localObject2).Initialize("android.provider.Telephony.SMS_RECEIVED", "");
Object localObject1 = new _message[0];
int j = localObject1.length;
int i = 0;
while (i < j)
{
localObject1[i] = new _message();
i += 1;
}
if (!((IntentWrapper)localObject2).HasExtra("pdus")) {
return (_message[])localObject1;
}
Object localObject3 = new Object[0];
j = localObject3.length;
i = 0;
while (i < j)
{
localObject3[i] = new Object();
i += 1;
}
localObject3 = new Reflection();
Object[] arrayOfObject = (Object[])((IntentWrapper)localObject2).GetExtra("pdus");
if (arrayOfObject.length > 0)
{
localObject2 = new _message[arrayOfObject.length];
j = localObject2.length;
i = 0;
while (i < j)
{
localObject2[i] = new _message();
i += 1;
}
j = arrayOfObject.length;
i = 0;
for (;;)
{
localObject1 = localObject2;
if (i > j - 1) {
break;
}
((Reflection)localObject3).Target = ((Reflection)localObject3).RunStaticMethod("android.telephony.SmsMessage", "createFromPdu", new Object[] { arrayOfObject[i] }, new String[] { "[B" });
localObject2[i].Body = BA.ObjectToString(((Reflection)localObject3).RunMethod("getMessageBody"));
localObject2[i].Address = BA.ObjectToString(((Reflection)localObject3).RunMethod("getOriginatingAddress"));
i += 1;
}
}
return (_message[])localObject1;
}
روش مقابله و پاکسازی سیستم
برای اطمینان خاطر از عدم آلودگی دستگاه، آنتی ویروس پادویش را نصب و فایل پایگاه داده آن را بهروز نگه دارید و اسکن آنتیویروس را انجام دهید.
روشهای پیشگیری از آلوده شدن گوشی:
۱. از دانلود و نصب برنامه از منابع و مارکتهای موبایلی نامعتبر خودداری کنید.
۲. هنگام نصب برنامههای موبایلی، به مجوزهای درخواستی دقت کنید.
۳. از فایلها و اطلاعات ذخیره شده در گوشی، پشتیبانگیری مداوم انجام دهید.
۴. از نسخههای غیررسمی برنامهها استفاده نکنید. برنامههایی مانند تلگرام و اینستاگرام نسخههای غیررسمی زیادی دارند و بیشتر آنها از طریق کانالهای تلگرامی انتشار مییابند.