57
©2015 Check Point Software Technologies Ltd. [Protected] Non-confidential content CERTIFIGATE FRONT DOOR ACCESS TO HACKING HUNDREDS OF MILLIONS OF ANDROIDS Dan Koretsky, Senior Security Researcher f

Certifi-Gate: атака в теории и на практике

Embed Size (px)

Citation preview

Page 1: Certifi-Gate: атака в теории и на практике

©2015 Check Point Software Technologies Ltd. [Protected] Non-confidential content

CERTIFIGATE

FRONT DOOR ACCESSTO HACKING HUNDREDS OF MILLIONS OF ANDROIDS

Dan Koretsky, Senior Security Researcher for mobile products

Page 2: Certifi-Gate: атака в теории и на практике

2

Поведенческий анализ угроз• Анализировать угрозы по их поведению

• Собирать похожие угрозы, чтобы находить неизвестные атаки

Page 3: Certifi-Gate: атака в теории и на практике

3

• Анализировать угрозы по их поведению

• Собирать похожие угрозы, чтобы находить неизвестные атаки

mRATSmobileRemote Access Trojans

• Используются злоумышленниками в нацеленных атаках

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

Поведенческий анализ угроз

Page 4: Certifi-Gate: атака в теории и на практике

4

mRAT

PE уязвимости

Кража информации

Перехват экрана

Ввод данных как пользователь

Анализ поведения mRAT

Page 5: Certifi-Gate: атака в теории и на практике

5

PE уязвимости

Кража информации

Перехват экрана

Ввод данных как пользователь

…?

mRAT

Анализ поведения mRAT

Page 6: Certifi-Gate: атака в теории и на практике

6

PE уязвимости

Кража информации

Перехват экрана

Ввод данных как пользователь

…mRST

mRAT

Анализ поведения mRAT

Page 7: Certifi-Gate: атака в теории и на практике

7

MOBILE REMOTE SUPPORT TOOLS (mRST)

Пользователи8IT отделы8Мобильные операторы8Производители устройств

Главные Компании

Page 8: Certifi-Gate: атака в теории и на практике

8

MOBILE REMOTE SUPPORT TOOLSКак они на самом деле работают?

Page 9: Certifi-Gate: атака в теории и на практике

9

ANDROID PERMISSION MODEL 101Андроид современная операционка

• Песочница8 Каждое приложение исполняется с

отдельным системным пользователем

8 Базируется на Linux user IDs и на group IDs.

• Разрешение8 Должно быть дано чтобы был доступ к

ресурсу8 Объявляется в AndroidManifest.xml 8 Пользователь проверяет при

установке8 Подход ‘Бери все или ничего’*

* Есть изменения в версии Marshmallow

Page 10: Certifi-Gate: атака в теории и на практике

10

Некоторые разрешения считаются привилегированными

Permissions Action

READ_FRAME_BUFFERACCESS_SURFACE_FLINGER

Screen access

INJECT_EVENTS User Input Control

GRANTED ONLY TO PRIVILEGED SYSTEMS APPS Apps signed with the OEM’s certificate

OR ROM Pre-installed apps located under /system/priv-app

ANDROID PERMISSION MODEL 101

Page 11: Certifi-Gate: атака в теории и на практике

11

Некоторые разрешения считаются привилегированными

Permissions Action

READ_FRAME_BUFFERACCESS_SURFACE_FLINGER

Screen access

INJECT_EVENTS User Input Control

Дается только системным приложениямПриложениям, подписанным сертификатом производителя

ИЛИПредустановленным приложениям находящимся в

/system/priv-app

ANDROID PERMISSION MODEL 101

Page 12: Certifi-Gate: атака в теории и на практике

12

mRST РАЗРЕШЕНИЯ

• Интернет• Сетевая информация устройства• Опрос установленных приложений• Доступ к памяти устройства

• Перехват экрана• Ввод данных

Page 13: Certifi-Gate: атака в теории и на практике

13

ПривилегированнеРазрешения

mRST РАЗРЕШЕНИЯ

• Интернет• Сетевая информация устройства• Опрос установленных приложений• Доступ к памяти устройства

• Перехват экрана• Ввод данных

Page 14: Certifi-Gate: атака в теории и на практике

14

AOSP Произв. Операторы

Цепочка изготовления устройства АНДРОИД

Page 15: Certifi-Gate: атака в теории и на практике

15

AOSP Произв. Операторы

Цепочка изготовления устройства АНДРОИД

Page 16: Certifi-Gate: атака в теории и на практике

16

mRST архитектура

PLUGIN:Системный

агент

• Подписанный производителем

• Привилегированные разрешения

• Экспортируемый сервис

• Без доступа пользователю

Page 17: Certifi-Gate: атака в теории и на практике

17

mRST архитектура

• Подписанный производителем

• Привилегированные разрешения

• Экспортируемый сервис

• Без доступа пользователю

Главное Приложение• Подписано разработ. mRST

• Без особенных разрешений

• Интернет

• Доступ пользователю

Binder

Агент

Page 18: Certifi-Gate: атака в теории и на практике

18

mRST архитектура

• Подписанный производителем

• Привилегированные разрешения

• Экспортируемый сервис

• Без доступа пользователю

Главное Приложение• Подписано разработ. mRST

• Без особенных разрешений

• интернет

• Доступ пользователю

Binder

Механизм аутентикации?

Агент

Page 19: Certifi-Gate: атака в теории и на практике

19

Что нам известно?• Агент подписывается производителем

8Предустановлен или получен из Google Play8Функция дается экспортируемым сервисом8Любое приложение может подключиться через Binder (IPC)8Агент должен сам проверить подлинность приложения

• Код аутентификации ПРИДУМЫВАЕТСЯ ЗАНОВО каждым разработчиком!

Page 20: Certifi-Gate: атака в теории и на практике

20

Что мы обнаружили?

Page 21: Certifi-Gate: атака в теории и на практике

21

Page 22: Certifi-Gate: атака в теории и на практике

22

TEAM VIEWER

Page 23: Certifi-Gate: атака в теории и на практике

23

TEAM VIEWER

Page 24: Certifi-Gate: атака в теории и на практике

24

Где Уолли?

Page 25: Certifi-Gate: атака в теории и на практике

25

Где Уолли?

Page 26: Certifi-Gate: атака в теории и на практике

26

Постоянный Сериальный номер

Где Уолли?

Вытащить сериальный номер подключающегося приложения и сравнение

Page 27: Certifi-Gate: атака в теории и на практике

27

RFC 2459

Internet X.509 Public Key Infrastructure

4.1.2.2 Серийный номерСерийный номер является числом приписанным СА каждому сертификату. Оно ДОЛЖНО быть уникальным в каждом сертификате, предоставленном тем же СА (т.е. Имя издателя и серийный номер должно уникально идентифицировать сертификат)

Page 28: Certifi-Gate: атака в теории и на практике

28

Подписка приложений Андроид

• Кто подписывает приложения на Андроид?• Откуда у них сертификат?

Page 29: Certifi-Gate: атака в теории и на практике

29

победа!

Page 30: Certifi-Gate: атака в теории и на практике

30

DEMO TIME!

Page 31: Certifi-Gate: атака в теории и на практике

31

DEMO TIME!

Page 32: Certifi-Gate: атака в теории и на практике

32

Page 33: Certifi-Gate: атака в теории и на практике

RSUPPORT

Page 34: Certifi-Gate: атака в теории и на практике

• Samsung & LG лидирующие устройства имеют предустановленный агент8 LG G4, G3, G2 and G Pro 28 Samsung Galaxy S5 and S4 (некоторые версии)

• Невидимый пользователю (нет launcher icon)• Нельзя даже убрать

RSUPPORT

Page 35: Certifi-Gate: атака в теории и на практике

35

RSUPPORT CODE

Агент сравнивает hash code сертификата подключающегося приложения к постоянным числам

Высчитывается hashCode

Сравнивается к нескольким хешам, если равен одному из них, продолжай

Page 36: Certifi-Gate: атака в теории и на практике

36

HASHCODE!

Arrays.hashCode function on the certificate

Page 37: Certifi-Gate: атака в теории и на практике

37

HA HASHCODE!

Arrays.hashCode function on the certificate

Page 38: Certifi-Gate: атака в теории и на практике

38

HA HA HASHCODE!

Arrays.hashCode function on the certificate

32-bit signed integer

32 bit = всего 232

~= 4 миллиардавозможностей

Можно взломать!

Page 39: Certifi-Gate: атака в теории и на практике

39

HA HA HA HASHCODE!

Executes the Arrays.hashCode function on the certificate

32-bit signed integer

32 bit = Only 232

~= 4 billionPossibilities!

java default Arrays.hashCode() function НЕ ЯВЛЯЕТСЯ криптографической hash фунскцией, она обращаемая!

Один бит!

Page 40: Certifi-Gate: атака в теории и на практике

40

Уязвимость

• Подписанный производителем

• Привилегированные разрешения

• Экспортируемый сервис

• Без доступа пользователю

Главное ЛЮБОЕ (спец.) Приложение

Binder

Слабый Механизм аутентификации

Агент

Page 41: Certifi-Gate: атака в теории и на практике

41

Уязвимость

• Злоумышленник подключается к предустановленному агенту в системе(или дает пользователю установить агента из Play Store)

• Пишет приложение которое не требует никаких разрешений

• Обходит ИБ ограничения АНДРОИД

Page 42: Certifi-Gate: атака в теории и на практике

42

• Получает доступ к экрану и вводу данных пользователя

“свободные разрешения” позволяют злоумышленнику• Установить еще вредоносные ПО• Менять критичную информацию пользователя• Следить за поведением пользователя (даже внутри

безопасных контейнеров!)

Уязвимость

Page 43: Certifi-Gate: атака в теории и на практике

43

CERTIFIGATE СКАННЕР

Google Play

Page 44: Certifi-Gate: атака в теории и на практике

44

http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/

• 100K установок• 30K+ сканирующих

заслали результаты

• Устройства LG самые уязвимые, после них Samsung и HTC

• 3 устройства содержали живую эксплуатацию.

РЕЗУЛЬТАТЫ

Page 45: Certifi-Gate: атака в теории и на практике

45

http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/

• Найден в Google Play [уже убрали]

• Списывает уязвимого агента по деталям устройства

• Уязвимый агент списывается с постороннего веб-сайта (все еще доступно!)

РЕЗУЛЬТАТЫ

Page 46: Certifi-Gate: атака в теории и на практике

46

http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/

• Даже после того, как TeamViewer поправили официальную версию

• Злоумышленники все еще могут эксплуатировать старые версии агента и исполнять свои ‘злонамерения’

• Устройства могут эксплуатироваться, даже если не было предустановленного агента

РЕЗУЛЬТАТЫ

Page 47: Certifi-Gate: атака в теории и на практике

47

ВЫВОД• Нет эффективного способа устранить проблему

перечисленные агенты живут дальше

Сотни миллионов устройств АНДРОИД уязвимы

Page 48: Certifi-Gate: атака в теории и на практике

48

• Нет эффективного способа устранить проблемуперечисленные агенты живут дальше

Мысли вслух…• Гугл доверили производителям и операторам (делегируя

ответственность неограниченно)• Производители доверили разработчикам mRST• Не ограниченно mRSTs

ВЫВОД

Сотни миллионов устройств АНДРОИД уязвимы

Page 49: Certifi-Gate: атака в теории и на практике

49

• Сотни приложений используют те же механизмы и hash функции, чтобы проверять сертификаты

• Некоторые из них так обновляют свою версию – андроид защищает их от их ошибки (нельзя сертификат поменять существующему приложению)

• А что если package name другой? Некоторые и это не проверяют – установят злоумышленника без вопросов• Тут и АНДРОИД не поможет – речь идет об отдельном

приложении• Ищем дальше похожие проблемы в приложениях• Google в отчете ‘2015 ИБ в Андроид’ не упомянули

приложение, которое было в Google Play

А дальше?

Page 50: Certifi-Gate: атака в теории и на практике

50

mRST PLUGIN Еще пример (бонус)

• Манипулирование логикой основного приложения для того чтобы взять под свой контроль приложение, подписанное производителем

Page 51: Certifi-Gate: атака в теории и на практике

51

CnC REDIRECTION

Приложение позволяет менять сервер СМСкой

Page 52: Certifi-Gate: атака в теории и на практике

52

CnC REDIRECTION

Приложение позволяет менять сервер СМСкой

Одна из команд меняетсуб-домен сервера <xxx>.cncdomain.com

Page 53: Certifi-Gate: атака в теории и на практике

53

CnC REDIRECTION

Приложение позволяет менять сервер СМСкой

Одна из команд меняетсуб-домен сервера <xxx>.cncdomain.com

Суб-домен может быть изменен без аутентификации

Page 54: Certifi-Gate: атака в теории и на практике

54

CnC REDIRECTION

Приложение позволяет менять сервер СМСкой

Одна из команд меняетсуб-домен сервера <xxx>.cncdomain.com

Суб-домен может быть изменен без аутентификации

Приложение не очищает текст суб-домена как следуетМожно добавить '/' - www.evil.com/.cncdomain.com

Page 55: Certifi-Gate: атака в теории и на практике

• Злоумышленник присылает СМСку, которая меняет сервер на злой сервер

• Получает полный доступ к устройству одной СМСкой вообще без пользователя!

УЯЗВИМОСТЬ CnC REDIRECTION

Page 56: Certifi-Gate: атака в теории и на практике

CnC REDIRECTION

subdomain.cncdomain.com

www.evil.com/.cncdomain.com

mRSTPlease change you CnC server to:

www.evil.com/

Page 57: Certifi-Gate: атака в теории и на практике

57

Вопросы?

Пишите: [email protected]