Googleはセルラーベースバンドモデムに焦点を当てることで、Pixelスマートフォンのセキュリティ向上に取り組んでいます。セルラーベースバンドモデムはモバイルネットワークとの通信を処理し、外部データを処理するデバイスの一部です。

Pixel 9では、同社はメモリ関連の脆弱性を減らすための対策を導入しました。Pixel 10では、Rustプログラミング言語で書かれたDNSパーサーをモデムファームウェアに統合することで、さらに進んだアプローチを採用しています。
DNSプロトコルはブラウザがウェブサイトを検索するのに役立つことで知られており、セルラーネットワークでも役割を果たします。呼び出し転送などの機能はDNSサービスに依存しています。DNSは外部ソースからの複雑なデータを処理し、信頼されていない入力を処理する必要があります。これをメモリ安全でない言語で実装すると、脆弱性が生じる可能性があります。
「Pixelモデムには数十メガバイトの実行可能コードがあります。モデムの複雑さと遠隔攻撃面を考えると、主にメモリ安全でないファームウェアコードに、他の重大なメモリ安全性の脆弱性が残っている可能性があります」とGoogle PixelチームのソフトウェアエンジニアであるJiacheng Luは書いています。
「新しいRustベースのDNSパーサーは、危険な領域の脆弱性の全クラスを緩和することで、セキュリティリスクを大幅に削減し、他の領域でメモリ安全なコードを幅広く採用するための基盤を構築しています」とLuは付け加えました。
Rustの統合とファームウェアの課題
Googleはオープンソースのhickory-protoというDNSライブラリを選択し、モデムファームウェアで使用するために適応させました。モデム環境では、no_stdと呼ばれるセットアップを使用して、Rustコードが標準ライブラリなしで実行される必要があります。
追加されたコードは、DNSライブラリ、その依存関係、および必要なRustコンポーネントを含めて、ファームウェアサイズを約371 KB増加させます。これはPixelデバイスにとって許容可能と見なされました。
「私たちはプロトタイプを構築し、サイズ最適化設定でサイズを測定しました。予想通り、hickory_protoは組み込み用途を念頭に設計されておらず、サイズ面で最適化されていません。Pixelモデムはメモリ制約が厳しくないため、私たちはコミュニティサポートとコード品質を優先し、コードサイズの最適化は今後の課題としました」とLuは説明しました。
「しかし、追加されたコードサイズは、他の組み込みシステムにとってブロッカーになる可能性があります。将来的には、必要な機能のみを条件付きでコンパイルするための追加フィーチャーフラグを追加することで対処できる可能性があります。このモジュール性を実装することは、将来の貴重な作業になるでしょう。」
パーサーを統合するために、Rustコードは既存のCおよびC++ファームウェアにインターフェースを通じて接続されました。このインターフェースはデータの交換を可能にします。モデムがDNSデータを受け取ると、それはRustパーサーに渡され、パーサーがそれを処理してから、既存のC関数にコールバックして結果を保存または使用します。
これはビルドプロセスへの変更も必要でした。Rustコードは既存のファームウェアシステムに適合する方法でコンパイルされ、モデムのメモリ割り当てとクラッシュ処理コンポーネントとリンクされました。
テスト中に、リンク中に最適化された一部の関数が置き換えられたときにパフォーマンスの問題が発生しました。これは電力とパフォーマンスの問題を引き起こしましたが、後にコードのリンク方法を調整することで修正されました。
翻訳元: https://www.helpnetsecurity.com/2026/04/13/google-pixel-rust-baseband-modem-security/