Android 14 では、デバイスをメモリ安全性のバグから保護するための高度なメモリ保護機能が追加される可能性があります

click fraud protection

Android 14 には、互換性のあるデバイスのメモリ安全性のバグから保護できる「高度なメモリ保護」と呼ばれる新しいベータ機能が追加される可能性があります。

メモリの安全性に関するバグはソフトウェア開発において最も深刻なバグのひとつである傾向があるため、最近ではメモリの安全性が Google にとって重要な優先事項となっています。 実際、メモリ安全性の脆弱性は、Android の深刻な問題の大部分を占めていました。 2022 年までの脆弱性は、Google が Android の新しいネイティブの重要な部分を作成したときまで存在します。 のコード Rust プログラミング言語 C/C++ の代わりに。 Google は、Android のメモリ安全性の脆弱性を軽減するための他の手段のサポートに取り組んできました。そのうちの 1 つはメモリのタグ付けと呼ばれます。 サポートされているデバイスで実行中 アンドロイド14、この機能を切り替えることができる新しい「高度なメモリ保護」設定がある可能性があります。

メモリ タグ付け拡張機能 (MTE) は、メモリを保護する Arm v9 CPU の必須のハードウェア機能です。 メモリに関する詳細情報を提供することにより、安全性に関するバグ (実行時のパフォーマンス コストにわずかなオーバーヘッドを伴う) を解決します。 違反。 Googleの説明によると、「大まかに言うと、MTE は各メモリ割り当て/割り当て解除に追加のメタデータをタグ付けします。 タグをメモリ位置に割り当て、そのメモリ位置を参照するポインタにタグを関連付けることができます。 実行時に、CPU はロードとストアのたびにポインタとメタデータ タグが一致することを確認します。」

Google は現在、いくつかのリリースで Android ソフトウェア スタック全体で MTE をサポートするよう取り組んでいます。 Android 12 では、Android のヒープ アロケーターである scudo が、互換性のあるデバイス上で 3 つの MTE 動作モード (同期モード、非同期モード、非対称モード) のサポートを追加しました。 Google はまた、ビルド時、またはシステム プロパティや環境変数を通じて、システム プロセスに対して MTE を有効にすることも可能にしました。 アプリケーションは、

アンドロイド: memtagMode 属性。 Android のプロセスに対して MTE が有効になっている場合、解放後の使用やバッファ オーバーフローなどのメモリ安全性のバグのクラス全体が、サイレント メモリ破損ではなくクラッシュを引き起こします。

アンドロイド13, Google は、要求された MTE 動作モードをブートローダーに伝えるためのユーザー空間用の ABI を追加しました。 これを使用すると、出荷時にはデフォルトで MTE が有効になっていない互換性のあるデバイスで MTE を有効にすることができます。 あるいは、それを有効にしている互換性のあるデバイスでそれを無効にするために使用することもできます。 デフォルト。 Android 13 で ro.arm64.memtag.bootctl_supported システム プロパティを「true」に設定すると、ブートローダーが ABI をサポートし、開発者向けオプション メニューにボタンが表示され、ユーザーが次回の起動時に MTE を有効にできるようになります。 リブート。 これは、MTE を有効にしてアプリの動作をテストしたい開発者を対象としていました。

ただし、Android 14 では、互換性のあるデバイスで MTE を有効にするには、開発者向けオプションに飛び込む必要がなくなる可能性があります。 デバイスが MTE サポートを備えた Arm v8.5+ CPU を備えている場合、デバイス実装は、要求された MTE 動作モードをブートローダーに通信するための ABI をサポートします。 システム プロパティ「ro.arm64.memtag.bootctl_settings_toggle」が true に設定されている場合、新しい「高度なメモリ保護」ページが [設定] > [セキュリティとプライバシー] > [その他のセキュリティ] に表示される場合があります。 設定。 このページは、新しいツールからも起動できます。 ACTION_ADVANCED_MEMORY_PROTECTION_SETTINGS 意図的なアクション。

特に、Tensor G2 チップセットは、 グーグルピクセル7 シリーズは Arm v8.2 CPU コアを使用しているため、MTE をサポートしていません。 今後の Google Pixel 8 シリーズが、他の多くの主力 Android デバイスと同様に新しい Arm v9 CPU コアを使用する場合、MTE をサポートできるハードウェアが搭載されることになります。 ただし、この「高度なメモリ保護」機能が実際に安定版リリースに組み込まれるかどうかはまだわかりません。

セキュリティ研究者に感謝します @flawedworlddev この記事に関するご協力に感謝します。