
CVE-2020-11519 और CVE-2020-11520 के लिए तकनीकी लेख और PoC एक्सप्लॉइट
दिनांक: जून 2020
लेखक: डेनिस एल्सर (कोड: github)
अपने वेब प्रतिनिधित्व के संदर्भ में, Winmagic SecureDoc "व्यवसायों को अपने आईटी वातावरण की सुरक्षा से कुशलतापूर्वक निपटने की अनुमति देता है, जिसमें निम्नलिखित विशेषताएं शामिल हैं: फुल डिस्क एन्क्रिप्शन (FDE), मल्टी-फैक्टर प्रमाणीकरण, हटाने योग्य मीडिया कंटेनर एन्क्रिप्शन (RMCE) और फ़ाइल और फ़ोल्डर एन्क्रिप्शन (FFE)। ये विशेषताएं व्यवसायों को सुरक्षा बढ़ाने, व्यावसायिक जोखिम कम करने और हार्ड ड्राइव एन्क्रिप्शन के लिए सरकारी और नियामक आवश्यकताओं को पूरा करने में मदद करती हैं।"
Winmagic SecureDoc उत्पाद, जो स्टैंडअलोन और एंटरप्राइज़ संस्करणों में उपलब्ध है, दो स्थानीय विशेषाधिकार वृद्धि भेद्यताओं (CVE-2020-11519 और CVE-2020-11520) से संस्करण 8.3 और 8.5 में प्रभावित है। विभेद्यताओं की सूचना मार्च के अंत में Winmagic को दिए जाने के बाद, विक्रेता ने जून 2020 के मध्य में एक पैच (संस्करण 8.5SR2) जारी किया। हालाँकि, यह पैच विभेद्यताओं को अपर्याप्त रूप से संबोधित करता पाया गया, जिससे संस्करण 8.5SR2 भी रिपोर्ट की गई कमजोरियों के प्रति संवेदनशील हो गया। हालाँकि इस कारण से विभेद्यताओं के तकनीकी विवरण रोके गए थे, तब से इन कमजोरियों को सार्वजनिक माना जाना है। विक्रेता के अनुसार, Winmagic को प्रारंभिक भेद्यता रिपोर्ट के लगभग 106 दिनों के बाद भी एक और पैच बनने की प्रक्रिया में था। 15 जुलाई को, विक्रेता को प्रारंभिक भेद्यता रिपोर्ट के 111 दिनों के बाद, Winmagic ने ग्राहकों के लिए SecureDoc v8.5 SR2 HF1 जारी किया, जो कथित तौर पर CVE-2020-11519 और CVE-2020-11520 को ठीक करता है। SecureDoc के 8.3 से पुराने संस्करणों का परीक्षण नहीं किया गया है, लेकिन प्रभावित घटक के कोड के आधार पर उनके भी प्रभावित होने की संभावना मानी जा सकती है
इनमें से किसी भी भेद्यता का सफल शोषण स्थानीय रूप से प्रमाणित हमलावरों के लिए विशेषाधिकारों को SYSTEM तक बढ़ाने की ओर ले जाएगा।
दोनों भेद्यताएं "SDDisk2k.sys" घटक को प्रभावित करती हैं, जो Winmagic SecureDoc उत्पाद के साथ आने वाला एक कर्नेल ड्राइवर है। सुरक्षा दोषों की पहचान Hex-Rays IDA Pro डिसअसेंबलर और डीकंपाइलर की सहायता से मैन्युअल स्थैतिक विश्लेषण द्वारा की गई थी। पूर्वव्यापी रूप से, यदि इसके बजाय फज़िंग जैसे गतिशील परीक्षण दृष्टिकोण लागू किए गए होते तो कमजोरियों को काफी कम प्रयास में खोजा जा सकता था। ऐसा इसलिए है क्योंकि ड्राइवर को सीमित यूज़र-मोड अनुप्रयोगों से इंटरफ़ेस किया जा सकता है और क्योंकि यह डिफ़ॉल्ट रूप से उनके इनपुट को अच्छी तरह से निर्मित मानता है।
"SDDisk2k.sys" ड्राइवर द्वारा "SecureDocDevice" डिवाइस ऑब्जेक्ट के असुरक्षित निर्माण और उपयुक्त सुरक्षा डिस्क्रिप्टर स्थापित करने वाले कोड की कमी के कारण, सीमित उपयोगकर्ता खातों को भी CreateFile() API फ़ंक्शन का उपयोग करके डिवाइस का हैंडल प्राप्त करने की क्षमता दी जाती है। ड्राइवर द्वारा यूज़र-मोड एप्लिकेशन को अपने डिवाइस ऑब्जेक्ट का हैंडल प्रदान करने के साथ, यह कर्नेल क्षेत्र में अपने हमले की सतह के लिए सीधा रास्ता खोलता है।``` c RtlInitUnicodeString(&DestinationString, L"\Device\SecureDocDevice"); RtlInitUnicodeString(&SymbolicLinkName, L"\DosDevices\SecureDocDevice"); if ( IoCreateDevice(v1, 0xDD8u, &DestinationString, 0x8D1Fu, 0, 0, &DeviceObject) >= 0 ) // <--- unsafe { memset(DeviceObject->DeviceExtension, 0, 0xDD8ui64); DeviceObject->Flags |= 4u; DeviceObject->AlignmentRequirement = 0; if ( IoCreateSymbolicLink(&SymbolicLinkName, &DestinationString) < 0 ) IoDeleteDevice(DeviceObject); IoObject = DeviceObject; }
'SDDisk2k.sys' ड्राइवर के कई [IOCTL](https://docs.microsoft.com/en-us/windows-hardware/drivers/kernel/introduction-to-i-o-control-codes) सेवा हैंडलरों का रिवर्स इंजीनियरिंग करने के बाद, यह पाया गया कि उनमें से एक यूज़र मोड के लिए महत्वपूर्ण कार्यक्षमता उजागर करता है, जिसमें यह डिज़ाइन के अनुसार किसी भी ड्राइव के कच्चे डिस्क सेक्टरों पर रीड और राइट संचालन की अनुमति देता है। इसके अलावा, इसी कोड के साथ इंटरफ़ेस करने पर यह देखा गया कि ड्राइवर किसी भी एक्सक्लूसिव लॉक को अनदेखा करता है जो पहले किसी ड्राइव पर सेट किया गया हो सकता है। परिणामस्वरूप, समवर्ती रीड/राइट संचालन संभव हो जाते हैं, जो रेस कंडीशन को सुगम बनाता है और डेटा हानि का जोखिम पैदा करता है।