グーグル、Rust採用で「Android」のメモリーに関わる脆弱性が激減
今回は「グーグル、Rust採用で「Android」のメモリーに関わる脆弱性が激減」についてご紹介します。
関連ワード (セキュリティ等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
メモリー関連の不具合を減らすために、「Android」の新しいコードにRustを使用するというGoogleの判断は、成果を挙げているようだ。この数年で、Androidのメモリー安全性関連の脆弱性は半分以下になった。この成果が達成された時期は、GoogleがCやC++からメモリー安全性の高いプログラミング言語であるRustに切り替えた時期と一致する。
Androidに発見されたセキュリティホールの中で、最も件数が多かったカテゴリーがメモリー安全性関連の脆弱性でなかったのは2022年が初めであり、Googleは1年前に、「Android Open Source Project(AOSP)」で新しいコードのデフォルト言語をRustに切り替えている。
GoogleがAndroidに使用しているほかのメモリー安全性を備えた言語には、JavaやJava互換のKotlinがある。AOSPで主流の言語はまだCとC++だが、Android 13は、新しいコードの半分以上がメモリー安全性を備えた言語で書かれた最初のバージョンになった。GoogleがAOSPの言語にRustを採用したのは2021年4月のことで、現在では新規コードの約21%をRustが占めている。Linuxカーネルプロジェクトでも2022年に入り、C言語に次ぐ新たな公式言語として、Rustが採用された。
2019年にリリースされたAndroid 10にはメモリー安全性関連の脆弱性が223件見つかっているが、Android 13では85件しかない。
Android SecurityのソフトウェアエンジニアであるJeffrey Vander Stoep氏は、この期間に、Androidの全脆弱性に占めるメモリー安全性関連の脆弱性の割合は、76%から35%に減少したと述べている。また、メモリー安全性関連の脆弱性が減少したことで、リモートから悪用可能な重大なセキュリティホールの数も減った。
Vander Stoep氏は、この変化は「英雄的な行動」によるものではなく、ただ開発者が仕事に最適なツールを使ったことによって達成されたものだと述べている。Androidチームは、Rustの利用をステップアップしていく予定ではあるものの、システムプログラミングからCやC++を排除するつもりはないという。