1 पॉइंट द्वारा GN⁺ 2024-03-10 | 1 टिप्पणियां | WhatsApp पर शेयर करें

Apple curl सुरक्षा घटना 12604

  • 28 दिसंबर 2023 को curl issue tracker में bug report 12604 सबमिट की गई।
  • समस्या का शीर्षक था "flag –cacert behavior isn’t consistent between macOS and Linux", जिसमें बताया गया कि macOS और Linux के बीच --cacert flag का व्यवहार एकसमान नहीं है।
  • रिपोर्टर ने दिखाया कि macOS के साथ bundled curl version, open source से पूरी तरह build किए गए curl binary से अलग तरीके से व्यवहार करता है।

Apple का version system CA store को दूसरी बार जांचता है

  • --cacert command line option उपयोगकर्ता को curl को केवल किसी विशेष CA certificate set पर भरोसा करने का निर्देश देने का तरीका देता है।
  • macOS में Apple द्वारा दिए गए curl version का उपयोग करते समय, अगर दिया गया CA certificate set verification में fail हो जाए, तो यह system CA store को दूसरी बार जांचता हुआ दिखाई देता है।
  • यह documented नहीं है और उपयोगकर्ताओं के लिए अप्रत्याशित व्यवहार है।

यह एक सुरक्षा समस्या है

  • जब उपयोगकर्ता द्वारा निर्दिष्ट CA certificate file से जांच चलाई जाती है, तब यदि system CA store में ऐसा certificate मौजूद हो जो server को verify कर सके, तो जांच fail नहीं होती।
  • इससे एक सुरक्षा समस्या पैदा होती है, जिसमें वे certificate checks भी pass हो जाते हैं जिन्हें pass नहीं होना चाहिए था।

Apple का कहना है कि इसमें कोई समस्या नहीं है

  • 8 मार्च 2024 को Apple Product Security ने जवाब दिया कि OpenSSL का version (LibreSSL) जानबूझकर built-in system trust store को default trust source के रूप में उपयोग करता है।
  • चूंकि server certificate built-in system trust store का उपयोग करके सफलतापूर्वक verify किया जा सकता है, इसलिए वे इसे समस्या नहीं मानते।

असहमति

  • इस undocumented feature के कारण macOS पर curl का उपयोग करके की जाने वाली CA certificate verification पूरी तरह भरोसेमंद नहीं है और documentation से मेल नहीं खाती।
  • यह उपयोगकर्ताओं को भ्रमित कर सकता है।
  • चूंकि यह समस्या हमारे द्वारा वितरित curl version की security vulnerability नहीं है, इसलिए CVE जारी नहीं किया जाएगा।
  • सख्ती से कहें तो समस्या curl code में नहीं, बल्कि Apple द्वारा उपलब्ध कराए गए और curl build में उपयोग किए गए LibreSSL version में है।

GN⁺ की राय

  • यह घटना software की security और reliability के महत्व को रेखांकित करती है। जब उपयोगकर्ता स्पष्ट रूप से केवल उन्हीं CA certificates का उपयोग करना चाहते हैं जिन पर वे भरोसा करते हैं, तब system का अप्रत्यक्ष रूप से अन्य certificates को स्वीकार करना गंभीर सुरक्षा चिंता पैदा कर सकता है।
  • Apple की प्रतिक्रिया दिखाती है कि किसी कंपनी द्वारा स्वयं परिभाषित security standards और open source community की अपेक्षाओं के बीच एक अंतर मौजूद है। इससे इस पर चर्चा शुरू हो सकती है कि उपयोगकर्ता और developer उस platform पर security को कैसे समझें और प्रबंधित करें।
  • इस तरह की समस्या open source software का उपयोग करते समय उत्पन्न होने वाली dependency और integration issues को उजागर करती है। Developers को किसी विशेष platform द्वारा दिए गए libraries और tools का उपयोग करते समय इन अंतरों को समझना चाहिए और उचित प्रतिक्रिया देनी चाहिए।
  • समान functionality देने वाले अन्य projects में OpenSSL और GnuTLS शामिल हैं, और इनके अपने-अपने security philosophy और implementation approaches हैं। उपयोगकर्ता और developers इन विकल्पों पर विचार कर सकते हैं।
  • किसी तकनीक को अपनाते समय उसके security model और platforms के बीच compatibility की सावधानीपूर्वक समीक्षा करनी चाहिए। यह घटना दिखाती है कि Apple का LibreSSL implementation standard curl behavior से अलग काम करता है, जिससे technology choice के महत्व पर जोर पड़ता है।

1 टिप्पणियां

 
GN⁺ 2024-03-10
Hacker News की राय
  • Apple के एक खास "feature" की आलोचना

    • यह feature अनावश्यक computation जोड़ सकता है या अपेक्षित validation model को तोड़ सकता है.
    • यूज़र अपने CA देना चाहते हैं क्योंकि OS bundle में वह CA नहीं हो सकता, या वे किसी खास CA के लिए validation करना चाहते हों.
    • Apple का यह व्यवहार अपेक्षित नतीजा नहीं है.
  • Apple device owner की मंशा से अलग Apple policy को प्राथमिकता मिलती है

    • Apple device के "owner" की इच्छा को नज़रअंदाज़ करके Apple policy का ऊपर रहना कोई चौंकाने वाली बात नहीं, बल्कि एक सामान्य घटना है.
  • libcurl के CA store उपयोग की व्याख्या

    • CURLSSLOPT_NATIVE_CA option सेट करने पर, libcurl certificate validation के लिए operating system के default CA store का उपयोग करता है.
    • अगर CA certificate file या directory सेट की गई हो, तो उन्हें default CA store के साथ मिलाकर खोजा जाता है.
    • --cacert option के साथ मिलाने पर, libcurl दोनों settings का सम्मान करने की कोशिश कर सकता है, जो संभवतः परस्पर विरोधी हो सकती हैं.
  • SQLite F_BARRIERFSYNC मामले जैसी स्थिति

    • Apple को इससे कोई खास फ़र्क नहीं पड़ता, ऐसा लगता है.
  • Daniel के इशारे के अनुसार curl में सुधार की ज़रूरत

    • अगर Daniel curl की समस्या की ओर इशारा करते हैं, तो Apple को इसे ठीक करना चाहिए.
  • curl documentation की समस्या और libcurl की security flaw

    • curl सभी protocol खुद implement नहीं करता, बल्कि अलग-अलग libraries को support करता है.
    • इस approach की कमी यह है कि independent backend के बीच consistent behavior सुनिश्चित करना मुश्किल होता है.
    • libressl, openssl का पूर्ण reimplementation नहीं है और उस पर उसके API की पूरी नकल करने की कोई बाध्यता नहीं है.
    • curl के पास दो विकल्प हैं: उस library का support बंद करे या समस्या को document करे.
    • user code टूटने से बचाने के लिए, कम से कम समस्या को document करना चाहिए.
    • security के लिहाज़ से libressl का approach flawed है, और CVE खोलने की वजह हो सकती है.
  • macOS में शामिल software पर अविश्वास

    • macOS के साथ शामिल tools (जैसे curl) को MacPorts से override किया जाता है, क्योंकि वे अक्सर पुराने या समस्याग्रस्त होते हैं.
  • Apple के default behavior को backdoor माना जा सकता है

    • यह कहना नहीं है कि यह जानबूझकर या दुर्भावनापूर्ण है, लेकिन व्यवहार में यह backdoor की तरह काम कर सकता है.
    • user की authentication scheme में key जोड़ना backdoor जोड़ने जैसा है.
  • Apple पर यूज़र की security को महत्व न देने का आरोप

    • default behavior और alternative behavior अलग-अलग हैं.
    • यह संकेत दिया गया है कि Apple security team को reading comprehension में समस्या हो सकती है.