Video: Hacking into Android in 32 seconds | HID attack | Metasploit | PIN brute force PoC (November 2024)
Digitálny podpis nebol prerušený
Celkovým bodom digitálneho podpisovania dokumentu alebo súboru je preukázať, že súbor nebol zmenený. Tento proces používa formu kryptografie s verejným kľúčom. Súbor digitálne podpíšete jeho šifrovaním súkromným kľúčom. Skutočnosť, že šifrovaný súbor možno dešifrovať pomocou vášho verejného kľúča, je dôkazom toho, že nedošlo k nedovolenému zasahovaniu. Keby BlueBox našiel spôsob, ako skutočne zmeniť súbor bez toho, aby zmenil jeho digitálny podpis, bolo by to ohromujúci úder pre celý kryptografický priemysel. Ale neurobili to.
BlueBox nahlási všetky podrobnosti svojho výskumu na konferencii Black Hat za pár týždňov. Výskumník ViaForensics Pau Oliva Fora však zverejnil dôkaz o koncepčnom kóde, ktorý ilustruje zvolený prístup.
Po pravde povedané, je to veľmi, veľmi jednoduché. Súbory APK sú balené pomocou verzie rozšíreného algoritmu archivácie ZIP. Väčšina implementácií ZIP nepovoľuje dva rovnaké súbory v jednom archíve, ale samotný algoritmus túto možnosť nezakazuje. Pri kontrole digitálneho podpisu aplikácie systém Android sleduje prvý zhodný súbor, ale pri skutočnom spustení a spustení súboru ho chytí za posledný . Ak chcete aplikáciu na trójske kone, stačí do nej vložiť škodlivý kód pomocou názvu, ktorý už v aplikácii existuje. Demonštrácia spoločnosti Fora predstavuje iba niekoľko desiatok riadkov kódu Java.
Ďalší štrukturálny útok
Čínsky vedec blogov ako Android Security Squad našiel demonštráciu zaujímavé a šiel hľadať iné spôsoby, ako narušiť proces overovania. Čítanie príspevku preloženého spoločnosťou Google je trochu ťažké, zdá sa však, že útok sa opiera o koncepciu na úrovni 101 počítačových vied.
Počítačové programy ukladajú počty do kolekcií bitov s pevnou veľkosťou. Napríklad s ôsmimi bitmi môžete reprezentovať čísla od 0 do 255. Ak je potrebné reprezentovať záporné čísla, dlhodobá konvencia je, že bit vľavo označuje záporné číslo. S ôsmimi bitmi potom môžete tiež predstavovať čísla od -128 do 127. Binárne číslo 11111111 predstavuje buď 255 alebo -1, v závislosti od toho, či je zamýšľané ako nepodpísané alebo podpísané číslo.
Jednotka Android Security Squad prešla cez formát hlavičky súboru APK a našla dátové pole, ktoré sa považuje za kladný ofset, ale je uložené ako celé číslo so znamienkom. Vynútenie tohto poľa na konkrétnu zápornú hodnotu spôsobí, že zavádzač APK spustí škodlivý kód, a nie už overený digitálne podpísaný kód. OK, je to trochu zložitejšie, ale zhruba to tak funguje.
Stick pomocou Google Play
Ani jeden z týchto hackov v skutočnosti nepodvracia mechanizmus digitálneho podpisu systému Android. Namiesto toho obidve využívajú vtipky v štruktúre APK, aby urobili digitálny podpis irelevantným. Ani jedna z nich neumožní trójskej aplikácii preniknúť cez analýzu spoločnosti Google. Spoločnosť Google konkrétne aktualizovala službu Google Play, aby odfiltrovala trojanizované aplikácie pomocou útoku „hlavný kľúč“; aj bez tohto kroku by štandardná bezpečnosť takmer určite blokovala ktorýkoľvek typ trojanizovanej aplikácie.
Lekcia je jasná. Vždy získavajte svoje aplikácie z legitímnych zdrojov, vždy skontrolujte, či je meno vývojára platné, a nakonfigurujte svoj telefón, aby nepovolil inštaláciu aplikácií z „neznámych zdrojov“. Venujte pozornosť tomu, na ktoré povolenia aplikácia žiada, a buďte pripravení prerušiť podozrivú inštaláciu. Ak váš operátor ponúka aktualizáciu systému Android, vždy ju nainštalujte. Je to len zdravý rozum!