اندروید از همان روز اول از توسعه دهندگان خواست تا برنامههای تولیدی خود را Sign کنند. زمانیکه برنامهای را آپدیت میکنید، اندروید نسخه آپدیت شده برنامه را با نسخه موجود مقایسه میکند. اگر دو برنامه با هم مطابقت داشتند، نسخه آپدیت شده برنامه اجازه نصب خواهد داشت.
به این طریق، توسعه دهندگان دیگر نباید نگرانی در خصوص APK های اصطلاح شده توسط سایر توسعه دهندگان داشته باشند و کاربران هم میتوانند با خیالی آسوده نسخه آپدیت شده برنامه ها را دریافت، نصب و اجرا کنند.
GuardSquare، یک شرکت فعال در حوزه امنیت مستقر در بلژیک، امروز گزارشی در خصوص آسیب پذیری برنامههای اندرویدی منتشر کرده است. به تازگی روشی به نام ‘Janus’ به مهاجمان اجازه میدهد تا بدون نیاز به شکستن signature، بتوانند APK برنامه را تغییر داده و محتوای بیشتری به آن اضافه کنند.
معمولا اندروید سیگنچر APK فایلها را چک میکند و اگر با سیگنچر قبلی مطابقت داشت، برنامه در یک فایل DEX کامپایل شده و برای اجرا آماده میشود.
Janus در واقع فایل APK بدون تغییر را با فایل DEX ترکیب میکند و این کار تاثیری بر روی Signature برنامه نخواهد گذاشت. سیستم اندروید هم اجازه نصب این نسخه آپدیت شده از برنامه را میدهد و برنامه با استفاده از کد هِدِر DEX اجرا میشود.
مشکل کار کجاست؟ Jenus با این کار در واقع به مهاجمان اجازه میدهد تا به راحتی نسخهای جدید را با نسخه اصلی برنامه جایگزین کنند که میتواند شامل تغییراتی مانند مجوزهای دسترسی و برنامههای سیستمی و درنتیجه انتشار فایلی مخرب باشد.
لازم به ذکر است که دامنه این آسیب پذیری نسبتا محدود بوده و تنها بر برنامههای sign شده توسط نسخه اصلی مبتنی بر JAR اندروید، که با Signature Scheme v2 در اندروید 7.0 نوقا جایگزین شده اند، تاثیر خواهد گذاشت. برنامههایی که از رویه جدید sign شدن در اندروید بهره میگیرند، از این آسیب در امان هستند.
این شرکت امنیتی بلژیکی، این خطا را در تاریخ 31 ژوئن به گوگل اعلام کرد و گوگل نیز در 5 دسامبر، یک پچ امنیتی به منظور برطرف کردن این مشکل منتشر کرد. گوگل اعلام کرد که آسیب پذیریهای APKMirror نیز برطرف شده اند و بنابراین برنامههایی که با روش Jenus اصلاح شده باشند، در گوگل پلی نمایش داده نخواهند شد.
