Video: Infodrom: Kitajska omilila politiko enega otroka (November 2024)
Digitalni podpis ni pokvarjen
Smisel digitalnega podpisa dokumenta ali datoteke je dokaz, da datoteka ni bila spremenjena. Postopek uporablja obliko kriptografije z javnim ključem. Datoteko digitalno podpišete tako, da jo šifrirate z zasebnim ključem. Dejstvo, da je mogoče šifrirano datoteko dešifrirati z vašim javnim ključem, je dokaz, da ni prišlo do nedovoljenih posegov. Če bi BlueBox našel način, kako dejansko spremeniti datoteko, ne da bi spremenil njen digitalni podpis, bi bil to osupljiv udarec za celotno kripto industrijo. Ampak niso.
BlueBox bo čez nekaj tednov na konferenci Black Hat sporočil vse podrobnosti svojih raziskav. Vendar je raziskovalec ViaForensics Pau Oliva Fora objavil dokaz o konceptu kode, ki ponazarja uporabljeni pristop.
V resnici je zelo, zelo preprosto. Datoteke APK se pakirajo z uporabo različice razširjenega algoritma arhiviranja ZIP. Večina implementacij ZIP ne bo dovoljevala dveh istoimenovanih datotek v enem arhivu, vendar algoritem sam ne prepoveduje te možnosti. Android OS pri preverjanju digitalnega podpisa aplikacije pogleda prvo ujemajočo se datoteko, ko pa dejansko izvrši in zažene datoteko, zgrabi zadnjo . Če želite aplikacijo Trojanizirati, odstranite svojo zlonamerno kodo, tako da uporabite njeno ime, ki že obstaja v aplikaciji. Predstavitev Fora je le nekaj deset vrstic kode Java.
Še en strukturni napad
Kitajski raziskovalec, ki piše na spletnem mestu Android Security Squad, je demonstracijo pokazal kot zanimivo in začel iskati druge načine, kako podreti postopek preverjanja. Branje objave, ki jo je prevedel Google, je nekoliko naporno, vendar se zdi, da se napad naslanja na koncept računalniške tehnologije 101.
Računalniški programi shranijo štetje števil v zbirkah bitov fiksne velikosti. Na primer, z osmimi biti lahko predstavljate številke od 0 do 255. Če je potrebno predstavljati negativna števila, je dolgoletna konvencija, da skrajni levi bit označuje negativno število. Z osmimi biti lahko torej predstavljate tudi številke od -128 do 127. Binarna številka 11111111 predstavlja bodisi 255 bodisi -1, odvisno od tega, ali je namenjena kot podpisana ali podpisana številka.
Android Security Squad je presegel obliko zapisa glave APK in našel podatkovno polje, za katero se domneva, da je pozitiven odmik, vendar je shranjeno kot podpisano celo število. Če to polje prisili na določeno negativno vrednost, bo nalagalec APK izvajal zlonamerno kodo in ne že preverjeno digitalno podpisano kodo. V redu, je malo bolj zapleteno, ampak približno tako deluje.
Držite se z Googlom Play
Noben od teh kramp dejansko ne pokvari mehanizma za digitalni podpis Android. Namesto tega oba izkoriščata poizvedbe v strukturi APK, da digitalni podpis ne upoštevata. Prav tako nobena od njih ne bo omogočila trojanski aplikaciji, da bi se prebil mimo Googlove analize. Google je posebej posodobil Google Play za filtriranje trojanskih aplikacij z napadom "master key"; tudi brez tega koraka bi standardna varnost skoraj zagotovo blokirala katero koli vrsto trojanske aplikacije.
Lekcija je jasna. Svoje programe vedno dobite iz zakonitih virov, vedno preverite, ali je ime razvijalca veljavno, in nastavite telefon tako, da ne dovoljuje nameščanja aplikacij iz "neznanih virov". Bodite pozorni, katera dovoljenja zahteva aplikacija, in bodite pripravljeni prekiniti sumljivo videz namestitve. Če vaš operater ponuja posodobitev za Android, jo vedno namestite. Samo zdrav razum!