پروژه "Magisk" topjohnwu‘ توسعه دهنده شناخته شده XDA اساساً مترادف "root" در جامعه آندروید است. یکی از اصلی ترین دلیل محبوبیت آن بسیار زیاد است زیرا می تواند واقعیت تغییر دستگاه کاربر را پنهان کند. با این وجود ، ممکن است Google توانایی Magig را پنهان کند تا وضعیت قفل راه انداز bootloader را از برنامه های مخفی کند.

برای ریشه کن کردن تلفن خود ، معمولاً نیاز به باز کردن قفل bootloader دارید ، که به شما امکان می دهد تصاویر بوت اصلاح شده را چشمک بزنید. این مورد نیاز است زیرا Magisk تصویر بوت را به حالت خراب کردن بوت لودر و / یا بررسی وضعیت Verified Boot تغییر می دهد. API SecurityNet Attestation API ، که بخشی از خدمات Google Play است ، استفاده می شود اگر به دستگاهی دستکاری شده برنامه را بگویید ، اگر API SafetyNet تشخیص دهد که قفل بوت لودر قفل شده است ، می تواند وضعیت را برای بررسی "یکپارچگی اساسی" بازگرداند. دستگاه هایی که این چک را شکست می دهند ، می توانند از طریق برنامه هایی که از API SafetyNet استفاده می کنند برای یکپارچگی دستگاه خارج شوند ، قفل شوند. چنین برنامه هایی معمولاً شامل برنامه های بانکی ، برنامه های پرداخت (مانند Google Pay) و بسیاری از بازی های آنلاین (مانند Pokémon Go) هستند. با این حال ، از آنجا که API SafetyNet تاکنون فقط از چک های نرم افزاری استفاده کرده است تا مشخص کند دستگاه با چه مشکلاتی روبرو شده است ، Magisk می تواند وضعیت بوت لودر و / یا Verified Boot را از این طریق که در سطح پایین تر و با امتیازات بالاتر از Google Play نصب می کند ، خراب کند. خدمات و سایر برنامه های فضای کاربر. همانطور که topjohnwu توضیح می دهد ، MagiskHide "[creates]" محیط ایمن "ایزوله شده برای فرآیند ردیابی ، و از طریق API گوگل می آید تا یک نتیجه ایمنی legal را ایجاد کند که منعکس کننده وضعیت واقعی دستگاه نیست."

اما اخیراً ، کاربران متوجه شده اند که دستگاه های قفل شده برای استفاده از قفل بوت لودر ، در صورت عدم اطمینان از یکپارچگی اساسی SafetyNet ، حتی اگر از Magisk برای وصله کردن تصویر بوت استفاده می کنند ، نقص دارند. با توجه به topjohnwu ، این امر به این دلیل است كه گوگل ممكن است تأیید كلید كلیدی در سطح سخت افزار را انجام دهد تا تأیید كند كه تصویر بوت دستکاری نشده است. به طور خاص ، این بدان معنی است که خدمات Google Play "[sends] یک گواهی کلید اصلاح نشده به سرورهای SafetyNet ، صحت قانونی بودن آن را بررسی کرده و داده های افزودنی گواهی را بررسی کنید تا بدانید آیا دستگاه شما [has] تأیید شده را برای بوت (وضعیت بوت لودر) فعال کرده است." این بدان معنی است که دیگر ممکن نیست این واقعیت را که قفل بوت لودر قفل شده است پنهان شود و این باعث می شود برنامه هایی مانند Google Pay و Pokémon Go نتوانند به طور عادی کار کنند.

همانطور که topjohnwu خاطرنشان کرد ، این تغییر به روشی که SafetyNet وضعیت باز کردن قفل راه انداز را چک می کند از طریق یک به روزرسانی سمت سرور به API SafetyNet موجود در سرویس های Google Play انجام می شود. با این حال ، هر کاربر در این بررسی های به روز شده SafetyNet ناکام نیست ، بنابراین ممکن است هنوز تایید جدید کلید در سطح سخت افزار به طور گسترده اجرا نشده باشد.

ما دیده ایم که topjohnwu بارها و بارها بر موانع فنی غلبه کرده است. Google غالباً بررسی های جدید را در SafetyNet انجام می دهد که topjohnwu سپس در Magisk کشف و عبور می کند. هر نسخه جدید اندرویدی تغییراتی در ساختار پارتیشن یا تصویر بوت ایجاد می کند و نیاز به topjohnwu برای مطالعه تغییرات و سپس پیاده سازی یک روش جدید patching است. با این حال ، حتی topjohnwu ممکن است برای یافتن گذرگاه این بار تلاش کند.

دلیل این امر این است که این بار حلق آویز شامل هک کردن سیستم عامل Trusted Exociation Environment (TEE) برای بازیابی کلید خصوصی است. با این حال ، انجام چنین کاری بسیار دشوار است زیرا نیاز به یافتن آسیب پذیری در سیستم عامل است که به گونه ای فوق العاده ایمن طراحی شده است. در واقع ، بسیاری از شرکت ها در صورت یافتن چنین آسیب پذیری ، صدها هزار دلار پرداخت می کنند. به عنوان مثال ، گوگل ، 250،000 دلار برای آسیب پذیری های اجرای کد از راه دور در محیط اطمینان قابل اعتماد پیکسل و 1000،000 دلار برای آسیب پذیری های موجود در تراشه امنیتی Titan M پرداخت می کند. حتی اگر یک کلید خصوصی به نوعی فاش شود ، بعید است که از سال بسیار استفاده شود. Google می تواند از راه دور کلید را باطل کند ، بنابراین نمی توان از آن برای تأیید صحت دستگاه ها استفاده کرد.

پس از سطح سخت افزار. تأیید کلید به طور گسترده ای برای SecurityNet اعمال می شود ، اکثر دستگاه های دارای بوت لودرهای قفل شده که دارای سیستم عامل Android 8.0 Oreo یا بالاتر هستند ، نمی توانند از بررسی صحت اساسی SafetyNet استفاده کنند. این امر به این دلیل است که کلیه دستگاههایی که با Android 8.0 Oreo یا بالاتر راه اندازی شده اند ، باید یک کلید اصلی سخت افزاری را در یک TEE پیاده سازی کنند. امروزه برخی از دستگاه ها حتی دارای ماژول های امنیتی سخت افزاری اختصاصی (HSM) هستند که با دور کردن TEE از پردازنده اصلی ، بهره برداری را حتی سخت تر می کنند. Titan M در پیکسل 4 و تراشه امنیتی جدید سامسونگ در گلکسی S20 نمونه هایی از این موارد است.

Topjohnwu همچنین توضیح می دهد که سایر راه حل های بالقوه غیرممکن یا بسیار چالش برانگیز هستند. استفاده از چارچوب Xposed برای اصلاح API SafetyNet Attestation در سرویس های Google Play احتمالاً کار نخواهد کرد زیرا "بررسی های مناسب SafetyNet نتایج را در یک سرور از راه دور تأیید می کند ، نه در دستگاه [the] که می تواند با چارچوب های تزریق کد دستکاری شود." علاوه بر این ، سرویس های Google Play بسیار مبهم هستند ، و در نتیجه ایجاد چنین ماژول Xposed در وهله اول بسیار چالش برانگیز است. فریب دادن نتیجه آزمایش SafetyNet امکان پذیر نخواهد بود زیرا پاسخ های SecurityNet "از روی سرورهای Google آمده و با کلید خصوصی Google امضا شده اند."

Google با چندین بار قابلیت تست های SecurityNet را با استفاده از کلید تاییدیه سخت افزاری سخت کرده است. اکنون. این واقعیت که آنها به مدت 3 سال از انجام این کار خودداری کردند ، به کاربران این امکان را داده است که از ماژول های ریشه و Magisk لذت ببرند بدون اینکه توانایی استفاده از برنامه های بانکی را قربانی کنند. با این حال ، به نظر می رسد که توانایی Magisk در مخفی کردن وضعیت قفل bootloader به زودی به پایان می رسد. این تغییری است که سالها انتظار آن را داشتیم ، اما ما از اینکه این کار در نهایت عملی شد ، ناراحت هستیم ما امیدواریم که Google API SafetyNet Attestation را به روز کند تا بررسی کند آیا از بررسی وضعیت استفاده می کند و از آن مبتنی بر سخت افزار استفاده می کند ، زیرا این امر به توسعه دهندگان برنامه اجازه می دهد تصمیم بگیرند که آیا می خواهند تمام کاربرانی که قفل بوت لودر را قفل کرده اند را مسدود کنند ، تصمیم بگیرند.


با تشکر از Daniel Micay (@ DanielMicay ) بخاطر ارائه مطالب خود در رابطه با این موضوع!

آیا می خواهید پست های بیشتری مانند این به صندوق ورودی شما تحویل داده شود؟ ایمیل خود را برای عضویت در خبرنامه ما وارد کنید.