Научно-технический семинар «Android и iOS: безопасность мобильных приложений» в московском офисе Яндекса, 7 марта 2013 г.
Юрий Леонычев, администратор ИБ, Яндекс.
9. Новые риски. Личные данные
• Телефонная книга
• Сообщения и письма
• Фотографии и видео
• Логины, пароли, токены
• OTP-генераторы
9
10. Новые риски. Всегда в сети
Выход в интернет и сотовые сети в режиме
~24x7
10
11. Гонки на выживание
• Взрывное развитие рынка
• Несколько доминирующих платформ
• Десятки производителей
• Миллионы приложений
• Миллиарды устройств
11
14. Модель безопасности для приложений
• Уникальный UID (почти всегда)
• Отдельный процесс (почти всегда)
• Изолированная виртуальная машина
• Нединамические привилегии
14
15. Защита файловой системы
• Использование системных разделов в
режим read-only
• Расстановка привилегий и прав в файловых
системах
• Шифрование разделов (Android 3.x)
15
16. Пример init-скрипта
Init.rc для Android 4.x:
...
# create data/gps for GPS demon
mkdir /data/gps 771 gps system
chown gps system /data/gps
chown gps root /sys/class/sec/gps/GPS_PWR_EN/value
chmod 660 /sys/class/sec/gps/GPS_PWR_EN/value
# for sensor control
chown system input /sys/class/input/input0/enable
chown system input /sys/class/input/input0/delay
chown system input /sys/class/input/input0/wake
chown system input /sys/class/input/input0/data
...
16
17. Хранилище сертификатов
Часть дампа /system/etc/security/cacerts.bks для Android 4.x:
...
Alias name: 123
Creation date: 30.08.2011
Entry type: trustedCertEntry
Owner: C=JP,O=Japanese Government,OU=ApplicationCA
Issuer: C=JP,O=Japanese Government,OU=ApplicationCA
Serial number: 31
Valid from: Wed Dec 12 18:00:00 MSK 2007 until: Tue Dec
12 19:00:00 MSK 2017
...
17
18. Привилегии — это удобно
Важные вызовы API требуют специальных
разрешений:
• Доступ к камере
• Геолокация
• Доступ к Bluetooth
• Функции для работы с сообщениями
• Функции для работы с телефонией
• Функции для работы с сетями
18
19. Привилегии — это сложно
• Только некоторые из разрешений
полностью документированы
• Четкого сопоставления API вызовов и
разрешений не существует
• http://www.android-permissions.org
19
24. Как видят свое приложение разработчики?
Сферическое приложение в
вакууме
Пользователь
24
25. А как на самом деле?
Операционная система
Среда исполнения и библиотеки
Пользователь
Framework
Приложение1
?
Сервер
Злоумышленник
ПриложениеN
25
26. Проблемы на низком уровне
• Уязвимости ядра операционной системы
• Уязвимости драйверов и библиотек
• Уязвимости в ПО вендоров.
Пример: Samsung Galaxy S2, Galaxy S3,
Galaxy Note 2, и т. д.
/dev/exynos-mem = /dev/mem
http://clck.ru/8atEO
26
27. Проблемы приложения
• Используются нешифрованные и
общедоступные хранилища
( MODE_WORLD_*, /mnt/sdcard)
• Передача данных по открытым каналам (HTTP,
AllowAllHostnameVerifier)
• Отсутствие санитизации пользовательского
ввода
• Использование WebView (OWASP T10)
• Передача чувствительных данных в лог-файлы
27
28. Проблемы приложения. Точки входа
Intent
BroadcastReceiver Service Activity
Application
ContentProvider
ContentResolver
28