Magisk-მა შესაძლოა ვეღარ შეძლოს ჩამტვირთველის განბლოკვის დამალვა აპებიდან

Magisk-ის შემქმნელმა აღმოაჩინა, რომ შესაძლოა Google-მა დაიწყო ტექნიკის შემოწმების გამოყენება იმის დასადგენად, იყო თუ არა მოწყობილობა განბლოკილი ჩამტვირთველით.

XDA აღიარებული დეველოპერი topjohnwu"Magisk" პროექტი არსებითად გახდა "root"-ის სინონიმი Android საზოგადოებაში. მისი პოპულარობის ერთ-ერთი მთავარი მიზეზი არის ის, რომ მას შეუძლია დამალოს ის ფაქტი, რომ მომხმარებელმა შეცვალა თავისი მოწყობილობა. თუმცა, Google შესაძლოა არღვევს Magisk-ის შესაძლებლობას, დამალოს ჩამტვირთველის განბლოკვის სტატუსი აპლიკაციებიდან.

იმისათვის, რომ დაამყაროთ თქვენი ტელეფონი, ჩვეულებრივ გჭირდებათ ჩამტვირთველის განბლოკვა, რომელიც საშუალებას გაძლევთ გამორთოთ შეცვლილი ჩატვირთვის სურათები. ეს საჭიროა, რადგან Magisk ცვლის ჩატვირთვის სურათს ჩატვირთვის სტატუსზე და/ან დამოწმებული ჩატვირთვის სტატუსის შემოწმების მიზნით. Google-ის SafetyNet Attestation API, რომელიც არის Google Play Services-ის ნაწილი, გამოიყენება აპისთვის გასაგებად, მუშაობს თუ არა გაყალბებულ მოწყობილობაზე; თუ SafetyNet API აღმოაჩენს, რომ ჩამტვირთველი განბლოკილია, მაშინ ის დააბრუნებს წარუმატებლობის სტატუსს "ძირითადი მთლიანობის" შემოწმებისთვის. მოწყობილობები, რომლებიც ვერ ახერხებენ ამ შემოწმებას, შემდეგ შეიძლება დაიბლოკოს აპებიდან, რომლებიც იყენებენ SafetyNet API-ს მოწყობილობის მთლიანობის დასადგენად; ასეთი აპები, როგორც წესი, მოიცავს საბანკო აპებს, გადახდის აპებს (როგორიცაა Google Pay) და ბევრ ონლაინ თამაშს (როგორიცაა Pokémon Go). თუმცა, იმის გამო, რომ SafetyNet API ამ დრომდე იყენებდა მხოლოდ პროგრამულ შემოწმებას იმის დასადგენად, იყო თუ არა მოწყობილობა გატეხილი, Magisk-ს შეუძლია უბრალოდ გააყალბოს ჩამტვირთველი და/ან დადასტურებული ჩატვირთვის სტატუსი, რადგან ის დაყენებულია უფრო დაბალ დონეზე და უფრო მაღალი პრივილეგიებით, ვიდრე Google Play Services და სხვა მომხმარებლის სივრცე აპლიკაციები. როგორც topjohnwu განმარტავს, MagiskHide „[ქმნის] იზოლირებულ „უსაფრთხო გარემოს“ გამოვლენის პროცესისთვის და ის გადის Google-ის API-ს მეშვეობით, რათა შექმნას

კანონიერი SafetyNet შედეგი, რომელიც არ ასახავს მოწყობილობის რეალურ სტატუსს."

თუმცა, ახლახან მომხმარებლებმა შეამჩნიეს, რომ მათი ჩამტვირთველით განბლოკილი მოწყობილობები ვერ ახერხებენ SafetyNet-ის ძირითადი მთლიანობის შემოწმებას, მიუხედავად იმისა, რომ ისინი იყენებდნენ Magisk ჩატვირთვის სურათის დასაყენებლად. topjohnwu-ს თანახმად, ეს იმის გამო ხდება, რომ Google-მა შესაძლოა დანერგა ტექნიკის დონის გასაღების ატესტაცია, რათა დაადასტუროს, რომ ჩატვირთვის სურათი არ არის გაყალბებული. კერძოდ, ეს ნიშნავს, რომ Google Play Services "[აგზავნის] შეუცვლელი გასაღების მაღაზიის სერტიფიკატს SafetyNet სერვერებზე, ამოწმებს მის ლეგიტიმურობას და ამოწმებს სერთიფიკატის გაფართოების მონაცემები იმის გასაგებად, აქვს თუ არა თქვენს მოწყობილობას დადასტურებული ჩატვირთვა ჩართული (ჩამტვირთველის სტატუსი)." ეს ნიშნავს, რომ ის შეიძლება აღარ იყოს შესაძლებელია დამალოთ ის ფაქტი, რომ ჩამტვირთავი განბლოკილია, რაც გამოიწვევს აპლიკაციების, როგორიცაა Google Pay და Pokémon Go ვერ ​​იმუშავებს ჩვეულებრივად.

როგორც topjohnwu-მ აღნიშნა, ეს ცვლილება SafetyNet-ის ჩამტვირთველის განბლოკვის სტატუსში შემოწმების გზით ხდება Google Play Services-ში შემავალი SafetyNet API-ის სერვერის მხრიდან განახლებით. თუმცა, ყველა მომხმარებელი არ ასრულებს ამ განახლებულ SafetyNet შემოწმებებს, ამიტომ ახალი ტექნიკის დონის გასაღების ატესტაცია შესაძლოა ჯერ კიდევ არ იყოს ფართოდ აღსრულებული.

ჩვენ ვნახეთ topjohnwu-ს ტექნიკური დაბრკოლებების გადალახვა დროდადრო. Google ხშირად ახორციელებს ახალ შემოწმებებს SafetyNet-ში, რომლებსაც topjohnwu შემდეგ აღმოაჩენს და გვერდს უვლის Magisk-ში. Android-ის ყოველი ახალი ვერსია ცვლის დანაყოფის სტრუქტურას ან ჩატვირთვის სურათს, მოითხოვს topjohnwu-ს ცვლილებების შესწავლას და შემდეგ დაყენების ახალი მეთოდის დანერგვას. თუმცა, topjohnwu-მაც კი შეიძლება იბრძოლოს ამჯერად შემოვლითი გზით.

ეს იმიტომ ხდება, რომ გამოსავალი ამჯერად გულისხმობს მოწყობილობების სანდო აღსრულების გარემოს (TEE) პროგრამული უზრუნველყოფის გატეხვას პირადი გასაღების მისაღებად. თუმცა, ამის გაკეთება წარმოუდგენლად რთულია, რადგან ის მოითხოვს დაუცველობის პოვნას firmware-ში, რომელიც შექმნილია წარმოუდგენლად უსაფრთხოდ. სინამდვილეში, ბევრი კომპანია გვთავაზობს გადახდებს ასობით ათასი დოლარის სახით, თუ ასეთი დაუცველობა აღმოჩნდება. მაგალითად, Google იხდის 250 000 დოლარს დისტანციური კოდის შესრულების დაუცველობისთვის Pixel's Trusted Execution Environment-ში და 1 000 000 დოლარამდე დაუცველობისთვის ტიტან მ უსაფრთხოების ჩიპი. მაშინაც კი, თუ პირადი გასაღები როგორმე გაჟონა, ნაკლებად სავარაუდოა, რომ ის დიდად გამოდგება, რადგან Google-ს შეუძლია დისტანციურად გააუქმოს გასაღები ასე რომ, მისი გამოყენება შეუძლებელია მოწყობილობების მთლიანობის შესამოწმებლად.

მას შემდეგ, რაც SafetyNet-ისთვის ტექნიკის დონის გასაღების ატესტაცია ფართოდ განხორციელდება, მოწყობილობების უმეტესობა განბლოკილი ჩამტვირთველით, რომლებსაც აქვთ Android 8.0 Oreo ან უფრო ახალი ვერსია, ვერ გაივლის SafetyNet-ის ძირითადი მთლიანობის შემოწმებას. ეს იმიტომ ხდება, რომ ყველა მოწყობილობას, რომელიც გაშვებულია Android 8.0 Oreo ან უფრო მაღალი ვერსიით, უნდა ჰქონდეს ტექნიკის გასაღებების საცავი დანერგილი TEE-ში. დღესდღეობით ზოგიერთ მოწყობილობას აქვს სპეციალური აპარატურის უსაფრთხოების მოდულები (HSM), რაც კიდევ უფრო ართულებს ექსპლუატაციას TEE-ის მთავარი პროცესორიდან მოშორებით; Titan M Pixel 4-ში და Samsung-ის ახალი უსაფრთხოების ჩიპი Galaxy S20-ში ამის მაგალითებია.

ტოპჯონვუ ასევე განმარტავს რომ სხვა პოტენციური გამოსავალი ან შეუძლებელი ან ძალიან რთულია. Xposed Framework-ის გამოყენება SafetyNet Attestation API-ის შესაცვლელად Google Play Services-ში, სავარაუდოდ, არ იმუშავებს, რადგან „სათანადო SafetyNet შემოწმებები დაადასტურებს შედეგებს დისტანციურ სერვერზე და არა [-ზე] მოწყობილობა, რომლის მანიპულირება შესაძლებელია კოდის ინექციის ჩარჩოებით." გარდა ამისა, Google Play Services ძალიან ბუნდოვანია, რაც პირველ რიგში წარმოუდგენლად რთულს ხდის ასეთი Xposed მოდულის შექმნას. ადგილი. SafetyNet-ის ტესტის შედეგის გაყალბებაც არ იქნება შესაძლებელი, რადგან SafetyNet-ის პასუხები „მოდის Google სერვერებიდან და ხელმოწერილია Google-ის პირადი გასაღებით“.

Google-ს უკვე რამდენიმე წელია აქვს შესაძლებლობა გაამკაცროს SafetyNet-ის შემოწმებები ტექნიკით მხარდაჭერილი გასაღების ატესტაციის გამოყენებით. ის ფაქტი, რომ მათ ამის გაკეთება 3 წლის განმავლობაში თავს იკავებდნენ, საშუალებას აძლევს მომხმარებლებს ისარგებლონ root და Magisk მოდულებით საბანკო აპლიკაციების გამოყენების შესაძლებლობის შეწირვის გარეშე. თუმცა, როგორც ჩანს, Magisk-ის შესაძლებლობა ეფექტურად დამალოს ჩამტვირთველის განბლოკვის სტატუსი მალე დასასრულს უახლოვდება. ეს არის ცვლილება, რომელსაც წლების განმავლობაში ველოდით, მაგრამ სამწუხაროა, რომ ის საბოლოოდ ამოქმედდა. ვიმედოვნებთ, რომ Google განაახლებს SafetyNet Attestation API-ს, რათა დააბრუნოს, იყენებდა თუ არა სტატუსის შემოწმებას აპარატურაზე დაფუძნებული ატესტაცია, რადგან ეს საშუალებას მისცემს აპის დეველოპერებს გადაწყვიტონ, სურთ თუ არა დაბლოკონ ყველა მომხმარებელი, ვინც განბლოკილია ჩამტვირთავი.


მადლობა დანიელ მიკეის (@დანიელ მიკეი) მისი წვლილის გამო ამ საკითხთან დაკავშირებით!