
Windows उपयोगिता जो सट्टा निष्पादन भेद्यताओं (Meltdown, Spectre, Foreshadow) के विरुद्ध सॉफ्टवेयर और हार्डवेयर शमन स्थिति की रिपोर्ट करने के लिए kernel API से क्वेरी करती है।
SpecuCheck एक Windows उपयोगिता है जो CVE-2017-5754 (Meltdown), CVE-2017-5715 (Spectre v2), CVE-2018-3260 (Foreshadow), और CVE-2018-3639 (Spectre v4) के विरुद्ध सॉफ़्टवेयर और हार्डवेयर शमन की स्थिति की जाँच करने के लिए है। यह NtQuerySystemInformation API कॉल में जनवरी 2018 में शामिल किए गए हालिया पैच के भाग के रूप में जोड़े गए दो नए सूचना वर्गों का उपयोग करता है और Windows Kernel द्वारा देखे गए डेटा की रिपोर्ट करता है।
अब एक आधिकारिक Microsoft PowerShell Cmdlet मॉड्यूल भी मौजूद है, जो यह जानकारी प्राप्त करने का अनुशंसित और समर्थित तरीका है।

3 जनवरी 2018 को, Intel, AMD और ARM Holdings, साथ ही कई OS विक्रेताओं ने Google Project Zero द्वारा खोजी गई कमजोरियों की एक श्रृंखला की सूचना दी:
Microsoft ने उसी दिन बाद में Windows 7 SP1 और उच्चतर के लिए पैच जारी किए। ये पैच, आर्किटेक्चर, OS संस्करण, बूट सेटिंग्स और कई हार्डवेयर-संबंधित गुणों के आधार पर, इन समस्याओं के विरुद्ध कई सॉफ्टवेयर और हार्डवेयर शमन लागू करते हैं। इन शमनों की सक्षमता स्थिति, उनकी उपलब्धता और कॉन्फ़िगरेशन Windows kernel द्वारा कई ग्लोबल वेरिएबल्स में संग्रहीत की जाती है, और एक अप्रलेखित सिस्टम कॉल के माध्यम से यूज़र-मोड कॉलर्स को प्रदर्शित की जाती है।
इसके अतिरिक्त, नए साइड चैनल हमलों की सूचना दी गई, जैसे Spectre Variant 4: speculative store bypass (CVE-2018-3639) और Foreshadow: L1 terminal fault (CVE-2018-3620), जिन्हें अगस्त के Patch Tuesday में पैच के साथ Windows 7 SP1 और उच्चतर में ठीक किया गया।
SpecuCheck इस सिस्टम कॉल का लाभ उठाकर यह पुष्टि करता है कि सिस्टम को वास्तव में पैच किया गया है (गैर-पैच किए गए सिस्टम कॉल में विफल होंगे) और शमनों की स्थिति क्या है, जिसका उपयोग संभावित प्रदर्शन समस्याओं को निर्धारित करने के लिए किया जा सकता है।
मूल रूप से इस मुद्दे के आसपास बहुत शोर, प्रचार और मार्केटिंग थी, और यह देखने के लिए बहुत अधिक दस्तावेज़ीकरण नहीं था कि आप प्रभावित हुए हैं या नहीं, और किस प्रदर्शन ओवरहेड पर। SpecuCheck का उद्देश्य उस डेटा को उपयोगकर्ताओं और IT विभागों के लिए आसानी से सुलभ बनाना था, ताकि उन्हें Windows डीबगर का उपयोग करने या स्वयं API को रिवर्स इंजीनियर करने से बचा जा सके।
तब से, Microsoft ने कर्नेल-मोड से उस डेटा को संक्षिप्त रूप में उजागर करने का अच्छा काम किया है, जो कर्नेल के विभिन्न शमन प्रौद्योगिकियों और हार्डवेयर सुविधाओं के समर्थन और उपयोग को संक्षेप में इंगित करता है, और उस डेटा को प्राप्त करने के लिए PowerShell CmdLet मॉड्यूल जारी किया। इसलिए, SpecuCheck केवल एक शोध उपकरण के रूप में रहता है और इसकी अनुशंसा नहीं की जाती है -- कृपया इसके बजाय Microsoft-अनुमोदित PowerShell मॉड्यूल का उपयोग करें।
SpecuCheck को चलाने के लिए, इसे कमांड-लाइन पर निष्पादित करें:
c:\SpecuCheck.exe
जिसके परिणामस्वरूप एक सूचना स्क्रीन दिखाई देगी जो यह इंगित करेगी कि कौन सी सुविधाएँ/शमन सक्षम हैं। यदि आप यह टेक्स्ट देखते हैं:
आपके सिस्टम में या तो उपयुक्त पैच नहीं है, या यह आवश्यक सूचना वर्ग का समर्थन नहीं कर सकता है।
यह इंगित करता है कि आपका सिस्टम वर्तमान में इन कमजोरियों से बचाव के लिए पैच नहीं किया गया है।
यदि आप मेरे शोध या कार्य के बारे में अधिक जानना चाहते हैं, तो मैं आपको मेरे ब्लॉग http://www.alex-ionescu.com के साथ-साथ मेरी प्रशिक्षण और परामर्श कंपनी Winsider Seminars & Solutions Inc. http://www.windows-internals.com पर जाने के लिए आमंत्रित करता हूँ।
आपको निश्चित रूप से अविश्वसनीय रूप से जानकारीपूर्ण Project Zero Post भी पढ़ना चाहिए।
उपयुक्त और आवश्यक Windows पैच के बारे में अतिरिक्त जानकारी के लिए, कृपया Microsoft Advisory और अतिरिक्त Microsoft Guidance पढ़ें।
SpecuCheck अप्रलेखित सिस्टम कॉल और सूचना वर्गों पर निर्भर करता है जो परिवर्तन के अधीन हैं। इसके अतिरिक्त, SpecuCheck केवल वह जानकारी लौटाता है जो Windows Kernel शमन और हार्डवेयर सुविधाओं की स्थिति के बारे में संग्रहीत कर रहा है -- नीति सेटिंग्स (रजिस्ट्री, बूट पैरामीटर) या अन्य संगतता फ़्लैग्स के आधार पर, Windows Kernel की स्थिति वास्तविक हार्डवेयर स्थिति से मेल नहीं खा सकती है। इस उपकरण का लक्ष्य आपको Windows-विशिष्ट मूल्यांकन देना है, न कि OS-अज्ञेय हार्डवेयर मूल्यांकन।
SpecuCheck केवल एक शोध उपकरण है और सामान्य या व्यावसायिक उपयोग के लिए अनुशंसित नहीं है -- कृपया इसके बजाय Microsoft-अनुमोदित PowerShell मॉड्यूल का उपयोग करें।
Copyright 2018 Alex Ionescu. All rights reserved.
Redistribution and use in source and binary forms, with or without modification, are permitted provided
that the following conditions are met:
1. Redistributions of source code must retain the above copyright notice, this list of conditions and
the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions
and the following disclaimer in the documentation and/or other materials provided with the
distribution.
THIS SOFTWARE IS PROVIDED BY ALEX IONESCU ``AS IS'' AND ANY EXPRESS OR IMPLIED
WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ALEX IONESCU
OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
The views and conclusions contained in the software and documentation are those of the authors and
should not be interpreted as representing official policies, either expressed or implied, of Alex Ionescu.