WPS Officeچندین برنامه محبوب اندرویدی موجود در فروشگاه Google Play در معرض آسیب‌پذیری مرتبط با پیمایش مسیر با نام حمله Dirty Stream هستند که می‌تواند توسط یک برنامه مخرب برای بازنویسی فایل‌های دلخواه در فهرست اصلی برنامه آسیب‌پذیر (WPS Office) مورد بهره‌برداری قرار گیرد.

Dimitrios Valsamaras از تیم Microsoft Threat Intelligence در گزارشی که روز چهارشنبه ۱ می ۲۰۲۴ منتشر شد گفت[۱]: پیامدهای این الگوی آسیب‌پذیری شامل اجرای کد دلخواه و سرقت توکن، بسته به اجرای برنامه است.

بهره‌برداری موفقیت‌آمیز می‌تواند به مهاجم اجازه دهد تا کنترل کامل رفتار برنامه را در دست بگیرد و از توکن‌های سرقت شده برای دسترسی غیرمجاز به حساب‌های آنلاین قربانی و سایر داده‌ها استفاده کند.

دو تا از برنامه‌هایی که در برابر این مشکل آسیب‌پذیر بودند به شرح زیر هستند:

  • مدیریت فایل شیائومی (mi. Android.globalFileexplorer) – بیش از ۱ میلیارد نصب
  • WPS Office (cn.wps.moffice_eng) – بیش از ۵۰۰ میلیون نصب

درحالی‌که اندروید جداسازی را با اختصاص داده‌ها و فضای حافظه اختصاصی به هر برنامه پیاده‌سازی می‌کند، چیزی که ارائه‌دهنده محتوا نامیده می‌شود را برای تسهیل اشتراک‌گذاری داده‌ها و فایل بین برنامه‌ها به شیوه‌ای ایمن ارائه می‌دهد. اما نظارت‌های اجرایی می‌تواند دورزدن محدودیت‌های خواندن/نوشتن در فهرست اصلی برنامه را امکان‌پذیر کند.

Valsamaras گفت: «این مدل مبتنی بر ارائه‌دهنده محتوا، مکانیزم اشتراک‌گذاری فایل را ارائه می‌کند که به‌خوبی تعریف شده و به یک برنامه کاربردی امکان می‌دهد فایل‌های خود را با سایر برنامه‌ها به روشی ایمن و با کنترل دقیق به اشتراک بگذارد.»

بااین‌حال، ما اغلب با مواردی مواجه شده‌ایم که برنامه مصرف‌کننده محتوای فایلی را که دریافت می‌کند تأیید نمی‌کند و از همه نگران‌کننده‌تر، از نام فایل ارائه‌شده توسط برنامه کاربردی برای cache کردن فایل دریافتی در فهرست اطلاعات داخلی برنامه مصرف‌کننده استفاده می‌کند.

WPS Office

هنگامی که یک برنامه ارائه‌دهنده یک نسخه مخرب کلاس FileProvider[2] را به‌منظور فعال‌کردن اشتراک فایل بین برنامه‌ها اعلام می‌کند، این مشکل می‌تواند عواقب جدی داشته باشد و در نهایت باعث شود برنامه مصرف‌کننده فایل‌های مهم را در فضای داده خصوصی خود بازنویسی کند.

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

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

سناریوی دیگر شامل برنامه‌هایی است که کتابخانه‌های بومی را از فهرست داده‌های خود بارگیری می‌کنند (به‌جای «/data/app-lib»)، در این صورت یک برنامه سرکش می‌تواند از ضعف فوق‌الذکر برای بازنویسی کتابخانه‌ای بومی با کد مخرببهره‌برداریی کند که هنگام بالا آمدن کتابخانه اجرا شود.

پس از افشای مسئولانه، هر دو شیائومی و WPS Office این مشکل را از فوریه ۲۰۲۴ اصلاح کردند. با این حال، مایکروسافت گفت که این مشکل می‌تواند شایع‌تر باشد و از توسعه‌دهندگان می‌خواهد برنامه‌های خود را برای مشکلات مشابه بررسی کنند.

گوگل همچنین راهنمایی‌های خود را در این مورد منتشر کرده است و از توسعه‌دهندگان خواسته است که نام فایل ارائه شده توسط برنامه سرور را به‌درستی مدیریت کنند.

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

 

منابع

[۱] https://www.microsoft.com/en-us/security/blog/2024/05/01/dirty-stream-attack-discovering-and-mitigating-a-common-vulnerability-pattern-in-android-apps

[۲] https://developer.android.com/reference/androidx/core/content/FileProvider

[۳] https://developer.android.com/guide/components/intents-filters#Types

[۴] https://developer.android.com/privacy-and-security/risks/untrustworthy-contentprovider-provided-filename

[۵] https://thehackernews.com/2024/05/popular-android-apps-like-xiaomi-wps.html