Jak mobilní bankovnictví českých bank na platformě Android brání úniku citlivých údajů svých klientů skrze služby pro usnadnění přístupu?

Banky, které se aktivně nebrání úniku dat skrze tzv. “accessibility features”, touto cestou nevědomky sdílí data účtů, historii transakcí a často i přihlašovací údaje s aplikacemi třetích stran. V současné době je právě toto rostoucím rizikem pro aplikace mobilního bankovnictví, kdy útočníci zneužívají služby pro usnadnění přístupu čím dál víc. Proto Wultra na začátku října vyvinula jednoduchou testovací aplikaci, jejímž prostřednictvím zjišťovala, jak jsou jednotlivé banky připraveny čelit takovému bezpečnostnímu riziku.

Petr Dvořák
Wultra Blog CZ
9 min readNov 23, 2019

--

Cílem Wultry při vývoji této testovací aplikace bylo poukázat na možnou existenci zmíněných bezpečnostních slabin v aplikacích mobilního bankovnictví a v případě jejich odhalení na ně bankovní instituce upozornit. Navzdory zpočátku nepříznivé situaci, kdy pouze bezmála čtvrtina z testovaných bank obsahovala nějakou formu ochrany, se během dvou měsíců situace razantně zlepšila. Na námi nahlášenou bezpečnostní slabinu bleskově reagovaly jak banky, tak jejich technologičtí dodavatelé.

Platforma Android, kterou dnes vlastní téměř 80 % všech uživatelů chytrých telefonů, je z pohledu vývojářů velice otevřená. Své mobilní bankovnictví již pro tuto platformu i díky tomu připravila většina českých bank. Bohužel, faktem zůstává, že velmi malá část z nich dokáže svou aplikaci komplexně zabezpečit a udržovat vysokou míru bezpečnosti v neustále se měnícím ekosystému mobilních aplikací. Zjistili jsme, že některé bankovní aplikace nevědomky sdílí data klientů s aplikacemi třetích stran skrze tzv. služby pro usnadnění přístupu. Jedná se přitom o data, která jsou nejvíce citlivá: informace o účtech a transakcích, ale někdy také přihlašovací údaje do bankovnictví samotného.

Citlivá data se tímto způsobem mohla z mobilních bankovnictví dostat do téměř 1500 aplikací třetích stran, z nichž přibližně 50 je z kategorie škodlivých aplikací (mobilní malware).

Ukázka testovací aplikace i náznaku úniku citlivých dat z aplikace mobilního bankovnictví. Z bezpečnostních důvodů na screenshotu ukazujeme pouze zachycení obecných textů v aplikaci, např. “Zde zadejte aktivační kód, který…”.

V důsledku tak tím, že data svých klientů dostatečně nechrání, mohou být dotčené banky v rozporu se zákonem o bankách (PSD2/RTS, bankovní tajemství) i s nařízením o ochraně osobních údajů (GDPR).

Otázky a odpovědi

Q1: Jaký je princip Vámi odhalené zranitelnosti?

Zranitelnost je založena na nedokonalém designu Android platformy, jmenovitě na principu fungování tzv. “služeb pro usnadnění přístupu” (“accessibility”). Ty jsou určené pro tvorbu aplikací pro handicapované uživatele. Umožňují tedy vytvořit například aplikaci pro uživatele, kteří mají problém se zrakem (aplikace pro usnadnění přístupu pak předčítá text na obrazovce) nebo uživatele, kteří nemohou zařízení dostatečně ovládat z důvodu snížení hybnosti rukou (aplikace pro usnadnění přístupu pak provádí některá gesta za uživatele).

Celá řada tvůrců aplikací přitom na Google Play vydala i aplikace, které oprávnění pro usnadnění přístupu zneužívají ke zcela jinému účelu, než pro jaký byla tato oprávnění zamýšlena, a často k jinému účelu, než který je deklarovaný v popisu u dané aplikace (tento popis tvůrce aplikace navíc nemusí vůbec uvést).

Některé aplikace využívají služby pro usnadnění přístupu pro automatizaci akcí na mobilním zařízení (provádí klikání a gesta bez účasti uživatele), jiné pro čtení obsahu obrazovky (sledují používání a obsah aplikací). Techniku takto využívají mimo regulerní aplikace pro usnadnění přístupu také antivirové programy, různé “čisticí utility”, fitness aplikace, aplikace k chytrým hodinkám či chytrým domácnostem, nebo různé “jednorázové hračičky”. Na druhé straně pak bohužel tyto služby zneužívá také celá řada podvodných aplikací a bankovní mobilní malware.

Q2: Sdělíte nám technické detaily toho, jak zranitelnost funguje?

Z technického pohledu služby pro usnadnění přístupu fungují tak, že aplikace, které uživatel v danou chvíli používá, zasílají skrze infrastrukturu OS Android události související se zpřístupněním všem aplikacím třetích stran, které mají v Android platformě zaregistrovanou službu pro usnadnění přístupu.

Ukázka kódu služby pro usnadnění přístupu a událostí, které jsou touto službou přijímány.

Dochází tak ke sdílení například:

  • Libovolného textového obsahu na obrazovce.
  • Zadávaného textu do textových polí.
  • Stisku libovolného tlačítka, vč. kláves softwarové PIN klávesnice.
  • Libovolné změny obrazovky, na které se uživatel nachází.
  • Gest, která uživatel v mobilní aplikaci realizuje.
  • Scrollování obsahem obrazovky.

S takto získanými daty pak aplikace třetích stran mohou nakládat v principu libovolně. Mohou je lokálně zpracovávat. Bankovní malware například na koncovém zařízení takto časuje útok na uživatele. Mohou je rovněž posílat na svůj server. Zde mohou být ukládány, zpracovávány a následně zneužity k přípravě sofistikovaného útoku na klienty bank.

Q3: Jak mohlo dojít k distribuci zranitelnosti koncovým uživatelům?

Na platformě Android je možné vytvořit a vydat aplikace se službou pro usnadnění přístupu na oficiální aplikační obchod Google Play bez jakýchkoliv omezení. Jen v naší interní databázi malware je nyní evidováno téměř 1500 různých aplikací, které používají služby pro usnadnění přístupu, a které jsou instalované na zařízeních českých uživatelů. V českých podmínkách jsme přitom jen za letošní rok na zařízeních uživatelů zaznamenali přes 50 druhů aplikací bankovního malware, které zneužívají oprávnění pro usnadnění přístupu.

Důkazem toho, že vydat aplikaci se službou pro usnadnění přístupu na Google Play je velmi snadné, je například naše testovací aplikace.

Publikování naší Android aplikace Screen Logger trvalo sice 2 dny — zhruba stejně dlouho, jako její vytvoření — ale nakonec se to přeci jen podařilo…

Testovací aplikaci si můžete stáhnout zde:

Q4: Jaké aplikace konkrétně mohly mít přístup k citlivým datům?

Seznam všech aplikací, u kterých evidujeme, že je měli uživatelé českých mobilních bankovnictví nainstalované na svých zařízeních, a že mohly k datům zasažených bank přistupovat, je k dispozici zde:

Jak bylo uvedeno výše, jedná se téměř o 1500 aplikací, z nichž přibližně 50 aplikací je mobilní malware. Právě tento kvantitativní aspekt je z našeho pohledu vysoce problematický. Samozřejmě bychom byli vůči bankám shovívaví pokud bychom viděli, že k datům mají přístup pouze legitimní aplikace pro usnadnění přístupu. Mezi aplikacemi se ale najde opravdu ledacos…

Tématika “Kim Jong-Un” je mezi aplikacemi využívajících oprávnění pro usnadnění přístupu velice populární. Na své si přijdou i fanoušci druhé Kim (Kardashian), nebo třeba sněžného může…

Ne všechny aplikace uvedené v datovém listu jsou ke stažení na Google Play. Některé jsou distribuovány pouze na neoficiálních kanálech. Některé aplikace navíc mají své verze jak na Google Play (typicky s nižším počtem oprávnění, někdy tedy právě bez “služeb pro usnadnění přístupu”), tak na neoficiálních distribučních kanálech.

Seznam obsahuje aplikace, které jsou “bezpečné” (čili vysoce pravděpodobně data, ke kterým mají přístup, nezneužívají), ale také aplikace, které jsou již prokázaným a známým malware, často specificky cíleným na banky. Tuto kategorizaci na bezpečné a nebezpečné aplikace jsme nechtěli v datech rozkrýt, protože seznam obsahuje rovněž aplikace, které jsou z našeho pohledu v “šedé zóně”. Chceme se vyhnout tomu, abychom publikovali některou potenciálně škodlivou aplikaci jako “bezpečnou” a jakkoliv tak legitimizovali její fungování.

Q5: Jaké údaje mohou unikat?

Pokud se zdrojová aplikace mobilního bankovnictví útoku a sdílení dat proaktivně nebrání, unikají v principu všechna data, která uživatel vidí na obrazovce telefonu. Jedná se tak například o tato citlivá data:

  • Seznam účtů klienta včetně zůstatků, aktivní úvěrové produkty.
  • Historie transakcí na účtech a platebních kartách.
  • Při nesprávné implementaci informace o přihlašovacích údajích (klientské číslo, PIN kód či heslo, SMS OTP kódy).

Méně často — v případě, že aplikace dané údaje zobrazuje — pak mohou být odcizeny také:

  • Informace o protistranách plateb — šablony/vzory plateb.
  • Informace o osobních údajích a kontaktní informace (adresa, e-mail, …).
  • Informace o uzavřených smlouvách.

Q6: Jaký je potenciální dopad tohoto úniku?

Mimo to, že klienti bank by si zcela jistě nepřáli, aby jim neautorizované třetí strany např. sledovaly stav účtu a transakce, které provádí, může být dopad hrozby výrazně vyšší. Riziko vidíme například v možnosti:

  • Autentizace útočníka skrze call-centrum, kde ověření může probíhat skrze dotazy o pohybech na účtu.
  • Vydírání nebo manipulace klienta banky na základě jeho chování plynoucího z pohybů na účtu.
  • Aktivace nové mobilní banky a získání plné kontroly nad účtem.
  • Kompromitace přihlašovacích údajů pro Internetové bankovnictví.
  • Kompromitace mobilního bankovnictví na postiženém zařízení, následný útok principem “nahraji si gesta, upravím, a přehraji zpět”.
  • Kompromitace behaviorálního otisku uživatele, čili toho, v jakých časech používá mobilní bankovnictví, jak rychle provádí gesta v uživatelském rozhraní, jaké uživatelské cesty v rámci rozhraní mobilní aplikace volí,…

Q7: Co znamená, že došlo k “úniku přihlašovacích údajů”?

Speciální sadu testování jsme nakonec realizovali za účelem zjišťování toho, jaké přihlašovací údaje mohou být z mobilní aplikace skrze službu pro usnadnění přístupu získány. Hodnocení jsme následně provedli ve třech kategoriích:

  • Málo zasažené banky jsou takové, které buď vůbec neumožnily odcizení přihlašovacích údajů, nebo banky, u kterých bylo možné odcizit pouze část, která nezpůsobí okamžitou kompromitaci účtu (například došlo k úniku pouze klientského čísla).
  • Středně zasažené banky jsou takové, kde je odcizené přihlašovací údaje možné zneužít ke kompromitaci účtu, ale je to buď možné pouze na daném infikovaném zařízení (nahráním a automatickým zadáním údajů skrze službu pro usnadnění přístupu), nebo je nutné pečlivé časování útoku (například zachycení a použití aktivačního kódu před tím, než jej použije legitimní uživatel).
  • Vysoce zasažené banky pak jsou takové, jejichž aplikace umožní ztrátu přihlašovacích údajů, která následně vede k plné kompromitaci účtu klienta.

Q8: Udělil uživatel ke sdílení dat souhlas?

Z našeho pohledu se jedná o problematické (ne)udělení souhlasů. Nežádoucí sdílení dat probíhá bez toho, aby uživatel udělil příslušný souhlas v mobilním bankovnictví, čili v aplikaci, která má citlivá data ochraňovat. Uživatel na druhé straně musí povolit služby pro usnadnění přístupu aplikaci, která citlivá data přijímá.

Je ale nutné obratem podotknout, že uživatel velice pravděpodobně neočekává (a není nijak upozorněn na to), že povolením služby pro usnadnění přístupu udělí přístup ke svým bankovním účtům například antivirovému software, systémovým utilitám, fitness aplikacím, aplikacím pro chytré hodinky, klávesnicím třetích stran, domácímu asistentovi, vtipným “aplikacím na pár použití”, mobilním hrám, či jiným aplikacím, které oprávnění na usnadnění přístupu z různých důvodů využívají.

V databázi malware společnosti Wultra je dostupných cca 1500 aplikací, které dnes využívají oprávnění na usnadnění přístupu (“accessibility”) a mají tak přístup k informacím v nezabezpečených bankovních aplikacích. Uživatel přitom pravděpodobně neočekává, že tyto aplikace mohou přistupovat také k jeho účtům.

Některé podvodné aplikace a bankovní malware navíc v praxi a s úspěchem používají techniky pro zmatení uživatele. Ty lze přitom považovat za vysoce sofistikované. Uživateli v těchto případech nelze neúmyslné povolení služby dávat za vinu. Odhalení podvodné taktiky totiž vyžaduje vysokou úroveň technické odbornosti a detailní znalost Android platformy.

Na tomto videu je například zachycen bankovní malware QRecorder, který se v oběhu poprvé objevil v září 2018. Ten udělení souhlasu s právy pro usnadnění přístupu maskuje za právní text společnosti Google (falešný název obrazovky “Google Service”, text souhlasu je zcela fabrikovaný). Uživatele pak opakovaně (skrze tzv. “toast message”) vyzývá k udělení souhlasu. Následně zabraňuje vypnutí služby pro usnadnění přístupu tím, že automaticky (přes gesta realizovaná právě službou pro usnadnění přístupu, ke které dal uživatel právě souhlas) zavírá obrazovku nastavení.

Druhé stádium malware QRecorder. Uživatel vidí “právní text”, který musí odsouhlasit, následně tak malware získá kontrolu nad zařízením a zabraňuje odebrání souhlasu zavíráním okna nastavení.

Q9: Co mohou udělat koncoví uživatelé?

Uživatelům mobilního operačního systému Android doporučujeme navštívit v mobilním zařízení sekci “Nastavení” (Settings), podsekci “Usnadnění přístupu” (Accessibility). Zde pak doporučujeme vypnout všechny “Stažené služby” (Downloaded Services), které uživatel nepovažuje za důvěryhodné nebo obsahují popis, kterému uživatel plně nerozumí.

V případě, že by se u jakékoliv služby projevilo chování, kdy vypnutí služby není možné, protože potvrzovací dialog se sám zavírá, doporučujeme okamžitě kontaktovat banku. Toto chování je totiž indikací malware, který se snaží bránit své deaktivaci.

V neposlední řadě uživatelům doporučujeme kontaktovat svou banku (v případě, že jsou mezi zasaženými) s dotazem, jakým způsobem banka zabraňuje úniku citlivých údajů z bankovní aplikace směrem k třetím stranám, byť z pohledu uživatele možná důvěryhodným. Na straně banky je totiž řešení problému poměrně snadné.

Q10: Jaké přístupy používají banky k ochraně proti zranitelnosti?

Banky implementují různé způsoby ochrany proti této zranitelnosti.

Často je využívána ochrana mobilního runtime (RASP, App Shielding), která zamezuje úniku citlivých údajů z mobilní aplikace skrze služby pro usnadnění přístupu. Toto řešení již implementovala MONETA Money Bank, Raiffeisenbank či Equa bank.

Některé z testovaných bank tuto zranitelnost řeší ve spolupráci se svými dodavateli pomocí nástrojů pro detekci finančních podvodů (anti-fraud systém, např. od společnosti ThreatMark), případně blokují čtečky obrazovky vlastními silami v rámci rozvoje mobilní aplikace.

Jiné banky se s problematickým oprávněním vypořádaly tak, že přímo v mobilním bankovnictví upozorní na problematickou aplikaci a navigují uživatele k odebrání příslušných oprávnění.

Q11: Omezí blokování služeb pro usnadnění přístupu nevidomé uživatele či legitimní aktivitu antivirových programů?

Při správné implementaci je blokování sdílení citlivých údajů skrze služby pro usnadnění přístupu aktivní pouze v případě, že je aktivní neznámá aplikace se službou pro usnadnění přístupu. Pokud jsou aktivní pouze známé aplikace (tzv. “whitelist”), například aplikace TalkBack od společnosti Google určená pro nevidomé uživatele OS Android, služby pro usnadnění přístupu klasicky fungují a uživatelé, kteří je potřebují využívat, nejsou nijak omezováni.

Pro více informací o zranitelnosti nebo o tom, jak je možné ji z mobilního bankovnictví během 24 hodin na straně banky odstranit, nás kontaktujte na adrese: hello@wultra.com

--

--

Petr Dvořák
Wultra Blog CZ

CEO and Founder of Wultra . Cybersecurity specialist, author of two security-related patents, and a passionate motorcyclist.