رعايةتسجيل الدخولأرسِل
المدونة

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 الأقدم، وتحمل الثلاثة التغيير نفسه.

إليك ما حدث، ومن يصل إليه الأمر، وما كنت سأختبره.

ما الذي حدث

تصلح التحديثات نفسها ثماني ثغرات أمنية أخرى في Messages وAirPlay وBluetooth، بحسب MacRumors. ولم تقل Apple إن أيًا منها استُخدم في هجمات.

لماذا يهمّ هذا صانع تطبيقات Mac

إذا كان تطبيقك تطبيق Swift عاديًا يتصل بالإنترنت عبر URLSession، فمن المرجح أنه كان محميًا في أكتوبر. تتحدث صفحة Apple عن التطبيقات التي تستخدم أطر الشبكات والأمان لديها، ويقول Howard Oakley، الذي يقتبس منه Michael Tsai، إن التطبيقات المبنية على واجهات API القياسية من Apple تستخدم مخزن الثقة في macOS.

والتطبيقات التي لم تكن محمية هي من النوع الذي يصدره كثير من صنّاع التطبيقات المستقلين:

لذلك قد لا يكون إصلاح أكتوبر وصل إلى تطبيقك، وقد لا يصله إصلاح نوفمبر أيضًا إذا كان يأتي بجذوره الخاصة.

وهناك جانب ثانٍ. AAA Certificate Services جذر قديم من Sectigo وقّع كثيرًا من الشهادات العادية. تحذّر صفحة Apple من أن الأدوات التي تستخدم /etc/ssl/cert.pem وحده قد تفشل في التحقق من بعض المواقع التي تمر سلاسلها عبر الجذور المُزالة. فإذا كان خادم التنزيل لديك أو موجز التحديثات أو واجهة API للتراخيص واحدًا منها، فقد يبدأ curl على جهاز Mac محدَّث برفضه.

ما كنت سأفحصه هذا الأسبوع

هذه خطواتي أنا، لا خطوات Apple.

  1. تحديث جهاز Mac واحد إلى 27.2.1 واختبار التنزيلات من سطر الأوامر. يمكنك تشغيل نص التثبيت الخاص بك، وbrew install إن كان لديك cask، وcurl -I على عناوين التنزيل وappcast والترخيص. ويظهر رفض الشهادة على هيئة خطأ، لا صفحة بطيئة.
  2. النظر في سلسلة شهاداتك أنت. يمكنك تشغيل openssl s_client -connect yourapp.com:443 -showcerts وقراءة أسطر issuer. إذا ظهرت eMudhra أو emSign أو AAA Certificate Services، فاطلب من مزوّد الاستضافة أو بائع الشهادات سلسلة تنتهي بجذر آخر.
  3. تحديد مخزن الثقة الذي يستخدمه تطبيقك فعلًا. Electron وGo وRust مع الجذور المضمّنة وPython مع certifi وJava، كلها تأتي بمخزنها الخاص. عليك تحديث بيئة التشغيل أو حزمة الجذور إلى إصدار يُسقط الشهادات السيئة، وذكر ذلك في ملاحظات الإصدار.
  4. تجهيز جواب جاهز للدعم. إذا تعذّر على شخص يستخدم جهاز Mac أقدم تثبيت التحديثات، ففي صفحة Apple خطوات لإزالة الجذور يدويًا. كنت سأضع رابط صفحة Apple بدل لصق أوامر تستخدم sudo في رسالة بريد.
  5. دعوة الناس إلى التحديث. إذا كان مستخدمو تطبيقك تقنيين في أغلبهم، فملاحظة قصيرة في إصدارك القادم أو نشرتك البريدية لا تكلّف شيئًا.
  6. افحص الملف على جهاز 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 بعد، فإن إدراجه مجاني.

المصادر

واصل القراءة

أرسِل تطبيقكأدوات مجانية للصُّنّاع