Googleは12月1日(米国時間)、「Google Online Security Blog: Memory Safe Languages in Android 13」において、Androidでメモリの安全性にまつわる脆弱性が大幅に減り、それに伴い脆弱性の重大性も低減していると報告した。10年以上にわたり、メモリの安全性にまつわる脆弱性は脆弱性の65%以上を占めていたとされており、改善が伝えられている。

  • Google Online Security Blog: Memory Safe Languages in Android 13

    Google Online Security Blog: Memory Safe Languages in Android 13

GoogleおよびAlphabetの脆弱性報奨プログラム(VRP: Vulnerability Reward Program)を通じて報告された重要また重要度の高い脆弱性および内部で報告された脆弱性を含む、Androidのセキュリティ情報で報告された脆弱性の件数を確認したところ、メモリの安全性にまつわる脆弱性が過去数年のリリースで大幅に減少していることが明らかとなった。2019年から2022年にかけて、メモリ安全性の脆弱性の年間件数は223件から85件に減少していることが調査によってわかったとされている。

  • Memory Safety vulnerabilities Per Year

    Memory Safety vulnerabilities Per Year

この減少は、プログラミング言語の利用がメモリセーフではない言語からシフトしていることと一致すると説明されている。Android 13は、新たに追加されたコードの大半がメモリセーフな言語である最初のAndroidリリースとのことだ。メモリセーフではないコードの量が減少するにつれ、メモリ安全性の脆弱性の数も減少しており、2019年から2022年にかけてAndroidの全脆弱性の76%から35%に減少していたことが確認されている。

  • New Code By Language in Android 13

    New Code By Language in Android 13

  • Memory unsafe code and Memory safely vulnerabilities

    Memory unsafe code and Memory safely vulnerabilities

Android 12では、C/C++に代わるメモリセーフなプログラミング言語としてRustのサポートが発表されている。Android 13では、新しいネイティブコード(C/C++/Rust)の約21%がRustになっているとされており、現在までのところ、Rustコードで発見されたメモリ安全性の脆弱性はゼロと報告されている。この数字が永遠にゼロであり続けるとは考えられていないが、Androidの最も一般的な脆弱性の原因を防ぐという、Rustの本来の目的が達成されていると分析されている。

  • New Native Code

    New Native Code

過去の脆弱性の多くはAndroidのC/C++コンポーネントとされており、Rustを使用することですでに何百もの脆弱性が実運用に至るのを防いでいる可能性があると考えられている。