macOS 27.2.1 лишает curl доверия к eMudhra. Что я бы проверил в приложении для Mac
Автор: Justinas Rolando, создатель MacPip
9 ноября 2026 г.: Apple выпустила macOS 27.2.1, а также 26.7.3 и 15.8.3 для более старых Mac. Помимо восьми исправлений безопасности, они закрывают пробел, оставшийся после компрометации сертификатов eMudhra: с 19 октября Safari, Mail и приложения на сетевых фреймворках и фреймворках безопасности Apple уже отказывались принимать плохие сертификаты (их число: 12), но инструменты командной строки вроде curl, git, python3 и openssl читали /etc/ssl/cert.pem и продолжали их принимать. Обновления убирают из этого файла пять корневых сертификатов, включая AAA Certificate Services. Если ваше приложение, установщик или скрипт обновления используют эти инструменты или поставляют собственный список доверенных корневых сертификатов, проверьте свои загрузки и собственные серверы на новых версиях.
Большинство обновлений Mac я устанавливаю и забываю. А вот macOS 27.2.1, вышедшую 9 ноября, я бы прочитал внимательно, если бы делал приложение для Mac: она меняет, каким сертификатам доверяют некоторые инструменты на каждом Mac. Apple выпустила её вместе с macOS Tahoe 26.7.3 и Sequoia 15.8.3 для более старых Mac, и во всех трёх одно и то же изменение.
Вот что произошло, кого это касается и что я бы проверил.
Что произошло
- Были скомпрометированы восемь промежуточных центров сертификации. На странице поддержки Apple об eMudhra сказано, что закрытые ключи восьми промежуточных центров сертификации eMudhra были скомпрометированы. Шесть из них выпускают сертификаты, которые сайты используют для https. С такими ключами можно создать сертификат, который выглядит действительным для любого сайта. eMudhra и Sectigo отозвали затронутые сертификаты.
- Ключи были крошечными. MacRumors сообщает, что расследование Mozilla обнаружило настолько малые значения ключей, что их было тривиально восстановить. Также MacRumors писал в октябре, что доказательств использования ключей нет.
- Apple заблокировала их в октябре, но не везде. С 19 октября Apple заблокировала 12 из этих сертификатов в Safari, Mail и приложениях, которые используют сетевые фреймворки и фреймворки безопасности Apple, причём обновление не требовалось.
- Пробел был в инструментах командной строки. На странице Apple названы curl, git, python3, ruby, perl и openssl. Они проверяют сертификаты по файлу
/etc/ssl/cert.pem, и для всего, что цепочкой ведёт к корневому сертификату из этого файла, блокировку Apple они пропускают. - 27.2.1 закрывает этот пробел. Инструменты командной строки больше не принимают эти сертификаты, а пять корневых сертификатов удалены из
/etc/ssl/cert.pem: emSign ECC Root CA - G3, AAA Certificate Services, emSign Root CA - G1, emSign Root CA - C1 и emSign ECC Root CA - C3. На странице Apple сказано, что 26.7.3 и 15.8.3 получили ту же защиту.
Те же обновления исправляют ещё восемь ошибок безопасности в Messages, AirPlay и Bluetooth, по данным MacRumors. Apple не сообщала, что какие-либо из них использовались в атаках.
Почему автору приложения для Mac это важно
Если ваше приложение обычное приложение на Swift и выходит в интернет через URLSession, то, скорее всего, оно было защищено ещё в октябре. На странице Apple речь о приложениях, использующих её сетевые фреймворки и фреймворки безопасности, а Howard Oakley, которого цитирует Michael Tsai, говорит, что приложения на стандартных API Apple используют хранилище доверия macOS.
Не защищены оказались приложения того типа, который выпускают многие независимые создатели:
- Приложения, которые внутри запускают curl, git или python3. Помощники для загрузки, установочные скрипты, загрузчики моделей для локальных ИИ-приложений, инструменты разработчика, использующие git.
- Приложения со своим списком доверенных корневых сертификатов. Oakley называет Chrome и другие браузеры на Chromium, продукты Mozilla и Microsoft, а также некоторые приложения на Electron. Он также говорит, что это может коснуться Python, Java и Go, а возможно, Rust или Ruby. На странице Apple сказано, что инструменты со своим списком корневых сертификатов не используют ни её блокировку, ни
/etc/ssl/cert.pemвообще.
Так что октябрьское исправление могло не дойти до вашего приложения, а ноябрьское может не дойти тоже, если оно приносит свои корневые сертификаты.
Есть и вторая сторона. AAA Certificate Services это старый корневой сертификат Sectigo, которым подписано немало обычных сертификатов. Apple предупреждает, что инструменты, использующие только /etc/ssl/cert.pem, могут не проверить некоторые сайты, чьи цепочки проходят через удалённые корневые сертификаты. Если ваш сервер загрузок, лента обновлений или API лицензий оказались среди них, curl на обновлённом Mac может начать их отвергать.
Что бы я проверил на этой неделе
Это мои собственные шаги, а не шаги Apple.
- Обновите один Mac до 27.2.1 и проверьте загрузки из командной строки. Запустите свой установочный скрипт,
brew install, если у вас есть cask, иcurl -Iдля адресов загрузки, appcast и лицензий. Отказ принять сертификат проявится как ошибка, а не как медленная страница. - Посмотрите на цепочку сертификатов своего сайта. Запустите
openssl s_client -connect yourapp.com:443 -showcertsи прочитайте строки issuer. Если вы видите eMudhra, emSign или AAA Certificate Services, попросите хостинг или продавца сертификатов выдать цепочку, которая заканчивается другим корневым сертификатом. - Выясните, каким хранилищем доверия на самом деле пользуется ваше приложение. Electron, Go, Rust со встроенными корневыми сертификатами, Python с certifi и Java приносят свои собственные. Обновите среду выполнения или пакет с корневыми сертификатами до версии, в которой плохие сертификаты убраны, и укажите это в заметках к релизу.
- Подготовьте ответ для поддержки. Если кто-то на старом Mac не может установить обновления, на странице Apple есть шаги для ручного удаления корневых сертификатов. Я бы дал ссылку на страницу Apple, а не вставлял в письмо команды с sudo.
- Попросите пользователей обновиться. Если ваши пользователи в основном технически подкованные, короткая заметка в следующем релизе или рассылке ничего не стоит.
- Проверьте файл на тестовом Mac. На странице Apple есть команда ниже, которая ничего не выводит, когда два главных корневых сертификата удалены.
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services'
Чего бы я не делал
Я бы не стал отключать проверку сертификатов в скрипте, чтобы ошибка исчезла. Именно от этого и защищает всё это изменение. И я бы не говорил пользователям, что их Mac взломан. Нет признаков того, что ключи использовались, а большинство приложений были защищены ещё в октябре.
Взгляд MacPip
MacPip не проверяет, каким сертификатам доверяет приложение. Карточки проверяются автоматически при отправке, а синяя галочка означает лишь то, что человек попробовал приложение в указанную дату. Если вы делаете инструмент для разработчиков или приложение по безопасности и конфиденциальности, у вас больше всего шансов иметь скрипт или встроенную среду выполнения, которых это коснётся, так что час на проверку не пропадёт.
Новое сегодня: проверка манифеста конфиденциальности. Вставьте свой PrivacyInfo.xcprivacy, и она сверит каждый тип данных, цель и код обязательной причины, например CA92.1, со списками самой Apple. Она также говорит, что Apple требует на Mac, а что нет. Всё работает на странице, ничего не отправляется. Рядом лежат разбор Info.plist и разбор нотаризации. А если вашего приложения для Mac ещё нет на MacPip, добавить его можно бесплатно.
Источники
- Поддержка Apple: о компрометации центра сертификации eMudhra (опубликовано 9 ноября 2026 г.)
- Поддержка Apple: выпуски обновлений безопасности Apple
- MacRumors: macOS 27.2.1 исправляет уязвимость сертификатов eMudhra в инструментах командной строки
- MacRumors: Apple блокирует скомпрометированные сертификаты eMudhra (25 октября 2026 г.)
- MacRumors: что Apple исправила в iOS 27.2.1 и macOS 27.2.1
- Michael Tsai: компрометация промежуточного центра сертификации eMudhra
Читайте дальше
- Claude Fable 5.2 and Mythos 5.2: what's new, the benchmarks, and what it means for your MacClaude Fable 5.2 and Mythos 5.2 came out on November 9, 2026. Anthropic's benchmarks as charts, the prices, what changes on a Mac, and four free tools.
- Live Activities появятся в строке меню Mac. Что бы я сделал со своим приложением для MacВ бета-версии macOS 27.3 Live Activities появляются в строке меню компьютеров Mac на Apple silicon, и приложения для Mac могут запускать свои. Что изменилось, какие есть ограничения и что попробовать в первую очередь.
- Память делает Mac дороже. Вот что я бы сделал со своим приложением для MacApple говорит, что из-за памяти Mac будут в дефиците и подорожают вплоть до 2027, а у самого дешёвого Mac 8 GB. Почему это важно для вашего приложения для Mac и что проверить на этой неделе.
- Apple теперь позволяет обратиться к тем, кто отменяет подписку. Вот что я бы сделал в своём приложении для MacС 4 ноября подписки в App Store могут показывать сообщение или предложение в момент отмены. Правила, что говорит Apple и что проверить на Mac.
- Apple добавляет два вопроса о возрастном рейтинге. Вот что я сделаю со своим приложением для MacНачиная с 16 ноября, App Store Connect спрашивает про передачу геопозиции и функции знакомств, и каждое приложение должно ответить до 12 января 2027 г.. Что изменилось и что делать.
- Siri AI теперь открыта для всех разработчиков. Вот что я бы сделал со своим приложением для MacApple открыла Siri AI для всех разработчиков в бета-версии macOS 27.3. Что изменилось, что можно и чего нельзя выпускать уже сейчас, и короткий план для небольшого приложения для Mac.
- Mac с сенсорным экраном выходят 6 ноября. Вот что я бы проверил в своём приложении для MacПервые Mac с сенсорным экраном выходят 6 ноября. Что изменилось, что Apple советует разработчикам и короткий список того, что стоит проверить в собственном приложении для Mac.
- Знакомство с MacPipЧто такое MacPip, зачем я его создал, как работают карточки и день запуска, что на самом деле значит синяя галочка и реальные цифры за первые дни.
- Как запустить Mac-приложение: чек-лист на одну страницуЧто делать до, в день и после запуска Mac-приложения: подпись, ваша страница, каталоги, Product Hunt, Show HN и что измерять.
- Как одной строкой описать, что делает ваше Mac-приложениеПростой способ написать строку под названием Mac-приложения: назовите задачу, уберите хайп и проверьте текст на человеке, который приложение ещё не видел.
- Подпись и нотаризация простыми словами для тех, кто делает первое Mac-приложениеЧто делают подпись кода, нотаризация и степлинг, в каком порядке, что видят пользователи без них и как проверить свою сборку.
- Чего на самом деле стоит dofollow-ссылка, по мнению сайта, который её предлагаетЧто означает dofollow, что Google говорит о ссылках, почему ссылка из нового каталога сегодня мало стоит и что делать вместо покупки ссылок.