やっぱり安全を求めるなら「C」や「C++」ではなく「Rust」 Androidが取り組みを紹介セキュリティニュースアラート

GoogleのAndroidチームはファームウェアのセキュリティを高めるためにメモリセーフなプログラミング言語であるRustの導入を紹介した。具体的にはどう活用しているのだろうか。

» 2024年09月10日 08時00分 公開
[後藤大地有限会社オングス]

この記事は会員限定です。会員登録すると全てご覧いただけます。

 GoogleのAndroidチームは2024年9月4日(現地時間)、公式のセキュリティブログで、「Android」におけるファームウェアの安全性向上に関する取り組みを発表した。メモリセーフなプログラミング言語である「Rust」をファームウェアに導入することで脆弱(ぜいじゃく)性を軽減できると解説している。

Rustでファームウェアの安全性をどう向上させるか? Androidの取り組み

 Androidは設計段階から安全性が重視されており、リリースごとにOSの悪用が困難になるよう工夫されている。その一環としてAndroidのファームウェアにRustが段階的に導入されており、メモリ安全性を向上させている。特に新しいコードやセキュリティリスクが高いコードに優先してRustを採用することで、脆弱性の削減が図られている。

 従来のファームウェアは「C」や「C++」といったプログラミング言語で記述されることが多く、その脆弱性が悪意のある攻撃者に悪用されるリスクがあるという。また、最近のスマートフォンには多くのコプロセッサが搭載されており、それぞれが独自のファームウェアを実行している。それらのファームウェアの中にはレガシーコードが含まれており、セキュリティ上の問題となっている。RustはCやC++に代わる安全なプログラミング言語として注目されており、Androidチームは導入を推進している。

 具体的なアプローチとしては、まず最もリスクの高い部分からRustを適用し、C関数をRust関数に置き換える手法を駆使して安全性を強化することが挙げられている。Rustがベアメタル環境でどのように動作するかについても言及しており、ファームウェアの既存コードに対しても適切な対応が可能であることが示されている。さらにRustの導入に当たっては、適切なオープンソースクレート(Rustライブラリー)を選定することが推奨されている。

 Rustをファームウェアに導入することでコードの安全性が確保され、既存の脆弱性を低減できる。RustとCには相互運用性があり、既存のコードやAPIを大きく変更することなく安全性の強化が可能であることが強調されている。

Copyright © ITmedia, Inc. All Rights Reserved.