Janus ievainojamība ļauj uzbrucējiem modificēt lietotnes, neietekmējot to parakstus. To atklāja GuardSquare, un Google ir labojis.
Android ir instalēts ļoti daudzās ierīcēs, un tas padara to par ļaunprātīgu uzbrucēju mērķi. Google mobilās operētājsistēmas ievainojamības joprojām tiek atklātas katru mēnesi, taču labā ziņa ir tā, ka Google parasti rūpīgi izlabo tos regulāros drošības ielāpus, kas pēc tam tiek piedāvāti oriģinālo iekārtu ražotājiem, kuri pēc tam tos nosūta ierīces.
Nesen drošības pētnieki atklāja ievainojamību kas ļāva uzbrucējiem ierakstīt viņu ierīces ekrānu. Šī konkrētā izmantošana tika novērsta operētājsistēmā Android Oreo, bet analītiķi plkst GuardSquare nesen ziņoja par citu nopietnu ievainojamību, kas ietekmē Android lietotnes, kas parakstītas ar vecākām parakstu shēmām.
GuardSquareziņojumā teikts, ka Janusievainojamība (CVE-2017-13156) operētājsistēmā Android ļauj uzbrucējiem modificēt kodu lietojumprogrammās, neietekmējot viņu parakstus. Ziņojumā teikts, ka ievainojamības pamatā ir tas, ka fails vienlaikus var būt gan derīgs APK fails, gan derīgs DEX fails.
Janus izmanto to, ka papildu baiti APK failos un DEX failos paliek nepamanīti. The GuardSquare pārskatā ir paskaidrots, ka APK fails ir ZIP arhīvs, kurā var būt patvaļīgi baiti sākumā, pirms un starp ZIP ierakstiem. JAR paraksta shēma ņem vērā tikai ZIP ierakstus, ignorējot papildu baitus, aprēķinot vai pārbaudot lietojumprogrammas parakstu.
Turpinājumā tiek paskaidrots, ka DEX fails, no otras puses, var saturēt patvaļīgus baitus beigās - pēc parastajām virkņu sadaļām, klasēm, metožu definīcijām utt. Tāpēc fails vienlaikus var būt derīgs APK fails un derīgs DEX fails.
GuardSquare arī piemin, ka ievainojamības galvenais elements ir Dalvik/ART virtuālās mašīnas "nekaitīgs" līdzeklis. Ziņojumā teikts, ka teorētiski Android izpildlaiks ielādē APK failu, izvelk tā DEX failu un pēc tam palaiž tā kodu. Tomēr praksē virtuālā mašīna (VM) var ielādēt un izpildīt gan APK failus, gan DEX failus. Problēma ir tāda, ka tad, kad VM saņem APK failu, tas joprojām aplūko burvju baitus galvenē, lai izlemtu, kāda veida fails tas ir: DEX vai APK. Atrodot DEX galveni, tas ielādē failu kā DEX failu. Ja tas neatrod galveni, tas ielādē failu kā APK failu, kurā ir zip ieraksts ar DEX failu. Tādējādi tas var nepareizi interpretēt divus DEX/APK failus.
GuardSquare saka, ka uzbrucējs var izmantot šo virtuālās mašīnas dualitātes funkciju, lai parastam APK failam pievienotu ļaunprātīgu DEX failu, neietekmējot tā parakstu. Android izpildlaikā tiks pieņemts APK fails kā derīgs likumīgas iepriekšējās lietotnes versijas atjauninājums, bet Dalvik VM ielādēs kodu no DEX faila, kurā ir ievadīts ļaunprātīgs kods.
Parasti ikreiz, kad lietotājs instalē atjauninātu lietotnes versiju, lietotnes parakstu pārbauda Android izpildlaiks, lai nodrošinātu, ka tā atbilst vecākajai versijai. Ja verifikācija ir pozitīva, atjauninātā lietojumprogramma saņem atļaujas, kas tika piešķirtas sākotnējai lietojumprogrammai. Tādā veidā uzbrucēji var izmantot Janus ievainojamību, lai apietu paraksta verifikācijas procesu un nenojaušot lietotāju ierīcēs tiktu instalēts nepārbaudīts kods.
Vēl ļaunāk ir tas, ka šis nepārbaudīts kods var iegūt piekļuvi jaudīgām atļaujām. Tas rada dažas nopietnas iespējas. GuardSquare norāda:
"Uzbrucējs var aizstāt uzticamu lietojumprogrammu ar augstām privilēģijām (piemēram, sistēmas lietotni) ar modificētu atjauninājumu, lai ļaunprātīgi izmantotu tās atļaujas. Atkarībā no mērķa lietojumprogrammas tas var ļaut hakeram piekļūt ierīcē saglabātajai sensitīvai informācijai vai pat pilnībā pārņemt ierīci. Alternatīvi, uzbrucējs var nodot modificētu sensitīvas lietojumprogrammas klonu kā likumīgu atjauninājumu, [kas] var izskatīties un darboties kā oriģinālā lietojumprogramma, bet izraisīt ļaunprātīgu darbību.
Uzņēmums piebilda, ka līdz šim viņi nav redzējuši nevienu lietojumprogrammu, kas izmantotu Janusu savvaļā. Otra labā ziņa ir tā, ka ievainojamība liek lietotājam instalēt ļaunprātīgu atjauninājumu no avota ārpus Google Play veikala. Tāpēc lietotāji, kuri ierobežo lietotņu instalēšanu tikai Play veikalā, ir aizsargāti.
Janus ievainojamība ietekmē ierīces, kurās darbojas operētājsistēma Android 5.0+. Tiek ietekmētas lietojumprogrammas, kas parakstītas, izmantojot APK paraksta shēmu v1. APK, kas parakstīti ar parakstu shēmu v2, ir aizsargāti pret ievainojamību. Tas prasa, lai APK faili darbotos ierīcēs, kas atbalsta jaunāko parakstu shēmu (Android 7.0 un jaunākas versijas). Shēma v2 ir aizsargāta, jo atšķirībā no shēmas v1 tā ņem vērā visus APK faila baitus.
"Vecākas lietojumprogrammu versijas un jaunākas lietojumprogrammas, kas darbojas vecākās ierīcēs, joprojām ir jutīgas. Izstrādātājiem vismaz vienmēr ir jāpiemēro parakstu shēma v2. GuardSquare štatos.
GuardSquare ziņoja par šo problēmu uzņēmumam Google 2017. gada 31. jūlijā un tajā pašā dienā saņēma apstiprinājumu. Uzņēmuma ziņojumā teikts, ka Google izlaida ielāpu saviem partneriem novembrī un publicēja kļūdu (CVE-2017-13156) Android drošības biļetenā 2017. gada 4. decembrī. Ievainojamība ir tika labots 2017. gada decembra Android drošības ielāps. Atsevišķi ir apstiprināts, ka F-Droid lietojumprogrammas no to oficiālā repozitorija ir drošas. Visbeidzot, ir apstiprināts, ka ievainojamība ir novērsta APKMirror.
Avots: GuardSquare