Новорічні подарунки, частина третя: добре ми вели себе

Частина перша: Meltdown
Частина друга: Spectre

Одним з найцікавіших питань, що виникли в дискусіях про апаратних вразливості Meltdown і Spectre (див. посилання вище) було питання про те, чи зробив нам Дід Мороз цей подарунок у зв’язку з тим, що в 2017 році ми вели себе погано — або, навпаки, добре.

Спробую обгрунтувати тезу про те, що ми вели себе добре, інакше Дід Мороз зробив би нам цей подарунок через три-чотири роки.

Отже, що ми маємо? Апаратна вразливість Meltdown, що дозволяє будь-якому непривилегированному процесу читати пам’ять ядра ОС, а також будь-яких працюють у цій ОС процесів, включаючи сертифікати, паролі, биткоин-гаманці і все, що прийде вам в голову обробляти на комп’ютері.

Застосування уразливості не залишає слідів, а реалізує її код в загальному випадку не детектується антивірусами.

Єдиним способом захисту є термінова доопрацювання ядра ОС з метою поділу віртуальних адресних просторів процесу і ОС. В Linux відповідний патч називається KPTI, він залишає у віртуальному адресному просторі процесу лише невеликий шматочок ядра — функції-трампліни, перебрасывающие при зверненні до них на відповідні функції ядра, яке тепер живе в іншому адресному просторі. Завдяки цьому патч також отримав назву Forcefully Unmap Complete Kernel With Interrupt Trampolines, або FUCKWIT.

Meltdown достовірно схильні:

  • Практично всі процесори Intel
  • Неназываемое число процесорів Apple на ядрі ARM
  • Процесори на ядрі ARM Cortex-A75

Особливий інтерес у наших взаєминах з Дідом Морозом є останній пункт — Cortex-A75.

Якщо не вважати творчості Apple, що живе виключно в контрольованих пристроях Apple, інші процесори на ядрах ARM можуть бути піддані важко експлуатованої уразливості Spectre, за фактом представляє зараз небезпеку тільки для браузерів з виконанням JS, або схожою на Meltdown, але дуже сильно обмеженою уразливості, відомої з документів ARM під назвою «Variant 3a» і не дозволяє читати вміст ОЗУ.

Читайте також  Музика в квартирі. Вбудовування

На Cortex-A75 ж зараз представлені всього два процесора, на яких представлені рівно нуль пристроїв:

  • Qualcomm Snapdragon 845
  • Samsung Exynos 9810

Про 845-ї виробник прямо заявляє про використання Cortex-A75, про 9810 достовірної інформації немає, однак цей процесор має ряд ексклюзивних для A75 особливостей, а також буде прямо протиставлятися Snapdragon 845 в Galaxy S9.

Ймовірно, найближчим часом можна очікувати аналогічних моделей розробки Mediatek і HiSilicon.

Пристрої на обох процесорах будуть показані в кінці лютого на MWC-2018 і навколо неї — це, зрозуміло, Galaxy S9, а також флагманські моделі інших виробників.

Що це означає? Дуже просту річ: протягом 2018 року в живій природі з’являться кілька десятків мільйонів Android-смартфонів і планшетів, що піддаються атаці Meltdown. Протягом 2019 року це число легко може перевалити за сто мільйонів.

Хоча при цьому пристрої середнього і нижнього сегмента залишаться невразливими — їх процесори вигідніше збирати з дешевих ядер класу Cortex-A5x, не додаючи в них великі і дорогі Cortex-A7x — ринок дорогих і вразливих смартфонів буде представляти серйозний інтерес для хакерів.

Але ж, здавалося б, просте оновлення лінуксового ядра?..

Ми зі своїми десктопами і серверами трохи розпещені можливістю оновлення ядра. Навіть для надконсервативною CentOS є три вже готові лінійки ядер — базова, longterm і магістралі, що вже говорити про десктопні дистрибутиви. Захотіли — накотили. Спочатку чарку коньяку, потім ядро, ну або навпаки, це у кого скільки сміливості є.

А тепер подивимося на реалії світу смартфонів:

Модель Ядро
Galaxy S6 3.10.61
Galaxy S7 3.18.14
Galaxy S8 4.4.13
Galaxy Note 8 4.4.13
Galaxy A5 2017 3.18.14
Sony XZ Premium 4.4.78
Xiaomi Mi A1 3.18.66
Xiaomi Mi 6 4.4.21
Xiaomi Mi 5 3.18.31
Redmi Note 4 (Snapdragon) 3.18.31
Redmi Note 4 (MTK) 3.18.22
Meizu MX6 3.18.22
HTC U11+ 4.4.78
Huawei Honor 9 4.1.18
Huawei P10 4.1.18
Huawei Mate 10 Pro 4.4.23
Nexus 6P 3.10.73
Читайте також  Як монобрендовому проекту потрапити в ТОП, перемігши агрегатори і внутрішні сервіси пошукових систем?

Хороший зоопарк, правда?

Кожен смартфон живе з тим ядром, яке для нього було готове на момент випуску його на ринок. У ході всього життя смартфона що приходять на нього оновлення не змінюють версію ядра, хоча саме ядро можуть накладатися додаткові патчі, якщо ви подивитеся параметри, дата складання ядра у вашому смартфоні з великою ймовірністю буде відповідати одному з останніх оновлень.

Версія ядра обумовлена як підтримку його з боку виробника чіпсета (зверніть увагу, що у Meizu на MTK Helio X20 і Xiaomi Redmi Note 4 на ньому ж ядро одне, а от у Redmi Note 4 на Snapdragon 625 — інше), так і власними напрацюваннями виробника смартфона.

Це означає, що наявність, наприклад, патча KPTI в ядрі 4.4.110 не означає, що виробники можуть швиденько випустити оновлення Android для своїх смартфонів, яке принесе всім користувачам 4.4.110 з включеним KPTI. Ні, їм треба буде розважатися бек-портированием відповідного патча на те ядро, яке реально використовується в їх моделях, з подальшим тестуванням працездатності та стабільності.

Смартфони в цьому схожі на серверні дистрибутиви лінукса типу CentOS — тільки для них ще й стороннього репозитарію з kernel-lt і kernel-ml не існує.

На даний момент, однак, ми маємо лише два схильних Meltdown ARM-процесора, не рахуючи продукції Apple, які найближчі півроку будуть застосовуватися в обмеженій кількості моделей смартфонів, а прошивки цих смартфонів будуть засновані на одному з більш-менш свіжих ядер серії 4.4, в якій патч KPTI є хоча б теоретично.

Тепер уявіть, що було б, якщо б Meltdown був виявлений не зараз, а через два-три роки. Сотні мільйонів пристроїв (і вже не тільки смартфонів і планшетів, які використовують десятки варіантів ядер з серій 4.4 і 4.9, кожна зі своїм набором патчів, основна розробка Linux при цьому йде десь там в районі ядер 4.20…

Читайте також  Як платні CMS допомагають економити при замовленні SEO

Уявили?

Спасибі, дідусь Мороз, що дав нам Meltdown до того, як їм встигли заразити всю мобільну індустрію.

Обіцяємо в 2018 році теж вести себе добре.

P. S. Все це зовсім не означає, що виробники смартфонів дійсно випустять перші моделі на Cortex-A75 з включеним KPTI.

Степан Лютий

Обожнюю технології в сучасному світі. Хоча частенько і замислююся над тим, як далеко вони нас заведуть. Не те, щоб я прям і знаюся на ядрах, пікселях, коллайдерах і інших парсеках. Просто приходжу в захват від того, що може в творчому пориві вигадати людський розум.

You may also like...

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься.