
Intel x86-64 पर माइक्रो-आर्किटेक्चरल साइड-चैनल हमलों को लागू करने वाला C टूलकिट, जिसमें Prime+Probe, Flush+Reload, Flush+Flush, CacheBleed और Prime+Abort शामिल हैं।
माइक्रो-आर्किटेक्चरल साइड-चैनल हमले प्रोसेसर के आंतरिक घटकों पर विवाद का शोषण करके प्रक्रियाओं के बीच जानकारी लीक करते हैं। हालाँकि सैद्धांतिक रूप से ऐसे हमले सीधे होते हैं, व्यावहारिक कार्यान्वयन अक्सर नाज़ुक होते हैं और खराब प्रलेखित प्रोसेसर विशेषताओं और अन्य डोमेन-विशिष्ट गूढ़ ज्ञान की महत्वपूर्ण समझ की आवश्यकता होती है। परिणामस्वरूप, माइक्रो-आर्किटेक्चरल साइड-चैनल हमलों पर काम में प्रवेश की बाधा है, जो इस क्षेत्र के विकास और ऐसे हमलों के विरुद्ध मौजूदा सॉफ़्टवेयर की लचीलापन के विश्लेषण में बाधा डालती है।
इस रिपॉज़िटरी में Mastik है, जो माइक्रो-आर्किटेक्चरल साइड-चैनल हमलों के साथ प्रयोग करने के लिए एक टूलकिट है। Mastik का लक्ष्य प्रकाशित हमला और विश्लेषण तकनीकों के कार्यान्वयन प्रदान करना है। वर्तमान में, Mastik Intel x86-64 आर्किटेक्चर पर छह साइड-चैनल हमला तकनीकों का समर्थन करता है:
Mastik डी-फैक्टो मानक Linux इंस्टॉलेशन प्रक्रिया का पालन करता है।
यदि सिस्टम में सभी आवश्यक सॉफ़्टवेयर हैं और
आप डिफ़ॉल्ट कॉन्फ़िगरेशन चाहते हैं, तो उपयोग करें:
$ ./configure && make && sudo make install
अधिक जानकारी के लिए नीचे देखें।
मुख्य संचालन के लिए, Mastik को किसी पैकेज की आवश्यकता नहीं है।
हालाँकि, बाइनरीज़ में सिंबल हल करने की क्षमता अत्यंत उपयोगी है,
और Linux पर बिल्ड पैकेज binutils और libdwarf की आवश्यकता होती है।
Mac OS X पर अभी तक डीबगिंग सिंबल का समर्थन नहीं है।
Mastik GUI इंटरफ़ेस doubloon
के लिए Python 3 की आवश्यकता है, निम्नलिखित पैकेजों के साथ:
wx, numpy, paramiko, matplotlib, और tqdm।
इंस्टॉलेशन ऑपरेटिंग सिस्टम के प्रकार पर निर्भर करता है।
Fedora:
$ sudo dnf install binutils-devel libdwarf-devel
Ubuntu:
$ sudo apt-get install binutils-dev libdwarf-dev libelf-dev
CentOS:
PowerTools रिपॉज़िटरी सक्षम करें:
$ sudo dnf config-manager --set-enabled PowerTools
फिर पैकेज इंस्टॉल करें:
$ sudo dnf install libdwarf binutils-devel elfutils-libelf-devel libdwarf-devel python3
बिल्ड वातावरण सेट करने के लिए, configure स्क्रिप्ट का उपयोग करें।
डिफ़ॉल्ट विकल्पों का उपयोग करने के लिए, उपयोग करें:
$ ./configure
स्क्रिप्ट अपने व्यवहार को संशोधित करने के लिए कई फ़्लैग स्वीकार करती है।
इनमें से कुछ नीचे सूचीबद्ध हैं।
पूरी सूची के लिए ./configure --help का उपयोग करें।
| फ़्लैग | विवरण |
|---|---|
--help | सहायता संदेश |
--prefix=PREFIX | PREFIX [/usr/local] में फ़ाइलें इंस्टॉल करें |
--disable-symbols | बाइनरीज़ में सिंबल टेबल के प्रबंधन को अक्षम करता है। साथ ही, binutils और libdwarf की आवश्यकता हटाता है |
--disable-debug-symbols | बाइनरीज़ में डीबग सिंबल के प्रबंधन को अक्षम करता है। libdwarf की आवश्यकता हटाता है |
--disable-doubloon | doubloon इंस्टॉल न करें। Python3 की आवश्यकता हटाता है |
बिल्ड वातावरण कॉन्फ़िगर करने के बाद, इसका उपयोग करके Mastik बिल्ड करें:
$ make
Mastik को स्थापित करने के लिए, इसका उपयोग करें:
$ make install
इंस्टॉल डायरेक्टरी बदलने के लिए उपयोग करें:
$ make prefix=DIR install
उपयोग के उदाहरण के लिए डेमो फ़ोल्डर देखें।
Mastik को निम्नलिखित का समर्थन प्राप्त है: