Starlink यूज़र टर्मिनल का विखंडन
(darknavy.org)- DARKNAVY ने सिंगापुर से खरीदे गए Starlink Standard Actuated के एंटेना को खोलकर उसके हार्डवेयर, फर्मवेयर, सुरक्षा चिप और emulation की संभावनाओं का प्रारंभिक विश्लेषण किया
- एंटेना PCB का अधिकांश हिस्सा STMicroelectronics RF फ्रंटएंड से भरा है, जबकि मुख्य नियंत्रण भाग बोर्ड के एक तरफ केंद्रित है, जिससे इसकी संरचना सामान्य IoT डिवाइस जैसी दिखती है
- Rev3 फर्मवेयर को eMMC हटाकर dump किया गया, और इसका अधिकांश भाग unencrypted था, जिससे boot chain का हिस्सा, kernel, filesystem का कुछ भाग और runtime configuration की जांच संभव हुई
- निकाले गए software में सिर्फ user terminal ही नहीं बल्कि satellite और ground gateway के लिए लगने वाली functionality भी शामिल है, और boot के समय hardware peripherals के आधार पर device type पहचानने की संरचना दिखती है
- Ethernet Data Recorder satellite telemetry से जुड़े packets रिकॉर्ड करता है और उन्हें hardware key से encrypt करता है, लेकिन UTA में 41 SSH public keys अपने-आप रजिस्टर हो जाती हैं और local network पर port 22 हमेशा खुला रहता है
Starlink यूज़र टर्मिनल और विश्लेषण की सीमा
- Starlink, SpaceX की low-earth orbit satellite internet सेवा है, जिसमें उपयोगकर्ता user terminal के जरिए low-earth orbit satellites से जुड़ते हैं और ground gateway के माध्यम से internet से कनेक्ट होते हैं
- नई पीढ़ी के satellites में धीरे-धीरे laser links जोड़े जा रहे हैं, जिससे कुछ satellites आपस में सीधे संचार कर सकते हैं
- इससे ground stations पर निर्भरता घटती है, transmission efficiency बढ़ती है और global coverage बेहतर होती है
- जहां स्थानीय ground station नहीं है, जैसे यूक्रेन के युद्धक्षेत्र में, वहां भी Starlink user terminal inter-satellite links के जरिए पड़ोसी देश के gateway तक अप्रत्यक्ष रूप से पहुंच सकता है
- DARKNAVY की जांच पूरे Starlink user terminal पर नहीं, बल्कि उसके एंटेना घटक User Terminal Antenna, UTA पर केंद्रित है
- परीक्षण किया गया उपकरण सिंगापुर से खरीदा गया Starlink Standard Actuated था
- इसे Rev3 या GenV2 भी कहा जाता है
हार्डवेयर विखंडन के नतीजे
- पूरा Starlink user terminal दो हिस्सों से बना होता है: router और antenna
- खोले गए UTA का PCB बाहरी casing के लगभग बराबर आकार का था
- बोर्ड का अधिकांश हिस्सा STMicroelectronics द्वारा बनाए गए RF फ्रंटएंड chips से भरा था
- मुख्य control components अधिकतर PCB के एक किनारे पर केंद्रित थे
- RF antenna को छोड़कर UTA के core area की पूरी design सामान्य IoT devices से काफी मिलती-जुलती है
- मुख्य SoC, SpaceX के लिए ST द्वारा बनाया गया custom quad-core Cortex-A53 है
- फिलहाल इस chip का hardware और datasheet गोपनीय है और सार्वजनिक नहीं है
- Black Hat USA 2022 में KU Leuven के Dr. Lennert Wouters ने पहली पीढ़ी के Starlink antenna GenV1 पर fault injection attack करके device का root shell हासिल करने का प्रदर्शन किया
- बाद में SpaceX ने firmware update के जरिए PCB के UART debug interface को disable कर fault attack resistance बढ़ाई
- Wouters ने अपना approach और सुधारकर दोबारा intrusion में सफलता पाई
फर्मवेयर extraction और software संरचना
- UTA का गहराई से विश्लेषण करने के लिए DARKNAVY ने eMMC chip से firmware सीधे dump किया
- Rev3 board पर कोई स्पष्ट eMMC debug pins नहीं थे
- eMMC chip को PCB से हटाकर programmer से पढ़ना पड़ा
- निकाला गया firmware का अधिकांश हिस्सा encrypted नहीं था
- BootROM को छोड़कर boot chain
- kernel
- filesystem के unencrypted regions
- kernel शुरू होने के बाद runtime environment का अधिकांश भाग eMMC से पढ़कर
/sx/local/runtimedirectory में unpack किया जाता है - runtime structure में
binStarlink software stack के लिए जरूरी executables रखता है,datconfiguration files स्टोर करता है, औरrevision_infoमौजूदा software व hardware version दर्ज करता है - बाहरी user communication संभालने वाला
user_terminal_frontendGo में लिखा गया है, जबकि बाकी अधिकांश programs बिना symbols वाले statically compiled C++ executables हैं - पहले के शोध पर आधारित शुरुआती analysis के अनुसार network stack architecture कुछ हद तक DPDK जैसी लगती है
- मुख्य रूप से user-space C++ programs kernel को bypass कर network packets प्रोसेस करते हैं
- Linux kernel की बड़ी भूमिका basic hardware drivers और process management देने की है
- UTA से निकाले गए core software में satellite या ground gateway से संबंधित लगने वाली functionality भी शामिल है
- शुरुआती reverse engineering के अनुसार system startup के दौरान hardware peripherals के आधार पर device type पहचानता है
- इसके बाद उसी device type के मुताबिक logic load और execute किया जाता है
QEMU-आधारित emulation
- DARKNAVY ने Rev3 firmware के लिए लगातार analysis को आसान बनाने हेतु QEMU-आधारित emulation environment बनाया
- इस environment में बाहरी entities के साथ interact करने वाले कुछ software components को चलाने और debug करने में सफलता मिली
httpdWebSocketgRPCservices
STSAFE-A110 सुरक्षा चिप
- UTA में मुख्य SoC के अलावा एक dedicated security chip STSAFE-A110 भी लगी है
- यह chip CC EAL5+ security rating का दावा करती है
- custom SoC के विपरीत, इसे NDA के तहत कानूनी रूप से खरीदा जा सकता है
- UTA firmware में
stsafe_cliनाम का user-space program इस chip के साथ interaction संभालता है - reverse engineering के अनुसार STSAFE मुख्य रूप से ये सुविधाएं देता दिखता है
- हर device का unique identifier, UUID
- satellite communication authentication में उपयोग होने की संभावना वाला public key certificate
stsafe_leaf.pemप्रबंधन - user data transmission के लिए symmetric encryption key derivation
- यह chip SoC के secure boot mechanism से अलग एक अतिरिक्त root of trust की तरह काम करती है, जो आधुनिक embedded security design से मेल खाती है
Ethernet Data Recorder और SSH keys
- analysis के दौरान Ethernet Data Recorder नाम का एक program मिला, जिसे सिर्फ नाम और कार्य देखकर user data capture backdoor समझा जा सकता है
- विस्तार से देखने पर यह program
pcap_filterजैसे mechanism से खास network packets रिकॉर्ड करता है- capture rule के उदाहरण में
udp and dst port 10017शर्त और कुछ multicast destination hosts शामिल हैं - firmware में मिले अन्य संकेतों के आधार पर ये packets satellite telemetry से जुड़े हैं
- capture rule के उदाहरण में
- capture किया गया सारा traffic SoC में fuse की गई hardware key से encrypt होता है
- अभी उपलब्ध जानकारी के आधार पर यह कहना मुश्किल है कि यह feature user privacy data एकत्र करता है
- device initialization के दौरान अगर system खुद को user terminal के रूप में पहचानता है, तो initialization script 41 SSH public keys को
/root/.ssh/authorized_keysमें अपने-आप लिख देती है- UTA का port 22 local network पर हमेशा खुला रहता है
- consumer product में इतने सारे अज्ञात login keys का होना ध्यान खींचता है
satellite internet systems का security context
- जैसे-जैसे satellite technology आगे बढ़ रही है और अलग-अलग industries में लागू हो रही है, Starlink और अन्य satellite internet systems के प्रत्येक component भविष्य के attack और defense operations के लिए महत्वपूर्ण क्षेत्र बन सकते हैं
- space security में developers और hackers को सिर्फ digital domain ही नहीं बल्कि space physics की सीमाओं से भी जूझना पड़ता है
- एक बार की गलत कार्रवाई से target के साथ संपर्क हमेशा के लिए टूट सकता है
1 टिप्पणियां
Hacker News की राय
अगर initialization के समय user terminal के रूप में पहचाने जाने पर
/root/.ssh/authorized_keysमें अपने-आप 41 SSH public keys डाल दी जाती हैं, तो मुझे यह जानने की और उत्सुकता होती है कि “मेरे” user terminal पर root access किसके पास नहीं हैथोड़ा गंभीरता से देखें तो यह ISP द्वारा दिए गए router में remote management system रखने से बहुत अलग है क्या? SpaceX user terminal तक सीधे access न भी कर पाए, तो भी satellite या ground station से traffic capture कर सकता है
बल्कि अगर 41 instances एक ही key share करते हों, तो वह ज्यादा चिंता की बात लगेगी
authorized_keysमें भी 25 lines हैं। हर laptop के लिए अलग YubiKey, iPad और iPhone की keys, Mac की Secure Enclave key हैंStarlink में system administrators भी 1–2 से ज्यादा होंगे, इसलिए करीब 100 public keys भी मुझे reasonable लगती हैं
production device की engineering problems diagnose करने के लिए अलग remote access software है और REPL चलाया जा सकता है, लेकिन उसे access control और DevOps approval से रोका गया है
मिलती-जुलती submission पर पिछली चर्चा: Teardown of the SpaceX Starlink User Terminal https://news.ycombinator.com/item?id=25277171 (2 दिसंबर 2020 — 158 points, 138 comments)
अगर 41 public keys डाली गई हैं, तो शायद पता लगाया जा सकता है कि कौन से developers उनका इस्तेमाल करते हैं
https://web.archive.org/www.darknavy.org/blog/a_first_glimps...
यह चौंकाने वाली बात है कि सारे packets user space में process होते हैं
अगर 100-byte UDP packets से 1Gbps traffic process करना हो, तो प्रति सेकंड 10 लाख packets process करने होंगे। 1GHz CPU हो तो एक packet के लिए सिर्फ 1000 cycles मिलते हैं
संभव तो है, लेकिन जब तक engineers assembly हाथ से code करना और तरह-तरह की lookup table techniques पर सोचना पसंद न करते हों, आसान नहीं है
software patched kernel हो सकता है, या XDP-style kernel bypass हो सकता है। यह Intel Puma cable modem router/gateway में DPDK या मिलती-जुलती चीजों से कुछ हद तक निपटने के अनुभव पर आधारित अनुमान है
Starlink करीब 25–200Mbps है और average packet भी 7–8 गुना बड़ा होता है, इसलिए बहुत हुआ तो लगभग 36,000 packets per second होंगे, जो 1GHz पर भी काफी संभालने लायक है
उस point पर polling code kernel के अंदर है या नहीं, यह क्यों मायने रखता है, समझ नहीं आता
memcpyबचाया जा सकता है, इसलिए यह काफी तेज हैअच्छा होगा अगर title की typo ठीक कर दी जाए। अभी “Ternimal” लिखा है
सोचता हूं कि इस तरह का काम शुरू कैसे किया जाता है। reverse engineering मुश्किल है, और hardware से छेड़छाड़ वाली tinkering अक्सर बहुत महंगी होती है या इतनी पुरानी कि उस पर अब development नहीं हो रही होती। exceptions तो होंगे
आम तौर पर UART होता है, लेकिन Starlink terminal में लगता है UART नहीं है, इसलिए इस व्यक्ति ने इसके बजाय eMMC memory chip निकाल ली। असल में यह soldered microSD card जैसी चीज है
लिखा है कि “DARKNAVY built a basic QEMU-based emulation environment for the Rev3 firmware”, लेकिन GPS जैसे external devices से जुड़ने वाले firmware को emulate करने के बारे में कोई सामग्री या ready-made solutions हैं क्या, यह जानना चाहता हूं
Android Emulator, QEMU emulator का downstream है, और Android device boot support जोड़ता है तथा common Android hardware (OpenGL, GPS, GSM, sensors) और GUI interface को emulate करता है। Android Emulator कई तरीकों से QEMU को extend करता है
दिलचस्पी है कि product में firmware को reverse engineering से बचाने के लिए कैसे protect करना चाहिए। क्या SpaceX द्वारा इस्तेमाल techniques बताने वाली कोई सामग्री है?
rootfsencrypt करना चाहिए। एक कदम आगे जाएं तो ARM की TrustZone जैसी चीज इस्तेमाल करके bootloader, decryption, image signing जैसे sensitive काम छिपाए जा सकते हैंfilesystem को सीधे dump किया जा सका, यह देखकर लगता है कि लेख में बताए bootloader के अलावा SpaceX ने कोई खास protection apply नहीं की
बेहतर होगा कि resources ऐसी चीजों पर लगें जो सबके लिए फायदेमंद हों और product को बेहतर बनाएं। advanced users के लिए product modify करने की theoretical possibility, यहां तक कि manufacturer ने सोचा भी न हो ऐसे तरीकों से modification की possibility, बड़ा benefit हो सकती है
technical end user के नजरिए से यह ऐसा दिखता है। lights, cat feeder, और अब rowing machine तक को ढंग से इस्तेमाल करने के लिए devices hack करने पड़ रहे हैं—इससे सच में थकान और थोड़ी उदासी होती है
अगर यह rockets के साथ share किए गए codebase पर based हो तो cool होगा?