InfoQ ホームページ ニュース マイクロソフトCTO、Rust Nation UKでRustの成功と課題、Rustへのコミットメントについて語る
マイクロソフトCTO、Rust Nation UKでRustの成功と課題、Rustへのコミットメントについて語る
2025年9月8日 読了時間 6 分
作者:
翻訳者
Microsoft Azureの最高技術責任者Mark Russinovich氏は、Rust Nation UKで講演し、Rustの採用を推進する要因について掘り下げ、マイクロソフト製品におけるRustの使用例を具体的に示し、生成AIを活用してC/C++からRustへの移行を加速するための継続的な取り組みを詳細に説明した。
Rustを推奨する最初の動機は、セキュリティ脆弱性の詳細なレビューから生まれた。Russinovich氏は次のように述べている。
この旅は実際には、CとC++で抱えていた問題を見直すことから始まります。マイクロソフトのセキュリティ対応センターが過去10年間にわたってすべてのマイクロソフト製品の脆弱性をトリアージした結果の要約を見てみると、脆弱性の70%は特にC++でのメモリの不安全な使用によるものであり、この傾向は脅威アクターがこの種の問題を狙っているために続いていることがわかります。また、インシデントの観点からも問題を引き起こしています。
他の主要なIT企業やセキュリティ組織も同様の結論を示している。Googleのセキュリティ研究チームであるProject Zeroは、年間58件の実際に悪用されたゼロデイ攻撃のうち、39件、つまり67%がメモリ破損の脆弱性であると報告している。メモリ破損の脆弱性は過去数十年間にわたりソフトウェア攻撃の標準であり、依然として攻撃者が成功を収める方法である。Mozillaも数年前に、Firefoxのスタイルコンポーネントで特定されたセキュリティバグの74%がRustでこのコンポーネントを書いた場合に回避できたと推定している。実際、Rustの言語の創設者であるGraydon Hoare氏は、2010年のMozilla Annual SummitでのRustに関する最初期のプレゼンテーションの1つで、C++はほぼすべての面で安全でなく、所有権ポリシーもなく、並行性制御もまったくなく、const
定数値を一定に保つことすらできないと主張していた。
マイクロソフトの「Secure Future Initiative」は、Russinovich氏が2つの国家主体による侵害に関連付けているもので、メモリセーフ言語の使用を拡大することを約束している。マイクロソフトは最近、Rust Foundationに100万ドルを寄付し、Rust言語とプロジェクトのさまざまな重要な優先事項をサポートしている。
Russinovich氏はさらに、マイクロソフト製品におけるRustの使用例を詳細に説明した。Windowsでは、Rustはセキュリティクリティカルなソフトウェアで使用されている。これには、ファームウェア開発(Project Mu)、カーネルコンポーネント、暗号ライブラリ(例:rustls symcryptサポート)、および補助コンポーネント(例:DirectWrite Core)が含まれる。
Officeでは、Rustは一部のパフォーマンスクリティカルな領域で使用されている。CosmosDBおよびPostgreSQLで顧客に提供されるOfficeのセマンティック検索アルゴリズムのRust実装は、C++バージョンよりもパフォーマンスが高く、メモリ効率が良いことが証明され、大規模なベクトル検索において大きなメリットをもたらした。
Azureでは、C++で新たなシステムコードを書かないという指令に従い、RustがいくつかのAzure関連ソフトウェアで使用されている。Caliptraは、安全なクラウドサーバーファームウェアのための業界連携プロジェクトである。主要なファームウェアコンポーネントは完全にRustで書かれており、オープンソース化されている。Azure Integrated HSMは、2025年からすべての新しいサーバーに展開される新しい社内セキュリティチップである。ファームウェアとゲストライブラリは、暗号鍵の最高のセキュリティ基準を確保するためにRustで書かれている。Russinovich氏はまた、Azure Boostエージェント、Hyper-V(マイクロソフトのハイパーバイザー)、OpenVMM(最近オープンソース化されたモジュラーでクロスプラットフォームの仮想マシンモニター)、およびHyperlightが部分的または完全にRustで書かれていることを言及した。
マイクロソフトの開発者からのフィードバックはおおむね肯定的であるが、否定的な意見も含まれている。肯定的な面では、Rustコードがコンパイルされると、一般的に期待通りに動作し、反復が速くなると開発者に好まれている。開発の摩擦が減少し、テストを書く意欲が高まる。開発者はメモリ管理の落とし穴に対してより意識的になる。RustエコシステムとCargoは依存関係管理において評価されている。パフォーマンスの向上がしばしば観察される(ただし、常に主要な目標ではない)。データ競合に関連する並行性バグが減少する。メモリ安全に関連する脆弱性が大幅に減少する。
否定的な面では、C++との相互運用が依然として困難であると述べられている。Rustの初期の学習曲線は急であると認識されている。動的リンクが課題である。一部の非安定化されたRust機能への依存が懸念されている。Cargoを大規模な企業ビルドシステムと統合するには努力が必要である。Foreign Function Interface(FFI)は、Rustでも安全に実装するのが難しく、ツールは他の言語と比較してまだ遅れている。
Russinovich氏はさらに、C/C++のレガシーコードをRustに移行するためのマイクロソフトの取り組みを説明した。1つの分野は、Cの形式検証技術を使用して安全なRustにトランスパイルする検証済み暗号ライブラリである(Compiling C to Safe Rust、Formalizedを参照)。マイクロソフトはまた、大規模言語モデルを使用して自動コード翻訳を探求している。
Russinovich氏は、マイクロソフト全体でのRustへの強いコミットメントを再確認し、Rustの成熟度と採用が進んでいることを強調して締めくくった。
人々は、Rustよりもさらに良い新しい言語があると言ってくるでしょう。それはRustよりも使いやすいと言いますが、私はそれがいつ準備が整うのかと尋ねます。なぜなら、私たちはRustに10年以上取り組んでおり、ようやく準備が整ったからです。言語が成熟し、ツールが成熟するには長い時間がかかります。そして、Rustのツールチェーンの成熟もまだ完全には終わっていません。この時点でRustと同じくらい優れたものを破壊しようとする人は非常に高い壁を登る必要があります。だから、Rustがすぐに何かに取って代わられるとは思いません。私たちはRustを100%支持しています。
読者は、YouTubeで講演の全編を見ることを強くお勧めする。豊富で価値のある例、技術的な説明、およびデモが含まれている。
Rust Nation UKは、Rust言語とコミュニティに特化したマルチトラックのカンファレンスである。カンファレンスは、すべてのレベルの開発者向けにキュレーションされたワークショップ、講演、およびチュートリアルを特徴としている。カンファレンスは毎年The Breweryで開催される。
-
関連記事
-
関連スポンサーコンテンツ
特集コンテンツ一覧
InfoQ ニュースレター
毎週火曜日に前週のまとめコンテンツをお送りいたします。(日本語版は不定期リリース)25万人のシニアな開発者コミュニティーにぜひご参加ください。 サンプルを見る