Юрий Леонычев «Безопасность мобильных приложений для...

36

description

Научно-технический семинар «Android и iOS: безопасность мобильных приложений» в московском офисе Яндекса, 7 марта 2013 г. Юрий Леонычев, администратор ИБ, Яндекс.

Transcript of Юрий Леонычев «Безопасность мобильных приложений для...

Page 1: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»
Page 2: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Юрий ЛеонычевАдминистратор информационной безопасности

Безопасность приложений для Android

Page 3: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Безопасность мобильных устройств

Page 4: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

4

Page 5: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

5

Характерные черты

• Миниатюрность

• Массовость

• Универсальность

• Содержат массу важных для вас данных

• Постоянно в сети GPRS/3G/EDGE/LTE/WiFi

Page 6: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

6

Новые риски. Миниатюрность

Легко потерять

Page 7: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

7

Новые риски. Массовость

{Много устройств} x {Беспечность пользователей} x

{Быстрая монетизация} =

PROFIT!!!

Page 8: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

8

Новые риски. Универсальность

Телефон

Навигатор

ИгрыФото

ВидеоДиктофон

Почта

Page 9: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

9

Новые риски. Личные данные

• Телефонная книга

• Сообщения и письма

• Фотографии и видео

• Логины, пароли, токены

• OTP-генераторы

Page 10: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

10

Новые риски. Всегда в сети

Выход в интернет и сотовые сети в режиме

~24x7

Page 11: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

11

Гонки на выживание

• Взрывное развитие рынка

• Несколько доминирующих платформ

• Десятки производителей

• Миллионы приложений

• Миллиарды устройств

Page 12: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Безопасность внутри Andorid

Page 13: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

13

Ограничение доступа. Блокировка экрана

• PIN

• Пароль

• Биометрия

• Росчерк

Page 14: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

14

Модель безопасности для приложений

• Уникальный UID (почти всегда)

• Отдельный процесс (почти всегда)

• Изолированная виртуальная машина

• Нединамические привилегии

Page 15: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

15

Защита файловой системы

• Использование системных разделов в режим read-only

• Расстановка привилегий и прав в файловых системах

• Шифрование разделов (Android 3.x)

Page 16: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

16

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...

Пример init-скрипта

Page 17: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

17

Часть дампа /system/etc/security/cacerts.bks для Android 4.x:

...

Alias name: 123Creation date: 30.08.2011Entry type: trustedCertEntry

Owner: C=JP,O=Japanese Government,OU=ApplicationCAIssuer: C=JP,O=Japanese Government,OU=ApplicationCASerial number: 31Valid from: Wed Dec 12 18:00:00 MSK 2007 until: Tue Dec 12 19:00:00 MSK 2017

...

Хранилище сертификатов

Page 18: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

18

Привилегии — это удобно

Важные вызовы API требуют специальных разрешений:

• Доступ к камере

• Геолокация

• Доступ к Bluetooth

• Функции для работы с сообщениями

• Функции для работы с телефонией

• Функции для работы с сетями

Page 19: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

19

Привилегии — это сложно

• Только некоторые из разрешений полностью документированы

• Четкого сопоставления API вызовов и разрешений не существует

• http://www.android-permissions.org

Page 20: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Пользователи и Andorid

Page 21: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

21

Dumb way to break safety

• Jailbreaking

• Простые пароли

• Странные приложения

• Включенный режим отладки

Page 22: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

22

Dumb way to break safety

• Приложения, скачанные из недоверенных источников

• Взломанные веб-серверы

Page 23: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Разработчики и Andorid

Page 24: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

24

Как видят свое приложение разработчики?

Пользователь

Сферическое приложение в вакууме

Page 25: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

25

А как на самом деле?

Пользователь

Сервер

Операционная система

Среда исполнения и библиотеки

Framework

Приложение1

ПриложениеN

?Злоумышленник

Page 26: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

26

Проблемы на низком уровне

• Уязвимости ядра операционной системы

• Уязвимости драйверов и библиотек

• Уязвимости в ПО вендоров.

Пример: Samsung Galaxy S2, Galaxy S3, Galaxy Note 2, и т. д.

/dev/exynos-mem = /dev/mem

http://clck.ru/8atEO

Page 27: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

27

Проблемы приложения

• Используются нешифрованные и общедоступные хранилища ( MODE_WORLD_*, /mnt/sdcard)

• Передача данных по открытым каналам (HTTP, AllowAllHostnameVerifier)

• Отсутствие санитизации пользовательского ввода

• Использование WebView (OWASP T10)

• Передача чувствительных данных в лог-файлы

Page 28: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

28

Application

Проблемы приложения. Точки входа

BroadcastReceiver Service

ContentProvider

Activity

Intent

ContentResolver

Page 29: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Анализ контент-провайдеров

Page 30: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

30

Сделай сам

• Попробуем проанализировать защищенность контент-провайдеров

• MWR Mercury http://labs.mwrinfosecurity.com/tools/2012/03/16/mercury/

• CPA https://github.com/tracer0tong/cpa

Page 31: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

31

CPA

CPA

PackageManager

ProvidersPrivileges

ContentProvider Data

Page 32: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

32 Выберем контент-провайдер

Page 33: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

33 SQL injection

Page 34: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

34 Содержимое таблицы

Page 35: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

35 Другие неожиданности

Page 36: Юрий Леонычев «Безопасность мобильных приложений для Android. Теория и практика»

Юрий Леонычев

Администратор информационной безопасности

[email protected]

@tracer0tong

Спасибо