एपीआईसी/ईपीआईसी! इंटेल चिप्स लीक रहस्य यहां तक ​​कि कर्नेल को भी नहीं देखना चाहिए ... प्लेटोब्लॉकचैन डेटा इंटेलिजेंस। लंबवत खोज। ऐ.

एपीआईसी/ईपीआईसी! इंटेल चिप्स लीक रहस्य यहां तक ​​​​कि कर्नेल को भी नहीं देखना चाहिए ...

पेश है इस हफ्ते का BWAIN, a . के लिए हमारा जोक्युलर टर्म एक प्रभावशाली नाम के साथ बग.

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

इसे डब किया गया है तस्वीर लीक, शब्दों पर एक वाक्य APIC और महाकाव्य.

पूर्व के लिए छोटा है उन्नत प्रोग्रामयोग्य इंटरप्ट नियंत्रक, और बाद वाला केवल "महाकाव्य" शब्द है, जैसा कि in विशाल, विशाल, चरम, मेगा, विशालकाय.

सैक्सन काल से अक्षर का प्रयोग लिखित अंग्रेजी में नहीं किया गया है। इसका नाम है एससी, उच्चारण राख (जैसा कि पेड़ में है), और यह आधुनिक शब्द ASH में A की ध्वनि का काफी प्रतिनिधित्व करता है। लेकिन हम मानते हैं कि आप शब्द का उच्चारण करने वाले हैं तस्वीर यहाँ या तो "APIC-slash-EPIC" के रूप में, या "आह!-एह?-PIC" के रूप में।

यह सब किसके बारे में है?

यह सब पाँच आकर्षक प्रश्न उठाता है:

  • एपीआईसी क्या है, और मुझे इसकी आवश्यकता क्यों है?
  • आपके पास डेटा कैसे हो सकता है कि यहां तक ​​कि कर्नेल देख नहीं सकते?
  • इस महाकाव्य विफलता का कारण क्या है एपीआईसी में?
  • क्या तस्वीर लीक मुझे प्रभावित करता है?
  • क्या करना है इसके बारे में?

एपीआईसी क्या है?

आइए 1981 में वापस आते हैं, जब आईबीएम पीसी पहली बार दिखाई दिया।

पीसी में एक चिप शामिल है जिसे कहा जाता है इंटेल 8259A प्रोग्रामेबल इंटरप्ट कंट्रोलर, या तस्वीर। (बाद में मॉडल, पीसी एटी से आगे, दो पीआईसी थे, एक साथ जंजीर, और अधिक इंटरप्ट घटनाओं का समर्थन करने के लिए।)

पीआईसी का उद्देश्य सचमुच पीसी के केंद्रीय प्रोसेसर (सीपीयू) पर चल रहे कार्यक्रम को बाधित करना था, जब भी कुछ समय-महत्वपूर्ण होता था जिस पर तुरंत ध्यान देने की आवश्यकता होती थी।

इन हार्डवेयर इंटरप्ट में इवेंट शामिल हैं जैसे: कीस्ट्रोक प्राप्त करने वाला कीबोर्ड; एक चरित्र प्राप्त करने वाला सीरियल पोर्ट; और एक दोहराए जाने वाला हार्डवेयर टाइमर टिक रहा है।

इस तरह के हार्डवेयर इंटरप्ट सिस्टम के बिना, ऑपरेटिंग सिस्टम को नियमित रूप से आने वाले कीस्ट्रोक्स की जांच के लिए फ़ंक्शन कॉल से अटे पड़े रहने की आवश्यकता होगी, जो कि सीपीयू पावर की बर्बादी होगी जब कोई टाइप नहीं कर रहा था, लेकिन उत्तरदायी नहीं होगा पर्याप्त जब उन्होंने किया।

जैसा कि आप कल्पना कर सकते हैं, PIC के बाद जल्द ही एक उन्नत चिप आई जिसे the . कहा जाता है APIC, एक उन्नत सीपीयू में ही निर्मित PIC की तरह।

इन दिनों, एपीआईसी कीबोर्ड, सीरियल पोर्ट और सिस्टम टाइमर से फीडबैक के अलावा और भी बहुत कुछ प्रदान करते हैं।

APIC ईवेंट ओवरहीटिंग जैसी घटनाओं (और रीयल-टाइम डेटा प्रदान करते हैं) द्वारा ट्रिगर होते हैं, और समकालीन मल्टीकोर प्रोसेसर में विभिन्न कोर के बीच हार्डवेयर इंटरैक्शन की अनुमति देते हैं।

और आज के इंटेल चिप्स, यदि हम बहुत सरल रूप से कर सकते हैं, तो आम तौर पर दो अलग-अलग तरीकों से काम करने के लिए कॉन्फ़िगर किया जा सकता है, जिसे जाना जाता है xAPIC मोड और x2APIC मोड.

यहाँ, xAPIC इंटरप्ट नियंत्रक से डेटा निकालने का "विरासत" तरीका है, और x2APIC अधिक आधुनिक तरीका है।

अभी और सरल करते हुए, xAPIC उस पर निर्भर करता है जिसे कहा जाता है एमएमआईओ, के लिए कम मेमोरी-मैप्ड इनपुट/आउटपुट, एपीआईसी से डेटा पढ़ने के लिए जब यह रुचि की घटना को पंजीकृत करता है।

MMIO मोड में, आप यह पता लगा सकते हैं कि APIC ईवेंट को मेमोरी के एक विशिष्ट क्षेत्र (RAM) से पढ़कर क्या ट्रिगर हुआ, जो APIC चिप के इनपुट/आउटपुट रजिस्टरों को स्वयं प्रतिबिंबित करता है।

यह xAPIC डेटा कंप्यूटर के भौतिक RAM में कहीं 4096-बाइट मेमोरी ब्लॉक में मैप किया गया है।

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

इसके विपरीत, x2APIC की आवश्यकता है कि आप APIC डेटा को सीधे पढ़ें चिप से ही, जिसे के रूप में जाना जाता है, का उपयोग करते हुए मॉडल विशिष्ट रजिस्टर (एमएसआर)।

इंटेल के अनुसार, प्रक्रिया के MMIO भाग से बचना "काफी बढ़ी हुई प्रोसेसर एड्रेसेबिलिटी और इंटरप्ट डिलीवरी पर कुछ एन्हांसमेंट प्रदान करता है।"

विशेष रूप से, एपीआईसी डेटा को सीधे ऑन-चिप रजिस्टरों से निकालने का मतलब है कि समर्थित डेटा की कुल मात्रा, और सीपीयू कोर की अधिकतम संख्या जिसे एक ही समय में प्रबंधित किया जा सकता है, एमएमआईओ मोड में उपलब्ध 4096 बाइट्स तक सीमित नहीं है।

आपके पास डेटा कैसे हो सकता है कि कर्नेल भी नहीं देख सकता है?

आपने शायद पहले ही अनुमान लगा लिया है कि जब आप xAPIC मोड का उपयोग कर रहे होते हैं तो MMIO मेमोरी क्षेत्र में समाप्त होने वाला डेटा हमेशा उतना सावधानी से प्रबंधित नहीं होता है जितना होना चाहिए…

... और इस प्रकार उस MMIO क्षेत्र में किसी प्रकार का "डेटा लीक" इस समस्या का केंद्र है।

लेकिन यह देखते हुए कि आप पहले से ही sysadmin-स्तर की शक्तियों की आवश्यकता है MMIO डेटा को पहले स्थान पर पढ़ने के लिए, और इसलिए आप लगभग निश्चित रूप से स्मृति में किसी भी और सभी डेटा को वैसे भी प्राप्त कर सकते हैं ...

... एपीआईसी एमएमआईओ डेटा क्षेत्र में गलती से अन्य लोगों का डेटा क्यों दिखाई देगा? महाकाव्य रिसाव?

यह कुछ प्रकार के डेटा-चोरी या रैम-स्क्रैपिंग हमले को व्यवहार में थोड़ा आसान बना सकता है, लेकिन निश्चित रूप से यह आपको कोई और मेमोरी-स्नूपिंग क्षमता नहीं देगा जो आपके पास पहले से ही सिद्धांत में थी?

दुर्भाग्य से, यह धारणा सही नहीं है यदि सिस्टम पर कोई सॉफ़्टवेयर Intel के SGX का उपयोग कर रहा है, जिसका संक्षिप्त रूप सॉफ्टवेयर गार्ड एक्सटेंशन.


SGX के बारे में और जानें


SGX को कई हालिया Intel CPU द्वारा समर्थित किया गया है, और यह ऑपरेटिंग सिस्टम कर्नेल को कोड और डेटा के एक हिस्से को RAM के भौतिक ब्लॉक में "सील" करने का एक तरीका प्रदान करता है ताकि एक एन्क्लेव के रूप में जाना जाता है।

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

एक बार एन्क्लेव का SGX "लॉक" सेट हो जाने पर, केवल सीलबंद मेमोरी क्षेत्र के अंदर चलने वाला प्रोग्राम कोड ही उस RAM की सामग्री को पढ़ और लिख सकता है।

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

कर्नेल सहित स्वयं।

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

एन्क्लेव प्रभावी रूप से एक ब्लैक बॉक्स में बदल जाता है, जिसमें आप इनपुट फीड कर सकते हैं, जैसे कि एक निजी कुंजी के साथ हस्ताक्षर किए जाने वाले डेटा, और आउटपुट निकालने के लिए, जैसे कि डिजिटल हस्ताक्षर उत्पन्न होता है, लेकिन जिससे आप क्रिप्टोग्राफ़िक कुंजियों को बाहर नहीं निकाल सकते हस्ताक्षर प्रक्रिया में उपयोग किया जाता है।

जैसा कि आप कल्पना कर सकते हैं, यदि एसजीएक्स एन्क्लेव के अंदर सील किए जाने वाले डेटा को कभी गलती से एमएमआईओ रैम में डुप्लीकेट किया जाना चाहिए जिसका उपयोग एपीआईसी डेटा को "मिरर" करने के लिए किया जाता है जब आप एक्सएपीआईसी "मेमोरी-मैप्ड" मोड का उपयोग कर रहे हों ...

...जो SGX की सुरक्षा का उल्लंघन करता है, जो कहता है कि SGX एन्क्लेव के बनाए जाने के बाद से कोई भी डेटा कभी भी उभर कर नहीं आना चाहिए, जब तक कि इसे जानबूझकर एन्क्लेव के अंदर पहले से चल रहे कोड द्वारा निर्यात नहीं किया जाता है।

APIC में इस महाकाव्य विफलता का क्या कारण है?

इसके पीछे शोधकर्ता PIC लीक पेपर पता चला कि मेमोरी एक्सेस के एक चालाक और असामान्य अनुक्रम के माध्यम से एपीआईसी डेटा को पढ़ने की व्यवस्था करके ...

...वे न केवल एपीआईसी से ताजा प्राप्त डेटा के साथ, बल्कि सीपीयू द्वारा हाल ही में किसी अन्य उद्देश्य के लिए उपयोग किए गए डेटा के साथ भी एपीआईसी एमएमआईओ स्पेस को भरने के लिए प्रोसेसर को धोखा दे सकते हैं।

यह व्यवहार इस तथ्य का एक साइड-इफेक्ट है कि हालांकि एपीआईसी एमएमआईओ मेमोरी पेज आकार में 4096 बाइट्स है, एक्सएपीआईसी मोड में एपीआईसी चिप वास्तव में 4096 बाइट्स डेटा का उत्पादन नहीं करता है, और सीपीयू हमेशा सही ढंग से बेअसर नहीं होता है MMIO क्षेत्र के अप्रयुक्त भागों को पहले शून्य से भरकर।

इसके बजाय, सीपीयू कैश में बचा हुआ पुराना डेटा एपीआईसी चिप से प्राप्त नए डेटा के साथ लिखा गया था।

जैसा कि शोधकर्ताओं ने इसे रखा है, बग उबलता है जिसे an . के रूप में जाना जाता है प्रारंभिक स्मृति पढ़ें, जहां आप गलती से किसी और के बचे हुए डेटा को RAM में फिर से उपयोग करते हैं क्योंकि न तो उन्होंने और न ही आपने इसे पहले इसके पिछले रहस्यों को फ्लश किया है।

क्या PIC रिसाव मुझे प्रभावित करता है?

प्रभावित चिप्स की पूरी सूची के लिए देखें इंटेल की अपनी सलाह.

जहां तक ​​हम बता सकते हैं, यदि आपके पास 10वीं या 11वीं पीढ़ी का इंटेल प्रोसेसर है, तो आप शायद प्रभावित हैं।

लेकिन अगर आपके पास बिल्कुल नई 12वीं पीढ़ी का सीपीयू (लेखन के समय सबसे नवीनतम) है, तो ऐसा लगता है कि केवल सर्वर-श्रेणी के चिप्स ही प्रभावित होते हैं।

विडंबना यह है कि 12वीं पीढ़ी के लैपटॉप चिप्स में, इंटेल ने एसजीएक्स को छोड़ दिया है, इसलिए यह बग लागू नहीं होता है क्योंकि किसी भी "सीलबंद" एसजीएक्स एन्क्लेव का रिसाव होना असंभव है।

बेशक, संभावित रूप से कमजोर चिप पर भी, यदि आप किसी ऐसे सॉफ़्टवेयर पर भरोसा नहीं कर रहे हैं जो SGX का उपयोग करता है, तो बग या तो लागू नहीं होता है।

और बग, डब किया गया CVE-2022-21233, केवल एक हमलावर द्वारा शोषण किया जा सकता है जिसके पास आपके कंप्यूटर पर पहले से ही स्थानीय, व्यवस्थापक-स्तर (रूट) पहुंच है।

नियमित उपयोगकर्ता एपीआईसी एमएमआईओ डेटा ब्लॉक तक नहीं पहुंच सकता है, और इसलिए वहां कुछ भी देखने का कोई तरीका नहीं है, अकेले गुप्त डेटा को छोड़ दें जो एसजीएक्स एन्क्लेव से लीक हो सकता है।

इसके अलावा, अतिथि आभासी मशीनें (VMs) हाइपरवाइजर, VMWare या VirtualBox जैसे हाइपरवाइजर में एक होस्ट ऑपरेटिंग सिस्टम के नियंत्रण में चल रहा है, लगभग निश्चित रूप से इस ट्रिक का उपयोग अन्य मेहमानों या स्वयं होस्ट से रहस्यों को लूटने के लिए नहीं कर सकता है।

ऐसा इसलिए है क्योंकि अतिथि वीएम को आम तौर पर मेजबान प्रोसेसर में वास्तविक एपीआईसी सर्किटरी तक पहुंच नहीं मिलती है; इसके बजाय, प्रत्येक अतिथि को अपना स्वयं का नकली APIC मिलता है जो उस VM के लिए अद्वितीय होता है।

क्या करना है?

घबराओ मत।

लैपटॉप या डेस्कटॉप कंप्यूटर पर, आप बिल्कुल भी जोखिम में नहीं हो सकते हैं, या तो आपके पास एक पुराना (या, भाग्यशाली आप, बिल्कुल नया!) कंप्यूटर है, या क्योंकि आप वैसे भी SGX पर निर्भर नहीं हैं।

और यहां तक ​​कि अगर आप जोखिम में हैं, तो कोई भी जो आपके लैपटॉप में व्यवस्थापक/रूट के रूप में आता है, शायद आपके पास पहले से ही परेशानी की दुनिया पैदा करने के लिए पर्याप्त शक्ति है।

यदि आपके पास असुरक्षित सर्वर हैं और आप अपनी परिचालन सुरक्षा के हिस्से के रूप में SGX पर भरोसा कर रहे हैं, तो Intel सुरक्षा सलाहकार देखें इंटेल-एसए-00657 संरक्षण और शमन जानकारी के लिए।

इसे लिखने वाले शोधकर्ताओं के अनुसार, "इंटेल [है] ने समस्या को ठीक करने के लिए माइक्रोकोड और एसजीएक्स सॉफ्टवेयर डेवलपमेंट किट अपडेट जारी किए हैं।"

ऐसा लगता है कि लिनक्स कर्नेल टीम भी अभी एक पैच पर काम कर रही है जो आपको अपने सिस्टम को कॉन्फ़िगर करने की अनुमति देगा ताकि यह हमेशा x2APIC का उपयोग करे (जो, जैसा कि आपको पहले से याद होगा, साझा मेमोरी के माध्यम से APIC डेटा संचारित नहीं करता है), और बूटअप के बाद सिस्टम को वापस xAPIC मोड में मजबूर होने से रोकेगा।


समय टिकट:

से अधिक नग्न सुरक्षा