certifi-gate: атака в теории и на практике

Post on 15-Apr-2017

463 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

©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

2

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

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

3

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

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

mRATSmobileRemote Access Trojans

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

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

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

4

mRAT

PE уязвимости

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

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

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

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

5

PE уязвимости

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

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

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

…?

mRAT

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

6

PE уязвимости

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

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

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

…mRST

mRAT

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

7

MOBILE REMOTE SUPPORT TOOLS (mRST)

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

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

8

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

9

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

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

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

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

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

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

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

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

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

11

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

Permissions Action

READ_FRAME_BUFFERACCESS_SURFACE_FLINGER

Screen access

INJECT_EVENTS User Input Control

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

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

/system/priv-app

ANDROID PERMISSION MODEL 101

12

mRST РАЗРЕШЕНИЯ

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

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

13

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

mRST РАЗРЕШЕНИЯ

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

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

14

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

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

15

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

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

16

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

PLUGIN:Системный

агент

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

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

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

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

17

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

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

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

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

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

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

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

• Интернет

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

Binder

Агент

18

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

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

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

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

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

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

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

• интернет

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

Binder

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

Агент

19

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

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

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

20

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

21

22

TEAM VIEWER

23

TEAM VIEWER

24

Где Уолли?

25

Где Уолли?

26

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

Где Уолли?

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

27

RFC 2459

Internet X.509 Public Key Infrastructure

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

28

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

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

29

победа!

30

DEMO TIME!

31

DEMO TIME!

32

RSUPPORT

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

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

RSUPPORT

35

RSUPPORT CODE

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

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

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

36

HASHCODE!

Arrays.hashCode function on the certificate

37

HA HASHCODE!

Arrays.hashCode function on the certificate

38

HA HA HASHCODE!

Arrays.hashCode function on the certificate

32-bit signed integer

32 bit = всего 232

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

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

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 фунскцией, она обращаемая!

Один бит!

40

Уязвимость

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

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

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

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

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

Binder

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

Агент

41

Уязвимость

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

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

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

42

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

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

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

Уязвимость

43

CERTIFIGATE СКАННЕР

Google Play

44

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

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

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

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

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

РЕЗУЛЬТАТЫ

45

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

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

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

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

РЕЗУЛЬТАТЫ

46

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

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

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

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

РЕЗУЛЬТАТЫ

47

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

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

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

48

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

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

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

ВЫВОД

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

49

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

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

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

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

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

А дальше?

50

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

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

51

CnC REDIRECTION

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

52

CnC REDIRECTION

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

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

53

CnC REDIRECTION

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

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

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

54

CnC REDIRECTION

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

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

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

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

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

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

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

CnC REDIRECTION

subdomain.cncdomain.com

www.evil.com/.cncdomain.com

mRSTPlease change you CnC server to:

www.evil.com/

57

Вопросы?

Пишите: dank@checkpoint.com

top related