جاسوسی وزارت بهداشت و وزارت ارتباطات از مردم ایران

جاسوسی وزارت بهداشت و وزارت ارتباطات از مردم ایران

NarimanGharib@


Mohammad Javad Azari Jahromi


بیش از یک ماه است که مردم کشورمون، ایران، درگیر مصیبتی بزرگ و ناراحت کننده هستند. هموطنان ما هر روز بخاطر ضعف مدیریت در بدنه‌ی نظام جمهوری اسلامی، درحال از دست دادن جان خود در سراسر ایران عزیزمان هستند. مردمی که بخاطر سنجیدن گرمای بدنشان حاضرند جان خود و دیگران را در خطر بیندازد و در صف‌های طولانی در وسط شهر گرد هم بیایند تا ببینند گرمای بدنشان چقدر است. 

از طرفی شهرها و روستاهای ایران را داریم که بخاطر موجود نبودن کیت تست کرونا تعداد زیادی از هموطنان ما جان خود را از دست می‌دهند. دلیل آن هم خیلی واضح است، خودخواهی مسئولان جمهوری اسلامی. تنها سه مرکز در کل ایران دارای کیت تست کرونا هستند که به ترتیب: مسیح دانشوری، بقیه‌الله که برای سپاه پاسداران است و انستیتو پاستور.


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


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


این‌بار اما ابتکار آقایان فراتر رفته است! این بار به بهانه‌ی ویروس کرونا با همکاری «مصطفی انوشه» که مدیریت شرکت سرزمین هوشمند را بر عهده دارد، بله همان شرکتی که هاتگرام و موبوگرام را توسعه دادند و با کمک «علیرضا.ر» اپلیکیشنی توسعه‌دادند که مثلا در عمل به مردم کمک کنند تا تست‌های اولیه را در گوشی موبایل خود انجام دهند و سپس اگر اپلیکیشن و سرور این اپ، مشخص می‌کرد که شخص به بیمارستان در رابطه با کرونا احتیاج دارد آن‌را به بیمار اعلام کند. 

Mostafa Anoosheh - Board member of SLS مصطفی انوشه



اما این تمام ماجرا نیست… 

چند روز پیش وزارت بهداشت که دوست صمیمی مردم ایران شده است و هر روز یک پیامک برای مردم ایران می‌فرستد، یک لینک دانلود اپلیکیشن برای مردم ارسال کرد: «هموطن گرامی، قبل از مراجعه به مراکز بهداشتی و درمانی، برای تشخیص احتمال ابتلای خود یا نزدیکان به ویروس کرونا، نرم افزار زیر را نصب و استفاده نمایید.» 


زمانی که شما اپلیکیشن را نصب می‌کنید، از شما می‌خواهد که شماره تلفن خود را برای ثبت و راه اندازی اپلیکیشن وارد کنید، خیلی ها از خودشون پرسیدن که چرا برای یک تست ساده باید شماره تلفن در اپلیکیشن ثبت شود. وقتی به بخش‌های مختلف می‌روید و زمانی که شما می‌خواهید همان کاری که وزارت بهداشت به شما گفته است یعنی تست و آزمایش ساده را انجام دهید، موقع ارسال اطلاعات شما، از شما اطلاعات موقعیت مکانی شما را می‌گیرد.

اینجا بود که تصمیم گرفتیم برنامه را دانلود کنیم و یک نگاه اجمالی به اون بیاندازیم که در کمال تعجب با پرمیشن‌هایی روبرو شدیم که برای دسترسی به اطلاعات دقیق جغرافیایی و وضعیت (ایستاده، خوابیده، دویدن...) کاربران بود:

برنامه مذکور علاوه بر اینکه اطلاعات تخمینی از موقعیت کاربر (COARSE_LOCATION) را دریافت می‌کند، اقدام به استفاده از GPS نیز برای تشخیص دقیق موقعیت کاربران می‌کند. (FINE_LOCATION). اما ماجرا وقتی عجیب شد که دسترسی ACTIVITY_RECOGNITION هم از سیستم عامل تلفن همراه کاربر درخواست می‌شد. این دسترسی به منظور شناسایی فعالیت کاربر نظیر نشستن، راه رفتن، دویدن و … است که معمولاً از آن در برنامه‌های کنترل فعالیت‌های ورزشی استفاده می‌شود.

به همین منظور ابتدا به کتابخانه‌های این برنامه نگاهی انداختیم، علاوه بر کتابخانه‌های معمولی مانند OkHttp که برای برقراری ارتباط با سرور از آن استفاده می‌شود و وجود آن قابل پیشبینی بود، کتابخانه Smart Location نظر ما را به خود جلب کرد:

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


در مرحله بعدی نگاهی به امضای برنامه انداختیم:

امضای برنامه به نام "Cristian Noro" ایجاد شده است (که شامل غلط املایی است) و همچین شخصی وجود خارجی ندارد و جالب‌تر اینکه وزارت ارتباطات کارمندی با این نام تا جایی که ما جستجو کردیم ندارد، اما نکته مهم تاریخ ایجاد آن است: 18 فوریه سال 2020 میلادی که برابر 29 بهمن سال 1398 شمسی، یعنی چند روز قبل از اعلام رسمی وجود کروناویروس در کشور و قبل از شروع انتخابات مجلس!

با مشاهده ادامه کد برنامه نکته‌ی دیگری که باعث تعجب شدید ما شد Obfuscation کد برنامه بود که به منظور غیر خوانا شدن کد برنامه برای بررسی و مهندسی معکوس آن انجام می‌شود. 

پس از بررسی‌های عمومی به ابتدای کد برنامه رفتیم که در آنجا آدرس‌های API (رابط کاربردی برنامه نویسی) برنامه را مشاهده کردیم.

فرمت پیاده سازی آدرس API و همچنین نام علیرضا ما را یاد فرمتی که در تلگرام طلایی و هاتگرام از آن استفاده شده بود انداخت. بنابراین اقدام به بررسی آدرس ها کردیم و دیدیم که حدس ما درست بود:


http://lh5.talagram.ir/v1/config?appVer=400&apiVer=12&slt=1451531004625&appId=3

https://api2.ac19.ir/v1/config?appVer=400&apiVer=12&slt=1451531004625&appId=3

https://api2.ac19.ir



صرف نظر از اطلاعاتی که در ادامه خواهید دید در آدرس‌هایی که در اپلیکیشن وجود داشتند یک آدرس مشکوک دیگر نیز دیدیم که مربوط به سروری بود که وزارت ارتباطات برای این اپلیکیشن فراهم کرده بود، جالب اینجاست که name server هر دو دامین متعلق به شرکت سرزمین هوشمند و آقای مصطفی انوشه بود.

ApkLab.io


ApkLab.io


Whois - Nic.ir



بررسی‌های خود را ادامه دادیم و سعی کردیم به قسمتی از کد برسیم که اقدام به ارسال اطلاعات می‌کند که به SendResultActivity رسیدیم. اطلاعات ارسالی توسط «مدلی» ارسال می‌شود که نام آن ResultData است. 

در بین اطلاعاتی که برای ارسال قرار گرفته است دو فیلد latlon و latlonUser است که lat مخفف Latitude و lon مخفف  Longitude است که مختصات جغرافیایی دقیق کاربر را شامل می‌شود، اما چرا دو فیلد برای اینکار وجود دارد؟


در برنامه یک دیتابیس متنی با فرمت json قرار داده شده است که شامل تمامی مختصات جغرافیایی استان و شهرهای ایران است.

برنامه مختصات جغرافیایی دقیق شما را در بر روی latlon ذخیره می‌کند و اگر به هر طریقی کاربر جلوی دسترسی به GPS را گرفت، با استفاده از مشخصات وارد شده توسط کاربر و دیتابیس مذکور، مختصات جغرافیایی شهر و استان را استخراج می‌کند.

در latlonUser نیز مختصات جغرافیایی شهر و استانی که شما در برنامه وارد کرده‌اید را قرار می‌دهد.

و این هم متدی است که به هنگام تغییر مکان جغرافیایی شما فراخوانی می‌شود:

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

ac19.ir


با نتیجه گیری انجام شده که بر روی بخشی از کد برنامه صورت گرفت، همانطور که مشاهده کردید، تمامی اطلاعات فردی که شما وارد کرده‌اید (مانند شماره موبایل، جنسیت، نام، قد، وزن و …) به همراه مختصات جغرافیایی دقیق شما (با دقت کمتر از ۳ متر!) و همچنین نتیجه غربالگری شما به سمت سرورهای زیر نظر بازجوی جوان فرستاده می‌شود و در نتیجه دولت پایگاه اطلاعاتی بسیار دقیقی از مختصات دقیق جغرافیایی افراد خواهد داشت که بطور مثال می‌توانند با وارد کردن شماره تلفن شما، محل دقیق شما را پیدا کنند و دوباره معلوم شد از خیلی وقت پیش می‌دانستند در ایران کرونا وجود دارد که امضای برنامه مشخصا این موضوع را به نحوی دیگر تایید می‌کند.

ضمنا فراموش نکنید که کتابخانه Smart Location که در داخل برنامه از آن استفاده شده است، نه تنها قادر به دنبال کردن مختصات جغرافیایی شماست، بلکه می‌تواند فعالیت شما (نظیر راه رفتن، نشستن، دویدن و…) را نیز شناسایی کند.


معنی دقیق «خوداظهاری» هم فهمیدیم...


virustotal:

https://www.virustotal.com/gui/file/0f73ac8839f153cf0e830554d9b34af2ea90fd6514ed3992b66a96bc9c12bb4b/detection