محققای مایکروسافت و citizenlab گزارشی هایی منتشر کردن در خصوص یه جاسوس افزار تجاری از یه شرکت اسرائیلی بنام QuaDream که با استفاده از یه زیرودی بنام ENDOFDAYS گوشی های آیفون رو هک میکرده.
معرفی شرکت QuaDream :
شرکت QuaDream یه شرکت اسرائیلی هستش که در زمینه فروش تجهیزات دیجیتالی تهاجمی به مشتریان دولتی فعالیت میکنه. قبلا یه جاسوس افزار بنام Reign داشتن که مثله بدافزار Pegasus از NSO از یسری زیرودی برای هک استفاده می کرد و با این بدافزار هم معروف شدن.
براساس گزارشات ،این شرکت مشتریانب از کشورهای مختلف از جمله سنگاپور ، عربستان ، غنا ، مکزیت ، اندونزی و مراکش داشته. همچنین در گزارش دسامبر 2022 شرکت متا، اومده بود که QuaDream از 250 اکانت برای تست قابلیت های جاسوس افزار ios و اندرویدش استفاده کرده.
شرکت QuaDream فاقد سایت هستش و فقط در شبکه های اجتماعی فعالیت داره. به کارمنداش هم گفته که از درج نام کارفرما در عناوین شبکه های اجتماعیشون خودداری کنن. محققا براساس اسناد حقوقی و سایر گزارشها ، سه بنیانگذار اون Ilan Dabelstein و Guy Geva و Nimrod Rinsky رو شناسایی کردن.
شرکت QuaDream ،یه اختلاف حقوقی با یه شرکت قبرسی بنام InReach داره ،که این اختلاف منجر به افشای فعالیت های اونا شده. از جمله اینکه QuaDream از طریق شرکت InReach محصولات خودش به خارج از اسرائیل می فروخته. البته نمیشه گفت که InReach توزیع کننده انحصاری این شرکت برای خارج از کشور بوده.
شرکت InReach در سال 2017 تاسیس شده و طبق اسناد دادگاه مقرر شده بود که 8 درصد از فروش محصولات QuaDream داشته باشه.
طبق اسناد دادگاهی افراد کلیدی این دو تا شرکت با هم ارتباط شخصی و منافع مشترک داشتن. از جمله اینکه با یه شرکتی بنام Verint و برخی آژانس های اطلاعاتی اسرائیل ارتباط داشتن.
داستان اختلافشون هم از عدم انتقال سهم 92 درصدی QuaDream توسط InReach بوده که در سال 2019 شروع شده. دادگاه هم حکم توقیف اموال InReach رو داده بود تا تکلیف مشخص بشه. در این پرونده QuaDream مدعی شده بود که InReach یسری حساب مخفی در سویس داره که مبالغ رو به اون انتقال میداده و باید مبلغ 6,079,814 دلار آمریکا بهش پرداخت کنه.
آنالیز بدافزار مرتبط با QuaDream :
محققای مایکروسافت دو نمونه بدافزار مرتبط با این شرکت که اسمش رو KingsPawn گذاشتن آنالیز و با محققای citizenlab به اشتراک گذاشتن. محققای citizenlab هم این باینری ها رو آنالیز کردن تا بتونن به IoCهای برسن که بتونن قربانی های احتمالی رو پیدا کنن.
نمونه اول به نظر یه دانلودر هستش که اطلاعات اولیه دستگاه استخراج میکنه و در ادامه پیلودهای بعدی رو دانلود و اجرا میکنه. نمونه دوم هم به نظر یه جاسوس افزار کامل هستش. نکته ای که هست هر دو نمونه دارای اشتراکاتی هم هستن از جمله در توابع باز کردن (spawn) پروسس ها. این توابع در مسیر زیر Tیه فولدری رو باز میکنن (بعدا پاکش میکنن) :
1 |
/private/var/db/com.apple.xpc.roleaccountd.staging/PlugIns/fud.appex/ |
همچنین هر دو نمونه ، JSON انکدینگ مشخصی از 40 آفست مموری کرنل رو که ارائه دهنده محل ساختارهای مختلف کرنل IOS رو که احتمالا برای عملکرد جاسوس افزار نیازه رو ، تجزیه میکنن. محققا اعلام کردن که احتمالا این انکدینگ در مراحل قبلی ایجاد شده و به هر دو نمونه داده شده.
همونطور که بالا اشاره شد نمونه اول یه دانلودر هستش و نمونه دوم یه جاسوس افزار کامل. این جاسوس افزار طیف وسیعی از عملکردها رو داره از جمله :
- ضبط تماس های تلفنی
- ضبط صدای محیط از طریق hot-mic
- گرفتن عکس از دوربین جلو و عقب
- استخراج و حدف کلیدهای فشرده دستگاه
- سرقت فریمورک Anisette گوشی و هوک کردن gettimeofday syscall برای ایجاد کدهای لاگین iCloud time-based one-time password (TOTP) برای تاریخهای دلخواه. محققا گفتن این ویژگی احتمالا برای دور زدن احرازهویت دو مرحله ای بوده تا مهاجم بتونه در تاریخ های بعدی به راحتی بتونه داده های قربانی رو از iCloud استخراج کنه.
- اجرای کوئری های SQL روی گوشی
- پاک کردن اثرات زیرودی استفاده شده برای عدم شناسایی اون
- ردیابی موقعیت مکانی دستگاه
- کار روی فایل سیستم ،مثلا جستجوی فایلهای مشخص شده توسط مهاجم
- قابلیت خود تخریبی
مسیر اصلی بدافزار در یه تابعی در نمونه دوم هستش که با XOR مبهم شده :
1 |
/private/var/db/com.apple.xpc.roleaccountd.staging/subridged |
نکته ای که هستش subridged اسم یه پروسس قانونی در IOS هستش اما این نسخه قانونی از محلی که در بالا اشاره شده اجرا نمیشه. این اسم در سایر جاسوس افزارها از جمله پگاسوس که از این مسیر استفاده میکردن ، مشاهده نشده بود.
همچنین یه تابعی در نمونه دوم هستش که از مسیر زیر یسری داده که به رشته subridged اشاره میکنن رو حذف میکنه.
1 |
/private/var/root/Library/Caches/locationd/clients.plist |
در نمونه دوم توابعی رو کشف کردن که رویدادها رو از تقویم IOS پاک میکرده. این توابع رو با نام CCF1 و CCF2 مشخص کردن. عمل پاکسازی زمانی اجرا میشه که از سرور C2 دستورش بگیرن. دستور پاکسازی حاوی یه ایمیل هستش که محدوده پاکسازی رو مشخص میکنه.
CCF1 از طریق EventKit همه رویدادهای تقویم رو که 728 روز پیش ایجاد شدن رو لیست میکنه و ایمیل ارسالی از مهاجم رو توشون بررسی میکنه ، اگه موردی پیدا کنه از طریق EKEventStore removeEvent:span:commit:error پاک میکنه.
CCF2 ، دیتابیس SQLite که اطلاعات رویدادهای تقویم توش ذخیره میشن و در مسیر /var/mobile/Library/Calendar/Calendar.sqlitedb قرار دارن رو از طریق پارامترهای زیر باز میکنه :
1 |
file:%s?cache=shared&mode=rwc&_journal_mode=WAL&_timeout=10000 |
بعدش بررسی میکنه که آیا ایمیل ارسالی در جدول Participant وجود داره یا نه :
1 |
SELECT DISTINCT identity_id FROM Participant WHERE email = "%s" |
اگه باشه از طریق کوئری زیر اونارو حذف میکنه :
1 2 3 |
DELETE FROM Identity WHERE ROWID = %d; DELETE FROM CalendarItemChanges WHERE record IN ( SELECT owner_id FROM ParticipantChanges WHERE email = "%[2]s" ); DELETE FROM ParticipantChanges WHERE email = "%[2]s"; |
و در نهایت دیتابیس رو با دستورات زیر تمییز کاری میکنه :
1 2 |
VACUUM; PRAGMA wal_checkpoint(TRUNCATE); |
همون دستوری که باعث حذف کردن رویدادهایی که حاوی ایمیل بودن میشد ، برای پاک کردن اون آدرس از فایل زیر هم استفاده میشه :
1 |
/private/var/mobile/Library/Preferences/com.apple.identityservices.idstatuscache.plist |
در نسخه های IOS 14.6 و قبل از اون ، این فایل مواردی که از طریق سرویس های مختلف اپل مثله iMessage با اکانت iCloud ارتباط داشتن رو ثبت میکرد. از نسخه 14.7 به بعد این فایل حذف شده.
محققا گفتن بعد از اینکه یه جاسوس افزار از رو یه دستگاهی حذف میشه ، یسری آثار از خودش میزاره که محققا بهش Ectoplasm Factor میگن. این موارد رو از گزارش حذف کردن چون اعلام کردن که از این طریق میتونن این جاسوس افزار در آینده ردیابی کنن. این آثار در نمونه دوم بوده.
فرایند استخراج داده ها هم از طریق درخواستهای HTTPS POST بوده. ماژول استخراج امکان استفاده از گواهی های ROOT سفارشی رو برای ارتباط HTTPS داشته که نشون دهنده گواهی های self-signed هستش. همچنین محققا گفتن که استخراج داده ها رو به سرورهایی با گواهی self-signed Kubernetes هم مشاهده کردن.
فارنزیک هدف:
محققا شواهدی رو پیدا کردن که یه اکسپلویت زیرودی ، زیروکلیک در IOS 14 در این جاسوس افزار استفاده شده که محققا اسمش ENDOFDAYS گذاشتن.
محققا در سال 2021 دو مورد در آمریکای شمالی و آسیای مرکزی مشاهده کردن که پروسس مخرب subridged روشون اجرا شده. دستگاههای قربانی ها نسخه 14.4 و 14.4.2 بودن که در اون زمان آخرین نسخه IOS بودش. اپل در 23 نوامبر 2021 ، 20 آذر 1400 ، به قربانی های Pegasus و QuaDream هشدارهایی رو ارسال کرده بود.
در یکی از این موارد محققا تونستن به فایل Calendar.sqlitedb دسترسی داشته باشن و از طریق CalDAV به تقویم iCloud کاربر وصل بشن. فایل Calendar.sqlitedb یه رویداد مشکوکی رو نشون میده که در سال 2021 توسط کاربری با ایمیل زیر به تقویم اضافه شده :
1 |
[REDACTED1]@icloud.com |
از طریق CalDAV یه فایل ics در iCloud calendar بدست آوردن. این فایل حاوی یسری تگ های باز و بسته CDATA بوده که نشون دهنده استفاده از تکنیک XML escape بوده. ( در شکل زیر هایلایت شدن)
این فرایندهارو دوباره در یه نمونه دیگه در سال 2021 هم مشاهده کردن اما این بار از یه ایمیل دیگه :
1 |
[REDACTED2]@icloud.com |
محققا معتقدند که این باز و بسته کردن تگهای CDATA ، احتمالا برای فعال کردن شرایطی بوده که مورد نظر مهاجمین بوده. وقتی یه کاربری به یه رویداد iCloud calendar دعوت میشه، APN (the Apple Push Notification Service) یه پیامی با عنوان com.me.cal به گوشی کاربر ارسال میکنن. پیام شامل DSID (Directory Services Identifier) کاربر هستش. این پیام به پروسس dataaccessd هدایت میشه و منجر به WebDAV sync (RFC 6578) با سرور iCloud calendar برای بدست آوردن لیستی از URL های رویدادهای جدید میشه. بعدش پروسس dataaccessd ، این URLهارو در یه CALDAV:calendar-multiget REPORT (RFC 4791) به سرور iCloud calendar بر میگردونه و سرور با داده های داخل تگ های CDATA در عناصر calendar-data XML پاسخ میده.
1 2 3 4 5 6 7 8 9 10 |
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <multistatus xmlns="DAV:"> <response xmlns="DAV:"> <href>/path/to/event.ics</href> <propstat> <prop> <getetag xmlns="DAV:">"..."</getetag> <calendar-data xmlns="urn:ietf:params:xml:ns:caldav"> <![CDATA[BEGIN:VCALENDAR ... |
بنابراین به نظر مهاجم با باز و بستن کردن تگ ها منجر به تزریق داده های XML به پاسخ شدن. محققا نتونستن این داده های XML رو بدست بیارن چون با بررسی فیلدهای SEQUENCE و LAST-MODIFIED متوجه شدن که این داده ها بروز شدن.
محققا اعلام کردن که همه رویدادهای تقویم رو میشه با اجرای کوئری زیر در فایل Calendar.sqlitedb شناسایی کرد :
1 |
SELECT * FROM calendaritem WHERE summary="Meeting" AND description="Notes"; |
رویدادهای مخرب تقویم یسری ویژگی یکسانی رو هم داشتن. مثلا فایل ics حاوی دو رویداد بود که به یه تاریخی در گذشته اشاره می شدن و به اختلال خورده بودن. در IOS 14 اگه شما دعوتنامه ای رو که تاریخش گذشته باشه بگیرید، بدون هیچ درخواست و اعلانی پردازش شده و به تقویم اضافه میشه اما در این موارد دچار اختلال شده بود.
یه نکته دیگه اینکه محققا در سال های 2019 و 2020 یسری دستگاه رو پیدا کردن که فایل subridged روشون اجرا شده اما رویداد تقویم مرتبط با ENDOFDAYS توشون نبوده و تنها این مورد از ژانویه 2021 تا نوامبر 2021 مشاهده شده. برهمین اساس این محققا معتقدند که ENDOFDAYS تنها IOS 14 رو هدف قرار میداده.
حداقل یکی از اهدافی که اپل بهش هشدار داده ، تست QuaDream مثبت داشته و Pegasus منفی.
همچنین محققا یه نمونه سفارشی از جاسوس افزار QuaDream رو مشاهده کردن. در این نمونه پروسس duetexpertd یه نمونه WebKit رو لوود میکرده که احتمالا برای هدایت قربانی به یه URL مخرب برای اکسپلویت بیشتر و اجرای جاسوس افزار مورد استفاده قرار می گرفته.
بطور خلاصه محققا کلا 5 تا قربانی رو شناسایی کردن که توسط این جاسوس افزار یا اکسپلویتش آلوده یا هدفگیری شدن. که از این موارد ، دو مورد رو با اطمینان بالا و سه مورد رو با اطمینان متوسط به این جاسوس افزار نسبت دادن.
Case | Evidence that Supports QuaDream Infection | Timeframe | Confidence |
---|---|---|---|
C1 |
|
Unknown | Medium |
C2 |
|
2019 | Medium |
C3 |
|
2019, 2020 | Medium |
C4 |
|
2021 | High |
C5 |
|
2021 | High |
اسکن اینترنت برای سرورهای QuaDream :
براساس IOCهایی که بدست آوردن، محققا تونستن 600 سرور و 200 دامنه مرتبط با این جاسوس افزار بین اواخر 2021 تا اوایل 2023 ، در اینترنت شناسایی کنن. برخی از این سرورها برای دریافت داده ها از قربانیان و برخی برای اجرای اکسپلویت one-click مرورگر QuaDream استفاده شدن.
محققا گفتن که در برخی موارد از این سرورها تونستن به اپراتورها هم برسن و همونطور که در شکل بالا مشاهده میکنید ، این سرورها در کشورهای اسرائیل ، امارات ، بلغارستان ، چک ، مجارستان ، غنا ، مکزیک ، رومانی ، سنگاپور و ازبکستان بودن.
در بین این کشورها، امارات و مکزیک و مجارستان به استفاده از جاسوس افزارها برای هدف قرار دادن مدافعان حقوق بشر و روزنامه نگاران معروف هستن. برای اسرائیل هم محققا نتونستن تایید کنن که این سرورها مرتبط با دولت اسرائیله یا ماله خود شرکته. اما خود اسرائیل هم از جاسوس افزارها برای هدف قرار دادن افراد مرتبط با حقوق بشر فلسطینی ها و فعالان سیاسی داخلی استفاده میکنه. ازبکستان هم پرونده نقض حقوق بشر داره و سنگاپور هم حق حریم خصوصی رو به رسمیت نمی شناسه. وضعیت این کشورها و شناسایی سرورها در اونها ، میتونه نگران کننده باشه.
محققای Citizen Lab در 7 آوریل 2022 ایمیلی به Vibeke Dank مشاور حقوقی QuaDream ارسال کردن و در خصوص اینکه فعالیتهاشون موجب نقض حقوق بشر و سوء استفاده از برنامه های نظارتی میشه ، سوالاتی رو مطرح کردن که تا زمان نگارش گزارششون ، پاسخی دریافت نکردن.
در نهایت اینکه محققا از رشد جاسوس افزارهای تجاری ابراز نگرانی کردن و خواستار قوانینی برای محدود کردن فعالیتهای مخرب اونا کردن.