Критический руткит MediaTek затронул миллионы Android-устройств

Критическая ошибка в процессорах MediaTek осталась не исправленной в устройствах из-за пренебрежения производителем. Google надеется, что в бюллетене по безопасности Android за март 2020 года это будет исправлено.

В первый понедельник каждого месяца Google публикует Бюллетень по безопасности Android, страница, на которой раскрываются все уязвимости безопасности и исправления к ним, представленные самой Google или другими третьими лицами. Сегодняшний день не стал исключением: Google только что опубликовал бюллетень по безопасности Android за март 2020 года. Одной из уязвимостей, описанных в последнем бюллетене, является CVE-2020-0069, критический эксплойт безопасности, в частности руткитЭто затронуло миллионы устройств с чипсетами MediaTek, крупной тайваньской компании по разработке чипов. Хотя бюллетень по безопасности Android за март 2020 года, по-видимому, впервые публично раскрывает CVE-2020-0069, подробности эксплойта фактически находятся в открытом доступе в Интернете, а точнее, на форумах XDA-Developers, с апреля. 2019 года. Несмотря на то, что MediaTek выпустила исправление через месяц после обнаружения, уязвимость все еще доступна для использования на десятках моделей устройств.

Хуже того, уязвимостью активно пользуются хакеры. Теперь MediaTek обратилась к Google, чтобы закрыть этот пробел в исправлениях и защитить миллионы устройств от этой критической уязвимости безопасности.

Для читателей, не знакомых с XDA-Разработчики, на нашем сайте расположены крупнейшие форумы по модификациям программного обеспечения Android. Обычно эти изменения касаются получения root-доступа на устройствах для удаления вредоносного ПО, установки специального программного обеспечения или настройки системных параметров по умолчанию. Планшеты Amazon Fire — популярная цель для хакеров-любителей на наших форумах — они полны неустановляемых программ. раздутое ПО, не имеют доступа к базовым программным приложениям, таким как Google Play Store, и, что наиболее важно, очень дешевый. Проблема с рутированием планшетов Amazon Fire заключается в том, что они жестко заблокированы, чтобы пользователи не могли выйти за пределы огороженного сада Amazon; Amazon не предоставляет официального метода разблокировки загрузчика планшетов Fire, что обычно является первым шагом в рутировании любого устройства Android. Таким образом, единственный способ получить root права на планшете Amazon Fire (без модификации оборудования) — это найти в программном обеспечении эксплойт, позволяющий пользователю обойти модель безопасности Android. В феврале 2019 года это именно то, что сделал дипломатический старший член XDA когда он опубликовал тему на наших форумах по планшетам Amazon Fire. Он быстро понял, что масштабы этого эксплойта гораздо шире, чем просто планшеты Amazon Fire.

После небольшого тестирования дипломатических представителей XDA и других членов сообщества было подтверждено, что этот эксплойт работает на большом количестве чипов MediaTek. Автор заявляет, что эксплойт работает «практически на всех 64-битных чипах MediaTek», и конкретно называет уязвимыми следующие: MT6735, MT6737, MT6738, MT6739, MT6750, MT6753, MT6755, MT6757, MT6758, MT6761, MT6762, MT6763, MT6765, MT6771, MT6779, MT6795, MT6797, MT6799, MT8163, MT8167, MT8 173, MT8176, MT8183, MT6580 и МТ6595. Из-за того, что этот эксплойт затронул большое количество чипсетов MediaTek, эксплойту было присвоено название «MediaTek-su» или сокращенно «MTK-su». 17 апреля 2019 года издание Diplomat опубликовало вторую тему под названием «Удивительный временный рут для MediaTek ARMv8" на нашем форуме "Разное Android-разработка". В этой теме он поделился сценарием, который пользователи могут выполнить, чтобы предоставить им доступ суперпользователя в оболочке, а также установить SELinux, модуль ядра Linux, который обеспечивает контроль доступа для процессов к крайне небезопасным «разрешительным» состояние. Пользователь может получить root-доступ и настроить SELinux на разрешительный режим на своем устройстве на удивление легко: все, что вам нужно сделать, это скопировать сценарий во временную папку, измените каталоги, в которых хранится сценарий, добавьте разрешения на выполнение сценария, а затем выполните команду сценарий.

Простые шаги для получения root-доступа с помощью MediaTek-su. Источник: Старший дипломатический член XDA.

Члены сообщества XDA подтвердили, что эксплойт работает как минимум на следующих устройствах:

  1. Acer Iconia One 10 B3-A30
  2. Acer Iconia One 10 B3-A40
  3. Серия планшетов Альба
  4. Алкатель 1 5033 серии
  5. Алкатель 1С
  6. Алкатель 3Л (2018) 5034 серия
  7. Алкатель 3Т 8
  8. Alcatel A5 LED 5085 серии
  9. Алкатель А30 серии 5049
  10. Алкатель Идол 5
  11. Alcatel/TCL A1 A501DL
  12. Alcatel/TCL LX A502DL
  13. Алкатель Тетра 5041C
  14. Amazon Fire 7 2019 — только до Fire OS 6.3.1.2, сборка 0002517050244
  15. Amazon Fire HD 8 2016 г. — только до Fire OS 5.3.6.4, сборка 626533320
  16. Amazon Fire HD 8 2017 – только до Fire OS 5.6.4.0, сборка 636558520
  17. Amazon Fire HD 8 2018 – только до Fire OS 6.3.0.1
  18. Amazon Fire HD 10 2017 г. — только до Fire OS 5.6.4.0, сборка 636558520
  19. Amazon Fire HD 10 2019 – только до Fire OS 7.3.1.0
  20. Amazon Fire TV 2 — только до Fire OS 5.2.6.9
  21. ASUS ZenFone Max Plus X018D
  22. ASUS ZenPad 3s 10 Z500M
  23. Серия ASUS ZenPad Z3xxM(F) MT8163
  24. Планшет Barnes & Noble NOOK 7 дюймов BNTV450 и BNTV460
  25. Планшет Barnes & Noble NOOK 10,1 дюйма BNTV650
  26. Блэквью А8 Макс
  27. Blackview BV9600 Pro (Гелио P60)
  28. БЛУ Лайф Макс
  29. BLU Life One X
  30. Серия БЛУ R1
  31. БЛЮ Р2 ЛТЕ
  32. СИНИЙ S1
  33. Синий танк Xtreme Pro
  34. БЛУ Виво 8л
  35. БЛУ Виво XI
  36. БЛУ Виво XL4
  37. Блубу S8
  38. БК Аквариис М8
  39. КАТ S41
  40. Coolpad Cool Play 8 Lite
  41. Касание Дракона K10
  42. Эхо чувство
  43. Джиони М7
  44. HiSense Infinity H12 Lite
  45. Huawei GR3 TAG-L21
  46. Хуавей Y5II
  47. Серия Huawei Y6II MT6735
  48. Лава Ирис 88S
  49. Серия Леново С2
  50. Планшет Леново Е8
  51. Леново Таб2 А10-70Ф
  52. LG K8+ (2018) X210ULMA (МТК)
  53. ЛГ К10 (2017)
  54. LG Трибьют Династия
  55. Серия LG X power 2/M320 (MTK)
  56. LG Xpression Plus 2/K40 серия LMX420
  57. Люмигон Т3
  58. Мейзу М5с
  59. Мейзу М6
  60. Мейзу Про 7 Плюс
  61. Нокиа 1
  62. Нокиа 1 Плюс
  63. Нокиа 3
  64. Нокиа 3.1
  65. Нокиа 3.1 Плюс
  66. Нокиа 5.1
  67. Нокиа 5.1 Плюс/Х5
  68. 7-дюймовый планшет Android
  69. Серия планшетов Onn с диагональю 8 и 10 дюймов (MT8163)
  70. ОППО А5с
  71. Серия OPPO F5/A73 — только Android 8.x
  72. Серия OPPO F7 — только Android 8.x
  73. Серия OPPO F9 — только Android 8.x
  74. Оукитель К12
  75. Протрули D7
  76. Реалме 1
  77. Сони Иксперия С4
  78. Серия Sony Xperia C5
  79. Сони Иксперия Л1
  80. Сони Иксперия Л3
  81. Sony Xperia серии XA
  82. Серия Sony Xperia XA1
  83. Южный Телеком Смартаб ST1009X (MT8167)
  84. ТЕКНО Спарк 3 серия
  85. Серия Умидиги F1
  86. Умидиги Сила
  87. Вико Райд
  88. Вико Санни
  89. Wiko View3
  90. Серия Xiaomi Редми 6/6А
  91. ZTE Блейд A530
  92. ZTE Блейд D6/V6
  93. ZTE Квест 5 Z3351S

читать далее

За исключением телефонов на базе MediaTek от Vivo, Huawei/Honor (после Android 8.0+), OPPO (после Android 8.0+) и Члены сообщества Samsung и XDA обнаружили, что MediaTek-su чаще всего работает на устройствах с уязвимыми устройствами. чипсеты. По словам дипломатического представителя XDA, устройства Vivo, Huawei/Honor, OPPO и Samsung «используют модификации ядра для предотвращения root-доступа через эксплойтов», что означает, что разработчику придется покопаться в исходном коде ядра этих устройств, чтобы создать «специализированную версию(и)» эксплуатировать. Это не стоило дополнительных усилий, поэтому разработчик решил не добавлять поддержку этих устройств, хотя «теоретически» эксплойт все еще мог работать.

К настоящему моменту должно быть ясно, что этот эксплойт затрагивает большое количество устройств на рынке. Чипы MediaTek используются в сотнях моделей смартфонов бюджетного и среднего класса, дешевых планшетов и других брендов. приставки, большая часть которых продается без ожидания своевременного обновления от производителя. Таким образом, многие устройства, все еще затронутые MediaTek-su, вряд ли получат исправление в течение нескольких недель или месяцев после сегодняшнего сообщения, если оно вообще будет получено. Так что же заставляет MediaTek-su получить «критическую» степень серьезности с CVSS версии 3.0 оценка 9,3?

Почему MTK-su является критической уязвимостью безопасности

Повторим, типичный способ получить root-доступ на устройстве Android — сначала разблокировать загрузчик, что отключает проверку загрузочного раздела. После разблокировки загрузчика пользователь может добавить в систему двоичный файл суперпользователя, а также приложение для управления суперпользователем, чтобы контролировать, какие процессы имеют доступ к root. Разблокировка загрузчика — это намеренное отключение одной из ключевых функций безопасности устройства, поэтому пользователю приходится явно разрешите это, обычно включив переключатель в параметрах разработчика, а затем выдав команду разблокировки загрузчик. Однако с MediaTek-su пользователю не нужно разблокировать загрузчик, чтобы получить root-доступ. Вместо этого все, что им нужно сделать, это скопировать сценарий на свое устройство и выполнить его в оболочке. Однако пользователь не единственный, кто может это сделать. Любое приложение на вашем телефоне может скопировать сценарий MediaTek-su в свой личный каталог, а затем выполнить его, чтобы получить root-доступ в оболочке. Фактически, дипломатический член XDA подчеркивает эту возможность в своей теме на форуме, когда они предлагают альтернативный набор инструкций, используя либо Эмулятор терминала для Android-приложения или Термукс а не АБР.

При наличии root-доступа модель безопасности Android практически разваливается. Например, разрешения становятся бессмысленными в контексте root, поскольку приложение, имеющее доступ к корневой оболочке, может предоставить себе любые разрешения, которые оно хочет. Более того, с помощью корневой оболочки доступен весь раздел данных, включая файлы, хранящиеся в обычно недоступных частных каталогах данных приложений. Приложение с root-правами также может автоматически установить любое другое приложение в фоновом режиме, а затем предоставить ему любые разрешения, необходимые для нарушения вашей конфиденциальности. По словам признанного разработчика XDA топджонву, вредоносное приложение может даже «внедрить код непосредственно в Zygote с помощью ptrace», а это означает, что обычное приложение на вашем устройстве может быть взломано и выполнять приказы злоумышленника. Эти примеры касаются лишь нескольких способов, которыми приложение может нарушить ваше доверие в фоновом режиме без вашего ведома. Однако вредоносные приложения могут нанести ущерб вашему устройству, не скрывая, что они делают. Программы-вымогатели, например, очень сильно мощный с root-доступом; если вы не заплатите, гипотетическое приложение-вымогатель может полностью и бесповоротно сделайте ваше устройство неработоспособным, очистив все устройство.

Единственная «слабость» MediaTek-su заключается в том, что он предоставляет приложению только «временный» root-доступ, а это означает, что процесс теряет доступ суперпользователя после перезагрузки устройства. Кроме того, на устройствах под управлением Android 6.0 Marshmallow и выше наличие Проверенная загрузка и dm-verity блокировать изменения в разделах, доступных только для чтения, таких как system иvendor. Однако эти два фактора по большей части являются лишь помехой для моддеров на наших форумах, а не злоумышленниками. Чтобы преодолеть ограничение временного root-доступа, вредоносное приложение может просто перезапускать сценарий MediaTek-su при каждой загрузке. С другой стороны, нет необходимости преодолевать dm-verity, поскольку постоянные модификации системных или вендорных разделов вряд ли заинтересуют большинство авторов вредоносных программ; ведь уже есть тонны того, что вредоносное приложение может делать с корневой оболочкой.

Если вам интересно на техническом уровне, что использует MediaTek-su, MediaTek поделился с нами приведенной ниже диаграммой, в которой обобщается точка входа. Ошибка, по-видимому, существует в одном из драйверов ядра Linux MediaTek под названием «CMDQ». В описании указано, что «выполнив IOCTL команды в узле устройства CMDQ», локальный злоумышленник может «произвольно читать/записывать физическую память, сбрасывать таблицу символов ядра в предварительно выделенный буфер DMA, [и] манипулировать буфером DMA, чтобы изменить настройки ядра, чтобы отключить SELinux и перейти к «root» привилегия».

Сводка уязвимостей безопасности CVE-2020-0069 от MediaTek

Согласно диаграмме, которой MediaTek поделилась с нами, эта уязвимость затрагивает устройства MediaTek с ядром Linux версий 3.18, 4.4, 4.9 или 4.14 под управлением Android версий 7 Nougat, 8 Oreo или 9 Pie. Уязвимость не может быть использована на устройствах MediaTek под управлением Android 10, по-видимому, поскольку «разрешение на доступ CMDQ узлы устройств также поддерживаются SELinux». Это смягчение, вероятно, связано с обновлением BSP MediaTek, а не с Android. сам. Единственное средство устранения этой уязвимости в Android 10 — это ограничение на выполнение приложений двоичными файлами в своем домашнем каталоге; однако, как отмечает топджонву, признанный разработчик XDA, вредоносное приложение может просто запустить код MediaTek-su в динамической библиотеке.

Несмотря на то, что MediaTek исправила эту проблему во всех затронутых чипсетах, они не могут заставить производителей устройств внедрить эти исправления. MediaTek сообщила нам, что у них были готовы исправления еще в мае 2019 года. Неудивительно, что Amazon немедленно исправила проблему на своих устройствах, как только о ней стало известно. Однако прошло 10 месяцев с тех пор, как MediaTek предоставила исправление своим партнерам, но в В марте 2020 года десятки OEM-производителей не починили свои устройства.. Большинство затронутых устройств работают на более старых версиях Android с устаревшими уровнями обновлений безопасности Android (SPL), и ситуация с обновлениями еще хуже, если принять во внимание сотни менее известных моделей устройств, использующих эти чипы MediaTek. У MediaTek есть серьезный проблема возникла здесь, поэтому они обратились за помощью к Google.

В отличие от MediaTek, Google может заставить OEM-производителей обновлять свои устройства через лицензионные соглашения или условия программы (например, Android One). Чтобы OEM-производитель мог заявить, что устройство соответствует уровню обновлений безопасности (SPL) от 2020-03-05, устройство должно включать в себя всю структуру, Исправления ядра Linux и применимых драйверов поставщиков в бюллетене по безопасности Android за март 2020 г., который включает исправление для CVE-2020-0069, или МедиаТек-су. (Похоже, что Google на самом деле не обеспечивает соблюдение этого OEM-производители фактически объединяют все патчи однако при объявлении определенного уровня SPL.) Теперь, когда вышел бюллетень за март 2020 года, эта история должна быть закончена, верно? К сожалению, нам также приходится критиковать Google за то, что он затягивает внедрение патчей.

Ошибка в процессе установки исправлений безопасности

Если это еще не ясно, не каждая уязвимость безопасности должна попасть в бюллетень по безопасности Android. Многие уязвимости обнаруживаются и исправляются поставщиками, но они никогда не появляются в ежемесячном бюллетене. MediaTek-su должен был быть одним из них, но по ряду причин нескольким OEM-производителям не удалось интегрировать исправления, предлагаемые MediaTek. (Существует множество потенциальных причин, от нехватки ресурсов до деловых решений и неудач в общении.) Когда я раньше заявил, что MediaTek «обратился к Google» за помощью, это подразумевало, что MediaTek активно искал помощи у Google, чтобы заставить OEM-производителей наконец исправить свои проблемы. устройства. Однако на самом деле это могло быть не так. Насколько я понимаю, Google не знал о MediaTek-su, пока он случайно не был упомянут в отчете о безопасности от ТрендМикро опубликовано 6 января 2020 г. В отчете ТрендМикро документировал другой уязвимость безопасности, получившая название «use-after-free в драйвере подшивки"Уязвимость, которую активно эксплуатировали в дикой природе. ТрендМикро отметил, что три вредоносных приложения получили root-доступ, используя один из двух методов: либо уязвимость «использование после освобождения в драйвере связывателя», либо MediaTek-su.

Предполагаемые приложения Play Store, злоупотребляющие MediaTek-su. Источник: ТрендМикро.

В коде, который ТрендМикро мы можем ясно видеть, как вредоносные приложения были нацелены на конкретные модели устройств (например. Nokia 3, OPPO F9 и Redmi 6A) и использование на них MediaTek-su.

Я не могу говорить за ТрендМикро, но, похоже, они не знали, что MediaTek-su — это еще не исправленный эксплойт. В конце концов, их внимание было сосредоточено на эксплойте «use-after-free в драйвере связывателя», а открытие использования MediaTek-su, похоже, было второстепенной мыслью. (Я уверен, что если ТрендМикро были осведомлены о ситуации вокруг MediaTek-su, они бы скоординировали свои усилия по раскрытию информации с Google.) Нам сообщили только о мы сами использовали этот эксплойт 5 февраля 2020 года, и после того, как сами выяснили, насколько он плох, мы связались с Google по этому поводу 7 февраля, 2020. Google был настолько обеспокоен последствиями публикации MediaTek-su, что попросил нас отложить публикацию этой истории до сегодняшнего дня. После рассмотрения непоправимого вреда, который может быть нанесен пользователям, атакованным вредоносным ПО с использованием MediaTek-su, мы договорились приостановить эту историю до анонса Android в марте 2020 года. Бюллетень безопасности. Тем не менее, учитывая, сколько времени потребуется многим устройствам, чтобы получить последнее обновление безопасности, если оно вообще когда-либо будет получите это вообще, через несколько месяцев обязательно останется масса устройств, все еще уязвимых для MediaTek-su. сейчас. Это должно быть ужасающим для любого, у кого есть уязвимое устройство.

Несмотря на то, что эта очень серьезная, «критическая» уязвимость активно эксплуатируется, только Google включено в исправление этой проблемы в бюллетень за март 2020 г., то есть примерно через 2 месяца после того, как они узнали об этой проблеме. проблема. Хотя Google информирует своих партнеров по Android о последнем бюллетене по безопасности Android за полные 30 дней до его публикации (т. OEM-производители были проинформированы о том, что содержится в бюллетене за март 2020 г., в начале февраля 2020 г.), Google может и часто обновляет бюллетень, добавляя в него изменения или новые исправления. Почему Google не решил ускорить включение исправления для такой серьезной проблемы, мне непонятно, особенно когда MediaTek исправил ее 10 месяцев назад. Если бы такая ошибка была обнаружена в устройствах Apple, я почти не сомневаюсь, что они бы выпустили исправление. намного, намного быстрее. Google, по сути, сделал рискованную ставку на то, что MediaTek-su останется таким же, казалось бы, скромным, каким оно было до мартовского бюллетеня 2020 года. Хотя Google, похоже, повезло в этом отношении, мы понятия не имеем, сколько авторов вредоносных программ уже знают об этой уязвимости. В конце концов, он уже давно сидит в случайной ветке форума XDA. почти целый год.

В этом разгроме есть еще одна сторона, о которой я особо не говорил, и это автор эксплойта, дипломатический член XDA. К его чести, я не думаю, что у него был какой-либо злой умысел при публикации MediaTek-su. Мы можем ясно проследить происхождение эксплойта от желания дипломата модифицировать планшеты Amazon Fire. Дипломатик рассказал мне, что его основной целью при разработке этого корневого метода было помочь сообществу. Настройка вашего устройства — это то, чем занимается XDA, а дипломатические усилия в сообществе — это то, что людям нравится на форумах. Хотя отказ Дипломата открыть исходный код проекта вызывает некоторую обеспокоенность, он объясняет, что хотел, чтобы сообщество как можно дольше пользовалось root-доступом. Когда я впервые связался с дипломатом, он также заявил, что сотрудничал с некоторыми партнерами, которые не позволяли ему поделиться исходным кодом проекта и исследованиями. Хотя мне не удалось получить более подробную информацию об этом сотрудничестве, мне интересно, решили бы дипломаты обнародовать этот эксплойт, если бы MediaTek предложила программу вознаграждения за обнаружение ошибок. Я не могу себе представить, что за уязвимость такого масштаба не пришлось бы платить огромную сумму денег, если бы у MediaTek действительно была такая программа. Diplomatic утверждает, что этот эксплойт стал возможен с чипсета MediaTek MT6580, выпущенного в конце 2015 года, поэтому приходится задаться вопросом, является ли дипломат вообще первым, кто обнаружил этот эксплойт. Он говорит мне, что понятия не имел, что MediaTek-su активно эксплуатируется, до публикации этой статьи.

Если вы хотите проверить, уязвимо ли ваше устройство к MediaTek-su, то вручную запустите скрипт, опубликованный дипломатическим участником XDA. в этой ветке форума XDA. Если вы войдете в корневую оболочку (вы узнаете, когда символ изменится с $ на #), вы поймете, что эксплойт работает. Если это работает, вам придется подождать, пока производитель вашего устройства выпустит обновление, исправляющее MediaTek-su. Если ваше устройство сообщает об уровне исправления безопасности 2020-03-05, который является последним SPL за март 2020 года, то оно почти наверняка защищено от MediaTek-su. В противном случае вам придется просто проверить, уязвимо ли ваше устройство.


Обновление 1 (02.03.2020, 21:45 по восточному стандартному времени): Эта статья была обновлена, чтобы уточнить, что дипломатический член XDA действительно знал о масштабах этой уязвимости, как только он обнаружил его еще в феврале 2019 года, но не знал о реальном использовании эксплойта до публикации этого статья. Мы также исправили формулировку относительно одной из причин, по которой дипломатические компании отказались предоставить исходный код проекта.