Google ने Pixel 10 बेसबैंड फर्मवेयर में Rust अपनाया
(security.googleblog.com)Google ने Pixel 10 के cellular baseband (modem) firmware में memory-safe भाषा Rust पर आधारित DNS parser
अपनाया है। यह ऐसे baseband में, जिसका remote attack surface बड़ा होता है, memory-safety vulnerabilities की श्रेणी को कम करने के लिए एक सक्रिय कदम है।
मुख्य बिंदु
- Pixel 9 में memory-safety vulnerabilities को कम करने के उपाय लागू किए गए थे, और Pixel 10 में Google एक कदम आगे बढ़कर वास्तविक
baseband firmware में Rust code शामिल कर रहा है। - पहला उपयोग DNS parser में किया गया है। DNS सिर्फ browser में ही नहीं, बल्कि call forwarding जैसी mobile network की बुनियादी सुविधाओं में भी इस्तेमाल होता है, और यह सीधे untrusted data को parse करता है, इसलिए यह vulnerabilities के लिए संवेदनशील क्षेत्र है।
- Google ने open source Rust DNS library
hickory-protoको अपनाया। इसके maintenance status, test
coverage और community adoption को उच्च मूल्यांकन मिला। - हालांकि bare-metal environment के लिए आवश्यक
no_stdsupport पर्याप्त नहीं था, इसलिए Google ने संबंधित crate और dependencies में सीधेno_std
support जोड़ा और upstream में योगदान दिया। - code size लगभग 371KB मापी गई। इसमें 350KB
hickory-protoऔर उसकी dependencies का, 17KB
core·alloc·compiler_builtinsका, और 4KB modem से जोड़ने वाले shim code का है। - Google ने Cargo के जरिए कई स्वतंत्र staticlib जोड़ने की पद्धति के बजाय, मौजूदा modem build
system (Pigweed/GN) में Rust compilation step को सीधे integrate करने का तरीका चुना। - Rust के memory allocator और panic handling को भी मौजूदा modem firmware के allocator, crash backend के साथ FFI के जरिए जोड़कर integrate किया गया।
- link stage में
compiler_builtinsने मौजूदा modem-optimizedmemcpy/memsetimplementation को overwrite कर दिया, जिससे performance
में गिरावट आई; इसे one-line script से हटाकर समस्या का समाधान किया गया। - Google ने कहा कि यह एक बार की कार्रवाई नहीं है, बल्कि आगे baseband के अन्य high-risk parsers और code में memory-safe भाषाओं का
विस्तार करने की नींव है।
यह क्यों महत्वपूर्ण है
cellular baseband बाहरी दुनिया से सीधे जुड़ा low-level software होता है, इसलिए यह हमलावरों के लिए बहुत मूल्यवान लक्ष्य है। वास्तव में Project Zero ने पहले
Pixel modem में internet के जरिए remote code execution का प्रदर्शन भी किया था। ऐसे माहौल में C/C++-केंद्रित code की memory-safety
समस्याएं आसानी से संरचनात्मक जोखिम बन सकती हैं।
Google की यह घोषणा सिर्फ “Rust का इस्तेमाल किया” भर नहीं है; इसका महत्व इस बात में है कि यह दिखाती है कि mobile baseband जैसे अत्यधिक सीमित और संवेदनशील firmware क्षेत्र में भी
memory-safe भाषा को वास्तविक production deployment में लाया जा सकता है।
तकनीकी रूप से ध्यान खींचने वाले पहलू
hickory-protoको bare-metal पर चलाने के लिएno_stdsupport जोड़ा गया।- Rust और मौजूदा C/C++ code के बीच interface को FFI के जरिए जोड़ा गया।
- response parsing Rust ने संभाला, जबकि मौजूदा C memory structure update करने के लिए पुराने C function callbacks का पुन: उपयोग किया गया।
- 30 से अधिक external crate होने के कारण manual build rules के बजाय Fuchsia के
cargo-gnawका उपयोग कर GN build rules तैयार किए गए।
अभी कोई टिप्पणी नहीं है.