PSA: Varo asentamasta mitään, jos SELinux on sallittu

click fraud protection

Dokumentoimaton Android-ominaisuus sallii minkä tahansa mielivaltaisen sovelluksen saada pääkäyttäjän oikeudet sallivaan SELinux-ympäristöön. Lue lisää saadaksesi lisätietoja!

Android-modioinnin maailmassa ihmiset pitävät pääkäyttäjän pääsyä kaiken kulmakivenä. Sen avulla käyttäjät voivat hallita laitteitaan täydellisesti ja lisätä ominaisuuksia, jotka eivät aina ole saatavilla varastokokoonpanossa. Mutta kuten sanotaan - "suurella voimalla tuo suuri vastuu" - ei ole viisasta ohittaa Androidin suojausmallia, ellet tiedä, mihin olet ryhtymässä. Foorumillamme kokeneet Android-harrastajat ovat luultavasti tietoisia takaovien mahdollisuudesta olemassa laitteessasi. käytät todennäköisemmin luotettua juurikäyttöistä modia uusimman Android-version, jossa on uusin suojaus, päällä laastareita. Tämän jälkeen saatat tuntea muutamia ihmisiä, jotka eivät todellakaan välitä asentamistaan ​​juurisäädöistä, kunhan ne näyttävät toimivan heille. Tästä syystä voit silti löytää rekkakuorman moduuksia, jotka toimivat vain, kun SELinux on asetettu sallivaksi, mikä puolestaan ​​jättää käyttäjät erittäin alttiiksi tietoturvauhkille.

Mikä on SELinux

SELinux tai Turvallisuustehostettu Linux, on Linux-ytimen suojausmoduuli, joka on erityisesti suunniteltu suojauskäytäntöjen käyttöön ja hallintaan. Esitelty alun perin Android 4.3 Jelly Beanissa ja asetettu sen pakottavaan tilaan oletusarvoksi Androidista lähtien 4.4 KitKat, SELinux auttaa valvomaan pääsynhallintaoikeuksia ja yrittää estää oikeuksien eskaloitumista hyökkäyksiä. Lyhyesti sanottuna SELinux toimii esteenä laitteesi luvattomille hallituksille, kuten sovellukselle tai haavoittuvuudelle, joka pyrkii saamaan pääkäyttäjän oikeudet haitallisesti. SELinuxin asettaminen oletusarvoisesti "Enforcing"-tilaan on yksi tärkeimmistä tavoista, joilla tavalliset käyttäjät suojataan tällaisilta hyökkäyksiltä.

Miksi Permissive SELinuxia ei suositella?

Toistan vielä, että tyypillisen tavan saavuttaa pääkäyttäjän oikeudet Android-laitteella ei välttämättä tarvitse muuttaa SELinux-tilaa. SELinux-tilan vaihtaminen pakottavasta tilasta "sallivaan" poistaa tarkoituksellisesti yhden laitteen tärkeimmistä suojausominaisuuksista, minkä vuoksi käyttäjän on nimenomaisesti sallittava sen tapahtuminen asentamalla erikoistunut mukautettu ydin tai muuttamalla olemassa olevan käynnistysvedoksen parametreja. Huonosti koodattu modi, josta puuttuu oikea SELinux-käytäntö, yleensä pakottaa loppukäyttäjät siirtymään sallivaan SELinuxiin ja laajentaa olennaisesti hyökkäyspintaa. Se on juuri sitä kehittäjä vvb2060 osoittivat, kun he julkaisi proof of concept etuoikeuden eskalaatiomenetelmän jossa ainoa vaatimus hallinnan saamiseksi on salliva SELinux.

Anna Magica

Täysi pääkäyttäjän käyttöoikeus omaan Android 10 (tai uudempi) laitteeseen, jossa SELinux on asetettu sallivaksi, on hämmästyttävän helppoa do: Sinun tarvitsee vain painaa asennusta ja "Magica" saa automaattisesti pääkäyttäjän oikeudet palveluun ja asentaa Magiskin käynnistykseen kuva. Tämä on jotain paljon laajempaa kuin pelkkä laitteen säätäminen. XDA Senior Recognized Developerin ja Magiskin ylläpitäjän mukaan topjohnwu, mikä tahansa mielivaltainen sovellus, mukaan lukien haittaohjelmat, voi pysyvästi roottaa laitteesi ilman suostumustasi ja lupaasi käyttämällä PoC: tä.

Jos mietit teknisellä tasolla, mitä Magica hyödyntää, topjohnwu selitti seuraavaa Reddit-postaus:

"Kun SELinux on salliva käynnistyksen aikana, zygote tietää tämän ja poistaa seccompin syscall-suodattimet käytöstä. Tämä periaatteessa ei rajoita sitä, mitkä järjestelmäkutsut ovat sallittuja kolmannen osapuolen prosesseissa.

Android 10+ -käyttöjärjestelmässä on uusi "dokumentoimaton" ominaisuus nimeltä "App Zygote", jossa kolmannen osapuolen sovellukset voivat luoda oman Zygotensa "eristetyille palveluille" (myös lähes dokumentoimaton). Sekä "App Zygote" että "Isolated Services" ovat Chromelle/WebView'lle* suunniteltuja erikoisominaisuuksia. App Zygote -prosessit toimivat erityisoikeuksin, ja kun seccomp on poistettu käytöstä, se voi kutsua setuid 0:aa ja laajentaa oikeuksiaan ja saada pääkäyttäjän oikeudet.

Se on edelleen jotenkin rajoittava verrattuna siihen, mitä normaalit juuriratkaisut tarjoavat (esim. Magisk), mutta monet Androidin suojatoimenpiteet tuhoutuvat täysin, kun UID = 0. Se riittää esimerkiksi käynnistyskuvien korjaamiseen, mikä tarkoittaa, että sitä voidaan käyttää haittaohjelmien, kuten muunnetun Magiskin, lisäämiseen, jotta se saa "oikeat" pääkäyttäjän oikeudet.

Päivitys: mitä UID=0 itse voi tehdä? Androidin puitteissa lähes kaikissa palveluissa on sokea vihreä valo, kun pyyntöprosessin UID on 0. Tämä tarkoittaa, että tämä juuriprosessi pystyy manipuloimaan tonnia tavaraa käyttämällä Android-kohtaisia ​​sovellusliittymiä (esim. ActivityManager)"

*Kehittäjän mukaan aviraxp, nämä kaksi ominaisuutta on yleisemmin suunniteltu "resurssien ja muistin jakamiseen useiden eristettyjen prosessien välillä."

Johtopäätös

Ottaen huomioon korjaamattoman vahingon, jota haittaohjelmien kohteena oleville käyttäjille voi aiheutua sallitussa SELinux-ympäristössä, suosittelemme, että kaikki jatkavat sen täytäntöönpanoa, ellei se ole ehdottoman välttämätöntä. Vaikka olemmekin onnekkaita, kun meillä on todiste konseptin hyväksikäytöstä, meillä ei ole aavistustakaan siitä, kuinka monet haittaohjelmien tekijät jo tietävät tästä hyökkäyspolusta. Loppujen lopuksi uhri pysyy edelleen tietämättömänä laitteensa vaarantuneesta tilasta, jos hän ei sitä tehnyt todista, että hyväksikäyttöä käytetään aktiivisesti, mikä ei ole vaikea saavuttaa roistosovelluksella, jolla on pysyvä juuri pääsy.