KVM में एक भेद्यता AMD प्रोसेसर पर अतिथि सिस्टम के बाहर कोड निष्पादन की अनुमति देती है

Google प्रोजेक्ट ज़ीरो टीम के शोधकर्ताओं ने कुछ दिनों पहले एक ब्लॉग पोस्ट में अनावरण किया था कि KVM हाइपरवाइजर में एक भेद्यता (CVE-2021-29657) की पहचान की है (एक खुला स्रोत लिनक्स-आधारित हाइपरवाइजर जो x86, ARM, PowerPC, और S/390 पर हार्डवेयर-त्वरित वर्चुअलाइजेशन का समर्थन करता है) आपको अतिथि प्रणाली के अलगाव से बचने की अनुमति देता है और मेजबान पर्यावरण पक्ष पर अपना कोड चलाएं।

पोस्ट का उल्लेख है कि समस्या Linux कर्नेल 5.10-rc1 से v5.12-rc6 तक प्रकट होता है, यह decir, केवल गुठली 5.10 और 5.11 . को कवर करता है (वितरण की अधिकांश स्थिर शाखाएँ समस्या से प्रभावित नहीं थीं।) समस्या नेस्टेड_svm_vmrun तंत्र में मौजूद है, AMD SVM (सिक्योर वर्चुअल मशीन) एक्सटेंशन का उपयोग करके कार्यान्वित किया गया है और अतिथि सिस्टम के नेस्टेड लॉन्च की अनुमति देता है।

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

चर्चा की गई बग को CVE-2021-29657 असाइन किया गया था, कर्नेल संस्करण v5.10-rc1 से v5.12-rc6 को प्रभावित करता है, और मार्च 2021 के अंत में पैच किया गया था। चूंकि बग केवल v5.10 में शोषक बन गया था और लगभग 5 महीने बाद खोजा गया था, अधिकांश वास्तविक दुनिया केवीएम परिनियोजन प्रभावित नहीं होने चाहिए। मुझे अभी भी लगता है कि समस्या KVM के विरुद्ध एक स्थिर गेस्ट-टू-होस्ट एस्केप बनाने के लिए आवश्यक कार्य में एक दिलचस्प केस स्टडी है और मुझे आशा है कि यह लेख यह मामला बना सकता है कि हाइपरवाइजर समझौता केवल सैद्धांतिक समस्याएं नहीं हैं।

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

प्रस्तावित केवीएम कार्यान्वयन का विश्लेषण करने के बाद, शोधकर्ताओं नेs को एक तर्क त्रुटि का सामना करना पड़ा जो MSR की सामग्री की अनुमति देता है (मॉडल-विशिष्ट पंजीकरण) मेजबान का अतिथि प्रणाली से प्रभावित होना, जिसका उपयोग होस्ट स्तर पर कोड निष्पादित करने के लिए किया जा सकता है।

विशेष रूप से, दूसरे नेस्टेड स्तर के अतिथि (दूसरे अतिथि से लॉन्च किया गया L2) से VMRUN ऑपरेशन चलाने से Nested_svm_vmrun पर दूसरी कॉल आती है और svm-> Nested.hsave संरचना दूषित हो जाती है, जो L2 अतिथि सिस्टम से vmcb के डेटा से ढकी होती है। .

परिणामस्वरूप, ऐसी स्थिति उत्पन्न होती है जहां L2 अतिथि स्तर पर svm-> Nested.msrpm संरचना में स्मृति मुक्त करना संभव होता है, जो MSR बिट को संग्रहीत करता है, भले ही इसका उपयोग जारी रहता है, और होस्ट के MSR तक पहुँच प्राप्त करता है पर्यावरण।

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

इसके अलावा, केवीएम डिवाइस इम्यूलेशन से संबंधित अधिकांश काम को यूजर स्पेस कंपोनेंट में लोड कर सकता है।

समस्या AMD प्रोसेसर (kvm-amd.ko मॉड्यूल) वाले सिस्टम पर उपयोग किए गए कोड में मौजूद है और Intel प्रोसेसर पर प्रकट नहीं होता है।

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

शोधकर्ता समस्या का वर्णन करने के अलावा उन्होंने एक शोषण का एक कार्यशील प्रोटोटाइप भी तैयार किया है जो एक AMD Epyc 7351P प्रोसेसर और एक Linux 5.10 कर्नेल के साथ एक मेजबान वातावरण में अतिथि वातावरण से रूट शेल चलाने की अनुमति देता है।

यह देखा गया है कि KVM हाइपरवाइजर में भेद्यता को होस्ट करने वाला यह पहला अतिथि है स्वयं, QEMU जैसे उपयोगकर्ता स्थान घटकों में बग से संबंधित नहीं है। मार्च के अंत में कर्नेल में फिक्स को स्वीकार कर लिया गया था।

अंत में यदि आप इसके बारे में अधिक जानने में रुचि रखते हैं नोट के बारे में, आप विवरण देख सकते हैं निम्नलिखित लिंक में


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: मिगुएल elngel Gatón
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।