解決策
Ars Technicaの2026年4月の報道によると、GoogleのProject Zeroは、Pixel携帯電話のモデムに対してインターネット経由でリモートコード実行が可能であることを示した。Exynosモデムには20件を超える脆弱性が見つかり、うち18件は深刻なものに分類された。モデムのファームウェアは数十年かけて構築されたレガシーなCおよびC++で、サイズは数十メガバイトに及び、一部は営業秘密として扱われているため、書き直しは現実的ではなかった。
そこでGoogleはDNSパーサーに着目した。携帯電話の機能が今やDNSに依存しており、信頼できないデータの解析は大きなリスクだからである。同社はオープンソースのhickory-proto Rustライブラリを選んだ。特に最適化されているわけではないが、広く採用されている。ガベージコレクションを備えた安全な言語は、リアルタイムのモデムファームウェアには遅すぎるとして除外された。代わりにRustはコンパイル時のチェックによってメモリ安全性を実現する。
Pixelのモデムはメモリに制約がないため、チームはライブラリの標準ライブラリ依存を取り除き、マシンコードにコンパイルして既存のコードに移植した。追加されたRustコンポーネントは371KBだった。
達成したこと
数十メガバイトのモデムコードを書き直すのではなく、信頼できないDNSデータを解析する部分だけをメモリ安全なRustに置き換える。
うまくいった理由
Rustは低速なガベージコレクタなしでコンパイル時にメモリ安全性を強制するため、リアルタイム性能が維持される。
DNS解析はネットワークからの信頼できないデータを扱うため、価値が高く範囲の狭い標的である。
Pixelのモデムには371KBの追加分を賄えるメモリの余裕がある。
ファームウェア全体の書き直しは、そのサイズと関与する営業秘密を考えると非現実的だった。
応用できること
レガシーシステムのセキュリティは、全面的な書き直しではなく、敵対的な入力に触れる範囲の狭いコンポーネントを差し替えることで高められる。
その後
Pixel 10の携帯電話が、このモデム実装を搭載して出荷される最初の製品である。Googleは他のプラットフォームも追随することを望んでいるが、ライブラリのサイズはより単純な組み込みシステムでは問題になる可能性があり、よりモジュール化されたライブラリなら解決できるかもしれない。Googleはこの取り組みを、ベースバンドにメモリ安全なコンポーネントをさらに追加するための基盤と見ている。報道では、脆弱性がどれだけ減少したかを測定した数値は示されていない。
出典をたどる
出典
- Google shoehorned Rust into Pixel 10 modem to make legacy code safer Ars Technica · arstechnica.com ·