वास्तव में / बग / cpuinfo के "बग" अनुभाग क्या दर्शाता है?


23

डेबियन स्ट्रेच और एक कर्नेल और स्थापित माइक्रोकोड के साथ परीक्षण / बस्टर प्रणाली पर मैं अभी भी मेल्टडाउन और दर्शक को बग के रूप में सूचीबद्ध देखता हूं /proc/cpuinfo

हालाँकि, spectre-meltdown-checkerशो चलाना असुरक्षित नहीं है।

इसलिए मैं सोच रहा हूं कि क्या /proc/cpuinfoदिखाता है। क्या ये इस सीपीयू के लिए सिर्फ कमजोरियां हैं और क्या हमेशा एक पैच सिस्टम होने के बावजूद इसे सूचीबद्ध किया जाएगा?

जवाबों:


22

"बग" फ़ील्ड के इरादे का /proc/cpuinfoवर्णन उस संदेश में किया गया है जिसने इसे पेश किया था :

x86/cpufeature: बग झंडे जोड़ें /proc/cpuinfo

उन झंडों को डंप करें, जिन्हें हमने पता लगाया है और / या बग को सीपीयू पर बग वर्कअराउंड लागू किया है, जिस पर हम कार्य कर रहे हैं, इसी तरह के झंडे के साथ।

फायदा यह है कि सीपीयू के फीचर्स की तरह ये समय के साथ जमा नहीं हो रहे हैं।

पहले, हार्डवेयर बग जिन्हें कर्नेल का पता लगाया गया था, उन्हें अलग-अलग विशेषताओं के रूप में सूचीबद्ध किया गया था ( उदाहरण के लिए कुख्यात F00F बग, जिसमें 32-बिट x86 सिस्टम पर अपनी f00f_bugप्रविष्टि है /proc/cpuinfo)। "बग" प्रविष्टि को एक ही फीचर में आगे की ओर रखने के लिए पेश किया गया था, उसी शैली में x86 सीपीयू झंडे के रूप में

जहां तक ​​प्रविष्टियों के व्यवहार में होने का मतलब है, जैसा कि आप संदेश में देख सकते हैं, गारंटी है कि कर्नेल ने एक हार्डवेयर बग का पता लगाया है। समस्याओं से निपटा जा सकता है या नहीं, यह निर्धारित करने के लिए आपको कहीं और (बूट संदेश, या विशिष्ट /procप्रविष्टियाँ या /sysफ़ाइलें जैसे कि प्रविष्टियाँ /sys/devices/system/cpu/vulnerabilities/) देखने की आवश्यकता होगी ।

"बग" प्रविष्टियों की उपयोगिता दो तरह से सीमित है। पहला यह है कि सच्चे नकारात्मक को अज्ञात से अलग नहीं किया जा सकता है: यदि फ़ील्ड "cpu_meltdown" को निर्दिष्ट नहीं करता है, तो आप यह नहीं जान सकते (केवल फ़ील्ड से) क्या इसका मतलब यह है कि कर्नेल मेल्टडाउन के बारे में नहीं जानता है, या कि आपका CPU Meltdown से प्रभावित नहीं है। दूसरा यह है कि पता लगाना बहुत सरल हो सकता है; यह सावधानी के आधार पर गलत है, इसलिए यह रिपोर्ट कर सकता है कि जब यह नहीं है तो आपका सीपीयू असुरक्षित है। क्योंकि "डिटेक्शन" टेबल-चालित है, इसकी सटीकता इस बात पर निर्भर करती है कि आप किस कर्नेल के संस्करण को चला रहे हैं।

मेल्टडाउन और स्पेक्टर बग्स के मामले में, पता लगाने की प्रक्रिया जो x86 पर /proc/cpuinfo निम्नानुसार कामों में मूल्यों को खिलाती है :


2
दर्शक और मेलोडाउन के मामले में उनका पता भी नहीं चला है लेकिन सिर्फ मान लिया गया है । मेरे पास एक इन-ऑर्डर x86 है जो या तो प्रभावित नहीं है, लेकिन कर्नेल सिर्फ रिपोर्ट करता है कि यह वैसे भी एक हार्डकॉन्ड नियम के कारण है जो मूल रूप से कहते हैं कि "किसी भी माइक्रो कैप पैच के बिना एक्स से पुराना कोई इंटेल सीपीयू मेल्टडाउन के लिए कमजोर है"।
आर ..

2
@R .. क्या आपका CPU कर्नेल में इन-ऑर्डर तालिकाओं में शामिल है? ( नवीनतम टेबल देखने के लिए यहां "cpu_no_speculation" देखें।) यह वास्तव में "बग" प्रविष्टि wrt के साथ समस्याओं में से एक है। मेल्टडाउन, स्पेक्टर और सह।, इसकी सटीकता वास्तव में इस बात पर निर्भर करती है कि हाल ही में आपका "पता लगाने" के बाद से आपका कर्नेल कैसा है।
स्टीफन किट

नहीं, यह एक सेंटरटन बोनेल है और यह वहां से गायब है। मैं एक पैच जमा करने के बारे में देखूंगा।
आर। ..

किसी को पता है कि क्या यह अभी भी सही है जब बूट के दौरान माइक्रोकोड अपडेट लागू किए गए हैं लेकिन कर्नेल लोड करने के बाद?
बछसौ

12

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

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

हालाँकि, @Gilles सही ढंग से बताता है, कि चेतावनी का मतलब यह नहीं है कि मौजूदा ज्ञात कारनामे Spectre / Meltdown के तरीके काम करेंगे; पैच स्थापित होने पर वे काम नहीं करेंगे।

प्रश्न में उल्लिखित मामले में, कर्नेल केवल सीपीयू मॉडल के लिए जाँच कर रहा है जिसे स्पेक्टर / मेल्टडाउन (अभी के लिए सभी x86 सीपीयू से प्रभावित किया जाता है अगर हम केवल x86 के बारे में बात कर रहे हैं), और इसलिए cpu-insecureअभी भी बग सेक्शन में सूचीबद्ध किया जा रहा है / लाइन में /proc/cpuinfo

जाओ अपनी जाँच करो /proc/cpuinfo। यदि आपके कर्नेल में KPTI पैच है, तो इसमें cpu_insecure होगा

मैंने पाया है कि KPTI पैच में कोड का यह टुकड़ा है:

   /* Assume for now that ALL x86 CPUs are insecure */
   setup_force_cpu_bug(X86_BUG_CPU_INSECURE);

और कर्नेल अपडेट के बाद, आपको मिलता है:

bugs      : cpu_insecure

पुनश्च। स्पेक्टर / मेल्टडाउन "बग्स" के दोहन के लिए एक नई विधि के लिए पहले से ही अपडेट का एक दौर था। यह शायद आखिरी बार नहीं होगा।


2
उदा। यदि आप कुछ समय के लिए hw खरीदना बंद कर सकते हैं, तो CPU की नई पीढ़ी की प्रतीक्षा करें। मेरी क्रिस्टल बॉल बताती है कि हमारे पास मध्यम अवधि में मूंगफली की बिक्री के लिए बहुत सारे 2 हैंड सर्वर होंगे।
रुई एफ रिबेरो

सीपीयू बग को सूचीबद्ध किया जाता है, /proc/cpuinfoभले ही वे एक सॉफ्टवेयर पैच द्वारा पूरी तरह से कम हो। उनकी उपस्थिति का मतलब यह नहीं है कि आपका सिस्टम उस विशेष बग के लिए असुरक्षित है।
गिलेस एसओ- बुराई को रोकना '

@ दिए गए, आप ज्ञात कारनामों को लागू करने में सक्षम नहीं होंगे। हालाँकि, हम पहले से ही पैच के 1 पीढ़ी के आसपास होने वाले कारनामों का एक दौर पहले से ही थे, और मैं यह कहने के लिए बहुत सारे वाणिज्यिक हितों के लिए उद्यम करूंगा कि यह एक मौलिक डिजाइन दोष होने के आलोचकों को चुप कराएगा जो एक प्रमुख सीपीयू रीडिजाइन को मजबूर करेगा।
रुई एफ रिबेरो

1
यह स्पेक्टर / मेल्टडाउन-प्रकार के कारनामों का सच है, वे मौलिक डिजाइन मुद्दे हैं जो देते रहेंगे। लेकिन आपने लिखा है कि यह bugsलाइन शो का सच है , और यह सिर्फ गलत है। अधिकांश CPU डिज़ाइन बग में एक पूर्ण सॉफ़्टवेयर वर्कअराउंड होता है, जिसमें केवल थोड़ा सा प्रदर्शन होता है। यदि कर्नेल वर्कअराउंड लागू करता है, तो बग हानिरहित है।
गिल्स एसओ- बुराई को रोकना '

1
@ रुई ओह मुझे लगता है कि मैंने अपने आप को स्पष्ट रूप से पर्याप्त रूप से व्यक्त नहीं किया - मेरा मतलब था कि लेख ने उस प्रश्न का उत्तर नहीं दिया जो उसके स्वयं के शीर्षक ने पूछा था, न कि इस प्रश्न का उत्तर ;-)। (जैसा कि, लेख का शीर्षक है "उद्योग-तोड़ने वाला स्पेक्टर बग सात महीनों तक कैसे गुप्त रहा", लेकिन लेख में यह नहीं बताया गया है कि IMO कैसे है ।)
स्टीफन किट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.