Mac के लिए ज़ूम करें पैच गेट-रूट बग - अभी अपडेट करें! प्लेटोब्लॉकचैन डेटा इंटेलिजेंस। लंबवत खोज। ऐ.

Mac के लिए ज़ूम करें पैच गेट-रूट बग - अभी अपडेट करें!

पिछले हफ्ते लास वेगास, नेवादा में जाने-माने DEF CON सुरक्षा शिंदिग में, मैक साइबर सुरक्षा शोधकर्ता पैट्रिक वार्डले ने प्रकट एक "गेट-रूट" विशेषाधिकार का उत्थान (EoP) Mac के लिए Zoom में बग:

ट्वीट में, जो उनकी बात का अनुसरण करता है [2022-08-12], वार्डले ने कहा:

वर्तमान में कोई पैच नहीं है [: FRIED-EGG EYES DEPICTING ALARM EMOJI:] [: EDVARD MUNCH SCREAM EMOJI:]

ज़ूम ने तुरंत दोष के लिए एक पैच पर काम किया, जिसकी घोषणा अगले दिन में की गई थी ज़ूम सुरक्षा बुलेटिन ZSB-22018, बधाई अर्जित करना जवाब दें इस प्रक्रिया में वार्डले से:

महलोस से @Zoom (अविश्वसनीय रूप से) त्वरित सुधार के लिए! [: उत्सव में दोनों हाथ उठे और इमोजी के बारे में लहराया:] [: आध्यात्मिक सद्भावना इमोजी के संकेत में हथेलियों को एक साथ दबाया गया:]

शून्य दिन का खुलासा

स्पष्ट गति और आसानी को देखते हुए जिसके साथ ज़ूम बग के लिए एक पैच उत्सर्जित करने में सक्षम था, डब किया गया CVE-2022-28756, आप शायद सोच रहे हैं कि वार्डले ने ज़ूम को बग के बारे में पहले से क्यों नहीं बताया, अपने भाषण के दिन को विवरण प्रकट करने की समय सीमा के रूप में निर्धारित किया।

इसने अपने कई मैक उपयोगकर्ताओं को अपडेट को आगे बढ़ाने के लिए ज़ूम समय दिया होगा (या कम से कम इसे उन लोगों के लिए उपलब्ध कराने के लिए जो विश्वास करते हैं जल्दी पैच करना/अक्सर पैच करना), इस प्रकार वार्डले के बीच की खाई को मिटाते हुए दुनिया को यह समझाते हुए कि बग का दुरुपयोग कैसे किया जाता है, और बग की पैचिंग।

वास्तव में, ऐसा लगता है कि वार्डले ने इस बग के बारे में जूम को चेतावनी देने के लिए अपनी पूरी कोशिश की, साथ ही कुछ महीने पहले जूम की ऑटोअपडेट प्रक्रिया में परस्पर जुड़ी खामियों का एक गुच्छा।

वार्डले बग प्रकटीकरण समयरेखा के बारे में बताता है उनकी DEF CON वार्ता की स्लाइड्स, और उनके द्वारा खोजी गई खामियों से संबंधित ज़ूम अपडेट की एक धारा को सूचीबद्ध करता है।

दुधारी तलवार

वार्डल ने जिन बगों पर चर्चा की, वे आम तौर पर जूम के ऑटो-अपडेट मैकेनिज्म से संबंधित होते हैं, किसी भी सॉफ्टवेयर इकोसिस्टम का एक हिस्सा जो दोधारी तलवार का एक हिस्सा होता है - एक नियमित तलवार की तुलना में अधिक शक्तिशाली हथियार, लेकिन सुरक्षित रूप से संभालना कठिन होता है।

किसी भी आधुनिक क्लाइंट एप्लिकेशन में ऑटो-अपडेटिंग एक आवश्यक घटक है, यह देखते हुए कि यह महत्वपूर्ण पैच को वितरित करने में आसान और तेज बनाता है, इस प्रकार उपयोगकर्ताओं को साइबर सुरक्षा छेद को मज़बूती से बंद करने में मदद करता है।

लेकिन ऑटो-अपडेटिंग इसके साथ जोखिमों का एक समुद्र लाता है, कम से कम इसलिए नहीं क्योंकि अपडेट टूल को आमतौर पर रूट-लेवल सिस्टम एक्सेस की आवश्यकता होती है।

ऐसा इसलिए है क्योंकि अपडेटर का काम एप्लिकेशन सॉफ़्टवेयर को ओवरराइट करना है (ऐसा कुछ जो एक नियमित उपयोगकर्ता को नहीं करना चाहिए), और शायद कॉन्फ़िगरेशन या अन्य सिस्टम-स्तरीय परिवर्तन करने के लिए विशेषाधिकार प्राप्त ऑपरेटिंग सिस्टम कमांड लॉन्च करना है।

दूसरे शब्दों में, यदि डेवलपर्स सावधान नहीं हैं, तो वही टूल जो उन्हें अपने अंतर्निहित ऐप को अद्यतित और अधिक सुरक्षित रखने में मदद करता है, एक समुद्र तट बन सकता है जिससे हमलावर अद्यतनकर्ता को सिस्टम विशेषाधिकारों के साथ अनधिकृत कमांड चलाने में धोखा देकर सुरक्षा को कम कर सकते हैं। .

विशेष रूप से, ऑटो-अपडेट प्रोग्राम को सत्यापित करने के लिए ध्यान रखने की आवश्यकता है प्रामाणिकता उनके द्वारा डाउनलोड किए जाने वाले अपडेट पैकेज, हमलावरों को केवल एक नकली अपडेट बंडल खिलाने से रोकने के लिए, अतिरिक्त मैलवेयर के साथ पूर्ण।

उन्हें भी बनाए रखने की जरूरत है ईमानदारी अद्यतन फ़ाइलें जो वे अंततः उपभोग करते हैं, ताकि एक स्थानीय हमलावर चुपके से "सत्यापित सुरक्षित" अपडेट बंडल को संशोधित न कर सके जो कि इसे प्राप्त करने और सक्रिय करने के बीच की संक्षिप्त अवधि में अभी डाउनलोड किया गया है।

प्रामाणिकता जांच को दरकिनार करना

जैसा कि वार्डले अपने में बताते हैं काग़ज़, उनके द्वारा खोजे गए और प्रकट किए गए बगों में से एक ऊपर सूचीबद्ध पहले चरण में एक दोष था, जब ज़ूम के ऑटो-अपडेटर ने उस अपडेट पैकेज की प्रामाणिकता को सत्यापित करने का प्रयास किया जिसे उसने अभी डाउनलोड किया था।

सीधे डाउनलोड के डिजिटल हस्ताक्षर को मान्य करने के लिए आधिकारिक macOS API का उपयोग करने के बजाय, ज़ूम डेवलपर्स ने macOS उपयोगिता को चलाकर अप्रत्यक्ष रूप से प्रमाणीकरण करने का निर्णय लिया। pkgutil --check-signature पृष्ठभूमि में और आउटपुट की जांच कर रहा है।

यहां एक उदाहरण दिया गया है pkgutil के पुराने संस्करण का उपयोग करते हुए आउटपुट Zoom.pkg सॉफ्टवेयर बंडल:

$ pkgutil --check-signature Zoom.pkg पैकेज "Zoom.pkg": स्थिति: वितरण के लिए Apple द्वारा जारी एक डेवलपर प्रमाणपत्र द्वारा हस्ताक्षरित एक विश्वसनीय टाइमस्टैम्प के साथ हस्ताक्षरित: 2022-06-27 01:26:22 +0000 प्रमाणपत्र श्रृंखला : 1. डेवलपर आईडी इंस्टॉलर: ज़ूम वीडियो कम्युनिकेशंस, इंक। (बीजे4एचएएबी9बी3) समय सीमा समाप्त: 2027-02-01 22:12:15 +0000 SHA256 फ़िंगरप्रिंट: 6D 70 1A 84 F0 5A D4 C1 C1 B3 AE 01 C2 EF 1F 2E AE FB 9F 5C A6 80 48 A4 76 60 FF B5 F0 57 BB 8C ----------------------------------- ------------------------------------- 2. डेवलपर आईडी प्रमाणन प्राधिकरण की समय सीमा समाप्त: 2027-02-01 22:12:15 +0000 SHA256 फ़िंगरप्रिंट: 7A FC 9D 01 A6 2F 03 A2 DE 96 37 93 6D 4A FE 68 09 0D 2D E1 8D 03 F2 9C 88 CF B0 B1 BA 63 58 7F -------- -------------------------------------------------- -------------- 3. ऐप्पल रूट सीए की समय सीमा समाप्त: 2035-02-09 21:40:36 +0000 SHA256 फ़िंगरप्रिंट: B0 B1 73 0E CB C7 FF 45 05 14 2C 49 F1 29 5E 6E DA 6B CA ED 7E 2C 68 C5 BE 91 B5 A1 10 01 F0 24

दुर्भाग्य से, जैसा कि वार्डले ने जूम के सिग्नेचर वेरिफिकेशन कोड को डीकंपाइल करने पर पाया, जूम अपडेटर ने प्रोसेस नहीं किया। pkgutil डेटा उसी तरह से है जैसे मानव पर्यवेक्षक करेंगे।

हम आउटपुट में उपयोगी दृश्य अनुक्रम का पालन करके आउटपुट की जांच करेंगे।

सबसे पहले, हम वांछित स्थिति के लिए पहले देखेंगे, उदाहरण के लिए signed by a developer certificate issued by Apple for distribution.

तब हम उप-शीर्षक ढूंढेंगे Certificate Chain:.

अंत में, हम सही क्रम में क्रॉस-चेक करेंगे कि श्रृंखला में ये तीन हस्ताक्षरकर्ता शामिल हैं:

  1. ज़ूम वीडियो कम्युनिकेशंस, इंक। 2. डेवलपर आईडी प्रमाणन प्राधिकरण 3. ऐप्पल रूट सीए

आश्चर्यजनक रूप से, ज़ूम के कोड ने केवल यह सत्यापित किया कि उपरोक्त तीन स्ट्रिंग्स में से प्रत्येक (ज़ूम की अपनी विशिष्ट आईडी की जाँच भी नहीं कर रहा है BJ4HAAB9B3) दिखाया कहीं न कहीं से आउटपुट में pkgutil.

तो, एक बेतुके-लेकिन-वैध नाम के साथ एक पैकेज बनाना जैसे Zoom Video Communications, Inc. Developer ID Certification Authority Apple Root CA.pkg पैकेज सत्यापनकर्ता को "पहचान तार" खोजने में धोखा देगा जिसकी वह तलाश कर रहा था।

पूरा पैकेज नाम इसमें गूँजता है pkgutil पहली पंक्ति पर आउटपुट हेडर, जहां ज़ूम का असहाय "सत्यापनकर्ता" आउटपुट के गलत हिस्से में सभी तीन टेक्स्ट स्ट्रिंग्स से मेल खाएगा।

इस प्रकार "सुरक्षा" जांच को तुच्छ रूप से दरकिनार किया जा सकता है।

एक आंशिक फिक्स

वार्डले का कहना है कि ज़ूम ने अंततः इस बग को ठीक कर दिया, इसकी रिपोर्ट करने के सात महीने से अधिक समय बाद, DEF CON के लिए समय पर ...

...लेकिन पैच लगाने के बाद, उन्होंने देखा कि अद्यतन प्रक्रिया में अभी भी एक अंतर था।

अद्यतनकर्ता ने सही काम करने की कोशिश की:

  • 1. डाउनलोड किए गए पैकेज को रूट के स्वामित्व वाली निर्देशिका में ले जाएं, और इस प्रकार सैद्धांतिक रूप से किसी भी नियमित उपयोगकर्ता के लिए ऑफ-लिमिट।
  • 2. डाउनलोड किए गए पैकेज के क्रिप्टोग्राफिक हस्ताक्षर सत्यापित करें, आधिकारिक एपीआई का उपयोग करना, न कि टेक्स्ट-मिलान बॉज के माध्यम से pkgutil उत्पादन.
  • 3. डाउनलोड की गई पैकेज फ़ाइल को अनआर्काइव करें, डाउनग्रेड हमलों को रोकने के लिए, इसके संस्करण संख्या को सत्यापित करने के लिए।
  • 4. डाउनलोड की गई पैकेज फ़ाइल स्थापित करें, स्वत: अद्यतन प्रक्रिया के मूल विशेषाधिकारों का उपयोग करते हुए।

दुर्भाग्य से, भले ही अद्यतन पैकेज को संग्रहीत करने के लिए उपयोग की जाने वाली निर्देशिका रूट के स्वामित्व में थी, इसे उपयोग किए जाने के दौरान अद्यतन फ़ाइल को हटाने की कोशिश कर रहे उपयोगकर्ताओं से इसे सुरक्षित रखने के प्रयास में ...

...नई डाउनलोड की गई पैकेज फ़ाइल को उसके नए स्थान पर "विश्व-लेखन योग्य" छोड़ दिया गया था (एक नियमित खाते द्वारा डाउनलोड किए जाने का दुष्प्रभाव, रूट द्वारा नहीं)।

इसने स्थानीय हमलावरों को अद्यतन पैकेज को संशोधित करने के लिए एक बचाव का रास्ता दिया बाद इसके डिजिटल हस्ताक्षर को मान्य किया गया था (चरण 2), प्रभावित किए बिना संस्करण जाँच विवरण (चरण 3), और बस से पहले इंस्टॉलर ने रूट विशेषाधिकारों (चरण 4) के साथ इसे संसाधित करने के लिए पैकेज फ़ाइल पर नियंत्रण कर लिया।

इस प्रकार की बग को a . के रूप में जाना जाता है दौड़ की स्थिति, क्योंकि हमलावरों को अपने खत्म होने का समय चाहिए ताकि वे इंस्टॉलर शुरू होने से ठीक पहले घर पहुंच जाएं, और इसलिए इसके ठीक पहले अपने दुर्भावनापूर्ण परिवर्तनों को छिपाना चाहते हैं।

आप इस प्रकार की भेद्यता को विदेशी-लगने वाले परिवर्णी शब्द द्वारा संदर्भित भी सुनेंगे TOCTOU, के लिए कम समय-समय पर-चेक-टू-टाइम-ऑफ-उपयोग, एक ऐसा नाम जो एक स्पष्ट अनुस्मारक है कि यदि आप अपने तथ्यों की बहुत पहले से जांच करते हैं, तो जब तक आप उन पर भरोसा करते हैं, तब तक वे पुराने हो सकते हैं।

TOCTOU समस्या यह है कि यूके में कार किराए पर लेने वाली कंपनियां अब आपके ड्राइविंग लाइसेंस को देखने के लिए नहीं कहती हैं, जो कि 10 साल पहले तक जारी किया जा सकता था, और तब से कई कारणों से निलंबित या रद्द किया जा सकता था, सबसे अधिक संभावना है क्योंकि आपकी ओर से असुरक्षित या अवैध ड्राइविंग के कारण। अपने भौतिक लाइसेंस के साथ, आपको संभावित TOCTOU अंतर को 21 वर्षों से घटाकर केवल तीन सप्ताह करने के लिए, पिछले 10 दिनों के भीतर जारी किया गया एक बार का अल्फ़ान्यूमेरिक "हाल की वैधता का प्रमाण" कोड भी प्रस्तुत करना होगा।

फिक्स अब . में है

वार्डले के अनुसार, जूम ने अब ऊपर चरण 1 में कॉपी की गई अपडेट पैकेज फ़ाइल पर एक्सेस अधिकारों को बदलकर इस बग को रोक दिया है।

फ़ाइल जो हस्ताक्षर जाँच, संस्करण सत्यापन, और अंतिम रूट-स्तरीय स्थापना के लिए उपयोग की जाती है, अब केवल रूट खाते तक ही सीमित है, हर समय।

यह दौड़ की स्थिति को हटा देता है, क्योंकि एक अनपेक्षित हमलावर चरण 2 के अंत के बीच फ़ाइल को संशोधित नहीं कर सकता है (सत्यापन सफल) और चरण 4 की शुरुआत (स्थापना शुरू होती है).

आपको रूट एक्सेस देने के लिए सिस्टम को चकमा देने के लिए पैकेज फ़ाइल को संशोधित करने के लिए, आपको पहले से ही रूट एक्सेस की आवश्यकता होगी, इसलिए आपको इस तरह के ईओपी बग की आवश्यकता नहीं होगी।

TOCTOU समस्या लागू नहीं होती है क्योंकि चरण 2 में चेक तब तक वैध रहता है जब तक कि फ़ाइल का उपयोग शुरू नहीं हो जाता, जिससे चेक के अमान्य होने का कोई अवसर नहीं रह जाता।

क्या करना है?

यदि आप Mac पर ज़ूम का उपयोग कर रहे हैं, तो ऐप खोलें और फिर, मेनू बार में, पर जाएँ zoom.us > Check for Updates...

यदि कोई अपडेट उपलब्ध है, तो नया संस्करण दिखाया जाएगा, और आप क्लिक कर सकते हैं [Install] पैच लागू करने के लिए:

Mac के लिए ज़ूम करें पैच गेट-रूट बग - अभी अपडेट करें! प्लेटोब्लॉकचैन डेटा इंटेलिजेंस। लंबवत खोज। ऐ.

आप जो संस्करण चाहते हैं वह है 5.11.5 (9788) या बाद में।


समय टिकट:

से अधिक नग्न सुरक्षा