Janus Exploit umožňuje útočníkům upravovat aplikace bez ovlivnění podpisů

click fraud protection

Chyba zabezpečení Janus umožňuje útočníkům upravovat aplikace, aniž by to ovlivnilo jejich podpisy. Byl objeven společností GuardSquare a byl opraven společností Google.

Android je nainstalován na obrovském množství zařízení, a to z něj dělá cíl pro zákeřné útočníky. Chyby zabezpečení v mobilním operačním systému Google se nadále objevují každý měsíc, ale dobrou zprávou je, že Google je obvykle pilný, aby je opravoval v pravidelných bezpečnostních záplatách, které jsou pak nabízeny výrobcům OEM, kteří je následně dodávají zařízení.

Nedávno bezpečnostní výzkumníci odhalili zranitelnost která přiměla uživatele k tomu, aby umožnili útočníkům zaznamenat obrazovku jejich zařízení. Tento konkrétní exploit byl opraven v Android Oreo, ale analytici na GuardSquare nedávno oznámila další závažnou chybu zabezpečení, která ovlivňuje aplikace pro Android podepsané staršími podpisovými schématy.

GuardSquarezpráva uvádí, že Januszranitelnost (CVE-2017-13156) v systému Android umožňuje útočníkům upravovat kód v aplikacích, aniž by to ovlivnilo jejich podpisy. Zpráva dále uvádí, že kořenem chyby zabezpečení je, že soubor může být platným souborem APK a platným souborem DEX současně.

Janus využívá skutečnosti, že bajty navíc zůstávají v souborech APK a DEX bez povšimnutí. The GuardSquare zpráva vysvětluje, že soubor APK je archiv ZIP, který může obsahovat libovolné bajty na začátku, před a mezi položkami ZIP. Podpisové schéma JAR bere v úvahu pouze položky ZIP a ignoruje jakékoli extra bajty při výpočtu nebo ověřování podpisu aplikace.

Dále vysvětluje, že soubor DEX může na druhé straně obsahovat libovolné bajty na konci - po pravidelných částech řetězců, tříd, definic metod atd. Soubor tedy může být platným souborem APK a platným souborem DEX současně.

GuardSquare také zmiňuje, že klíčovým prvkem zranitelnosti je „neškodná“ vlastnost virtuálního stroje Dalvik/ART. Zpráva uvádí, že teoreticky runtime Android načte soubor APK, rozbalí svůj soubor DEX a poté spustí svůj kód. V praxi však může virtuální stroj (VM) načítat a spouštět soubory APK i soubory DEX. Problém je v tom, že když virtuální počítač získá soubor APK, stále se podívá na magické bajty v záhlaví, aby rozhodl, jaký typ souboru je: DEX nebo APK. Při nalezení hlavičky DEX načte soubor jako soubor DEX. Pokud záhlaví nenajde, načte soubor jako soubor APK obsahující záznam zip se souborem DEX. Může tedy nesprávně interpretovat duální soubory DEX/APK.

GuardSquare říká, že útočník může využít tuto funkci duality virtuálního počítače k ​​přidání škodlivého souboru DEX do normálního souboru APK, aniž by to ovlivnilo jeho podpis. Runtime Android přijme soubor APK jako platnou aktualizaci na legitimní starší verzi aplikace, ale virtuální počítač Dalvik načte kód ze souboru DEX, do kterého byl vložen škodlivý kód.

Obvykle, kdykoli si uživatel nainstaluje aktualizovanou verzi aplikace, podpis aplikace je ověřen běhovým prostředím Android, aby se zajistilo, že se shoduje se starší verzí. Když je ověření pozitivní, aktualizovaná aplikace získá oprávnění, která byla udělena původní aplikaci. Útočníci tak mohou pomocí zranitelnosti Janus obejít proces ověřování podpisů a získat neověřený kód nainstalovaný na zařízeních nic netušících uživatelů.

Ještě horší je, že tento neověřený kód může získat přístup k výkonným oprávněním. To vede k několika vážným možnostem. GuardSquare uvádí:

„Útočník může nahradit důvěryhodnou aplikaci s vysokými oprávněními (například systémovou aplikaci) upravenou aktualizací, aby zneužil její oprávnění. V závislosti na cílené aplikaci by to mohlo hackerovi umožnit přístup k citlivým informacím uloženým v zařízení nebo dokonce celé zařízení převzít. Případně může útočník předat upravený klon citlivé aplikace jako legitimní aktualizaci [která] může vypadat a chovat se jako původní aplikace, ale může způsobit škodlivé chování."

Společnost dodala, že zatím neviděli žádné aplikace využívající Januse ve volné přírodě. Další dobrou zprávou je, že zranitelnost vyžaduje, aby uživatel nainstaloval škodlivou aktualizaci ze zdroje mimo obchod Google Play. Uživatelé, kteří omezují instalace aplikací na Obchod Play, jsou proto chráněni.

Chyba zabezpečení Janus se týká zařízení se systémem Android 5.0+. Aplikace, které byly podepsány pomocí podpisového schématu APK v1, jsou ovlivněny. Soubory APK podepsané podpisovým schématem v2 jsou chráněny proti této chybě zabezpečení. To vyžaduje, aby soubory APK běžely na zařízeních podporujících nejnovější podpisové schéma (Android 7.0 a novější). Schéma v2 je chráněno, protože na rozdíl od schématu v1 bere v úvahu všechny bajty v souboru APK.

„Starší verze aplikací a novější aplikace běžící na starších zařízeních zůstávají náchylné. Vývojáři by měli alespoň vždy používat podpisové schéma v2,“ GuardSquare státy.

GuardSquare nahlásil tento problém společnosti Google 31. července 2017 a ve stejný den obdržel potvrzení. Zpráva společnosti uvádí, že Google vydal opravu svým partnerům v listopadu a 4. prosince 2017 zveřejnil chybu (CVE-2017-13156) v bulletinu zabezpečení Androidu. Zranitelnost má opraveno v bezpečnostní opravě Android z prosince 2017. Samostatně, aplikace F-Droid z jejich oficiálního úložiště byly potvrzeny jako bezpečné. Nakonec bylo potvrzeno, že zranitelnost byla opravena APKMirror.


Zdroj: GuardSquare