
Starlink टर्मिनलों के ब्लैक-बॉक्स सुरक्षा मूल्यांकन के लिए वोल्टेज फॉल्ट-इंजेक्शन मॉडचिप, जो बूटलोडर हस्ताक्षर सत्यापन को बायपास करके मनमाना फर्मवेयर निष्पादित करता है।
यह रिपॉज़िटरी "Glitched on Earth by Humans: A Black-Box Security Evaluation of the SpaceX Starlink User Terminal" शीर्षक वाली प्रस्तुति के साथ आती है। स्लाइड डेक यहाँ उपलब्ध है, प्रस्तुति की रिकॉर्डिंग जल्द ही उपलब्ध होनी चाहिए।
प्रस्तुति में बताया गया है कि हमने एक कस्टम मॉडचिप का उपयोग करके स्टारलिंक यूज़र टर्मिनल पर मनमाना कोड कैसे निष्पादित करने में सफलता प्राप्त की, जो वोल्टेज फॉल्ट इंजेक्शन करती है। मॉडचिप का उपयोग सिस्टम-ऑन-चिप (SoC) ROM बूटलोडर (BL1) के निष्पादन के दौरान सिग्नेचर सत्यापन को बायपास करने के लिए किया जा सकता है। यह BL2 से आगे SoC पर मनमाना कोड निष्पादित करने की अनुमति देता है और स्टारलिंक यूज़र टर्मिनल तथा सिस्टम के नेटवर्किंग पक्ष को और अधिक अन्वेषण करने की अनुमति देता है। हम मॉडचिप डिज़ाइन उपलब्ध कराते हैं ताकि अन्य शोधकर्ता हमारे कार्य पर आगे निर्माण कर सकें।
हालाँकि हमने प्रदान किए गए मॉडचिप डिज़ाइन का परीक्षण किया है और उपयोग करते हैं, फिर भी इस मॉडचिप का उपयोग करके उपयोगकर्ता टर्मिनल को स्थायी क्षति पहुँचाना संभव है। इसी तरह, उपयोगकर्ता टर्मिनल को अलग करने से स्थायी क्षति हो सकती है और संभवतः आपकी वारंटी समाप्त हो जाएगी।
मॉडचिप को RP2040 माइक्रोकंट्रोलर द्वारा नियंत्रित किया जाता है जो eMMC D0 लाइन पर ट्रिगर होता है और MOSFET ड्राइवर के लिए (प्रोग्राम करने योग्य) विलंब और ऑफसेट के साथ दो पल्स बनाता है। इनमें से एक पल्स ग्लिच MOSFET को नियंत्रित करती है, जब इस MOSFET के गेट को हाई किया जाता है तो SoC कोर वोल्टेज आपूर्ति ग्राउंड से शॉर्ट हो जाती है। RP2040 द्वारा उत्पन्न दूसरी पल्स दो MOSFET को नियंत्रित करने की अनुमति देती है जो दो कैपेसिटर बैंकों को सक्षम/अक्षम कर सकते हैं। UT को पूरी तरह से बूट करने के लिए ये कैपेसिटर आवश्यक हैं, लेकिन वोल्टेज ग्लिच के दौरान कैपेसिटर बैंक सक्षम नहीं हो सकते क्योंकि इससे हमें वांछित फॉल्ट प्राप्त करने से रोका जा सकता है।
अपना स्वयं का मॉडचिप बनाने के लिए स्कीमैटिक और गर्बर फ़ाइलें यहाँ प्रदान की गई हैं।


spacex_catson_boot.h फ़ाइल में प्रलेखित है।सुनिश्चित करें कि आपके द्वारा असेंबल किया गया मॉडचिप काम करता है, इससे पहले कि आप इसे सोल्डर करने का प्रयास करें।
लाल वर्गों के भीतर डिकपलिंग कैपेसिटर हटाएँ, इनका उपयोग सामान्यतः SoC कोर वोल्टेज आपूर्ति को स्थिर करने के लिए किया जाता है।

असेंबल किए गए मॉडचिप को UT PCB पर संरेखित करें और कैस्टलेटेड छिद्रों का उपयोग करके इसे सोल्डर करें। सुनिश्चित करें कि कोर वोल्टेज आपूर्ति और ग्राउंड के बीच कोई शॉर्ट न हो।
UT RST चिह्नित टेस्ट पॉइंट को कोर वोल्टेज रेगुलेटर के एनेबल पिन से कनेक्ट करें।
12V चिह्नित टेस्ट पॉइंट को UT PCB पर पास के 12V स्रोत से कनेक्ट करें।
सबसे दाएँ जम्पर पैड (बटन के नीचे) को eMMC D0 टेस्ट पॉइंट से कनेक्ट करें।
1V8 चिह्नित टेस्ट पॉइंट को UT PCB पर पास के 1.8V स्रोत से कनेक्ट करें (eMMC के बगल में एक डिकपलिंग कैपेसिटर है जो 1V8 से जुड़ा है)।
अब आप ग्लिचिंग शुरू करने के लिए पूरी तरह तैयार हैं, शुभकामनाएँ! Python फ़ोल्डर में एक उदाहरण है जो दर्शाता है कि आप प्रयोग के लिए मॉडचिप का उपयोग कैसे शुरू कर सकते हैं।

IN A पिन पर पुल-डाउन रेसिस्टर की कमी के कारण है।bootdelay पैरामीटर भी बढ़ा सकते हैं।