Antiviry na Androidu blokují neškodné aplikace, ale skutečný malware jim prochází bez povšimnutí. Výzkum ukázal proč
Nová studie odhalila systémovou chybu v tom, jak dnešní detektory Androidu malwaru posuzují aplikaci, a navrhují framework, který ji řeší.
Obsah článku
Zálohovací aplikace, správci zařízení nebo bezpečnostní nástroje. Všechny potřebují široká oprávnění, aby mohly dělat svou práci. Jenže právě tato oprávnění je v očích řady detektorů malwaru dělají podezřelými. Výsledek? Neškodné aplikace končí na blacklistech, zatímco skutečně škodlivý kód, který svá oprávnění obratně maskuje mezi běžně vypadajícími funkcemi, projde bez povšimnutí. Tým vedený Shiwen Songem ze Singapore Management University ve studii publikované na arXiv ukázal, proč se to děje: dnešní skenery často čtou zástupné signály (oprávnění, citlivá API, grafy volání) místo toho, aby rekonstruovaly skutečné chování aplikace a posoudily, zda dává smysl vzhledem k tomu, co aplikace slibuje uživatelům. Výzkumníci zároveň představili framework PRAXIS, který tento problém řeší zásadně jiným přístupem. A čísla, která naměřili, jsou výmluvná.
Proč skenery pletou oprávnění s nebezpečím
Většina současných detekčních přístupů funguje na jednoduchém principu: vezme seznam oprávnění, která aplikace žádá, podívá se na volání citlivých API a porovná vzorce s tím, co zná z databází malwaru. Problém je, že tento postup nerozlišuje kontext. Aplikace pro zálohování souborů legitimně potřebuje přístup k úložišti, kontaktům i síti a statisticky pak může vypadat podobně jako spyware.
Studie pracovala s testovací sadou 270 benigních aplikací z 49 kategorií Google Play, z nichž každá deklarovala minimálně devět takzvaných nebezpečných oprávnění. Šest porovnávaných baseline detektorů (Drebin, MalScan, MsDroid, MaskDroid, LAMD a ForDroid) u těchto aplikací vykázalo míru falešných poplachů mezi 54,1 a 80,0 procenty. Více než polovina aplikací se širokými oprávněními byla označena jako malware.
Na druhé straně barikády stojí škodlivý kód, který vypadá nevinně. Studie popisuje konkrétní vzorec: aplikace čte příchozí SMS a odesílá je přes HTTP na vzdálený server. Obě operace (čtení zpráv i síťová komunikace) existují i v legitimních aplikacích. Detektory založené na izolovaných signálech je proto snadno přehlédnou.
Tři důvody, proč je behaviorální detekce tak těžká
Autoři studie pojmenovali tři překážky, které brání přechodu od povrchových signálů ke skutečné analýze chování:
- Škodlivé chování je řídké. V kódu aplikace tvoří zlomek celkové funkčnosti a je schované mezi tisíci legitimními operacemi.
- Chování se těžko mapuje na kód. Jedno škodlivé chování, třeba krádež SMS, je rozprostřené přes více funkcí a cest spuštění. Najít všechny relevantní části vyžaduje propojení fragmentů, které samy o sobě vypadají neškodně.
- Kontext je implicitní. Aplikace sama neřekne, jestli běží na pozadí za zády uživatele. Detektoru nikdo neprozradí, zda čtení SMS odpovídá deklarované funkci kalkulačky, nebo zda uživatel o sběru dat vůbec ví.
Co dělá PRAXIS jinak
Framework PRAXIS (název vychází z „evidence-based detection“) opouští model „spočítej oprávnění a porovnej s databází“. Místo toho pracuje ve třech krocích. Nejprve z hrubých signálů formuluje hypotézy o možném chování. Pak každou hypotézu ověřuje analýzou kódu a hledá konkrétní důkazní řetězce, které potvrdí nebo vyvrátí, že se dané chování skutečně odehrává. Nakonec posuzuje kontext: je uživatel o chování informován? Odpovídá to deklarované funkci aplikace? Skládají se jednotlivé kroky do útočného vzorce?
Výsledky mluví jasně. PRAXIS dosáhl celkového F1 skóre 87,4 procenta, nejsilnější základní linie (Drebin) skončila na 68,8 procenta a nejslabší (MsDroid) na 52,6 procenta. U benigních aplikací s vysokými oprávněními klesl podíl falešných poplachů na 13,0 procenta, tedy o 41 až 67 procentních bodů méně než u porovnávaných metod.
Jeden detail přitom ukazuje, jak zásadní je právě kontextová vrstva. Když výzkumníci z PRAXIS odstranili modul pro posuzování kontextu, F1 skóre spadlo na 24,7 procenta. Samotné „našli jsme podezřelé API“ bez pochopení, proč a za jakých okolností se volá, nestačí ani u sofistikovaného frameworku.
Co to znamená pro běžného uživatele
PRAXIS je výzkumný prototyp, nikoli aplikace ke stažení z Google Play. Komerční adopce zatím nebyla oznámena. Studie navíc netestovala konkrétní značky jako Avast, ESET nebo Bitdefender, ale kritizuje principy detekce, nikoli jednotlivé produkty. Část komerčních antivirů už ostatně sama přidává behaviorální vrstvy: Bitdefender nabízí App Anomaly Detection, ESET provádí audit oprávnění a Avast integruje ochranu proti phishingu a podvodům.
Důležitější než značka antiviru je ale způsob, jakým k ochraně telefonu přistupujete. Podle nás má smysl kombinovat několik vrstev:
- Nechat aktivní Google Play Protect, který kontroluje aplikace při instalaci i průběžně a umí škodlivou aplikaci zablokovat nebo odstranit.
- Před instalací zkontrolovat sekci Bezpečnost dat v Google Play, která ukazuje, jaká data aplikace sbírá a s kým je sdílí.
- Ověřit, jestli požadované oprávnění odpovídá hlavní funkci aplikace. Kalkulačka nepotřebuje přístup k SMS. Svítilna nepotřebuje číst kontakty.
- Ověřit identitu vývojáře. Google Play nově zobrazuje verifikační odznak u ověřených vývojářů.
Problém, který nový přístup nevyřeší
PRAXIS má slepá místa. Největší slabinou zůstává obsah načtený až za běhu aplikace, škodlivé stránky zobrazené přes WebView nebo payloady stažené a dešifrované až po instalaci. Statická analýza kódu je v těchto případech bezmocná, protože škodlivý obsah jednoduše není v instalačním balíčku přítomen.
Jen v prvním čtvrtletí roku 2026 evidoval Kaspersky přes 2,67 milionu zablokovaných mobilních útoků a více než 306 tisíc zachycených škodlivých instalačních balíčků. Mobilní malware není okrajový problém a detekce založená na povrchových signálech ho zjevně nezvládá. PRAXIS ukazuje směr od slepého počítání oprávnění k pochopení toho, co aplikace skutečně dělá a proč. Otázkou není, jestli se tímto směrem bezpečnostní průmysl vydá, ale jak rychle.