Google、ChromeのバイナリにRustコードを含める計画を明らかに – 開発のスピードアップとセキュリティ向上が見込める

masapoco
投稿日 2023年1月13日 9:34
rust logo

Googleは、同社のビルドシステムにプロダクションRustツールチェーンを導入する作業を開始し、年内にChromeのバイナリにRustのコードを含める計画である事を明らかにした。

なぜ、ChromiumにRustを搭載する事にしたのか?これについて、ChromeセキュリティチームのDana Jansens氏は以下のように説明する。

RustをChromiumに取り込む目的は、よりシンプル(IPCなし)で安全(全体的に複雑でないC++、サンドボックスでもメモリ安全性のバグなし)な方法で2の法則を満たし、開発のスピードアップ(書くべきコードの削減、設計ドキュメントの削減、セキュリティレビュー削減)とChromeのセキュリティ向上(メモリ安全性のバグがないコード行数の増加、コードのバグ密度の減少)を実現させることです。そして、この目標に向かって、サードパーティのRustライブラリを利用することができると考えています。

Rustは、”unsafe“と書かれていない場合、Chromiumで確認された深刻なセキュリティバグの70%を占めるメモリ安全性の欠陥を回避することができるという。Rustは、コードの安全性を保証するものではないが、潜在的な欠陥の数を大幅に減らすことができるのだ。

Rustを用いることの有用性について、Googleは以前から認識しており、Rustの採用によってAndroidのメモリ脆弱性の低減にも繋がっているようだ。

Jansens氏は、Rustが成熟し、独自の財団を設立するに値するだけの外部支援を集めるまで、その開発を支援したMozillaに「Mozillaのシステムソフトウェア業界への多大な貢献に感謝します。」と、謝辞を述べている。

Chromiumの基盤であるRustとC++は、cxx、autocxx bindgen、cbindgen、diplomat、crubitといったツールでやり取りできると、Jansens氏は説明する。これらのツールは、RustのコードからC++のコードを呼び出したり、その逆をしたりする安全な方法を提供する。しかし、2つの言語間の相互運用性には、それぞれの設計の違いから限界がある。

「例えば、Rustは、ライフタイム(推論または明示的に記述)と排他的変異性という2つの入力に依存する静的解析によって、時間的メモリ安全性を保証しています。後者は、ChromiumのC++の大半が書かれている方法と互換性がありません。」と、Jansens氏は説明する。

Jansens氏は、RustとC++は異なるルールで動いているため、相互運用性が簡単に損なわれる可能性があると指摘した。だからこそ、Googleは慎重なアプローチを取っているのだ。

C++からRustへの単一方向のみの相互運用をサポートします。ChromiumはC++で書かれており、スタックフレームの大部分は、main()からexit()まで、C++のコードであるため、この方向を選択しました。相互運用を一つの方向に限定することで、依存関係ツリーの形状を制御することができます。RustはC++に依存しないので、依存性注入を除いて、C++の型や関数を知ることはできません。このように、Rustは任意のC++コードに着地することはできず、C++からAPIを介して渡される関数にのみ着地することができます。

そして今のところ、ChromiumがRustに触れるのは、サードパーティのライブラリを通じてのみである。

とはいえ、GoogleのRustへの取り組みが深まることで、Rustパッケージのエコシステムが大幅に充実することが期待できる。同社は、C++とRustの双方向の相互運用性を高めるcrubitなどのツールを開発・保守している。

Googleは、すでにAndroidのエコシステムにRustを導入している。Microsoft AzureのCTOであるMark Russinovich氏は、新規プロジェクトにおいてC++ではなくRustを使用するよう呼びかけている。Linuxカーネルは、Rustのサポートを追加した。そして、自分たちがコントロールできない技術を嫌うAppleでさえも、Rustを使用している。


Source



この記事が面白かったら是非シェアをお願いします!


  • Windowsキーの画像
    次の記事

    Windows 12では、セキュリティ向上のために「Microsoftサポート診断ツール」が廃止される模様

    2023年1月13日 10:22
  • 前の記事

    重力波とは何か?

    2023年1月13日 8:49
    146978main gwave lg5

スポンサーリンク


この記事を書いた人
masapoco

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

おすすめ記事

  • google logo image

    Googleが非営利団体を対象に2000万ドルの資金を提供し生成AI活用を支援

  • Pixel 8 in Rose.max 936x936.format webp

    Google、方針を転換しPixel 8にもGemini NanoによるオンデバイスAI機能を搭載へ

  • newroom quantum hardware.rendition.intel .web .1920.1080

    量子コンピュータが実用化されるのはいつになるだろうか

  • google chrome arm hero

    Google、“遥かに高速な”ArmネイティブなChromeブラウザを正式リリース

  • FireShot Capture 061 Search Labs labs.google.com

    GoogleのAI統合検索がマルウェアサイトにユーザーを導いている

今読まれている記事