RėmėjaiPrisijungtiPateikti
Tinklaraštis

macOS 27.2.1 nustoja leisti curl pasitikėti eMudhra. Ką verta patikrinti savo Mac programoje

Autorius Justinas Rolando, MacPip kūrėjas

Trumpas atsakymas

2026 m. lapkričio 9 d. Apple išleido macOS 27.2.1, o senesniems Mac 26.7.3 ir 15.8.3. Be aštuonių saugumo pataisų jie uždaro spragą, likusią po eMudhra sertifikatų kompromitavimo: nuo spalio 19 d. Safari, Mail ir programos, naudojančios Apple tinklo ir saugumo sistemas, jau atmesdavo blogus sertifikatus (skaičius: 12), bet komandų eilutės įrankiai, tokie kaip curl, git, python3 ir openssl, skaitė /etc/ssl/cert.pem ir toliau juos priimdavo. Atnaujinimai pašalina penkis šakninius sertifikatus iš to failo, įskaitant AAA Certificate Services. Jei tavo programa, diegimo programa ar atnaujinimo scenarijus naudoja tuos įrankius arba pateikia savo patikimų šakninių sertifikatų sąrašą, išbandyk atsisiuntimus ir savo serverius naujose versijose.

Daugumą Mac atnaujinimų įdiegiu ir pamirštu. macOS 27.2.1, išleistą lapkričio 9 d., verta perskaityti atidžiai, jei kuri Mac programą, nes ji keičia, kuriais sertifikatais pasitiki kai kurie kiekvieno Mac įrankiai. Apple ją išleido kartu su macOS Tahoe 26.7.3 ir Sequoia 15.8.3 senesniems Mac, ir visose trijose yra tas pats pakeitimas.

Štai kas nutiko, ką tai liečia ir ką verta išbandyti.

Kas nutiko

Tie patys atnaujinimai taiso dar aštuonias saugumo klaidas Messages, AirPlay ir Bluetooth, pasak MacRumors. Apple nepasakė, kad kuri nors buvo naudota atakose.

Kodėl Mac programų kūrėjui tai turėtų rūpėti

Jei tavo programa yra įprasta Swift programa, kuri jungiasi prie interneto per URLSession, ją greičiausiai apėmė spalio pataisa. Apple puslapyje kalbama apie programas, naudojančias jos tinklo ir saugumo sistemas, o Howard Oakley, kurį cituoja Michael Tsai, sako, kad programos, sukurtos su standartiniais Apple API, naudoja macOS patikimų sertifikatų saugyklą.

Neapimtos programos yra tokios, kurias išleidžia daug nepriklausomų kūrėjų:

Taigi spalio pataisa galėjo nepasiekti tavo programos, o lapkričio gali nepasiekti irgi, jei ji atsiveža savo šakninius sertifikatus.

Yra ir antra pusė. AAA Certificate Services yra senas Sectigo šakninis sertifikatas, pasirašęs daugybę paprastų sertifikatų. Apple puslapyje įspėjama, kad įrankiai, naudojantys tik /etc/ssl/cert.pem, gali nepatikrinti kai kurių svetainių, kurių grandinės eina per pašalintus šakninius sertifikatus. Jei tavo atsisiuntimo serveris, atnaujinimų šaltinis ar licencijų API pasitaiko tarp jų, curl atnaujintame Mac gali pradėti jį atmesti.

Ką patikrinčiau šią savaitę

Tai mano paties žingsniai, ne Apple.

  1. Atnaujink vieną Mac iki 27.2.1 ir išbandyk atsisiuntimus iš komandų eilutės. Paleisk savo diegimo scenarijų, brew install, jei turi cask, ir curl -I prieš savo atsisiuntimo, appcast ir licencijų adresus. Atmestas sertifikatas rodomas kaip klaida, o ne kaip lėtas puslapis.
  2. Pažiūrėk į savo sertifikatų grandinę. Paleisk openssl s_client -connect yourapp.com:443 -showcerts ir perskaityk eilutes su išdavėju (issuer). Jei matai eMudhra, emSign ar AAA Certificate Services, paprašyk savo prieglobos teikėjo ar sertifikatų pardavėjo grandinės, kuri baigiasi kitu šakniniu sertifikatu.
  3. Išsiaiškink, kokią patikimų sertifikatų saugyklą tavo programa iš tikrųjų naudoja. Electron, Go, Rust su įtrauktais šakniniais sertifikatais, Python su certifi ir Java visi atsiveža savus. Atnaujink vykdymo aplinką ar šakninių sertifikatų paketą iki versijos, kuri pašalina blogus sertifikatus, ir paminėk tai laidos pastabose.
  4. Turėk paruoštą atsakymą palaikymui. Jei kas nors su senesniu Mac negali įdiegti atnaujinimų, Apple puslapyje yra žingsniai, kaip šakninius sertifikatus pašalinti rankiniu būdu. Geriau duoti nuorodą į Apple puslapį, nei įklijuoti į el. laišką komandas su sudo.
  5. Paskatink žmones atnaujinti. Jei tavo programos naudotojai gana techniški, trumpa pastaba kitoje laidoje ar naujienlaiškyje nieko nekainuoja.
  6. Patikrink failą bandomajame Mac. Apple puslapyje pateikta žemiau esanti komanda, kuri nieko neišveda, kai abu pagrindiniai šakniniai sertifikatai pašalinti.
openssl crl2pkcs7 -nocrl -certfile /etc/ssl/cert.pem | openssl pkcs7 -print_certs -noout | grep -E 'emSign ECC Root CA - G3|AAA Certificate Services'

Ko nedaryčiau

Neverta išjungti sertifikatų tikrinimo scenarijuje, kad dingtų klaida. Būtent nuo to ir saugo visas šis pakeitimas. Taip pat neverta sakyti naudotojams, kad jų Mac buvo nulaužtas. Nėra požymių, kad raktai buvo panaudoti, o dauguma programų buvo apsaugotos jau spalį.

MacPip kampas

MacPip netikrina, kuriais sertifikatais programa pasitiki. Įrašai nuskaitomi automatiškai, kai pateikiami, o mėlyna varnelė reiškia tik tai, kad žmogus tam tikrą dieną išbandė programą. Jei kuri kūrėjo įrankį ar saugumo ir privatumo programą, tau labiausiai tikėtina turėti scenarijų ar įtrauktą vykdymo aplinką, kurią tai paliečia, todėl verta skirti valandą.

Naujiena šiandien: privatumo manifesto tikrintuvas. Įklijuok savo PrivacyInfo.xcprivacy, ir jis patikrins kiekvieną duomenų tipą, paskirtį ir privalomos priežasties kodą, pavyzdžiui, CA92.1, pagal pačios Apple sąrašus. Jis taip pat parodo, ko Apple prašo Mac, o ko ne. Veikia puslapyje ir nieko nesiunčia. Info.plist paaiškinimas ir notarizavimo paaiškinimas yra šalia. O jei tavo Mac programos dar nėra MacPip, įtraukti ją nemokama.

Šaltiniai

Skaityk toliau

Pateik savo programąNemokami įrankiai kūrėjams