Zoom для Mac исправляет ошибку, связанную с получением root-прав – обновите сейчас! PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Zoom для Mac исправляет ошибку получения root-прав — обновите прямо сейчас!

На известной вечеринке по безопасности DEF CON в Лас-Вегасе, штат Невада, на прошлой неделе исследователь кибербезопасности Mac Патрик Уордл показал, «получить корень» повышение привилегий (EoP) ошибка в Zoom для Mac:

В твите, который последовал за его выступлением [2022-08-12], Уордл отметил:

В настоящее время патча нет.

Zoom сразу же работал над исправлением уязвимости, о чем было объявлено на следующий день в Бюллетень безопасности Zoom ZSB-22018, получив поздравление Ответить от Уордла в процессе:

Mahalos в @Zoom для (невероятно) быстрого решения! [:ОБЕ РУКИ ПОДНЯТЫ В ПРАЗДНИКЕ И ПОКАЗАЛИСЬ НА ЭМОДЗИ:] [:ЛАДНИ, СЖАТЫЕ ВМЕСТЕ, В ЗНАК ДУХОВНОЙ ДОБРОСТИ ЭМОДЗИ:]

Раскрытие нулевого дня

Учитывая кажущуюся скорость и легкость, с которой Zoom смог выпустить патч для ошибки, получивший название CVE-2022-28756, вам, наверное, интересно, почему Уордл не сообщил Zoom о баге заранее, назначив день своего выступления крайним сроком для раскрытия подробностей.

Это дало бы Zoom время, чтобы распространить обновление среди множества пользователей Mac (или, по крайней мере, сделать его доступным для тех, кто верит в патч рано/патч часто), тем самым устраняя разрыв между объяснением Уордлом миру, как злоупотреблять ошибкой, и исправлением ошибки.

На самом деле, кажется, что Уордл сделал все возможное, чтобы предупредить Zoom об этой ошибке, а также о множестве взаимосвязанных недостатков в процессе автоматического обновления Zoom несколько месяцев назад.

Уордл объясняет график раскрытия ошибок в слайды из его выступления на DEF CON, и перечисляет поток обновлений Zoom, связанных с обнаруженными им недостатками.

Обоюдоострый меч

Ошибки, о которых говорил Уордл, в основном связаны с механизмом автообновления Zoom, частью любой программной экосистемы, которая представляет собой обоюдоострый меч — более мощное оружие, чем обычный меч, но, соответственно, с ним сложнее безопасно обращаться.

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

Но автоматическое обновление сопряжено с морем рисков, не в последнюю очередь потому, что самому инструменту обновления обычно требуется системный доступ на уровне root.

Это связано с тем, что работа программы обновления состоит в том, чтобы перезаписать прикладное программное обеспечение (что обычный пользователь не должен делать) и, возможно, запустить привилегированные команды операционной системы для внесения изменений в конфигурацию или других системных изменений.

Другими словами, если разработчики не будут осторожны, тот самый инструмент, который помогает им поддерживать свое базовое приложение в актуальном состоянии и более безопасным, может стать плацдармом, с которого злоумышленники могут подорвать безопасность, обманом заставив средство обновления запускать несанкционированные команды с системными привилегиями. .

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

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

Обход проверки подлинности

Как объясняет Уордл в своем бумаги, одна из ошибок, которые он обнаружил и раскрыл, была ошибкой на первом шаге, указанном выше, когда программа автоматического обновления 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 Отпечаток пальца SHA0000: 256D 6 70A 1 F84 0A D5 C4 C1 B1 AE 3 C01 EF 2F 1E AE FB 2F 9C A5 6 80 A48 4 76 FF B60 F5 0 BB 57C -------------------------------------------------- ------------------------------------- 8. Срок действия центра сертификации ID разработчика: 2 февраля 2027 г. 02:01:22 +12 SHA15 Отпечаток пальца: 0000A FC 256D 7 A9 01F 6 A2 DE 03 2 96 37D 93A FE 6 4 68D 09D E0 2D 1 F8 03C 2 CF B9 B88 BA 0 1 63F -------- -------------------------------------------------- -------------- 58. Apple Root CA Срок действия: 7-3-2035 02:09:21 +40 SHA36 Отпечаток пальца: B0000 B256 0 1E CB C73 FF 0 7 45 05C 14 F2 49 1E 29E DA 5B CA ED 6E 6C 7 C2 BE 68 B5 A91 5 1 F10 01

К сожалению, как обнаружил Уордл, когда декомпилировал код проверки подписи 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).

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

Этот тип ошибки известен как состояние гонки, потому что злоумышленникам нужно рассчитать время, чтобы вернуться домой непосредственно перед запуском установщика, и поэтому они должны вносить свои вредоносные изменения прямо перед ним.

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

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

Исправление уже в

По словам Уордла, Zoom предотвратил эту ошибку, изменив права доступа к файлу пакета обновления, скопированному на шаге 1 выше.

Файл, который используется для проверки подписи, проверки версии и окончательной установки на уровне root, теперь всегда доступен только для учетной записи root.

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

Чтобы изменить файл пакета, чтобы заставить систему предоставить вам root-доступ, вам уже нужно иметь root-доступ, поэтому вам не понадобится ошибка EoP такого рода.

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

Что делать?

Если вы используете Zoom на Mac, откройте приложение, а затем в строке меню перейдите к zoom.us > Check for Updates...

Если доступно обновление, будет показана новая версия, и вы можете нажать [Install] для применения патчей:

Zoom для Mac исправляет ошибку, связанную с получением root-прав – обновите сейчас! PlatoBlockchain Data Intelligence. Вертикальный поиск. Ай.

Версия, которую вы хотите, 5.11.5 (9788) или позже.


Отметка времени:

Больше от Голая Безопасность