Mobilné riziká (QR/malware)

Mobilné riziká (QR/malware)

Mobil ako kritická hranica bezpečnosti v krypto ekosystéme

Smartfón je dnes primárny nástroj na správu digitálnych aktív, a tým aj najzraniteľnejší článok reťaze. Útočné vektory sa koncentrujú okolo troch oblastí: QR kódy (phishing, neviditeľná manipulácia parametrov), signer malware (škodlivé aplikácie a prekleňujúce vrstvy, ktoré vynútia neautorizované podpisy) a root/jailbreak (obchádzanie bezpečnostných modelov OS). Nasledujúci článok mapuje technické riziká, reálne scenáre útokov, detekčné techniky a odporúčané architektonické aj procesné mitigácie pre jednotlivcov, tímy aj vývojárov peňaženiek a dApps.

Model hrozieb: čo vlastne chrániť a pred kým

  • Ciele: privátne kľúče a seed frázy, schvaľovanie on-chain opráv (approvals), podpisy transakcií a správ (EIP-191/712/Sign-In with Ethereum), session kľúče (WalletConnect), biometrické zámky, trezorové prístupy, clipboard a obrazovka.
  • Útočníci: škodlivé aplikácie (APK/IPA), adware/spyware, prebalené peňaženky, klamlivé deep linky, fyzický útočník so zariadením, sieťový MITM, „legitímne“ SDK s exfiltráciou dát.
  • Vektory: QR kódy, deeplinky/URL schémy, Android Intents, accessibility a overlay, trojanizované klávesnice, manipulácia s ukladacím priestorom a keychain/keystore API, root/jailbreak hooky (Frida/Magisk/Substrate).

QR kódy: pohodlie vs. neviditeľné zmeny parametrov

QR kód je iba transportný formát. Jeho riziko pramení z toho, že obsah (adresy, chainID, amount, calldata, endpoint) je pre človeka nečitateľný:

  • Phishing QR: Napr. kód na „claim“ airdropu odkazuje na falošnú doménu, ktorá po deeplinku vyžiada škodlivé schválenie (infinite approval).
  • Podvrh recipienta/chainu: Kód vyzerá ako USDC na mainnete, ale obsahuje token na inom chainID s nízkou hodnotou alebo odkaz na kontrakt permit() s vysokým allowancom.
  • Stitching a pixel swap: Tlačené alebo digitálne bannery s vymeneným QR vedú do legitímneho UI, no s preseedovaným to=attacker.

Mitigácie: vždy zobrazovať pred podpisom prehľadné ľudsky čitateľné zhrnutie (adresa, suma, chain, funkcia), validovať doménu cez Verified Domains/ENS, používať QR parity check (napr. krátky hash parametrov vedľa QR) a preferovať read-only simuláciu transakcie pred odoslaním.

Deeplinky, URL schémy a Android Intents: tichá eskalácia privilégií

Mobilné dApps a peňaženky komunikujú cez schémy (ethereum:, wc:), Universal Links/App Links a Intents. Chybná validácia môže viesť k „podpíš čokoľvek“:

  • Open redirect: dApp presmeruje na škodlivý link, peňaženka ho prijme bez doménovej väzby.
  • Parameter smuggling: legitímny deeplink, no s vloženou calldata meniacou funkciu z transfer() na approve().
  • Cold start spoľahnutie: peňaženka po štarte nedostatočne zobrazuje source doménu, čím maskuje pôvod požiadavky.

Mitigácie: striktne viazať podpísané žiadosti k overenej doméne (origin binding), per-origin session kľúče, explicitné potvrdenie chainID a kontraktu, denylist/allowlist schém, a defensive parsing všetkých parametrov deeplinku.

Signer malware: útok na moment rozhodnutia

Signer malware nekradne priamo seed; jeho cieľom je dosiahnuť, aby používateľ legitímnym signerom podpísal niečo zlé:

  • Overlay/tapjacking: priehľadná vrstva prekryje tlačidlo „Detail“ a používateľ kliká na „Approve max“.
  • Accessibility abuse: malware číta obrazovku, extrahuje adresy a mení ich v clipboarde; dokonca simuluje dotyky.
  • Keyboard exfiltration: „moderná klávesnica“ loguje seed a heslá; kombinované s screenshot povoleniami.
  • Falošná peňaženka: rebrand známej appky, ktorá podsunie podpisy Permit2/approval s vysokým limitom.

Mitigácie: zakázať obrazovkové overlaye v kritických obrazovkách (FLAG_SECURE, filter touches when obscured), detegovať accessibility služby a prepnúť do „zvýšenej citlivosti“ (vyžadovať extra potvrdenie, rozložiť UI, zablokovať auto-confirm), zakázať externé klávesnice na seed vstupe, povoliť iba lokálne generované klávesnice bez predikcie.

Root/jailbreak: keď sandbox prestane byť sandboxom

Root (Android) a jailbreak (iOS) rušia zásadné garancie: izoláciu aplikácií, integritu systémových API a ochranu keychain/keystore. Útočník môže injektovať hooky (Frida, Magisk, Substrate), obchádzať SSL pinning, čítať pamäť a live-patchovať aplikáciu.

  • Následky: získanie prístupu k nekrytým kľúčom, zachytávanie obrazovky a dotykov, bezprostredná manipulácia so signerom.
  • Detekcia: kontrola prítomnosti su, známych knižníc/hookov, integrity boot chainu, Play Integrity/App Attest signálov, anomálií v procfs/entitlements.
  • Rozumná reakcia: buď „tvrdé stop“ (nepovoliť kritické operácie), alebo „degradovaný režim“ (iba read-only, bez podpisov a ukazovania seed-recovery obrazoviek).

Sieť a MITM: keď podpisujete to, čo nevidíte

Aj bez rootu stačí slabý TLS model a podpisujete dáta, ktoré zmenil útočník v sieti:

  • DNS hijack / captive portal: presmerovanie dApp API; zmenené calldata.
  • Chýbajúci certificate pinning: akceptácia útočníkovho certifikátu.

Mitigácie: TLS 1.3, cert-pinning (s bezpečným obchádzaním cez remote config a rotáciu), overovanie chainId a rpc origin, lokálne simulácie transakcií bez dôvery v backend.

Approvals, blind signing a EIP-712: nebezpečenstvo „OK, OK, OK“

Najčastejšie straty sú cez schválenia (ERC-20/721/1155) a blind signing správ:

  • Infinite approval: útočník získa právo prevádzať vaše tokeny, hoci ste nič „neposlali“.
  • Neparsované EIP-712: peňaženka nezobrazí čitateľnú štruktúru; používateľ potvrdí to, čomu nerozumie.

Mitigácie: default limited approvals, pri neznámych kontraktoch vyžadovať simulation diff (očakávaný stav vs. po podpise), vysvetliť spender a rozsah, povoliť rýchly revoke panel a automatické pripomienky pri dlhodobo otvorených schváleniach.

Session kľúče a WalletConnect: útoky na delegovanú dôveru

Session kľúče sú pohodlné, ale rizikové, ak nie sú limitované:

  • Preexponované session: bez obmedzenia metód, času a chainov; útočník ich zneužije na batch approvals.
  • Re-binding domény: rovnaká session použitá s inou doménou (origin).

Mitigácie: per-origin per-chain sessions, time-boxed a scope-limited (iba metódy potrebné pre UX), vizuálne zvýrazniť obnovu/„reconnect“ a vynucovať reautentizáciu pri rizikových volaniach.

Úložiská kľúčov: Secure Enclave/Keystore nestačí, ak UI zlyhá

Hardware-backed kľúče (Secure Enclave, StrongBox, TEE) chránia proti exfiltrácii, nie proti zlému rozhodnutiu používateľa. Preto je kľúčové:

  • vyžadovať biometriku pri každom rizikovom podpise (nie iba pri odomknutí appky),
  • izolovať seed import/export do samostatných flow (bez screenshotov, bez clipboardu),
  • neukladať seed v plain text JSON (žiadne „export.txt“ do stiahnutí),
  • umožniť externý signer (hardvérová peňaženka) a air-gapped QR podpis.

Detekcia a hardening aplikácií: od attestation po anti-hooking

  • Attestation: Play Integrity/SafetyNet (Android), DeviceCheck/App Attest (iOS) – viazať funkcie na integritu zariadenia a verziu appky.
  • Anti-hooking: detegovať Frida/Magisk/Substrate, randomizovať symboly, anti-debug spúšťať iba pri kritických akciách.
  • SSL pinning + remote pin rotácia: minimalizovať MITM, no počítať s recovery cestou.
  • Privacy by design: minimum logov, žiadne citlivé dáta v crash reportoch, FLAG_SECURE na citlivých obrazovkách.

Ľudské faktory a tréning: rozhodnutie v poslednom kroku

  • Čítanie obrazoviek podpisu: trénovať rozpoznávanie approve/permit/setApprovalForAll vs. transfer.
  • „Dvojitý kanál“: pri väčších sumách potvrdenie na inom zariadení (hardware signer alebo desktop s verifikáciou adresy na displeji zariadenia).
  • Hygiena QR: skenovať iba z dôveryhodných zdrojov; neveriť náhodným QR v skupinách a reklamách.

Incident response: keď sa to stane

  • Okamžitý revoke: odvolať approvals pre ohrozené tokeny; v prípade krádeže skúsiť whitehat rescue s multisigom.
  • Migrácia kľúčov: považovať zariadenie za kompromitované, presunúť aktíva na novú peňaženku so fresh seed.
  • Forenzná stopa: uložiť tx hashe, verzie appiek, snímky deeplinkov; nahlásiť marketplace/mostom kvôli blacklistingu adries.

Tabuľka: typ útoku – symptómy – rýchla obrana

Útok Symptómy Okamžitá akcia Prevencia
Phishing QR Neočakávané approve/permit, neznáma doména Zrušiť podpis, skontrolovať doménu/ENS Simulácie, origin binding, hash vedľa QR
Signer overlay Tlačidlá „nepasujú“, nezvyčajné prekrytie Zatvoriť app, vypnúť accessibility/overlay FLAG_SECURE, filter touches, zvýšený režim
Clipboard hijack Adresa sa zmení po vložení Overiť posledné znaky na HW signer displeji Zakázať externé klávesnice a clipboard v seed flow
Root/jailbreak hook Nezvyčajná stabilita/lag, app „neprejde“ attestation Stop kritickým operáciám, migrácia zariadenia Attestation, anti-hooking, degradovaný režim
MITM/bez pinningu Podpisy požiadaviek „mimo zvyku“, zmenené RPC Odpojiť sieť, použiť iné pripojenie, overiť RPC Pinning, lokálne simulácie, validácia chainId

Checklist pre jednotlivcov (power users)

  • Používajte hardvérovú peňaženku alebo aspoň mobil+HW kombináciu pre väčšie sumy.
  • Vypnite overlay a nepovoľujte accessibility neznámym appkám; nepoužívajte tretie klávesnice pri práci so seed.
  • Podpisy čítajte: hľadajte approve/permit/setApprovalForAll; pri pochybnosti zrušte a overte kontrakt.
  • Revidujte approvals mesačne; používajte limitované allowances.
  • QR skenujte iba z overených zdrojov; preferujte manuálne porovnanie adresy na displeji HW signera.

Checklist pre tímy/treasury

  • Multisig s prahom a policy (denné limity, require-simulate-before-sign, povinné druhé zariadenie).
  • Oddelené zariadenia: jedno pre podpisy (čisté, bez sociálnych sietí), druhé pre komunikáciu.
  • MDM/EMM politika: zákaz root/jailbreak, povinné attestation, kontrola verzií peňaženiek.
  • Runbook na incidenty: okamžité revoke, kontakty na burzy/mosty, predkonfigurovaný whitehat multisig.

Checklist pre vývojárov peňaženiek a dApps

  • Zobrazujte čitateľné EIP-712 s rozlišovaním rizikových metód; predvolená simulácia a state diff.
  • Origin binding pre deeplinky; per-origin sessions s časovým a metódovým limitom.
  • Detekujte overlay/accessibility a prepínajte do „zvýšenej citlivosti“ (extra potvrdenie, blok screenshotov).
  • Integrujte attestation a anti-hooking; definujte degradovaný režim na root/jailbreak.
  • Implementujte rýchly revoke center a notifikácie pri dlhých/infinite approvals.

Dizajn bezpečnosti, nie iba súpis pravidiel

Mobilná bezpečnosť v krypto svete je o architektúre dôvery: používateľské rozhranie musí byť pravdivé (jasné a zrozumiteľné podpisy), sieť spoľahlivá (pinning, simulácie) a zariadenie integritné (bez root/jailbreak, s attestation). QR kódy slúžia iba ako prenosový kanál – skutočná ochrana sa deje pri validácii obsahu a pri samotnom podpise. Bez ohľadu na úroveň technológií platí zásada: dôležité transakcie potvrdzujte na zariadení, ktoré je schopné zobraziť presne to, čo podpisujete, a nenechajte signer rozhodovať sám – vždy mu dajte kontext a limity.

Pridaj komentár

Vaša e-mailová adresa nebude zverejnená. Vyžadované polia sú označené *