Zoom для Mac виправляє помилку отримання root – оновіть зараз! PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Zoom для Mac виправляє помилку отримання root – оновіть зараз!

Минулого тижня на відомій виставці безпеки DEF CON у Лас-Вегасі, штат Невада, дослідник кібербезпеки Mac Патрік Вордл виявлено "get-root" підвищення пільг (EoP) помилка в Zoom для Mac:

У твіті після його виступу [2022-08-12] Вордл зазначив:

Наразі немає патча [:FRIED-EGG EYES DEPICTING ALARM EMOJI:] [:EDVARD MUNCH SCREM EMOJI:]

Zoom негайно попрацював над виправленням недоліку, про що було оголошено наступного дня Zoom бюлетень безпеки ZSB-22018, заробляючи привітання відповісти від Wardle в процесі:

Mahalos до @Zoom для (неймовірно) швидкого вирішення проблеми! [:ОБИДВІ РУКИ ПІДНЯТИ НА ЗНАК СВЯТКУВАННЯ ТА ПОВОРИВАЛИ НАД EMOJI:] [:ДОЛОНІ, ПРИТИСНУТИ ОДНОМ НА ЗНАК ДУХОВНОЇ ДОБРОЇ ВОЛІ EMOJI:]

Розкриття нульового дня

Враховуючи очевидну швидкість і легкість, з якою Zoom зміг випустити патч для помилки, яка отримала назву CVE-2022-28756, ви напевно дивуєтеся, чому Вордл не повідомив Zoom про баг заздалегідь, встановивши день свого виступу як крайній термін для розкриття подробиць.

Це дало б Zoom час, щоб надати оновлення багатьом користувачам Mac (або принаймні зробити його доступним для тих, хто вірить у латати рано/часто латати), таким чином усуваючи розрив між тим, як Wardle пояснює світові, як зловживати помилкою, і виправленням помилки.

Фактично, схоже, кілька місяців тому Уордл зробив усе можливе, щоб попередити Zoom про цю помилку, а також про купу взаємопов’язаних недоліків у процесі автоматичного оновлення Zoom.

Вордл пояснює графік виявлення помилок у слайди з його виступу DEF CONі перераховує потік оновлень Zoom, пов’язаних із виявленими недоліками.

Двохгранний меч

Помилки, які обговорював Вордл, загалом стосувалися механізму автоматичного оновлення Zoom, частини будь-якої екосистеми програмного забезпечення, яка є палкою з двома кінцями – потужнішою зброєю, ніж звичайний меч, але, відповідно, безпечніше поводитися з нею.

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

Але автоматичне оновлення несе з собою море ризиків, не в останню чергу тому, що сам інструмент оновлення зазвичай потребує доступу до системи кореневого рівня.

Це тому, що робота програми оновлення полягає в тому, щоб перезаписати прикладне програмне забезпечення (те, що звичайний користувач не повинен робити), і, можливо, запустити привілейовані команди операційної системи для внесення конфігурацій або інших змін на системному рівні.

Іншими словами, якщо розробники не будуть обережні, той самий інструмент, який допомагає їм підтримувати базову програму актуальною та безпечнішою, може стати плацдармом, з якого зловмисники можуть порушити безпеку, обманом змусивши програму оновлення виконувати несанкціоновані команди із системними привілеями .

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

Їм також необхідно підтримувати цілісність файлів оновлення, які вони в кінцевому підсумку споживають, щоб локальний зловмисник не міг потайки змінити «перевірено безпечний» пакет оновлень, який щойно було завантажено протягом короткого періоду між його отриманням і активацією.

Обхід перевірки автентичності

Як пояснює Вордл у своєму папір, однією з помилок, які він виявив і оприлюднив, була помилка на першому кроці, перерахованому вище, коли програма автоматичного оновлення Zoom намагалася перевірити автентичність щойно завантаженого пакета оновлень.

Замість використання офіційних API macOS для безпосередньої перевірки цифрового підпису завантаження, розробники Zoom вирішили виконати автентифікацію опосередковано, запустивши утиліту macOS pkgutil --check-signature у фоновому режимі та переглядати результат.

Ось приклад pkgutil вихід, використовуючи стару версію Zoom.pkg комплект програмного забезпечення:

$ pkgutil --check-signature Zoom.pkg Пакет «Zoom.pkg»: Статус: підписаний сертифікатом розробника, виданим Apple для розповсюдження Підписано надійною міткою часу: 2022-06-27 01:26:22 +0000 Ланцюжок сертифікатів : 1. Інсталятор ідентифікатора розробника: Zoom Video Communications, Inc. (BJ4HAAB9B3) Термін дії: 2027-02-01 22:12:15 +0000 SHA256 Відбиток пальця: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ---------------------------------- ------------------------------------- 2. Термін дії центру сертифікації ідентифікатора розробника закінчується: 2027-02-01 22:12:15 +0000 SHA256 Відбиток пальця: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. Apple Root CA Термін дії: 2035-02-09 21:40:36 +0000 SHA256 Відбиток пальця: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

На жаль, як виявив Вордл, коли він декомпілював код перевірки підпису Zoom, програма оновлення Zoom не обробила pkgutil дані так само, як люди-спостерігачі.

Ми б перевірили результат, дотримуючись корисної візуальної послідовності у виводі.

По-перше, ми шукаємо бажаний статус, наприклад signed by a developer certificate issued by Apple for distribution.

Потім ми знайшли підзаголовок Certificate Chain:.

Нарешті, ми перехресно перевіримо, чи ланцюжок складається з цих трьох підписантів у правильному порядку:

  1. Zoom Video Communications, Inc. 2. Центр сертифікації ідентифікатора розробника 3. Apple Root CA

Дивовижно, але код Zoom просто перевірив, що кожен із трьох наведених вище рядків (навіть не перевіряючи власний унікальний ідентифікатор Zoom BJ4HAAB9B3) з'явився десь у виході з pkgutil.

Отже, створення пакета з абсурдною, але правильною назвою, наприклад Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg змусить верифікатор пакета знайти «рядки ідентифікації», які він шукає.

Повна назва пакета повторюється в pkgutil заголовок виводу в першому рядку, де нещасний «перевірник» Zoom відповідатиме всім трьом текстовим рядкам у неправильній частині виводу.

Таким чином перевірку «безпеки» можна легко обійти.

Часткове виправлення

Вордл каже, що Zoom зрештою виправив цю помилку, більш ніж через сім місяців після того, як він повідомив про неї, вчасно до DEF CON…

…але після застосування патча він помітив, що в процесі оновлення все ще зяяла діра.

Оновлювач намагався зробити правильні речі:

  • 1. Перемістіть завантажений пакет до каталогу, що належить root, і, таким чином, теоретично заборонено для будь-якого звичайного користувача.
  • 2. Перевірте криптографічний підпис завантаженого пакета, з використанням офіційних API, а не за допомогою символу зіставлення тексту pkgutil вихід.
  • 3. Розархівуйте завантажений файл пакета, щоб перевірити номер версії, щоб запобігти атакам на пониження версії.
  • 4. Встановіть завантажений файл пакета, використовуючи привілеї root для процесу автоматичного оновлення.

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

… щойно завантажений файл пакета залишився «придатним для запису» у новому місці (побічний ефект завантаження звичайним обліковим записом, а не root).

Це дало місцевим зловмисникам лазівку для зміни пакета оновлень після його цифровий підпис було перевірено (крок 2), не впливаючи деталі перевірки версії (крок 3), але перед інсталятор взяв під контроль файл пакета, щоб обробити його з привілеями root (крок 4).

Цей вид помилки відомий як a стан перегонів, тому що зловмисникам потрібно запланувати час завершення, щоб вони повернулися додому безпосередньо перед запуском інсталятора, і, отже, вони повинні незабаром внести свої зловмисні зміни.

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

Проблема TOCTOU полягає в тому, чому компанії з оренди автомобілів у Великій Британії більше не просять просто показати ваше водійське посвідчення, яке могло бути видано до 10 років тому, і з тих пір воно могло бути призупинено або анульовано з різних причин, найімовірніше тому, що небезпечного або незаконного водіння з вашого боку. Разом із вашою фізичною ліцензією вам також потрібно надати одноразовий буквено-цифровий код «підтвердження нещодавньої дійсності», виданий протягом останніх 21 дня, щоб скоротити потенційний проміжок у TOCTOU з 10 років до лише трьох тижнів.

Виправлення вже доступно

За словами Wardle, Zoom тепер запобіг цій помилці, змінивши права доступу до файлу пакета оновлення, скопійованого на кроці 1 вище.

Файл, який використовується для перевірки підпису, перевірки версії та остаточної інсталяції на кореневому рівні, тепер має постійний доступ лише для облікового запису root.

Це усуває умову змагання, оскільки непривілейований зловмисник не може змінити файл до кінця кроку 2 (перевірка успішна) і початок кроку 4 (починається встановлення).

Щоб змінити файл пакета, щоб обманом змусити систему надати вам root-доступ, вам уже потрібно мати root-доступ, тому вам не знадобиться подібна помилка EoP.

Проблема TOCTOU не стосується, оскільки перевірка на кроці 2 залишається дійсною, доки не почнеться використання файлу, не залишаючи жодного вікна можливості для того, щоб перевірка стала недійсною.

Що ж робити?

Якщо ви використовуєте Zoom на Mac, відкрийте програму, а потім у рядку меню перейдіть до zoom.us > Check for Updates...

Якщо доступне оновлення, буде показано нову версію, і ви можете натиснути [Install] щоб застосувати патчі:

Zoom для Mac виправляє помилку отримання root – оновіть зараз! PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Потрібна вам версія 5.11.5 (9788) або пізніше.


Часова мітка:

Більше від Гола безпека