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 टिप्पणियां
Hacker News की राय
Apple के एक खास "feature" की आलोचना
Apple device owner की मंशा से अलग Apple policy को प्राथमिकता मिलती है
libcurl के CA store उपयोग की व्याख्या
CURLSSLOPT_NATIVE_CAoption सेट करने पर, libcurl certificate validation के लिए operating system के default CA store का उपयोग करता है.--cacertoption के साथ मिलाने पर, libcurl दोनों settings का सम्मान करने की कोशिश कर सकता है, जो संभवतः परस्पर विरोधी हो सकती हैं.SQLite F_BARRIERFSYNC मामले जैसी स्थिति
Daniel के इशारे के अनुसार curl में सुधार की ज़रूरत
curl documentation की समस्या और libcurl की security flaw
macOS में शामिल software पर अविश्वास
Apple के default behavior को backdoor माना जा सकता है
Apple पर यूज़र की security को महत्व न देने का आरोप