Video: Privacy, Security, Society - Computer Science for Business Leaders 2016 (Marraskuu 2024)
Forristal selitti, että purkamalla, muokkaamalla ja kokoamalla sovellus he olivat vaihtaneet kehittäjän allekirjoitusta. Uudella allekirjoituksella ei ollut lupaa käyttää Google Mapsia, joten se hylättiin. Heidän uusi pyrkimys; vaihda koodi muuttamatta allekirjoitusta.
Forristal kävi läpi yksityiskohtainen tapahtumasarja, joka tapahtuu, kun Android vahvistaa allekirjoitetun sovelluksen. Jokainen kerros vahvistaa edellisen kerroksen alkamalla todentamalla, että koodimalleja ei ole peukaloitu, ja päättyen koko paketin digitaaliseen allekirjoitukseen. Hän yritti hyökätä järjestelmään joka vaiheessa, enimmäkseen ilman onnea.
"APK-, JAR- ja ZIP-muodot ovat periaatteessa samat", huomautti Forristal. "JAR ja APK sisältävät vain lisäkomponentteja." Hänen lopullinen menestys liittyi ZIP-muodon hyödyntämiseen. Kun hän lisäsi "pahan" tiedoston, jolla oli sama nimi kuin olemassa olevalla kelvollisella tiedostolla, todentaja allekirjoitti kelvollisen tiedoston, mutta "paha" tiedosto käynnistettiin.
Miksi? Koska Android käyttää erilaisia ZIP-tiedostonhallintakoodeja todentajassa ja varsinaisessa asennuksessa. "ZIP-tiedostojen jäsentämisen ero on tämän virheen lähde", selitti Forristal. "Itse asiassa Android-koodikannassa on kahdeksan erillistä ZIP-tiedoston jäsentämistä toteutusta."
Ulos hiekkalaatikosta
"Käytin tätä temppu hyväksi", sanoi Forristal. "Otetaan nyt upea." Kuten iOS, myös Android ajaa kutakin sovellusta omassa hiekkalaatikossa, joten sovellus ei voi käyttää toiseen sovellukseen kuuluvia resursseja. "Ainoa tapa hiekkalaatikkoon on allekirjoittaa sama kehittäjä", hän selitti. "Siksi päivitykset ovat mahdollisia."
"Koko järjestelmä on samaa mieltä", hän jatkoi. "Järjestelmän hiekkalaatikko valvoo kaikkia muita hiekkalaatikoita. Se hallitsee kaikkia asetuksiasi. Se ei ole juuri, mutta siinä on kaikki tietosi, sovelluksesi, salasanasi ja asetukset - mitä jäljellä? Järjestelmä on melko tehokas." Järjestelmän hiekkalaatikkoon pääsyä tekevät sovellukset yleensä allekirjoittaa käyttöympäristön valmistaja. "Tarvitsin vain hankkia alustan allekirjoittaman sovelluksen ja tehdä pienen temppuni, ja minulla pitäisi olla järjestelmätason käyttöoikeus. Se on viileämpi kuin FourSquare-kartat", hän totesi.
Osoittautuu, että kolmansien osapuolien VPN-verkkojen on oltava alustan allekirjoittamia, ja bonuksena ne jo vaativat pääsyä järjestelmän hiekkalaatikkoon. Forristal näytti kolme yksinkertaista komentoa, joita hän käytti "pahan" koodin lisäämisessä kolmannen osapuolen VPN: ään, vitsailemalla "über hakkerointityökaluista". Lopputulos? Troijalainen, jolla on täysi pääsy järjestelmätasolle.
Helppo hyödyntäminen
Turvallisuuden pääteknologi Saurik (Jay Freeman) vei konseptin seuraavalle tasolle, selitti Forristal. Hänen Cydia Impactor -työkalu toimii OSX: ssä ja Windowsissa ja automatisoi hyödyntämisen. "Yhdistä laite", sanoi Forristal, "se selvittää oikean sovelluksen, rakentaa sen, lisää asianmukainen hakkeri saadaksesi juuripääsyn ja toimittaa sen. Aion julkaista joitain kevyitä pikku todisteita konseptisovelluksista, mutta tämä on mahtavaa."
Forristal huomautti, että laitteen prosessorityypillä ei ole merkitystä. Hyökkäykseen eivät vaikuta ASLR (Address System Layout Randomization) tai DEP (Data Execution Prevention). Hän teki yhden version, joka toimii neljällä Android-sukupolvella, ja ainoa todellinen tarvittava taito on Java-tuntemus. "Lähetin tämän Black Hat -sovellukselle, koska se on helppo ymmärtää ja hyödyntää", Forristal sanoi.
Lisää Master Key -näppäimiä
Forristal juoksi alas useita muita äskettäin löydettyjä virheitä, joita voidaan pitää "pääavaimina". Kun kävivät läpi tunnistetun ominaisuuden koodin, Blueboxin tutkijat löysivät kommentoidun linjan ja merkitsi "TODO". Puuttuvan koodin seurauksena, riippumatta siitä, mitä muutoksia teet, tiedosto läpäisee vahvistuksen. Useat tiedostot eivät käytä tätä ominaisuutta, huomautti Forristal. "Jos löydät sellaisen, voit kopioida ja liittää varmennetiedoston ja olettaa kehittäjän henkilöllisyyden. Jos olet allekirjoittanut sovelluksen todennetuilla määritteillä, olet antanut henkilöllisyytesi pois." Koska tämä virhe korjattiin ennen kuin Bluebox ilmoitti siitä, he eivät ota luottoa.
Kiinalaisen tutkijan ilmoittama "piilotettu troijalainen" -hyökkäys osoittautuu vain yhdeksi monista mahdollisista tavoista hyödyntää Androidin useita ZIP-tiedostojen jäsentäjiä. Nämä hyökkäykset hyödyntävät sitä tosiasiaa, että yksi jäsennyskäyttäjä allekirjoitti kokonaislukuja ja toinen käyttää allekirjoittamattomia kokonaislukuja.
"Kyse ei ole edes yhden tiedoston korvaamisesta", innostunut Forristal. "Voit käyttää tätä temppua syöttääksesi täysin erilaiseen ZIP-tiedostoon. Yksi vahvistetaan, toinen suoritetaan. Tässä tilassa pari temppua ja pikkuruuta saattaa osoittaa vielä enemmän valtaa tähän lähestymistapaan."
Vaikka tätä tekniikkaa käyttävät haittaohjelmat on jo nähty luonnossa, tässä kuvatun kaltaisten troijalaisten tiedostojen ei pitäisi olla mahdollista saada Google Playen. Olet todennäköisesti turvassa, jos asennat vain ja vain sovellukset, jotka ovat läpäisseet virallisen tarkastuksen. Varmista silti, että olet turvassa, asenna kaikki saatavilla olevat Android-päivitykset heti.