کمیته رکن چهارم – آسیبپذیری اندروید به نفوذگران اجازه میدهد تا بدون تغییر امضاءها، داخل برنامهها بدافزار تزریق کنند.
میلیونها دستگاه اندرویدی در معرض خطر جدی یک آسیبپذیری بحرانی جدید قرار دارند که این آسیبپذیری به مهاجمان اجازه میدهد که برنامههای قانونی نصب شده در تلفن همراه هوشمند شما را به طور مخفیانه با نسخهی مخرب خود بازنویسی کنند.
این آسیبپذیری به نام Janus، به مهاجمان این امکان را میدهد که کد برنامههای اندرویدی را بدون تحت تاثیر قرار دادن گواهینامههای تایید امضاء تغییر دهند، و در نهایت به آنها اجازه میدهد تا بهروزرسانی مخرب برنامههای قانونی را که همانند برنامههای اصلی به نظر میرسند و کار میکنند، توزیع کنند.
این آسیبپذیری (CVE-۲۰۱۷-۱۳۱۵۶) توسط پژوهشگران امنیتی شرکت امنیتی تلفنهمراه GuardSquare در تابستان امسال کشف شد و به گوگل گزارش شد و به عنوان بخشی از بولتن امنیتی ماه دسامبر اندروید، توسط گوگل وصله شد.
با این حال، مسألهی نگرانکننده این است که بیشتر کاربران اندروید طی چند ماه آینده تا زمانی که سازندگان دستگاه آنها بهروزرسانی سفارشی برای آنها منتشر کنند، این وصلهها را دریافت نخواهند کرد، ظاهراً تعداد بسیاری از کاربران تلفنهمراه هوشمند در مقابل حملات نفوذگران آسیبپذیر هستند.
این آسیبپذیری، برنامههایی را که از امضاء APK v۱ نصبشده در دستگاههایی با سامانهعامل اندروید نسخهی ۵ و ۶ استفاده میکنند، تحت تاثیر قرار میدهد.
چگونه آسیبپذیری Janus اندروید کار میکند؟
این آسیبپذیری به روشی که اندروید نصب APK برخی برنامهها را مدیریت میکند، مقیم میشود، و بدون تحت تاثیر قرار دادن امضاء برنامه، امکان اضافه کردن کدهای اضافی در یک پروندهی APK را میدهد.
قبل از ارائهی توضیحات بیشتر، باید برخی از اصول اولیه را در مورد یک پروندهی APK توضیح داده شود.
یک پروندهی APK یک نوع پروندهی آرشیو است، درست مانند پروندهی زیپ، که شامل کد برنامه، منابع، داراییها، امضاءها، گواهینامهها و پروندهی manifest است.
نسخههای قبلتر سامانهعامل نسخهی ۵ و ۶ اندروید نیز از یک ماشین مجازی فرآیند پشتیبانی میکنند که به اجرای آرشیوهای APK حاوی یک نسخهی کامپایلشدهی کد برنامه و پروندهها که با قالب پروندهی DEX (Dalvik EXecutable) فشرده شدهاند، کمک میکند.
زمانی که یک برنامهی اندروید یا بهروزرسانی آن نصب میشود، دستگاه شما اطلاعات سرآیند APK را بررسی میکند تا در صورتی که آرشیو حاوی کد پروندههای فشردهشدهی DEX باشد، مشخص شود.
اگر سرآیند مشخص کند که آرشیو APK حاوی پروندههای DEX است، ماشین مجازی فرآیند کد را تجزیه میکند و آن را اجرا میکند. در غیر اینصورت، کد را مانند یک پروندهی APK معمولی اجرا میکند.
به نظر میرسد که یک آرشیو APK بدون اینکه اعتبار و امضاءها را تحت تاثیر قرار دهد، میتواند حاوی پروندههای DEX باشد و همزمان کد برنامهی معمولی را نیز داشته باشد.
پژوهشگران متوجه شدند که این قابلیت اضافه کردن کدهای اضافی که به دلیل عدم وجود بررسی یکپارچگی پرونده است، میتواند به مهاجمان اجازه دهد که کد مخرب کامپایلشده در فرمت DEX را به یک آرشیو APK حاوی کد قانونی با امضاءهای معتبر اضافه کند، و در نهایت فرآیند نصب برنامه را فریب دهد تا بدون اینکه شناسایی شود، کد را در دستگاه هدف اجرا کند.
به عبارت دیگر، نفوذگران نیازی به تغییر کد برنامههای قانونی (که امضاءها را نامعتبر میسازد) ندارند و به جای آن، این آسیبپذیری به نویسندگان بدافزار اجازه میدهد که فقط برخی خطوط کد مخرب اضافی را به برنامهی اصلی اضافه کنند.
سناریوهای حمله
پس از ایجاد نسخههای مخرب اما معتبر برنامههای قانونی، نفوذگران میتوانند با استفاده از حاملهای مختلف حمله، از جمله هرزنامهها، فروشگاههای برنامهی شخص ثالث که برنامهها و بهروزرسانیهای جعلی ارائه میدهند، مهندسی اجتماعی، و حتی حملات مرد میانی آنها را توزیع کنند.
بنا به گفتهی پژوهشگران «ممکن است برخی کاربران به راحتی فریب بخورند، زیرا این برنامه میتواند دقیقاً مانند برنامهی اصلی به نظر برسد و امضاء درست و مناسبی داشته باشد.»
حملهی مرد میانی بسیار جالب است، زیرا میتواند به مهاجمان اجازه دهد که برنامههایی را که برای دریافت بهروزرسانیهای آن از طریق یک اتصال رمزنگارینشدهی HTTP طراحی شدهاند، به زور نصب کنند.
شرکت GuardSquare تشریح کرد: «هنگامی که کاربر بهروزرسانی یک برنامه را بارگیری می کند، زمان اجاری اندروید امضاء آن را با امضاء نسخهی اصلی مقایسه میکند. اگر امضاءها مطابقت داشته باشند، زمان اجرای اندروید بهروزرسانی را نصب میکند. برنامهی بهروزرسانیشده مجوزهای برنامهی اصلی را به ارث میبرد. بنابراین، مهاجمان میتوانند از آسیبپذیری Janus برای گمراه کردن فرآیند بهروزرسانی استفاده کنند و یک کد تاییدنشده با مجوزهای قدرتمند نصبشده در دستگاه کاربران ناآگاه را دریافت کنند.»
این شرکت امنیتی افزود: « ابزارهای مهندسی معکوس معمولی کد تزریقشده را برای متخصصان نمایش نمیدهند. کاربران همیشه هنگام بارگیری برنامهها و بهروزرسانیها باید مراقب باشند.»
از آنجا که این آسیبپذیری اندروید ۷ و آخرین نسخه را که از امضاء ۲v APK پشتیبانی میکند، تحت تاثیر قرار نمیدهد، به کاربرانی که نسخههای قدیمیتر اندروید را اجرا میکنند، به شدت توصیه میشود که سامانه عامل دستگاه خود را ارتقاء دهند.
بسیار تاسفبار است، اما در صورتی که سازندهی دستگاه شما وصلههای امنیتی و یا آخرین نسخهی اندروید را ارائه ندهد، برای اینکه خطر نفوذ به دستگاه شما به حداقل برسد، نباید برنامهها و بهروزرسانیها را از منبعی جز فروشگاه گوگلپلی بارگیری و نصب کنید.
پژوهشگران همچنین به توسعهدهندگان اندروید توصیه میکنند که همیشه امضاء نسخهی v۲ را اعمال کنند تا اطمینان یابند که برنامههای آنها نمیتوانند اعمال نفوذ و دستکاری کنند.
منبع : news.asis.io