آسیبپذیری خطرناک SMS of Death: از کار افتادن از راه دور و بدون تعامل اندروید — Zero click, silent, remote Android DoS
خلاصه
یک آسیبپذیری صفرکلیک در بخش مدیریت پیامهای اندروید به مهاجمان اجازه میدهد تنها با ارسال یک پیامک مخرب، فرآیند تلفن را از کار انداخته و حتی دستگاه را اصطلاحاً بریک کنند. گوگل این نقص را غیرامنیتی دانسته و اصلاح نکرده است.
آسیبپذیری SMS of Death چیست؟
آسیبپذیری جدیدی به نام SMS of Death کشف شده است که به مهاجم اجازه میدهد فرآیند سیستمی com.android.phone را در سیستمعامل اندروید از راه دور و بدون نیاز به هیچگونه تعامل از سوی کاربر (Zero-click) متوقف کند. این حمله تنها با استفاده از شماره تلفن قربانی انجام میشود و هیچ اعلان یا پیامی در صندوق ورودی کاربر نمایش داده نمیشود.
جزئیات فنی و ریشه مشکل
مشکل از یک خطای تبدیل نوع (Type Cast) بدون بررسی محدودهها در فایل WapPushOverSms.java سرچشمه میگیرد. هنگامی که اندروید یک پیام WAP Push دریافت میکند، طول هدر WSP را به صورت یک متغیر uintvar میخواند. این مقدار به عنوان یک long بازگردانده شده و بدون بررسی محدوده به نوع int تبدیل میشود:
int headerLength = (int) pduDecoder.getValue32();
byte[] header = new byte[headerLength];
اگر یک هدر ۵ بایتی دستکاریشده مقداری تولید کند که پس از تبدیل به int منفی شود (مثلاً -2147483648)، جاوا استثنای NegativeArraySizeException را پرتاب میکند. این خطای مدیریتنشده در ترد اصلی تلفن رخ داده و فرآیند مدیریت تماسها را متوقف میکند.
پیامدها و اثرات مخرب
- قطع تماسها: تماسهای صوتی فعال، از جمله تماسهای اضطراری، بلافاصله قطع میشوند.
- سیاهی مخابراتی: با هر بار ریستارت شدن فرآیند، دستگاه برای چند ثانیه آنتن خود را از دست میدهد.
- تکرار خودکار توسط اپراتور: پیامهای تاییدنشده مجدداً توسط اپراتور ارسال میشوند که باعث تکرار چرخه خرابی تا چند روز میشود.
- خرابی پایگاه داده SQLite: ارسال سریع و پشت سر هم این پیامها (حدود ۳۰ پیام) باعث ایجاد یک مسابقه (Race Condition) در پایگاه داده SQLite ذخیرهسازی پیامکها میشود. پایگاه داده آسیب میبیند و پس از هر بار راهاندازی مجدد، گوشی مجدداً کرش میکند.
واکنش گوگل و چالشهای بازیابی
پژوهشگران این باگ را از طریق سیستم VRP به گوگل گزارش کردند، اما تیم امنیتی اندروید طی بررسیهای متعدد آن را به عنوان یک «مسئله غیرامنیتی» (Non-Security Issue) طبقهبندی کرد و از رفع آن سر باز زد.
بازیابی گوشی آسیبدیده به دلیل خراب شدن پایگاه داده بسیار دشوار است. بازگشت به تنظیمات کارخانه (Factory Reset) نیز به تنهایی کمکی نمیکند، زیرا اپراتور موبایل دوباره پیام مخرب را ارسال میکند. تنها راه نجات این است که سیمکارت را خارج کرده و درون یک گوشی غیراندرویدی (مثل آیفون) قرار دهید تا پیامها تایید شوند و سپس دیتابیس را از طریق ADB پاکسازی کنید.
بحث و تبادل نظر در هکرنیوز
در بحثهای هکرنیوز، توسعهدهندگان از تصمیم گوگل مبنی بر رد کردن این آسیبپذیری به شدت ابراز تعجب کردند. برخی کاربران نحوه ارسال واقعی چنین بسترهایی از طریق شبکه اپراتور را زیر سوال بردند و عدهای نیز از ساخت وبسایتهای اختصاصی برای هر باگ جدید انتقاد کردند.
این مطلب بهصورت کاملاً خودکار و با هوش مصنوعی از مقالهٔ اصلی و بحث هکرنیوز تهیه شده و ممکن است خطا داشته باشد. حقوق مطلب اصلی متعلق به نویسندهٔ آن است. قوانین و گزارش مشکل