CVE-2020-16898: “खराब पड़ोसी” | McAfee ब्लॉग

CVE-2020-16898: “खराब पड़ोसी”

CVSS स्कोर: 8.8

वेक्टर: सीवीएसएस: 3.0 / एवी: ए / एसी: एल / पीआर: एन / यूआई: एन / एस: यू / सी: एच / आई: एच / ए: एच / ई: पी / आरएल: ओ / आरसी: सी

अवलोकन
आज, माइक्रोसॉफ्ट ने विंडोज आईपीवी 6 स्टैक में एक महत्वपूर्ण भेद्यता की घोषणा की, जो एक हमलावर को रिमोटसिस्टम पर मनमाने कोड को संभावित रूप से निष्पादित करने के लिए शाब्दिक रूप से तैयार किए गए पैकेट भेजने की अनुमति देता है। MAPP (Microsoft सक्रिय सुरक्षा कार्यक्रम) के सदस्यों के साथ साझा किए गए प्रूफ-ऑफ-कॉन्सेप्ट दोनों बेहद सरल और पूरी तरह से विश्वसनीय हैं। यह एक तत्काल बीएसओडी (ब्लू स्क्रीन ऑफ डेथ) में परिणत होता है, लेकिन इससे भी अधिक, उन लोगों के लिए शोषण की संभावना को इंगित करता है जो विंडोज 10 और विंडोज सर्वर 2019 mitigations को बायपास करने का प्रबंधन कर सकते हैं। एक कारनामे के प्रभाव जो रिमोट कोड के निष्पादन को मंजूरी देंगे, व्यापक और अत्यधिक प्रभावशाली होगा, क्योंकि इस प्रकार के बग को बदतर बनाया जा सकता है। संदर्भ में आसानी के लिए, हमने भेद्यता को “खराब पड़ोसी” का नाम दिया है क्योंकि यह राउटर विज्ञापन प्रकार का उपयोग करके ICMPv6 नेबर डिस्कवरी “प्रोटोकॉल” के भीतर स्थित है।

भेद्यता विवरण
एक दूरस्थ कोड निष्पादन भेद्यता whentheWindows टीसीपी / आईपी स्टैकिमप्रॉपरली हैंडलICMPv6 राउटर विज्ञापनपैकसेट मौजूद है जो विकल्प प्रकार 25 (पुनरावर्ती डीएनएस सर्वरऑप्शन) का उपयोग करता है और एक लंबाई फ़ील्ड मान भी है। इस विकल्प में, लंबाई को 8 बाइट्स के वेतन वृद्धि में गिना जाता है, इसलिए 3 की लंबाई वाले RDNSS विकल्प की कुल लंबाई 24 बाइट्स होनी चाहिए। विकल्प में स्वयं पाँच फ़ील्ड शामिल हैं: प्रकार, लंबाई, आरक्षित, आजीवन, और IPv6 पुनरावर्ती DNS सर्वर के पते। पहले चार फ़ील्ड हमेशा कुल 8 बाइट्स होते हैं, लेकिन अंतिम फ़ील्ड में IPv6 पतों की एक चर संख्या हो सकती है, जो प्रत्येक 16 बाइट्स हैं। परिणामस्वरूप, लंबाई फ़ील्ड हमेशा RFC 8106 के अनुसार कम से कम 3 का विषम मान होना चाहिए:

When an IPv6 host receives DNS options (i.e., RDNSS and DNSSL
options) through RA messages, it processes the options as follows:

   o  The validity of DNS options is checked with the Length field;
      that is, the value of the Length field in the RDNSS option is
      greater than or equal to the minimum value (3) and satisfies the
      requirement that (Length - 1) % 2 == 0.

जब एक समान लंबाई मान प्रदान किया जाता है, तो Windows टीसीपी / आईपी स्टैक गलत तरीके से नेटवर्क बफरबी को 8 बाइट्स की राशि से आगे बढ़ाता है। यह 16-बाइट वेतन वृद्धि में स्टैकोज़ेनेथली मायने रखता है, उस मामले के लिए खाते में विफल रहा जहां गैर-आरएफसी अनुरूप लंबाई मूल्य का उपयोग किया जाता है। स्टैक में यह बेमेल अंतर वर्तमान विकल्प के अंतिम 8 बाइट्स को दूसरे विकल्प की शुरुआत के रूप में व्याख्या करता है, अंततः एक बफर अतिप्रवाह और संभावित आरसीई के लिए अग्रणी होता है।

यह संभावना है कि विंडोज कर्नेल में एक मेमोरी लीक या सूचना प्रकटीकरण बग को इस भेद्यता के लिए एक पूर्ण दोहन श्रृंखला बनाने के लिए आवश्यक होगा। इसके बावजूद, हम निकट भविष्य में काम करने वाले कारनामों को देखने की उम्मीद करते हैं।

खतरा सतह
यहां सबसे बड़ा प्रभाव उपभोक्ताओं को विंडोज 10 मशीनों पर पड़ेगा, हालांकि विंडोज अपडेट के साथ खतरे की सतह के जल्दी से कम होने की संभावना है। हालांकि Shodan.io को एक निश्चित स्रोत के रूप में नहीं गिना जाना चाहिए, हमारे सबसे अच्छे प्रश्नों में आईपीवी 6 पतों के साथ विंडोज सर्वर 2019 मशीनों की संख्या सैकड़ों में है, लगभग 1000 से अधिक नहीं है। यह संभावना है क्योंकि अधिकांश सर्वर फ़ायरवॉल के पीछे या होस्ट किए गए हैं क्लाउड सर्विस प्रोवाइडर्स (CSP) द्वारा और सीधे तौर पर शोडान स्कैन के माध्यम से उपलब्ध नहीं है।

खोज
हम मानते हैं कि इस भेद्यता का पता एक साधारण विधर्मी से लगाया जा सकता है जो आने वाले सभी ICMPv6 ट्रैफ़िक को पार्स करता है, ICMPv6 टाइप फ़ील्ड के साथ पैकेट की तलाश में 134 – Router Advertising – और 25 के ICMPv6 ऑप्शन फ़ील्ड को दर्शाता है। Recursive DNS Server (RDNSS) को दर्शाता है। यदि इस RDNSS विकल्प का एक लंबाई क्षेत्र मान भी है, तो भी, हेयुरिस्टिक संबंधित पैकेट को गिरा देगा या उसे ध्वजांकित कर देगा, क्योंकि यह “बैड नेबर” शोषित प्रयास का एक हिस्सा है।

शमन
पैचिंग हमेशा कार्रवाई का पहला और सबसे प्रभावी कोर्स है। यदि यह संभव नहीं है, तो सबसे अच्छा शमन IPv6 को अक्षम कर रहा है, या तो NIC पर या नेटवर्क के परिधि पर ICMPv6 ट्रैफ़िक को छोड़ कर यदि यह गैर-आवश्यक है। इसके अतिरिक्त, ICMPv6 राउटर विज्ञापन नेटवर्क परिधि में अवरुद्ध या गिराए जा सकते हैं। विंडोज डिफेंडर और विंडोज फ़ायरवॉल सक्षम होने पर प्रूफ-ऑफ-कॉन्सेप्ट को ब्लॉक करने में विफल रहते हैं। यह अभी तक अज्ञात है अगर यह हमला 6to4 या हेरेडो जैसी तकनीकों का उपयोग करके IPv4 पर ICMPv6 ट्रैफिक को सुरंग करके सफल हो सकता है। इस तरीके से हमले को दोहराने के हमारे प्रयास आज तक सफल नहीं हुए हैं।

उन McAfee ग्राहकों के लिए जो विंडोज पैच को तैनात करने में असमर्थ हैं, निम्नलिखित नेटवर्क सुरक्षा प्लेटफ़ॉर्म (NSP) हस्ताक्षर इस भेद्यता के शोषण के खिलाफ एक आभासी पैच प्रदान करेंगे, साथ ही एक समान भेद्यता (CVE-2020-16899)। “बैड नेबर” के विपरीत, CVE-2020-16899 का प्रभाव BSDD के रूप में इनकार करने वाली सेवा तक सीमित है।

NSP Attack ID: 0x40103a00 – ICMP: विंडोज IPv6 ढेर विशेषाधिकार की उच्च क्षमता (CVE-2020-16898)
NSP Attack ID: 0x40103b00 – ICMP: विंडोज फंक्शन डिस्कवरी SSDP प्रदाता विशेषाधिकार कमजोरता की ऊंचाई (CVE-2020-16899)

इसके अतिरिक्त, हम इन कमजोरियों के संभावित शोषण का पता लगाने के लिए सुरिकाटा नियमों को जारी कर रहे हैं। स्नेत और सुरिकाता जैसे ओपन सोर्स टूल्स में सीमाओं के कारण, हमने पाया कि पहले वर्णित सुरकाटा के संयोजन के साथ न्यूनतम अंतर्निहित लॉजिक को लागू करना इसके बिल्ट-इन लूआ लिपि पार्सर के साथ आवश्यक है। हमने अपने सार्वजनिक GitHub में क्रमशः CVE-2020-16898 और CVE-2020-16-1699 के नियमों और Lua लिपियों की मेजबानी की है। यद्यपि हमने पुष्टि की है कि नियम सही तरीके से प्रूफ-ऑफ-कॉन्सेप्ट्स के उपयोग का पता लगाते हैं, उन्हें किसी भी गलत सकारात्मकता के जोखिम से बचने के लिए तैनाती से पहले आपके वातावरण में पूरी तरह से शामिल होना चाहिए।