📖
近年、Google は Android オペレーティング システムのセキュリティの向上に取り組んでいます。この点で採用された対策の 1 つは、メモリのセキュリティを保証するプログラミング言語の採用であり、 Rust がこの変更の主役です。
データによれば、間違いなく Android はこの変更から恩恵を受けているようです。おそらく、 Linux カーネル開発者は、 RustとC/C++。
メモリセキュリティの重要性
Android のセキュリティ脆弱性は、多くのオペレーティング システムと同様、これまでメモリ セキュリティに関連する欠陥 (バッファ オーバーフローなど) によって占められてきました。
これらのエラーは、 C や C++ などのプログラミング言語で特によく見られ、開発者はメモリを手動で管理する必要があります (厳密に行わないとエラーが発生しやすいプロセスです)。
Google によると、 2019 年に Android の脆弱性 (223 件) の 76% はメモリ セキュリティの問題に関連していました (業界平均は 70%)。
しかし、主に Rust のようなメモリセーフなプログラミング言語の採用のおかげで、2024 年末までにその数は 24% (合計 50 件の脆弱性) に劇的に減少すると予想されています。
脆弱性の軽減における Rust の役割
Google が強調している主な利点の 1 つは、C++ の代わりに Rust を使用する場合の変更のロールバック率が低いことです。 Android チームによると、Rust での変更のロールバック率は、C++ で行われた変更の半分以下です。
これは、 Rust を使用すると、コードの変更を元に戻す必要がある予期しないエラーが発生する頻度が低くなり、コードがデプロイされる前にクラッシュを防ぐ効果があることを示しています。

新しい戦略: 「安全なコーディング」
Rust の採用は、Google が「セーフ コーディング」と呼ぶ広範な戦略の一部であり、パッチやバグ軽減などの事後対応技術のみに依存するのではなく、そもそも脆弱性の導入を回避することを優先します。
Google のセキュリティ戦略のもう 1 つの重要な側面は、「脆弱性の減衰」という概念です。コードが古くなって成熟するにつれて、脆弱性の密度は減少する傾向があります。研究によると、 5 年前のコードは新しく書かれたコードよりも 3.4 ~ 7.4 倍脆弱性が低いことがわかっています。この現象は主に、脆弱性が新しいコードまたは最近変更されたコードに集中する傾向があるという事実によるものです。
このようにして、古いコードの脆弱性は自然に減衰する傾向にありますが、Rust のような言語で書かれた新しいコードは新たなバグの出現を防ぎます。
経由 | グーグル
