info[at]nsec.ir
(+۹۸)-۳۱-۳۳۹۱۵۳۳۶

میلیون‌ها دستگاه اندرویدی تحت تأثیر آسیب‌پذیری Janus

خلاصه: میلیون‌ها دستگاه اندرویدی تحت تأثیر یک آسیب‌پذیری بحرانی به ‌نام Janus قرار دارند. این آسیب‌پذیری که با شناسه‌ی CVE-2017-13156 شناسایی می‌شود، به مهاجمان امکان تغییر کد برنامه‌های اندرویدی بدون تأثیر بر امضای آن‌ها را می‌دهد. از آن‌جایی که نسخه‌های اندرویدی ۷ و بعد از آن تحت تأثیر این آسیب‌پذیری قرار ندارند، توصیه می‌کنیم که در صورت امکان نسخه‌ی سیستم‌عامل خود را ارتقا دهید.

 

میلیون‌ها دستگاه اندرویدی اکنون در خطر جدی یک آسیب‌پذیری بحرانی قرار دارند. این آسیب‌پذیری که Janus  نام دارد با شناسه‌ی CVE-2017-13156 شناسایی می‌شود و برنامه‌هایی که از APK signature scheme v1 استفاده می‌کنند را تحت تأثیر قرار می‌دهد. نسخه‌های آسیب‌پذیر اندروید، نسخه‌ی ۵  (لالی‌پاپ) و نسخه‌ی ۶ (مارشمالو) هستند.

این آسیب‌پذیری برای مهاجمان امکان تغییر کد برنامه‌های اندرویدی بدون تأثیر بر امضای آن‌ها  را فراهم می‌کند و در‌واقع به آن‌ها امکان توزیع به‌روزرسانی مخرب برای برنامه‌های قانونی را می‌دهد.

اما نگران‌کننده‌ترین قسمت این خبر آن‌جاست که بسیاری از کاربران اندروید این وصله‌ها را برای چندماه آینده تا زمانی که سازندگان دستگاهشان به‌روزرسانی‌های سفارشی را برای آن‌ها منتشر کنند، دریافت نمی‌کنند.

این آسیب‌پذیری در روشی که اندروید برای نصب APK برخی از برنامه‌ها اتخاذ می‌کند قرار دارد و قابلیت اضافه کردن بایت‌های کد به یک فایل APK بدون تغییر دادن امضای آن را ایجاد می‌کند.

 قبل از پرداختن به نحوه‌ی کار آسیب‌پذیری ابتدا چند مفهوم پایه را شرح می‌دهیم.

یک فایل APK ، نوعی فایل شبیه به zip بوده وکد اپلیکیشن، منابع، امضاها، مجوزها و فایل manifest را شامل می‌شود. 

نسخه‌های اخیر سیستم‌عامل اندروید ۵ و ۶ یک پردازش ماشین مجازی را پشتیبانی می‌کنند که به اجرای آرشیو APK که شامل نسخه‌ی کامپایل‌شده‌ی کد برنامه و فایل‌ها، به‌صورت فشرده با فرمت فایل DEX است، کمک می‌کند.

دستگاه شما در طول نصب یک برنامه‌ی اندرویدی، اطلاعات سرآیند APK را بررسی می‌کند تا تعیین کند که آیا آرشیو شامل کد در فایل‌های فشرده‌شده‌ی DEX هست یا نه.

اگر APK شامل فایل‌های DEX باشد، پروسه‌ی ماشین مجازی کد را دیکامپایل و اجرا می‌کند، در غیر این‌صورت کد را به‌صورت یک فایل APK  عادی اجرا می‌کند.

بنابراین به‌نظر می‌رسد که آرشیو APK می‌تواند همزمان فایل‌های DEX و همچنین کد برنامه‌های عادی را شامل شود،  بدون اینکه امضا و اعتبار آن تحت تأثیر قرار گیرد.

 قابلیت اضافه‌کردن بایت‌های کد به‌خاطر عدم وجود بررسی تمامیت فایل می‌تواند به مهاجمان امکان اضافه کردن کد مخرب کامپایل‌شده در فرمت DEX به یک آرشیو APK  قانونی با  یک امضای معتبر را بدهد. به‌عبارت دیگر مهاجم نیازی به تغییر کد برنامه‌ی اصلی نداشته و به‌جای آن این آسیب‌پذیری به او امکان اضافه کردن کدهای مخرب به برنامه‌ی اصلی را می‌دهد.

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

از آن‌جایی که نسخه‌های اندروید ۷ (Nougat) و بعد از آن، از APK signature scheme v2 پشتیبانی می‌کنند، تحت تأثیر این آسیب‌پذیری قرار ندارند و به همه‌ی کاربران توصیه می‌شود که نسخه‌ی سیستم‌عامل اندروید خود را ارتقا دهند.

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