Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

533 views

Published on

Ведущий: Дан Корецкий

Миллионы устройств на Android содержат уязвимости, которые дают права суперпользователя. Докладчик расскажет о технических причинах проблем безопасности (коллизии хеш-функций, злоупотребление межпроцессорным взаимодействием, ошибки работы с сертификатами приложений). Продемонстрирует атаку на «живое» устройство и предоставит рекомендации для снижения риска. Слушатели узнают, почему нельзя полностью устранить уязвимости. Докладчик также поведает историю о том, как были обнаружены атаки в Google Play.

Published in: Technology
  • Be the first to comment

  • Be the first to like this

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

  1. 1. ©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 for mobile products
  2. 2. 2 Поведенческий анализ угроз • Анализировать угрозы по их поведению • Собирать похожие угрозы, чтобы находить неизвестные атаки
  3. 3. 3 • Анализировать угрозы по их поведению • Собирать похожие угрозы, чтобы находить неизвестные атаки mRATS mobile Remote Access Trojans • Используются злоумышленниками в нацеленных атаках • Обеспечивают неразрешенный и скрытый доступ к мобильным устройствам Поведенческий анализ угроз
  4. 4. 4 mRAT PE уязвимости Кража информации Перехват экрана Ввод данных как пользователь … … Анализ поведения mRAT
  5. 5. 5 PE уязвимости Кража информации Перехват экрана Ввод данных как пользователь … … ? mRAT Анализ поведения mRAT
  6. 6. 6 PE уязвимости Кража информации Перехват экрана Ввод данных как пользователь … … mRST mRAT Анализ поведения mRAT
  7. 7. 7 MOBILE REMOTE SUPPORT TOOLS (mRST) Пользователи ̶ IT отделы ̶ Мобильные операторы ̶ Производители устройств Главные Компании
  8. 8. 8 MOBILE REMOTE SUPPORT TOOLS Как они на самом деле работают?
  9. 9. 9 ANDROID PERMISSION MODEL 101 Андроид современная операционка • Песочница ̶ Каждое приложение исполняется с отдельным системным пользователем ̶ Базируется на Linux user IDs и на group IDs. • Разрешение ̶ Должно быть дано чтобы был доступ к ресурсу ̶ Объявляется в AndroidManifest.xml ̶ Пользователь проверяет при установке ̶ Подход ‘Бери все или ничего’* * Есть изменения в версии Marshmallow
  10. 10. 10 Некоторые разрешения считаются привилегированными Permissions Action READ_FRAME_BUFFER ACCESS_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. 11. 11 Некоторые разрешения считаются привилегированными Permissions Action READ_FRAME_BUFFER ACCESS_SURFACE_FLINGER Screen access INJECT_EVENTS User Input Control Дается только системным приложениям Приложениям, подписанным сертификатом производителя ИЛИ Предустановленным приложениям находящимся в /system/priv-app ANDROID PERMISSION MODEL 101
  12. 12. 12 mRST РАЗРЕШЕНИЯ • Интернет • Сетевая информация устройства • Опрос установленных приложений • Доступ к памяти устройства • Перехват экрана • Ввод данных
  13. 13. 13 Привилегированне Разрешения mRST РАЗРЕШЕНИЯ • Интернет • Сетевая информация устройства • Опрос установленных приложений • Доступ к памяти устройства • Перехват экрана • Ввод данных
  14. 14. 14 AOSP Произв. Операторы Цепочка изготовления устройства АНДРОИД
  15. 15. 15 AOSP Произв. Операторы Цепочка изготовления устройства АНДРОИД
  16. 16. 16 mRST архитектура PLUGIN: Системный агент • Подписанный производителем • Привилегированные разрешения • Экспортируемый сервис • Без доступа пользователю
  17. 17. 17 mRST архитектура • Подписанный производителем • Привилегированные разрешения • Экспортируемый сервис • Без доступа пользователю Главное Приложение • Подписано разработ. mRST • Без особенных разрешений • Интернет • Доступ пользователю Binder Агент
  18. 18. 18 mRST архитектура • Подписанный производителем • Привилегированные разрешения • Экспортируемый сервис • Без доступа пользователю Главное Приложение • Подписано разработ. mRST • Без особенных разрешений • интернет • Доступ пользователю Binder Механизм аутентикации? Агент
  19. 19. 19 Что нам известно? • Агент подписывается производителем ̶ Предустановлен или получен из Google Play ̶ Функция дается экспортируемым сервисом ̶ Любое приложение может подключиться через Binder (IPC) ̶ Агент должен сам проверить подлинность приложения • Код аутентификации ПРИДУМЫВАЕТСЯ ЗАНОВО каждым разработчиком!
  20. 20. 20 Что мы обнаружили?
  21. 21. 21
  22. 22. 22 TEAM VIEWER
  23. 23. 23 TEAM VIEWER
  24. 24. 24 Где Уолли?
  25. 25. 25 Где Уолли?
  26. 26. 26 Постоянный Сериальный номер Где Уолли? Вытащить сериальный номер подключающегося приложения и сравнение
  27. 27. 27 RFC 2459 Internet X.509 Public Key Infrastructure 4.1.2.2 Серийный номер Серийный номер является числом приписанным СА каждому сертификату. Оно ДОЛЖНО быть уникальным в каждом сертификате, предоставленном тем же СА (т.е. Имя издателя и серийный номер должно уникально идентифицировать сертификат)
  28. 28. 28 Подписка приложений Андроид • Кто подписывает приложения на Андроид? • Откуда у них сертификат?
  29. 29. 29 победа!
  30. 30. 30 DEMO TIME!
  31. 31. 31 DEMO TIME!
  32. 32. 32
  33. 33. RSUPPORT
  34. 34. • Samsung & LG лидирующие устройства имеют предустановленный агент ̶ LG G4, G3, G2 and G Pro 2 ̶ Samsung Galaxy S5 and S4 (некоторые версии) • Невидимый пользователю (нет launcher icon) • Нельзя даже убрать RSUPPORT
  35. 35. 35 RSUPPORT CODE Агент сравнивает hash code сертификата подключающегося приложения к постоянным числам Высчитывается hashCode Сравнивается к нескольким хешам, если равен одному из них, продолжай
  36. 36. 36 HASHCODE! Arrays.hashCode function on the certificate
  37. 37. 37 HA HASHCODE! Arrays.hashCode function on the certificate
  38. 38. 38 HA HA HASHCODE! Arrays.hashCode function on the certificate 32-bit signed integer 32 bit = всего 232 ~= 4 миллиарда возможностей Можно взломать!
  39. 39. 39 HA HA HA HASHCODE! Executes the Arrays.hashCode function on the certificate 32-bit signed integer 32 bit = Only 232 ~= 4 billion Possibilities! java default Arrays.hashCode() function НЕ ЯВЛЯЕТСЯ криптографической hash фунскцией, она обращаемая! Один бит!
  40. 40. 40 Уязвимость • Подписанный производителем • Привилегированные разрешения • Экспортируемый сервис • Без доступа пользователю Главное ЛЮБОЕ (спец.) Приложение Binder Слабый Механизм аутентификации Агент
  41. 41. 41 Уязвимость • Злоумышленник подключается к предустановленному агенту в системе (или дает пользователю установить агента из Play Store) • Пишет приложение которое не требует никаких разрешений • Обходит ИБ ограничения АНДРОИД
  42. 42. 42 • Получает доступ к экрану и вводу данных пользователя “свободные разрешения” позволяют злоумышленнику • Установить еще вредоносные ПО • Менять критичную информацию пользователя • Следить за поведением пользователя (даже внутри безопасных контейнеров!) Уязвимость
  43. 43. 43 CERTIFIGATE СКАННЕР Google Play
  44. 44. 44 http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/ • 100K установок • 30K+ сканирующих заслали результаты • Устройства LG самые уязвимые, после них Samsung и HTC • 3 устройства содержали живую эксплуатацию. РЕЗУЛЬТАТЫ
  45. 45. 45 http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/ • Найден в Google Play [уже убрали] • Списывает уязвимого агента по деталям устройства • Уязвимый агент списывается с постороннего веб-сайта (все еще доступно!) РЕЗУЛЬТАТЫ
  46. 46. 46 http://blog.checkpoint.com/2015/08/25/certifigate-statistics-exploitation-mitigation/ • Даже после того, как TeamViewer поправили официальную версию • Злоумышленники все еще могут эксплуатировать старые версии агента и исполнять свои ‘злонамерения’ • Устройства могут эксплуатироваться, даже если не было предустановленного агента РЕЗУЛЬТАТЫ
  47. 47. 47 ВЫВОД • Нет эффективного способа устранить проблему перечисленные агенты живут дальше Сотни миллионов устройств АНДРОИД уязвимы
  48. 48. 48 • Нет эффективного способа устранить проблему перечисленные агенты живут дальше Мысли вслух… • Гугл доверили производителям и операторам (делегируя ответственность неограниченно) • Производители доверили разработчикам mRST • Не ограниченно mRSTs ВЫВОД Сотни миллионов устройств АНДРОИД уязвимы
  49. 49. 49 • Сотни приложений используют те же механизмы и hash функции, чтобы проверять сертификаты • Некоторые из них так обновляют свою версию – андроид защищает их от их ошибки (нельзя сертификат поменять существующему приложению) • А что если package name другой? Некоторые и это не проверяют – установят злоумышленника без вопросов • Тут и АНДРОИД не поможет – речь идет об отдельном приложении • Ищем дальше похожие проблемы в приложениях • Google в отчете ‘2015 ИБ в Андроид’ не упомянули приложение, которое было в Google Play А дальше?
  50. 50. 50 mRST PLUGIN Еще пример (бонус) • Манипулирование логикой основного приложения для того чтобы взять под свой контроль приложение, подписанное производителем
  51. 51. 51 CnC REDIRECTION Приложение позволяет менять сервер СМСкой
  52. 52. 52 CnC REDIRECTION Приложение позволяет менять сервер СМСкой Одна из команд меняет суб-домен сервера <xxx>.cncdomain.com
  53. 53. 53 CnC REDIRECTION Приложение позволяет менять сервер СМСкой Одна из команд меняет суб-домен сервера <xxx>.cncdomain.com Суб-домен может быть изменен без аутентификации
  54. 54. 54 CnC REDIRECTION Приложение позволяет менять сервер СМСкой Одна из команд меняет суб-домен сервера <xxx>.cncdomain.com Суб-домен может быть изменен без аутентификации Приложение не очищает текст суб-домена как следует Можно добавить '/' - www.evil.com/.cncdomain.com
  55. 55. • Злоумышленник присылает СМСку, которая меняет сервер на злой сервер • Получает полный доступ к устройству одной СМСкой вообще без пользователя! УЯЗВИМОСТЬ CnC REDIRECTION
  56. 56. CnC REDIRECTION subdomain.cncdomain.com www.evil.com/.cncdomain.com mRST Please change you CnC server to: www.evil.com/
  57. 57. 57 Вопросы? Пишите: dank@checkpoint.com

×