macOS 27.2.1 більше не довіряє eMudhra в curl. Що я б перевірив у своєму застосунку для 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Що робить кожен із кроків: підписування коду, нотаризація і stapling, у якому порядку вони виконуються, що бачать ваші користувачі без них і як перевірити власну збірку.
- Скільки насправді варте dofollow-посилання, з сайту, який його пропонуєЩо означає dofollow, що Google каже про посилання, чому посилання з нового каталогу сьогодні варте мало і що робити замість купівлі посилань.
Подайте свій застосунокБезкоштовні інструменти для розробників