Установено е, че смартфони от няколко производители като LG, OnePlus, Huawei, Xiaomi изпускат информация за процеса на приложения. Ето какво означава това.
Използва се мобилната операционна система Android на над 2 милиарда устройства всеки месец както от редовни потребители, така и от технологични ентусиасти. Въпреки че броят на хората, които отключват буутлоудъра и руутват своите смартфони, е относително малък, когато в сравнение с общата популация от потребители на Android, все още има много от нас във форуми като XDA и Reddit. Magisk е незаменим инструмент за бърникащата общност. Той осигурява безсистемен root достъп и има инструменти като MagiskHide, за да даде възможност на потребители с root права да продължат да използват приложенията, игрите и услугите, на които се радват, без ограничения. Въпреки това, популярна аниме игра умело злоупотребява с уязвимост на сигурността на системата, за да заобиколи анти-рут откриването на Magisk. Ето как работи това и кои устройства са засегнати от тази уязвимост на сигурността.
- Една игра е използвала грешка, за да открие дали дадено устройство е руутнато. Ако устройството е руутнато, играта блокира потребителя да играе.
- Грешката позволява на приложението да чете състоянието на други приложения в паметта, без да са необходими специални разрешения. Грешката не позволява на приложенията да крадат данни от други приложения. Грешката не е тежка и е сравнително безвредна.
- Google вече е наясно на проблема и са актуализирали своите инструменти за тестване, за да се уверят, че всички устройства са защитени.
Заден план
Популярна аниме игра, наречена Fate/Grand Order, блокира опитите на руутнати потребители да играят играта. XDA признат разработчик topjohnwu, водещият разработчик на Magisk, преди това откри начин за да заобиколи откриването на root на Fate/Grand Order, но решението му не работеше на неговия OnePlus 6 въпреки всичките му усилия. Решен да не се отказва, разработчикът анализира Fate/Grand Order, за да разбере как все още открива root на неговото устройство OnePlus. Както той обяснява в своя Среден пост, това го доведе до откриването на уязвимост в сигурността, с която Fate/Grand Order очевидно злоупотребява, за да продължи да открива root достъп на устройства OnePlus.
Цена: Безплатно.
4.
Procfs и Android
В Unix-базирани операционни системи има специална файлова система, наречена "procfs", съдържаща информация за процеси (помислете за приложения), като използването на тяхната памет (помислете за RAM), състояние (дали процесът работи, спане и др.). В повечето базирани на Unix операционни системи потребителят и приложенията имат лесен достъп до procfs, за да видят какви видове приложения и услуги се изпълняват на тяхната система (мислете за това като диспечера на задачите на Window.) Въпреки това, Google започна да блокирайте достъпа до procfs започвайки от Android 7.0 Nougat. Преди Android Nougat, приложения като SystemPanel можеха да събират данни за това кои приложения се изпълняват, без да се нуждаят от специални разрешения. След Android Nougat приложенията трябва да използват API като Статистика за използване или AccessibilityService, като и двете са затворени от разрешения, които трябва да бъдат предоставени от потребителя.
Цена: Безплатно.
4.2.
Google не позволява на приложенията да четат състоянието на други приложения чрез procfs, като монтира /proc с флаг "hidepid=2." Чрез монтиране на procfs с hidepid=2, приложенията могат да виждат само състоянието на своя собствен процес. По този начин едно приложение ще трябва да използва приетите API като UsageStats или AccessibilityService, за да получи информация какви приложения и услуги се изпълняват на устройството.
Уязвимост
Ами ако procfs не е монтиран с hidepid=2? Е, тогава приложенията ще могат свободно да четат състоянието на други приложения (и точки на монтиране), работещи в системата, без да се нуждаят от допълнителни разрешения*. Google монтира procfs с hidepid=2 на собствените си устройства, но не налага това изискване на устройства от други производители. Няколко устройства от LG, OnePlus, Huawei/Honor, Xiaomi и други не са монтирали procfs с hidepid=2, от което се възползват приложения като Fate/Grand Order, за да открият дали Magisk присъства на устройството.
*Промяна в сигурността в Android 9 Pie не позволява на приложенията да четат информация извън техния собствен „SELinux контекст“, тъй като всяко приложение вече е изолирано индивидуално. SELinux е модул на ядрото, който действа като своеобразен пазач, блокирайки достъпа на приложения и услуги до файлове, които не би трябвало да имат. Контекстът на SELinux е като етикет за файл, който има информация като потребител и роля. Приложенията със същия SELinux контекст могат да четат информация за други приложения в същия контекст, ако флагът hidepid=2 не е активиран за procfs. На устройства, работещи с Android 9 Pie, само приложения, които са създадени, насочени към Android Pie, ще имат новите промени на Android Pie в SELinux, които се прилагат към тях. Приложенията, които са насочени към Android 8.1 Oreo или по-стари, ще използват старите правила на SELinux, позволявайки им достъп информация за процеси в същия SELinux контекст, стига procfs да е монтиран без hidepid=2. Повечето приложения, работещи на вашето устройство, трябва поне да са насочени към Android 8.0 Oreo благодарение на нови изисквания на Google Play, но много от тях все още не са актуализирани, за да са насочени към Android Pie.
Следните екранни снимки показват последствията от немонтирането на procf с hidepid=2.
колко лошо е това
Ако трябва да сравним тази уязвимост на системата с експлойти като Fusée Gelée, Блуборн, КРАК, и Стопяване/Призрак, тогава този бъг бледнее в сравнение. Приложенията не могат да използват това, за да получат root достъп или да откраднат вашите пароли. Вашите банкови сметки са в безопасност, както и вашите кредитни карти. Най-лошото, което едно приложение може да направи, е да разбере дали друго приложение работи на вашето устройство, което има много ограничени употреби. Не забравяйте, че това е стандартно поведение на много GNU/Linux дистрибуции и че Google едва наскоро започна да блокира достъпа до procfs с Android Nougat. Този бъг позволява на приложенията да заобиколят нуждата от определени разрешения за наблюдение на други процеси, но те все още не могат да пробият пясъчната среда на Android и да откраднат данни от други приложения. Независимо от това, това е нежелано поведение и нарушава функцията за поверителност на Android, така че трябва да бъде коригирано.
Моето устройство засегнато ли е?
Ето списък с устройства, за които установихме, че не монтират procfs с hidepid=2:
OEM |
устройство |
Версия на Android |
procfs течове |
---|---|---|---|
Asus |
ZenFone 5Z |
Android 8.0 Oreo |
да |
BlackBerry |
КЛЮЧ2 |
Android 8.0 Oreo |
Не |
Съществено |
PH-1 |
Android 9 Pie |
Не |
Pixel 2 |
Android 9 Pie |
Не |
|
Pixel 3 |
Android 9 Pie |
Не |
|
Pixel 3 XL |
Android 9 Pie |
Не |
|
чест |
Магия 2 |
Android 9 Pie |
да |
HTC |
U12+ |
Android 8.0 Oreo |
да |
Huawei |
Mate 20 X |
Android 9 Pie |
да |
LG |
G7 ThinQ |
Android 8.0 Oreo |
да |
LG |
V40 ThinQ |
Android 8.1 Oreo |
да |
Motorola |
Мото G4 |
Android 8.1 Oreo |
Не |
Nokia |
7.1 |
Android 8.1 Oreo |
Не |
OnePlus |
6 |
Android 8.1 Oreo/Android 9 Pie |
да |
OnePlus |
6T |
Android 9 Pie |
да |
Razer |
Телефон 2 |
Android 8.1 Oreo |
да |
Samsung |
Galaxy Note 8 |
Android 8.0 Oreo |
Не |
Samsung |
Galaxy Note 9 |
Android 8.1 Oreo/Android 9 Pie |
Не |
Samsung |
Galaxy S7 |
Android 8.0 Oreo |
Не |
Samsung |
Galaxy S8 |
Android 8.0 Oreo |
Не |
Samsung |
Galaxy S9 |
Android 9 Pie |
Не |
Samsung |
Galaxy S9+ (Exynos) |
Android 8.0 Oreo |
да |
Sony |
Xperia XZ1 |
Android 9 Pie |
Не |
Xiaomi |
Mi Mix 2S |
Android 9 Pie |
да |
Xiaomi |
POCO F1 |
Android 8.1 Oreo |
да |
Как да проверите дали вашето устройство е засегнато
Доста лесно е да проверите дали вашето устройство изпуска информация за процеса към други приложения (с други думи, procfs не се монтира с hidepid=2). Докато можете да използвате команди на обвивката, както направихме ние, можете също да проверите с помощта на приложение, разработено от topjohnwu. Неговото приложение също ви позволява да монтирате отново procfs с hidepid=2, ако телефонът ви е руутнат.
Изтеглете ProcGate
Ще има ли поправка?
Да, това ще бъде поправено. Google вече ще изисква всички устройства да монтират procfs с hidepid=2. Те ще наложат това чрез актуализиране пакетът за тестове за съвместимост (CTS), набор от тестове, които всички устройства трябва да преминат, за да могат да използват приложения и услуги на Google Play. Всички производители на оригинално оборудване (които искат да продават устройства с предварително инсталиран Google Play Store) трябва в крайна сметка да издадат актуализация за повторно монтиране на procfs с hidepid=2 в близко бъдеще. Тъй като устройствата OnePlus бяха първите открити с този проблем, OnePlus вече е уведомен и работи по поправка. Ще актуализираме тази статия, ако други OEM производители коментират тази грешка, но няма нужда да се чудите дали OEM на вашето устройство ще издаде актуализация. Ако искат тяхната актуализация да премине CTS, тогава трябва да поправят тази грешка.