PSA: olge ettevaatlik millegi installimisel, kui SELinux on seatud lubatavaks

click fraud protection

Dokumenteerimata Androidi funktsioon võimaldab suvalisel rakendusel saada lubatavas SELinuxi keskkonnas juurjuurdepääsu. Loe edasi, et rohkem teada saada!

Androidi modifitseerimise maailmas kipuvad inimesed pidama juurjuurdepääsu kõigi asjade nurgakiviks. See võimaldab kasutajatel võtta oma seadmete üle täielik kontroll ja lisada funktsioone, mis pole varude konfiguratsioonis alati saadaval. Kuid nagu öeldakse – "suure jõuga kaasneb suur vastutus" – pole mõistlik Androidi turvamudelist mööda hiilida, kui te ei tea, millesse sattute. Meie foorumites olevad Androidi veteran-entusiastid teavad ilmselt, et teie seadmes võivad tagauksed eksisteerida ja tõenäolisemalt kasutate usaldusväärset juurjuurdepääsuga modi lisaks uusimale Androidi versioonile ja uusima turvalisusega plaastrid. Seda öeldes võite tunda mõnda inimest, kes ei hooli sellest, milliseid juurparandusi nad installivad, kuni need näivad nende heaks töötavat. Seetõttu võite endiselt leida autotäie modifikatsioone, mis töötavad ainult siis, kui SELinux on lubatud, mis omakorda muudab nende kasutajad turvaohtudele äärmiselt vastuvõtlikuks.

Mis on SELinux

SELinux või Täiustatud turvalisusega Linux, on Linuxi tuuma turbemoodul, mis on spetsiaalselt loodud turvapoliitikatele juurdepääsuks ja nende haldamiseks. Algselt tutvustati Android 4.3 Jelly Beanis ja seadistati alates Androidist vaikerežiimiks jõustamisrežiimi 4.4 KitKat, SELinux aitab jõustada juurdepääsukontrolli õigusi ja püüab takistada privileegide laienemist rünnakud. Lühidalt öeldes toimib SELinux takistusena teie seadme volitamata juhtimisel, nagu rakendus või haavatavus, mille eesmärk on pahatahtlikult juurjuurdepääs saada. SELinuxi seadmine vaikimisi olekusse "Jõustamine" on üks peamisi viise, kuidas tavakasutajaid selliste rünnakute eest kaitsta.

Miks lubavat SELinuxi ei soovitata kasutada?

Kordame, et tavaline viis Android-seadme juurjuurdepääsu saavutamiseks ei pea tingimata muutma SELinuxi olekut. SELinuxi režiimi nihutamine jõustavast režiimist Lubamine keelab tahtlikult seadme ühe peamise turvafunktsiooni, mistõttu kasutaja peab selgesõnaliselt lubama sellel juhtuda, installides spetsiaalse kohandatud kerneli või muutes olemasoleva alglaadimispildi parameetreid. Halvasti kodeeritud mod, millel puudub korralik SELinuxi poliitika, sunnib tavaliselt lõppkasutajaid üle minema lubavale SELinuxile ja laiendab sisuliselt rünnakupinda. See on täpselt see, mida arendaja vvb2060 demonstreerisid, kui nad avaldas kontseptsiooni privileegide eskalatsioonimeetodi tõendi kus ainus nõue kontrolli saamiseks on lubav SELinux.

Sisestage Magica

Kasutajal on šokeerivalt lihtne saada täielik juurjuurdepääs oma seadmes, kus töötab Android 10 (või uuem), kui SELinux on seatud lubatavaks. tee: peate lihtsalt vajutama installimist ja "Magica" saab automaatselt teenusele juurjuurdepääsu ja installib Magiski alglaadimisse pilt. See on midagi palju laiemat kui lihtsalt seadme kohandamine. Vastavalt XDA Senior Recognized Developer ja Magiski hooldajale topjohnwu, mis tahes suvaline rakendus, sealhulgas pahavara, saab teie seadme püsivalt juurutada ilma teie nõusoleku ja loata kasutades PoC-d.

Kui teil on tehnilisel tasandil küsimus, mida Magica kasutab, selgitas topjohnwu järgmist Redditi postitus:

"Kui SELinux on alglaadimise ajal lubatav, saab zygote sellest teada ja keelab seccompi syscall filtrid. See põhimõtteliselt ei piira seda, millised süsteemikõned on kolmanda osapoole protsessides lubatud.

Operatsioonisüsteemis Android 10+ on uus "dokumentideta" funktsioon nimega "App Zygote", kus kolmanda osapoole rakendustel on lubatud luua "Isolated Services" jaoks oma Zygote (samuti peaaegu dokumenteerimata). Nii "App Zygote" kui ka "Isolated Services" on Chrome'i/veebivaate* jaoks loodud erifunktsioonid. Rakenduse Zygote'i protsessid töötavad erilubadega ja kui seccomp on keelatud, saab see helistada setuid 0-le ja suurendada oma privileege ning saada juurjuurdepääsu.

Võrreldes tavaliste juurlahendustega (nt Magisk) on see siiski kuidagi piirav, kuid Androidi turvameetmed kaotatakse täielikult, kui UID = 0. Näiteks piisab sellest, kui seda kasutatakse alglaadimispiltide parandamiseks, mis tähendab, et seda saab kasutada pahavara (nt modifitseeritud Magisk) sisestamiseks, et aidata sellel saada "päris" juurõigused.

Värskendus: mida saab UID=0 ise teha? Androidi raamistikus on peaaegu kõigil teenustel pime roheline tuli, kui taotleva protsessi UID on 0. See tähendab, et see juurprotsess on võimeline Androidi spetsiifiliste API-de (nt ActivityManager) abil manipuleerima paljude asjadega.

*Arendaja sõnul aviraxp, on need kaks funktsiooni üldisemalt mõeldud "ressursside ja mälu jagamiseks mitme isoleeritud protsessi vahel."

Järeldus

Arvestades korvamatut kahju, mida pahavara sihitud kasutajatele lubatavas SELinuxi keskkonnas tekitada võib, soovitame kõigil tungivalt seda jõustada, kui see pole tingimata vajalik. Kuigi meil on lihtsalt vedanud, et meil on tõend kontseptsiooni ärakasutamisest, pole meil aimugi, kui paljud pahavara autorid juba sellest rünnakuteest teavad. Lõppude lõpuks jääb ohver ka edaspidi oma seadme rikutud olekule tähelepanuta, kui ta seda ei teinud Olge tunnistajaks ärakasutamisele, mida pole raske saavutada püsiva juurega petturirakenduse puhul juurdepääs.