Janus-haavoittuvuuden ansiosta hyökkääjät voivat muokata sovelluksia vaikuttamatta niiden allekirjoituksiin. Sen löysi GuardSquare, ja Google on korjannut sen.
Android on asennettu valtavaan määrään laitteita, mikä tekee siitä haitallisten hyökkääjien kohteen. Googlen mobiilikäyttöjärjestelmän haavoittuvuuksia löydetään edelleen joka kuukausi, mutta hyvä uutinen on, että Google on yleensä ahkera korjaamaan ne tavallisilla suojauskorjauksilla, joita sitten tarjotaan OEM-valmistajille, jotka sitten lähettävät sen laitteet.
Äskettäin tietoturvatutkijat löysivät haavoittuvuuden joka huijasi käyttäjät sallimaan hyökkääjien tallentaa laitteensa näytön. Tämä erityinen hyväksikäyttö korjattiin Android Oreossa, mutta analyytikot klo GuardSquare ilmoitti äskettäin toisesta vakavasta haavoittuvuudesta, joka vaikuttaa Android-sovelluksiin, jotka on allekirjoitettu vanhemmilla allekirjoitusjärjestelmillä.
GuardSquareraportissa todetaan, että Janushaavoittuvuus (CVE-2017-13156) Androidissa sallii hyökkääjien muokata sovellusten koodia vaikuttamatta heidän allekirjoituksiinsa. Raportissa todetaan, että haavoittuvuuden syynä on se, että tiedosto voi olla voimassa oleva APK-tiedosto ja kelvollinen DEX-tiedosto samanaikaisesti.
Janus hyödyntää sitä tosiasiaa, että ylimääräiset tavut jäävät huomaamatta APK-tiedostoissa ja DEX-tiedostoissa. The GuardSquare raportti selittää, että APK-tiedosto on ZIP-arkisto, joka voi sisältää mielivaltaisia tavuja alussa, ennen ZIP-merkintöjä ja niiden välillä. JAR-allekirjoitusmalli ottaa huomioon vain ZIP-merkinnät jättäen huomioimatta ylimääräiset tavut laskettaessa tai tarkistettaessa sovelluksen allekirjoitusta.
Jatkossa selitetään, että DEX-tiedosto sen sijaan voi sisältää mielivaltaisia tavuja lopussa - merkkijonojen, luokkien, menetelmämääritelmien jne. tavallisten osien jälkeen. Siksi tiedosto voi olla kelvollinen APK-tiedosto ja kelvollinen DEX-tiedosto samanaikaisesti.
GuardSquare mainitsee myös, että haavoittuvuuden avaintekijä on Dalvik/ART-virtuaalikoneen "vaaraton" ominaisuus. Raportissa todetaan, että teoriassa Android-ajonaika lataa APK-tiedoston, purkaa sen DEX-tiedoston ja suorittaa sitten sen koodin. Käytännössä virtuaalikone (VM) voi kuitenkin ladata ja suorittaa sekä APK-tiedostoja että DEX-tiedostoja. Ongelmana on, että kun virtuaalikone saa APK-tiedoston, se tarkastelee edelleen otsikon taikatavuja päättääkseen, minkä tyyppinen tiedosto se on: DEX vai APK. Kun DEX-otsikko löytyy, se lataa tiedoston DEX-tiedostona. Jos se ei löydä otsikkoa, se lataa tiedoston APK-tiedostona, joka sisältää zip-merkinnän DEX-tiedoston kanssa. Siten se voi tulkita väärin kaksi DEX/APK-tiedostoa.
GuardSquare sanoo, että hyökkääjä voi hyödyntää tätä virtuaalikoneen kaksinaisuusominaisuutta lisätäkseen haitallisen DEX-tiedoston normaaliin APK-tiedostoon vaikuttamatta sen allekirjoitukseen. Android-ajoympäristö hyväksyy APK-tiedoston kelvollisena päivityksenä lailliseen aikaisempaan sovellusversioon, mutta Dalvik VM lataa koodin DEX-tiedostosta, johon on lisätty haitallista koodia.
Normaalisti aina, kun käyttäjä asentaa sovelluksen päivitetyn version, Android-ajoympäristö tarkistaa sovelluksen allekirjoituksen varmistaakseen, että se vastaa vanhempaa versiota. Kun vahvistus on myönteinen, päivitetty sovellus saa alkuperäiselle sovellukselle myönnetyt käyttöoikeudet. Tällä tavalla hyökkääjät voivat käyttää Janus-haavoittuvuutta ohittaakseen allekirjoituksen vahvistusprosessin ja saada vahvistamattoman koodin asennettuna pahaa aavistamattomien käyttäjien laitteisiin.
Vielä pahempaa on, että tämä vahvistamaton koodi voi saada tehokkaita käyttöoikeuksia. Tämä luo vakavia mahdollisuuksia. GuardSquare toteaa:
"Hyökkääjä voi korvata luotetun sovelluksen, jolla on korkeat oikeudet (esimerkiksi järjestelmäsovelluksen) muokatulla päivityksellä käyttääkseen oikeuksiaan väärin. Kohdistetusta sovelluksesta riippuen hakkeri voi päästä käsiksi laitteeseen tallennettuihin arkaluontoisiin tietoihin tai jopa ottaa laitteen kokonaan haltuunsa. Vaihtoehtoisesti hyökkääjä voi välittää arkaluonteisen sovelluksen muokatun kloonin laillisena päivityksenä [joka] voi näyttää ja käyttäytyä alkuperäisen sovelluksen kaltaisesti, mutta aiheuttaa haitallista toimintaa."
Yhtiö lisäsi, että tähän mennessä he eivät olleet nähneet yhtään sovellusta, joka hyödyntäisi Janusta luonnossa. Toinen hyvä uutinen on, että haavoittuvuus vaatii käyttäjän asentamaan haitallisen päivityksen Google Play Kaupan ulkopuolisesta lähteestä. Siksi käyttäjät, jotka rajoittavat sovellusten asennukset Play Kauppaan, ovat suojattuja.
Janus-haavoittuvuus vaikuttaa laitteisiin, joissa on Android 5.0+. Tämä vaikuttaa sovelluksiin, jotka on allekirjoitettu APK-allekirjoitusmallilla v1. Allekirjoitusmalli v2:lla allekirjoitetut APK: t on suojattu haavoittuvuutta vastaan. Tämä edellyttää, että APK: t toimivat laitteissa, jotka tukevat viimeisintä allekirjoitusjärjestelmää (Android 7.0 ja uudemmat). Scheme v2 on suojattu, koska toisin kuin malli v1, se ottaa huomioon kaikki APK-tiedoston tavut.
"Sovellusten vanhemmat versiot ja vanhemmilla laitteilla toimivat uudemmat sovellukset ovat edelleen alttiita. Kehittäjien tulee aina ainakin aina käyttää allekirjoitusmallia v2." GuardSquare valtioita.
GuardSquare ilmoitti tästä ongelmasta Googlelle 31. heinäkuuta 2017 ja sai vahvistuksen samana päivänä. Yhtiön raportin mukaan Google julkaisi päivityksen kumppaneilleen marraskuussa ja julkaisi virheen (CVE-2017-13156) Android-tietoturvatiedotteessa 4. joulukuuta 2017. Haavoittuvuus on Korjattu joulukuun 2017 Android-tietoturvakorjauksessa. Erikseen F-Droid-sovellukset niiden virallisesta arkistosta on vahvistettu turvallisiksi. Lopuksi on vahvistettu, että haavoittuvuus on korjattu APKMirror.
Lähde: GuardSquare