
スマートフォンの通信を支えるモデムは、長年積み重ねられたレガシーコードによって構成されており、セキュリティ面で大きな課題を抱えています。こうした中、GoogleはPixel 10シリーズで、新たなアプローチによる防御強化を実現しました。
モデムは“ブラックボックス”、攻撃対象としてのリスクも
スマートフォンのモデム(ベースバンド)は、C/C++を中心とした古いコードで動作しており、その内部は外部からは見えない“ブラックボックス”に近い存在です。長年の技術的蓄積により複雑化しており、メモリ管理の難しさから脆弱性が生まれやすい構造になっています。
実際、GoogleのProject Zeroは過去に、インターネット経由でPixel端末のモデムに対するリモートコード実行が可能な脆弱性を確認しており、セキュリティ上の懸念が指摘されてきました。
Rustを一部導入し“安全な領域”を追加
今回Googleが採用したのは、モデム全体の書き換えではなく、特定機能へのRust導入です。対象となったのはDNSパーサー部分で、通信において重要な役割を担う領域です。
DNSは外部からの不正データを処理する必要があるため、攻撃の起点になりやすいポイントですが、ここにメモリ安全性の高いRustを導入することでリスクを抑えています。
なぜRustなのか:速度と安全性の両立
Rustは、メモリ管理をコンパイル時に厳密にチェックする仕組み(借用チェッカー)を持つ言語で、実行時のオーバーヘッドがほぼありません。ガベージコレクション方式を採用する言語より高速で、リアルタイム性が求められるモデム処理にも適しています。
一方で、既存のモデムコードをすべて置き換えるのは現実的ではなく、何十MBにも及ぶレガシー資産や各社の知的財産の問題もあり、部分的な導入が現実的な解となっています。
DNS処理にRustライブラリを統合
GoogleはRust製のオープンソースDNSライブラリ「hickory-proto」を採用しました。このライブラリは特別に軽量化されているわけではありませんが、信頼性と実績を重視して選ばれています。
今回の実装では標準ライブラリ依存を削減し、モデム環境に適した形でコンパイル。その結果、約371KB分のRustコードが追加され、既存のC/C++モデムに統合されました。
この構成により、悪意あるDNSパケットを利用したメモリ破壊攻撃などはRustの安全機構で遮断される仕組みになっています。
Pixel 10が示す“次世代モデム設計”
この新しいモデム構成はPixel 10シリーズから実装されており、Googleにとってはモバイル通信基盤の安全性を高める重要な一歩となります。
同社は今後、より多くのモデム機能にRustのようなメモリ安全言語を取り入れることで、ベースバンド全体のセキュリティ改善を進める方針です。ただし、軽量な組み込み環境では今回の手法がそのまま使えない可能性もあり、今後の最適化が課題となりそうです。

