4. Úvod
Člen PT LAB – Penetration Testing Laboratory -
http://ptlab.fai.utb.cz/oulehla/
Nezávislý konzultant v oblasti penetračního
testování na mobilní platformě s důrazem na
Android OS
5. Úvod
Spolupráce s OWASP (přednáška OWASP Czech
Chapter Meeting)
Doktorské studiu na Fakultě aplikované
informatiky Univerzity Tomáše Bati ve Zlíně
Výzkumu v oblastech aplikační bezpečnosti a
detekci mobilního malware pomocí
neuronových sítí.
6. Úvod
Přednáška je postavena na chybách ze
skutečných aplikací.
Zdroje:
• PT LAB
• Má penetrační praxe
• Sledování programátorských fór (např.
http://stackoverflow.com a další)
7. Úvod
NENÍ ZVEŘEJNĚNA ANI ČÁRKA Z ORIGINÁLNÍCH
ZDROJOVÝCH KÓDŮ MÝCH ZÁKAZNÍKŮ NEBO
ZÁKAZNÍKŮ PT LABU!
NEDOZVÍTE SE ANI IDENTITU APLIKACÍ ANI
IDENTITU ZÁKAZNÍKŮ!
Vždy jsem si vzal princip dané zranitelnosti a vše
jsem naprogramoval sám.
8. Úvod
Jedná se o skici => určité zjednodušení aby
vynikla daná zranitelnost
Chráněná část aplikace, placená funkcionalita =
aktivita
9. Útok pomocí syntaktické analýzy
Ukázat „kombajn“ na PasswordClass.apk
Analýza 1:
APKTool: APK --> *.smali
Rekurzivní vyhledávání pomocí regulárních výrazů uvnitř
souborů
Analýza 2:
Dex2jar: APK --> JAR
Rekurzivní vyhledávání pomocí regulárních výrazů uvnitř
souborů
11. Log Leakage
3xZ:
Zabezpečená síťová komunikace
Zabezpečená mobilní aplikace
Zapomenuté logy
=> Všechna práce se zabezpečováním
• mobilních aplikací,
• síťové komunikace,
• serveru
byla na nic!
23. Multi-Jump Attack
Ochranná část kódu 1
Cenná funkcionalita 1
Začátek
Ochranná část kódu 2
Cenná funkcionalita 2
Ochranná část kódu 3
Cenná funkcionalita 3
24. Multi-Jump Attack
Ukázat Multi-Jump Attack na aplikaci:
RE2Multi-Jump.apk
• Nejprve nainstalovat a spustit původní app
• Pak teprve nainstalovat HACKED verzi
26. Negation Attack
Nezajímavý kód (např.
nová výzva k zadaní
platného hesla)
Cenná funkcionalita
Ověření
Úspěšné Neúspěšné
Nezajímavý kód (např.
nová výzva k zadaní
platného hesla)
Cenná funkcionalita
Ověření
Úspěšné Neúspěšné
28. Přihlašovací údaje jsou ověřeny serverem
Tady mimo aplikaci!
Třída: ServerAuthentication
Metoda performAuthentication() // public
Bylo ověření
úspěšné?
NE
Opětovná výzva k zadaní přihlašovacích údajů
Login:user111
Password: heslo
ANO
Je spuštěna chráněná/placená část aplikace
29. Přihlašovací údaje jsou ověřeny serverem
Tady mimo aplikaci!
Třída: ServerAuthentication
Metoda performAuthentication() // public
Bylo ověření
úspěšné?
ANO!
Opětovná výzva k zadaní přihlašovacích údajů
Login:user111
Password: heslo
NE!
Je spuštěna chráněná/placená část aplikace
34. Removal Attack
Ochranná část kódu
Cenná funkcionalita
Začátek
Cenná funkcionalita
Začátek
Spouští
Ne vždy lze použít Negation Attack, proto existuje Removal Attack,
který je složitější ale mnohem ničivější
Pozor na PŘÉPSÁNÍ nebo ODSTRANĚNÍ aktivního obsahu registrů !!!
36. Pár slov na konec
• Neošetřené vstupy
• Nešifrovaná komunikace mezi mobilní aplikací
a serverem
• Citlivé údaje nešifrované v lokální databázi
• Poskytovatelé obsahu bez korektního
zabezpečení