Upload
positive-hack-days
View
451
Download
0
Embed Size (px)
Citation preview
©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/