プログラミング言語: 新しいプロジェクトで C と C++ を使用するのをやめる時が来た、と Microsoft Azure CTO は言います

Degreez /ゲッティイメージズ

Microsoft Azure の最高技術責任者である Mark Russinovich 氏は、セキュリティと信頼性の懸念から、開発者は新しいプロジェクトで C または C++ プログラミング言語を使用することを避け、代わりに Rust を使用する必要があると述べています。

2020 年にバージョン 1.0 になり、Mozilla で生まれた Rust は、現在 Android オープン ソース プロジェクト (AOSP)、Meta、Amazon Web Services、Microsoft で Windows と Azure の一部、Linux カーネルで使用されています。そして他の多くの場所で。

エンジニアは、プログラムのメモリを手動で管理する必要性を減らし、「メモリが安全でない」C または C++ (Chrome を含む) で書かれた大きなプロジェクトに負担をかけるメモリ関連のセキュリティ上の欠陥のリスクを削減する、その「メモリの安全性の保証」を高く評価しています。 Android、Linux カーネル、および Windows。

また: 次世代のアプリを構築するための Microsoft の壮大なビジョンを理解する

Microsoft は、主に Windows がほとんど C および C++ で記述されているため、過去 12 年間のパッチの 70% がメモリの安全性に関するバグに対して修正されていることを明らかにした後、2019 年にこの時点で帰宅しました。 Google の Chrome チームは 2020 年に独自の調査結果を検討し、Chrome コードベースのすべての重大なセキュリティ バグの 70% がメモリ管理と安全性のバグであることを明らかにしました。 主に C++ で書かれています。

「何か変なことが起きない限り、 [Rust] Rust が Linux カーネルの C に次ぐ第 2 の言語になるという長年の議論に終止符を打ったようです。

Rust の使用に関する Azure CTO の唯一の修飾子は、非ガベージ コレクション (GC) 言語を必要とする新しいプロジェクトでは、C および C+ よりも望ましいということです。 GC エンジンはメモリ管理を処理します。 Google の Go はガベージ コレクション言語ですが、Rust プロジェクトは Rust はそうではないことを推進しています。 AWS エンジニアは、GC なしで提供される効率性から Rust over Go を好みます。

「言語について言えば、C/C++ で新しいプロジェクトを開始するのをやめ、非 GC 言語が必要なシナリオでは Rust を使用する時が来ました。セキュリティと信頼性のために、業界はそれらの言語を非推奨として宣言する必要があります。 」とルシノビッチは書いている。

また: 最も人気のあるプログラミング言語とそれらを学ぶ場所

Rust は、特にシステムレベルのプログラミング、インフラストラクチャ プロジェクト、組み込みソフトウェア開発などで、C および C++ の有望な代替手段となりますが、すべてのプロジェクトではありません。

さすが、ルシノビッチ 後で追加: 「膨大な量の C/C++ があり、何十年も (またはそれ以上) 維持され、進化します。昨夜、私が書いた約 85,000 行の Sysinternals C/C++ コードに追加して、Handle の機能をコーディングしました。そうは言っても、新しいツールについてはRustに偏っています。」

Rust は確かに前進しており、間もなく Linux カーネルに組み込まれる可能性があります。

Linux ディストリビューションである AOSP は、2021 年 4 月に新しいコードで Rust の使用を開始しましたが、C/C++ コード ベースはそのまま残しました。 その月、AOSP は、Linux カーネルの新しいコードのオプションとして Rust を求める声も支持しました。

また: Windows 11 22H2: これらは大きな新しいセキュリティ機能です

Meta は最近、Rust を C++ と並んでサポートされる主要なサーバー側言語として宣伝しました。 AWS は、インフラストラクチャ ソフトウェアの Rust に投資しています。 Azure のエンジニアは、これを使用して、Kubernetes で WebAssembly モジュールをテストするためのクラウド ツールを構築しました。 一方、Chrome チームは、Rust に関心があるにもかかわらず、当面は C++ に縛られています。 単純に Rust に切り替えるだけでは、何年もの間、かなりの割合のセキュリティ脆弱性を排除することはできない、と彼らは述べています。 代わりに、Chrome は C++ コード ベースにメモリの安全性をもたらします。

また、Rust は、開発者が C または C++ でコーディングするときに実践するすべての悪い習慣に対する特効薬と見なされるべきではありません。

グレイノイズ・インテリジェンスのサイバーセキュリティ研究者であり、以前ラピッドセブンにいたボブ・ルディスは、 了解しました 開発者は、同じ悪いセキュリティ習慣を Rust に持ち込むことができます。

「「本物の」C/C++ プロジェクトを安全なものにするために必要なもの (時間/お金/人/サービス) を考えると、私は同意する傾向があります。 [with Russinovich]. そうは言っても、同じ悪い慣行を Rust に持ち込むことは可能です」と彼は書いています。

ZDNet の Steven J. Vaughan-Nichols 広く同意 その気持ちで:

「他の人が言ったように、C や C++ で「安全に」書くことはできますが、どの方言を使用しても Rust よりもはるかに困難です。注意してください、Rust でもセキュリティを損なう可能性がありますが、それは回避されます。古い記憶の問題がたくさんあります。」

Leave a Comment

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