Fortnite Installer var tikt ļaunprātīgi izmantots, lai klusi instalētu lietotnes Galaxy tālruņos

click fraud protection

Fortnite Mobile Android instalēšanas lietotnē bija izmantojama tās pirmajā laidienā. To var ļaunprātīgi izmantot, klusi instalējot jebkuru lietotni Samsung Galaxy tālruņos.

Fortnite Mobile palaišana operētājsistēmā Android nav bijusi pārāk lieliska, it īpaši kopš tā laika daudzas no atbalstītajām ierīcēm tiešām grūti spēlēt spēli ar pieņemamu kadru nomaiņas ātrumu. Spēle tika uzsākta kā a Samsung Galaxy ekskluzīvs tikai 3 dienas. Fortnite instalētājs pirmo reizi bija pieejams Samsung Galaxy Apps pirms Epic Games atļāva spēlētājiem, kas nav Samsung, lejupielādēt un instalēt pilnu spēli no Fortnite Installer, kas iegūts Epic vietnē. Neilgi pēc tam, kad Fortnite Installer kļuva pieejams, Epic Games klusi veica instalētāja atjauninājumu. Tagad mēs zinām, kāpēc: viņi aizlāpa a Cilvēks diskā izmantot, kas ļāva ļaunprātīgai lietotnei to izdarīt klusi instalējiet jebkuru lietotni, ko viņi vēlējās Samsung Galaxy viedtālruņos. Tā kā ir radušās neskaidrības par šīs nepilnības darbību, mēs centīsimies to novērst. Pirmkārt, mums ir jāpaskaidro lietotņu instalēšanas pamati operētājsistēmā Android.


Lietotņu instalēšanas plūsma Android viedtālruņos

Klusas instalācijas no pirmās puses avotiem

Lai klusi instalētu APK operētājsistēmā Android, neprasot lietotājam atļauju, jums ir jābūt sistēmas līmeņa lietojumprogrammai ar INSTALL_PACKAGES piešķirta atļauja. Lietojumprogrammu piemēri ar šo atļauju ir Google Play veikals lielākajā daļā Android ierīču. Pirmās puses lietojumprogrammu veikaliem Samsung, Huawei un citu ierīču ražotāju ierīcēs var būt arī piešķirta INSTALL_PACKAGES atļauja. Ja vēlaties instalēt kādu lietotni no Google Play veikala, tā veiks lejupielādi un automātiski instalēs lietotne jums bez papildu iejaukšanās pēc tam, kad nospiežat "Instalēt". (pat Google Play veikalā automātiski piešķir noteiktas izpildlaika atļaujas piemēram, tas, kas paredzēts pārklājumus, savukārt lietotnēm, kas instalētas ārpus Play veikala, ir jālūdz lietotājam piešķirt šīs atļaujas.)

Ja vēlaties uzzināt, vai kādai lietotnei jūsu ierīcē ir INSTALL_PACKAGES atļauja, varat uzzināt, izmantojot ADB komandu.

adb shell
dumpsys packagepackage.name.here | grep "INSTALL_PACKAGES"

Piemēram, Google Play veikala pakotnes nosaukums ir "com.android.vending". Vēl viena lietotne ar šo atļauju ir Shell ar pakotnes nosaukumu com.android.shell. Tiem no jums, kas lieto substrāts bez saknēm, izmantojot Andromeda spraudni operētājsistēmā Android Oreo Andromeda skripts, kas tiek palaists no datora, nodrošina čaulas procesa darbību, lai Substratum varētu to izmantot, lai instalētu pakotnes (motīvu pārklājumus) un pēc tam izmantotu OverlayManager komandas lai iespējotu pārklājumus.

Sānu ielādes lietotnes no trešo pušu avotiem

Ja mēģināt lejupielādēt un instalēt lietotni ārpus pirmās puses lietotņu veikala, vispirms ir jāiespējo nezināmi instalēšanas avoti. Tas ļauj Pakešu pārvaldnieka pakalpojums Android sistēmā (kurai ir INSTALL_PACKAGES atļauja) zināt, ka apzināties riskus, kas saistīti ar lietotņu sānu ielādi no trešo pušu avotiem. Ierīcēs, kas ir vecākas par Android Oreo, drošības iestatījumos ir viens slēdzis, lai atļautu instalēšanu no nezināmiem avotiem. Android Oreo un jaunākās versijās, lietotnei, kas aicina instalēt APK, ir jādeklarē REQUEST_INSTALL_PACKAGES atļauja, un lietotājam šī lietotne ir jāiekļauj baltajā sarakstā, lai tā varētu pieprasīt lietotņu instalēšanu, izmantojot pakotņu pārvaldnieka pakalpojumu. Tā kā REQUEST_INSTALL_PACKAGES ir lietotnes atļauja, tas padara to par vienu no atļaujām, ko var kontrolēt no iestatījumu atļauju pārvaldnieka vai izmantojot cmd appops čaulas komanda.

Kad instalēšana no nezināmiem avotiem ir iespējota globāli vai īpaši pieprasītajai lietojumprogrammai, lietotājs var ielādēt lietotni no sāniem. Tomēr pakotņu pārvaldnieks neļauj lietotni klusi instalēt. Drīzāk tas liks lietotājam uzzināt, vai viņš vēlas instalēt lietotni, un uzskaitīs visas sensitīvās atļaujas, kuras tā pieprasa piešķirt instalēšanas laikā. Ja lietotājs piekrīt, lietotne tiek instalēta ar pieprasītajām ne izpildlaika atļaujām. OEM var arī pielāgot pakotņu pārvaldnieku: piemēram, pakotņu pārvaldnieku ķīniešu valodas versijā Huawei EMUI 5 ir iespēja skenēt APK, lai noteiktu, vai tas ir drošs, un kontrolētu, kādas ir atļaujas. piešķirts pirms tam uzstādīšana. Esmu to novērojis Honor Note 8, kurā darbojas no Ķīnas importētais EMUI 5, lai gan esmu pārliecināts, ka arī citu Ķīnas Huawei un Honor ierīču pakotņu pārvaldniekos ir šī funkcija.

Jebkurā gadījumā tas apkopo atšķirību starp lietotnes instalēšanu no apstiprināta pirmās puses avota un trešās puses avota. Ja mēģināt instalēt lietotni no Play veikala vai līdzvērtīga lietotņu veikala ar INSTALL_PACKAGES atļauja, pēc sākšanas tas klusi veiks instalēšanu bez papildu lietotāja iejaukšanās lejupielāde. Bet, ja lejupielādējat APK no XDA Labs, APKMirror vai citiem trešās puses avotiem, standarta pakotnes instalētājs veiks instalēšanu un liks lietotājam instalēt šo pakotni. Tātad, kur parādās Fortnite instalētājs un kāpēc tas viss ir svarīgi?

Fortnite instalēšanas procesa trūkums

Šodien agrāk Google atklāja ievainojamību viņi atklāja ar pirmo Fortnite Installer versiju. Ievainojamība tika demonstrēta ierīcē Exynos Samsung Galaxy S8+ (dream2lte), taču tā skāra arī visas pārējās Samsung Experience ierīces, tostarp Samsung Galaxy Note 9 un Samsung Galaxy Tab S4. Ievainojamība ļauj an jau instalēta ļaunprātīga lietojumprogramma lai izmantotu veidu, kā Fortnite Installer mēģina instalēt Fortnite pirmo reizi Samsung Galaxy ierīcēs. Izmantojot privāto API programmā Samsung Galaxy Apps, Fortnite Installer apiet vajadzību likt lietotājam, izmantojot standarta pakotnes instalētāju, instalēt Fortnite. Tas ir tāpēc, ka Galaxy Apps ir vajadzīgā atļauja klusi veikt instalēšanu. Ar šo kluso instalēšanas procesu nebūtu nekas nepareizs, ja lietotne, kas tiek klusi instalēta, ir īstā Fortnite. Bet tāpēc, ka Fortnite Installer saglabāja lejupielādēto APK failu Fortnite spēlei, to bija viegli izmantot.

Samsung Galaxy Apps AndroidManifest parāda, ka Galaxy Apps ir atļauja vienai instalēt citas lietotnes, apejot standarta pakotnes instalētāju.

Saskaņā ar ziņojumu par problēmu izsekotāju Fortnite instalētājs lejupielādēs Fortnite Mobile APK uz /sdcard/Android/data/com.epicgames.portal/files/downloads/. Android ierīcē tā tiek uzskatīta par "ārējo atmiņu", jo /sdcard ir simboliska saite uz /data/media/CURRENT_USER un /sdcard bija nosaukums, ko izmantoja Android sākuma dienās, kad lietotņu dati glabājas fiziskajās SD kartēs. Mūsdienās lietotņu dati parasti tiek glabāti lietotņu direktorijos /data/data/, un katrai lietotnei ir piekļuve tikai failiem savā /data/data direktorijā. Tādējādi, ja Fortnite instalētājs saglabātu lejupielādēto Fortnite APK savā /data/data/ direktorijā, nevienai lietotnei nebūtu iespējams piekļūt bez lasīšanas atļaujām (t. bez root piekļuves), lai uzzinātu, kas notiek šajā direktorijā.

Tomēr kopš Fortnite instalētāja Saglabāja lejupielādēto APK ārējā atmiņā, to varētu uzraudzīt un pārrakstīt jebkura lietotne ar ārējās atmiņas lasīšanas atļaujām. Parasti lietotnes raksta uz /data/media, "virtuālo SD karti", kad tās saglabā failus, kuriem lietotājam ir jāpiekļūst, izmantojot MTP vai citas lietotnes. Lai lietotne varētu lasīt vai rakstīt mapē /data/media, tai ir jābūt READ_EXTERNAL_STORAGE un attiecīgi WRITE_EXTERNAL_STORAGE atļaujas (abas ir vienā atļauju grupā un līdz ar to piešķirti kopā). Pirms operētājsistēmas Android 4.4 KitKat lielākā daļa lietotņu instalēšanas laikā pieprasīja šīs atļaujas, jo pretējā gadījumā tās nebūtu var lasīt vai rakstīt failus savā pakotnes norādītajā ārējā krātuves direktorijā /data/media/.../Android/. Ar ieviešanu FUSE, lai emulētu FAT-on-sdcard stila direktoriju atļaujas operētājsistēmā Android 4.4 KitKat lietotnēm vairs nav vajadzīgas nekādas atļaujas, lai piekļūtu failiem, kas atrodas attiecīgajās ārējās atmiņas direktorijā. Lai piekļūtu failiem jebkurā citā direktorijā, joprojām būs nepieciešamas ārējās krātuves atļaujas, ko ļaunprātīga lietotne var darīt, lai nolaupītu Fortnite instalēšanas procesu.

Kā parādīts tālāk esošajā videoklipā, ļaunprātīga lietotne ar READ_EXTERNAL_STORAGE atļauju uzrauga Fortnite Installer lejupielādes direktoriju ārējā atmiņā. Kad tā konstatē, ka lejupielāde ir pabeigta un pirksta nospiedums ir pārbaudīts, tas aizstāj lejupielādēja Fortnite pakotni ar savu ļaunprātīgo pakotni, pateicoties WRITE_EXTERNAL_STORAGE atļauju. Tomēr tāpēc, ka Samsung Galaxy Apps pirms instalēšanas pārbauda Fortnite APK (...tas tikai pārbauda, ​​vai pakotnes nosaukums ir "com.epicgames.fortnite"), iespējams, ir Galaxy. Lietotnes klusi instalējiet ļaunprātīgo pakotni fonā bez lietotāja iejaukšanās vai paziņojuma— ja vien ļaunprātīgās pakotnes nosaukums ir “com.epicgames.fortnite”. Vēl ļaunāk, ja šī ļaunprātīgā pakotne būtu vērsta uz SDK 22 vai zemāku līmeni (Android 5.1 Lollipop un vecākas versijas), tas automātiski tiek piešķirtas visas tā manifestā definētās atļaujas, jo izpildlaika atļaujas ir obligātas tikai tām lietotnēm, kuru mērķauditorija ir SDK 23. līmenis un augstāks (Android 6.0 Marshmallow un vēlāk).

Bet kas notiks ierīcēs, kas nav Samsung? Tā kā Samsung Galaxy Apps nav instalēts ierīcēs, kas nav Samsung, ļaunprātīgais APK netiks klusi instalēts fonā. Fortnite Installer ir trešās puses lietotne, un tāpēc vispirms ir jāaicina lietotājs to iespējot instalāciju no nezināmiem avotiem un pēc tam nosūtiet pakotnes instalētājam pieprasījumu instalēt viltojumu Fortnite APK. Pēc tam tas būs atkarīgs no lietotāja pieskaršanās "Instalēt", kad tiek jautāts, vai viņš vēlas instalēt lietotni. Tas ir problemātiski neatkarīgi no tā, ka tālruņiem, kas nav Samsung, nedraud, ka fonā klusi tiks instalēta ļaunprātīga lietotne. Vidējais lietotājs nebūtu gudrāks, ja viņam instalēšanai tiktu parādīts ļaunprātīgs APK, kura nosaukumā ir Fortnite un Fortnite lietotnes ikona.

Tomēr ir skaidra atšķirība starp šī trūkuma izmantošanu Samsung Galaxy viedtālruņos un viedtālruņos, kas nav Samsung viedtālruņi. Pirmais ir “Man-in-the-Disk” uzbrukums, kas izmanto arī slēptās sistēmas API priekšrocības, lai klusi instalētu jebkuru lietotni fonā, ar jebkādām atļaujām un bez vajadzības likt lietotājam domāt, ka viņš instalē viltotu Fortnite APK. Pēdējais ir a standarta cilvēka diskā uzbrukums, kas var notikt arī ar citām lietotnēm, kas saglabā APK vai citus svarīgus datus ārējos krātuves direktorijos, kā liecina nesenais CheckPoint pastu. Tā nu ir sagadījies, ka, pateicoties slēptajai Galaxy Apps API, šis “Man-in-the-Disk” uzbrukums Samsung Galaxy ierīcēs ir bīstamāks.

Trūkuma novēršana

Epic Games nopelns ir tas, ka viņi ļoti ātri atbildēja uz ziņojumu par Google problēmu izsekotāju un pēc iespējas ātrāk izlaida atjauninājumu uz versiju 2.1.0. Labojums bija vienkāršs — vienkārši saglabājiet lejupielādēto Fortnite APK Fortnite Installer iekšējās krātuves direktorijā /data/data, nevis ārējā krātuves direktorijā /data/media. Epic Games inženieris pieprasīja, lai defekts tiktu atklāts pēc 90 dienām, lai gan Google noraidīja un publiskoja problēmu 7 dienas pēc labojuma ieviešanas. Epic Games izpilddirektors Tims Svīnijs bija apmierināts ar ātro izpildes laiku no sākotnējā drošības ziņojuma līdz tā izpaušanai. Viņš piedāvāja šādu paziņojumu Android Central.

Epic patiesi novērtēja Google centienus veikt padziļinātu Fortnite drošības auditu tūlīt pēc mūsu izlaidiet operētājsistēmā Android un kopīgojiet rezultātus ar Epic, lai mēs varētu ātri izdot atjauninājumu, lai novērstu to trūkumu atklāja.

Tomēr Google bija bezatbildīgi tik ātri publiski izpaust defekta tehniskos datus, kamēr daudzas instalācijas vēl nebija atjauninātas un joprojām bija neaizsargātas.

Epic drošības inženieris, pēc mana mudinājuma, pieprasīja Google atlikt publiskošanu par parastajām 90 dienām, lai būtu laiks plašākai atjauninājuma instalēšanai. Google atteicās. To visu varat izlasīt vietnē https://issuetracker.google.com/issues/112630336

Google drošības analīzes centieni tiek novērtēti un nāk par labu Android platformai, tomēr tik spēcīgam uzņēmumam kā Google vajadzētu praktizēt vairāk atbildīgs atklāšanas laiks nekā šis, un tas neapdraud lietotājus, vēršoties pret PR centieniem pret Epic izplatīto Fortnite ārpus Google Play.

Es nevaru pateikt, cik daudzām esošajām Samsung Galaxy ierīcēm joprojām ir vecāks Fortnite Installer. Varbūt Epic Games vajadzētu pateikt šiem lietotājiem atjaunināt instalāciju, nosūtot ziņojumu Fortnite Mobile. Firebase lieliskā jaunā ziņojumapmaiņas funkcija lietotnē varētu darīt to triku. Lai gan, iespējams, tas tomēr nav liels darījums, jo, ja lietotājs ar vecāku instalētāju jau ir lejupielādējis likumīgo Fortnite, tad neviens MITD uzbrukums nedarbosies, jo ļaunprātīgo APK nevar instalēt virs esošās Fortnite uzstādīšana. Jebkurā gadījumā šī nepilnība tika atklāta tik agri pēc Fortnite izlaišanas operētājsistēmā Android — kad joprojām ir tik daudz strīdu par Epic Games. lēmums atteikties no pakalpojuma Google Play— noteikti palīdz arguments, ka Epic Games lēmums bija neuzmanīgs. Mēs nekad neuzzināsim, vai Google nolūks bija tik ātri publiskot šo problēmu.