Android Pie-ga käivitatavates telefonides on vajalik Android Oreo tagasipööramise kaitse

Kõik seadmed, mis käivituvad operatsioonisüsteemiga Android Pie (Android 9), peavad toetama Verified Boot (Android Verified Boot 2.0), mis võimaldab tagasipööramiskaitset.

Android Pie (Android 9) tegi just täna otseülekande Google Pixeli, Google Pixel 2 ja isegi Oluline telefon. Õpime intervjuudest vabanemise kohta nii palju kui võimalik (Google Pixel 3 on ainult liigutustega navigeerimine!), AOSP koodi langusja lõpuks ühilduvuse määratluse dokument (CDD). Postitasime umbes a uus funktsioon "raskekaaluliste" rakenduste jaoks juba täna, kuid nüüd oleme avastanud, et Google on muutnud Android Oreos kasutusele võetud funktsiooni sõnastust: tagasipööramise kaitse. Funktsioon on võimalik tänu Android Verified Boot 2.0 (tuntud ka kui Verified Boot), kuid originaalseadmete tootjad ei pidanud Oreo versioonis AVB 2.0 juurutama. Nüüd nõuab Google, et kõik Android Pie-ga käivituvad seadmed toetaksid Verified Boot ja laiemalt tagasipööramise kaitset.

Tagasipööramise kaitse Android Oreos

Funktsiooni põhiolemus seisneb selles, et see takistab teie telefoni käivitamist, kui tuvastab, et seade on alandatud tarkvara varasemale, nüüdseks heakskiitmata versioonile, mida on turvalisuse tõttu peetud ebaturvaliseks haavatavus. Veidi tehnilisem seletus on see, et VBMeta andmestruktuur, mis sisaldab alglaadimispartitsiooni räsi ja süsteemi ja tarnija partitsioonide hashtree metaandmed, kasutab tagasipööramisindeksit, et lükata tagasi pildid, millel on vanem tagasipööramine indeks.

Tagasipööramise kaitse Androidi kinnitatud alglaadimisel. Allikas: Google.

See funktsioon on olemas sellistes seadmetes nagu Google Pixel 2, Razer Phone ja OnePlus 6, kuid seda pole paljudes teistes seadmetes, nagu Samsung Galaxy S9 (kuigi Samsung pakub omal kujul tagasipööramise kaitse Knoxis.) Nüüd muudab Google selle funktsiooni kohustuslikuks kõikidele seadmetele, mis käivituvad Android Pie-ga.

Verified Boot rakenduses Android Pie

Ühilduvuse määratluse dokumendi jaotises "Seadme terviklikkus" uuendatud sõnastuse kohaselt peavad Android 9-ga käivituvad seadmed toetama Verified Boot.

9.10. Seadme terviklikkus

Järgmised nõuded tagavad seadme terviklikkuse oleku läbipaistvuse. Seadme juurutused:

  • [C-0-1] PEAB õigesti teatama System API meetodi PersistentDataBlockManager.getFlashLockState() kaudu, kas nende alglaaduri olek lubab süsteemi kujutise vilkumist. Olek FLASH_LOCK_UNKNOWN on reserveeritud seadmete rakenduste jaoks, mis lähevad üle Androidi varasemalt versioonilt, kus seda uut süsteemi API meetodit ei eksisteerinud.
  • [C-0-2] PEAB toetama Verified Boot seadme terviklikkuse tagamiseks.

Kui seadme juurutused on juba käivitatud ilma Verified Boot toetamata Androidi varasemas versioonis ja nad ei saa süsteemitarkvara värskendusega sellele funktsioonile tuge lisada, VÕIB nad sellest vabastada nõue.

...

  • [C-1-10] PEAB rakendama tagasipööramiskaitset Androidi kasutatavate partitsioonide jaoks (nt alglaadimine, süsteemipartitsioonid) ja kasutada minimaalse lubatud OS-i määramiseks kasutatavate metaandmete salvestamiseks võltsimiskindlat salvestusruumi versioon.
  • PEAKS rakendama tagasipööramiskaitset mis tahes püsiva püsivaraga komponendi jaoks (nt modem, kaamera) ja PEAKS kasutama võltsimiskindlat salvestusruumi metaandmete salvestamiseks, mida kasutatakse minimaalse lubatud taseme määramiseks versioon.

Nagu näete kahes viimases punktides, tuleb märkida üks hoiatus. Tagasipööramiskaitse on vajalik Androidi kasutatavate partitsioonide jaoks (käivitamine, süsteem, tarnija jne), kuid mitte püsiva püsivaraga partitsioonide jaoks (modem, kaamera jne). Endises partitsioonide komplektis avastatakse ja parandatakse enamik turvaauke, seega on tore näha, et nende partitsioonide kaitsmine on kohustuslik. Siiski on kasutatud ärakasutusi, mis sihivad ka püsiva püsivaraga partitsioone, nii et me pole kindlad, miks Google ei nõua neile tagasipööramiskaitset.

XDA vanemliige npjohnson, LineageOS-i meeskonna liige, oletab, et püsiva püsivaraga partitsioonide tagasipööramiskaitse nõudmine nõuavad sekundaarse alglaaduri (SBL) ja eXtensible Bootloaderi (XBL) sidumist, kuna need partitsioonid paigaldatakse alglaadimisel varem protsessi. Väiksematele originaalseadmete tootjatele oleks kulukas rakendada kohandatud XBL-e, et need sobiksid kohandatud modemite ja muude püsivate partitsioonidega, nii et võib-olla ei sea Google seda nõuet, et hõlbustada seadmetootjatel CDD uusimate nõuete täitmist.

Kuidas kontrollida, kas teie telefon toetab AVB 2.0

On kaks ADB kestakäsku, mille abil saate kontrollida, kas teie telefon toetab AVB 2.0.

adb shell
dumpsys package | grep "verified_boot"

VÕI

adb shell
getprop | grep "avb"

Kui esimese käsu väljund on "android.software.verified_boot", siis toetatakse AVB 2.0. Kui teise käsu väljundis kuvatakse "[ro.boot.avb_version]" ja "[ro.boot.vbmeta.avb_version]" ning on loetletud mõlema jaoks versiooninumber, siis seda toetatakse.

Kontrollitud käivitamine ja kohandatud arendus

Android Verified Boot ei mõjuta tegelikult enamikku kohandatud ROM-i kasutajaid, kuigi see lisab täiendava turvakihi, millega peate mõnel juhul ümber töötama. Näiteks, üldise süsteemipildi vilkumine nõuab AVB keelamist. Teatud partitsioonide (nt müüja) muutmine OnePlus 6-s nõuab ka AVB keelamist, nagu ma hiljuti õppisin. Vastavalt npjohnson, korralikult rakendatud AVB 2.0 võimaldab kohandatud alglaadimispiltidel töötada lukustatud alglaaduriga. Vaatame, kuidas AVB 2.0 kaasamine Android Pie-ga tarnitavatesse seadmetesse maastikku mõjutab, kuid loodame, et see ei too kaasa selliseid olukordi nagu hiljutine telliskivihirm Xiaomi Redmi Note 5 Pro kogukonnas. Kohustuslik AVB 2.0 on Google'i jaoks lihtsalt üks viis parandada Androidi platvormi turvalisust, kuid meie arvates on suurim muutus OEM-lepingute ümbertöötamine, et anda volitused regulaarsete turvapaikade parandamiseks.