Tapjacking
Osnovne informacije
Tapjacking je napad gde se zlonamerna aplikacija pokreće i pozicionira iznad aplikacije žrtve. Kada vidljivo prekrije aplikaciju žrtve, njen korisnički interfejs je dizajniran na način da prevari korisnika da interaguje sa njom, dok zapravo ta interakcija ide ka aplikaciji žrtve. Na taj način, korisnik nije svestan da zapravo obavlja akcije na aplikaciji žrtve.
Detekcija
Da biste otkrili aplikacije koje su ranjive na ovaj napad, trebalo bi da tražite izložene aktivnosti u android manifestu (imajte na umu da je aktivnost sa intent-filterom automatski izložena po podrazumevanim postavkama). Kada pronađete izložene aktivnosti, proverite da li zahtevaju neku dozvolu. To je zato što će zlonamerna aplikacija takođe trebati tu dozvolu.
Zaštita
Android 12 (API 31,32) i noviji
Prema ovom izvoru, napadi tapjacking-a automatski su sprečeni od strane Androida od Androida 12 (API 31 & 30) i novijih verzija. Dakle, čak i ako je aplikacija ranjiva, nećete moći da je iskoristite.
filterTouchesWhenObscured
filterTouchesWhenObscured
Ako je android:filterTouchesWhenObscured
postavljen na true
, View
neće primati dodire kada je prozor prikaza zasenjen drugim vidljivim prozorom.
setFilterTouchesWhenObscured
setFilterTouchesWhenObscured
Atribut setFilterTouchesWhenObscured
postavljen na true takođe može sprečiti iskorišćavanje ove ranjivosti ako je verzija Androida niža.
Ako je postavljen na true
, na primer, dugme može automatski biti onemogućeno ako je zasenjeno:
Eksploatacija
Tapjacking-ExportedActivity
Najnoviju Android aplikaciju koja izvodi napad tapjacking (+ pozivanje pre izvozne aktivnosti napadnute aplikacije) možete pronaći na: https://github.com/carlospolop/Tapjacking-ExportedActivity.
Pratite uputstva u README datoteci kako biste je koristili.
FloatingWindowApp
Primer projekta koji implementira FloatingWindowApp, koji se može koristiti da se postavi preko drugih aktivnosti kako bi se izveo napad klikjacking, možete pronaći na FloatingWindowApp (malo zastareo, srećno sa izgradnjom apk datoteke).
Qark
Izgleda da ovaj projekat više nije održavan i ova funkcionalnost više ne radi ispravno
Možete koristiti qark sa parametrima --exploit-apk
--sdk-path /Users/username/Library/Android/sdk
da biste kreirali zlonamernu aplikaciju za testiranje mogućih ranjivosti na Tapjacking.
Otklanjanje problema je relativno jednostavno jer programer može odlučiti da ne prima događaje dodira kada je prikazan drugi prikaz preko njega. Koristeći Android Developer’s Reference:
Ponekad je esencijalno da aplikacija može da potvrdi da se akcija izvršava uz punu saglasnost i znanje korisnika, kao što je odobravanje zahteva za dozvolu, obavljanje kupovine ili klikanje na oglas. Nažalost, zlonamerna aplikacija može pokušati da prevari korisnika da izvrši ove akcije, nesvestan, sakrivajući namenu prikaza. Kao lek, okvir nudi mehanizam filtriranja dodira koji se može koristiti za poboljšanje sigurnosti prikaza koji omogućavaju pristup osetljivoj funkcionalnosti.
Da biste omogućili filtriranje dodira, pozovite
setFilterTouchesWhenObscured(boolean)
ili postavite android:filterTouchesWhenObscured atribut rasporeda na true. Kada je omogućeno, okvir će odbaciti dodire koji su primljeni kada je prozor prikaza zasenčen drugim vidljivim prozorom. Kao rezultat, prikaz neće primati dodire kada se pojavljuje tost, dijalog ili drugi prozor iznad prozora prikaza.
Last updated