To, co jsme si v XDA kdysi představovali jako důkaz bezpečnostní zranitelnosti konceptu, nyní potvrdili počítačoví vědci z Georgia Institute of Technology v Atlantě. Tým podrobně popisuje, jak říkají "plášť a dýkaexploity, které mohou převzít uživatelské rozhraní většiny verzí Androidu (včetně 7.1.2). Vzhledem k jeho povaze je obtížné jej opravit a také obtížně zjistit.
Cloak and Dagger je exploit, který využívá dvě oprávnění, aby převzal kontrolu nad uživatelským rozhraním, aniž by uživatel měl možnost zaznamenat škodlivou aktivitu. Útok využívá dvě oprávnění: SYSTEM_ALERT_WINDOW ("nakreslit navrch") a BIND_ACCESSIBILITY_SERVICE ("a11r"), které se velmi běžně používají v aplikacích pro Android.
My máme nastínil to v minulosti, ale to, co dělá tuto chybu zabezpečení tak akutní, je skutečnost, že aplikacím požadujícím SYSTEM_ALERT_WINDOW je toto oprávnění automaticky uděleno při instalaci prostřednictvím obchodu Google Play. Pokud jde o povolení služby zpřístupnění, škodlivá aplikace je schopna poměrně snadno přimět uživatele, aby ji udělil. Škodlivou aplikaci lze dokonce nastavit tak, aby používala Službu usnadnění pro částečně legitimní účel, jako je sledování, kdy jsou určité aplikace otevřené, aby změnily určitá nastavení.
Jakmile jsou tato dvě oprávnění udělena, počet útoků, ke kterým může dojít, je velký. Krádež PINů, dvoufaktorové autentizační tokeny, hesla nebo dokonce útoky denial-of-service jsou možné. Je to díky kombinaci překryvných vrstev, která uživatele přimět, aby si myslel, že interaguje s a legitimní aplikace a služba zpřístupnění, která se používá k zachycení textu a dotykového vstupu (nebo předání vlastního vstup).
Před několika měsíci jsme teoretizovali takovou zranitelnost, ve které bychom vytvořili aplikaci proof-of-concept, která používá SYSTEM_ALERT_WINDOW a BIND_ACCESSIBILITY_SERVICE za účelem nakreslení překryvné vrstvy přes obrazovku pro zadání hesla v aplikaci XDA Labs a zachycení vstupu klávesy pro přejetí hesla. Tato aplikace, kterou jsme si představovali, by byla aplikace pro správu automatického otáčení, která by používala překrytí pro účely kreslení neviditelného pole na obrazovce. ovládání rotace (spíše než požadavek WRITE_SETTINGS, který by zvýšil příznaky) a službu usnadnění, která uživateli umožní ovládat profily automatického rotace v jednotlivých aplikacích základ. Teoreticky by se jednalo o jeden příklad aplikace využívající „maskování a dýku“. Nikdo z našeho týmu však nebyl ochoten riskovat své vývojářských účtů tím, že zpochybní automatizované systémy pro skenování aplikací Google, aby zjistily, zda bude náš proof-of-concept exploit povolen na Play Obchod.
V každém případě si tito výzkumníci dali práci a předložili testovací aplikace, aby dokázali, že použití těchto dvou oprávnění může být skutečně velkým bezpečnostním problémem:
Jak vidíte, útoky jsou pro uživatele neviditelné a umožňují plnou kontrolu nad zařízením. V současné době jsou vůči tomu zranitelné všechny verze Androidu od Androidu 5.1.1 po Android 7.1.2 exploit, vzhledem k tomu, že využívá dvě oprávnění jinak používaná pro zcela legitimní účely.
Neočekávejte, že skutečná oprava tohoto problému přijde do vašeho zařízení v dohledné době, i když je třeba poznamenat, že změny provedené v SYSTEM_ALERT_WINDOW v systému Android O tento nedostatek částečně vyřeší tím, že zakáže škodlivým aplikacím úplné kreslení přes celou obrazovku. Kromě toho Android O nyní upozorní prostřednictvím upozornění, pokud aplikace aktivně kreslí překryvnou vrstvu. S těmito dvěma změnami je méně pravděpodobné, že se škodlivé aplikaci podaří uniknout zneužití -li uživatel je pozorný.
Jak se chráníte na verzích před Android O? Jako vždy instalujte pouze aplikace, kterým důvěřujete, ze zdrojů, kterým důvěřujete. Ujistěte se, že požadovaná oprávnění jsou v souladu s tím, co očekáváte.
Pokud jde o stovky milionů běžných uživatelů, podle mluvčího Google Play Store Protect také poskytne potřebné opravy, aby se zabránilo útokům maskování a dýky. Jak přesně toho dosáhne, není jasné, ale doufejme, že to bude zahrnovat nějaký způsob, jak zjistit, kdy jsou tato dvě oprávnění zneužita. Pochybuji však, že by dokázala odhalit všechny takové případy, takže v každém případě je pro vás nejlepší sledovat, jaká oprávnění jsou udělována každé aplikaci, kterou nainstalujete.