Google によると、Android は Rust で覆われた方が動作が向上します • The Register

Google は 2019 年以来、Rust プログラミング言語で記述されたコードを Android オペレーティング システムに統合しており、その努力は脆弱性の減少という形で報われています。

Chrome と Android の重大度が高いまたは重大なバグの脆弱性の 65% 以上をメモリの安全性に関するバグ (範囲外の読み取りと書き込み、解放後の使用など) が占めており、この数値は他のベンダーのソフトウェアでも同様です。 これらの欠陥を早期に発見しないと、セキュリティが低下し、ソフトウェア開発のコストが増加します。

しかし、Android が Rust の断片を収集してから 4 年が経過した後、その数字は減少しました。

Android のセキュリティ エンジニアである Jeffrey Vander Stoep 氏は、ブログ投稿で次のように述べています。

Vander Stoep 氏によると、この減少は、メモリの安全性を保証しないプログラミング言語 (メモリの安全性は保証されていませんが、それをサポートできる言語) から離れようとする動きと一致しているとのことです。

昨年の Android 12 以降、Rust は Android プラットフォーム言語になりました。 そして現在、Android 13 では、リリースに追加された新しいコードの大部分がメモリ セーフな言語 (Rust、Java、または Kotlin) で記述されていると、Vander Stoep 氏は述べています。

Android に導入されるメモリセーフでないコードが減少したことで、メモリの安全性の欠陥は、2019 年の Android の脆弱性の 76% から 2022 年には 35% に減少しました。これは、メモリの安全性のバグが脆弱性の過半数を占めていない最初の年です。

その他の脆弱性は長期的に安定しており、過去 4 年間で 1 か月あたり約 20 件の割合で発生しています。 重大な問題のほとんどはメモリの安全性の問題が原因であったため、表面化した脆弱性は深刻度が低いことが証明されています。

メモリ セーフ コードの利点を認識している大手テクノロジー企業は Google だけではありません。 Meta は Rust に感謝の意を表しています。 数か月前、Microsoft CTO の Mark Russinovich は、C/C++ を使用して新しいプロジェクトを開始するべきではなく、ガベージ コレクションのない言語が必要な場合は Rust をデプロイする必要があると宣言しました。

当時、C++ の作成者である Bjarne Stroustrup は、Russinovich のガイダンスに異議を唱え、型とメモリの安全性を ISO 標準 C++ で実現できることを指摘し、静的解析によって強化しました。 Stroustrup が考えるように、C++ の進化を支援することは、言語を非推奨にして安全でないコードを放置するよりも理にかなっています。

Vander Stoep 氏によると、Google はより安全な C/C++ コードを記述するためのツールへの投資を続けており、Android デバイス上の Scudo 強化アロケータ、HWASAN、GWP-ASAN、および KFENCE を指摘しています。 そして彼は、Google がファジングの使用を増やしていると言います。 しかし、このような対策がメモリ セーフ バグの減少に貢献している一方で、脆弱性の減少のほとんどはメモリ セーフ言語への移行によるものであると彼は主張しています。

Android 13 では、新しいネイティブ コードの約 21% が Rust で記述されています。 これには、Keystore2、新しい Ultra-wideband (UWB) スタック、DNS-over-HTTP3 などのコンポーネントで構成される Android オープン ソース プロジェクト (AOSP) の約 150 万行の Rust コードが含まれます。 C++.

そしてこれまでのところ、Rust は成果を上げてきました。 「これまでのところ、Android の Rust コードで発見されたメモリの安全性に関する脆弱性はゼロです」と、Vander Stoep 氏は述べています。

Rust Foundation のエグゼクティブ ディレクター兼 CEO である Rebecca Rumbul 氏は、次のように述べています。 登録簿. 「Rust が既存のプロジェクトや製品にますます統合されているのは当然のことです。Android での Rust について議論している Google の最近のブログでは、Rust のセキュリティ上の利点が強調されています。」

Rumbul 氏は、「これらのセキュリティ上の利点は、世界中の政策立案者によっても認識されており、ヨーロッパと北米の政府は、過去に経験したセキュリティ問題のいくつかに対するソリューションとして Rust を認識しています。」

米国国家安全保障局は最近、C++ のような言語が多くの柔軟性を提供できる一方で、必要なメモリ参照チェックを提供するためにプログラマーに依存していることを観察しました。

「ソフトウェア分析ツールはメモリ管理の問題の多くのインスタンスを検出でき、動作環境オプションもある程度の保護を提供できますが、メモリセーフなソフトウェア言語によって提供される固有の保護により、ほとんどのメモリ管理の問題を防止または軽減できます」と当局はガイダンスで述べています。 [PDF] 先月発行。 「NSA は、可能な限りメモリセーフな言語を使用することを推奨しています。」 ®

Leave a Comment

Your email address will not be published. Required fields are marked *