ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

PHPz
リリース: 2024-03-01 22:16:11
転載
353 人が閲覧しました

最近、ホワイトハウス国家サイバー局長室 (ONCD) は 19 ページの報告書の中で重要な点を指摘しました: 開発者は Rust 言語などのメモリセーフなプログラミング言語を使用する必要があります。レポートでは、メモリセーフなプログラミング言語を選択することが、安全な設計でソフトウェアを開発するための重要な方法であると指摘しています。

ONCD はまた、報告書の推奨事項はテクノロジー企業、学術界、その他の機関と協力して開発されており、以下を含む多くの著名なテクノロジー企業の支援を受けていると指摘しました。 HP、アクセンチュア、パランティア。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

レポートアドレス: https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical- Report.pdf

実際、米国の公的機関がCとCの放棄を要求したのはこれが初めてではない。

昨年 12 月、米国サイバーセキュリティ・インフラストラクチャ庁 (CISA) は他の機関と共同で「メモリ セキュリティ ロードマップ ガイダンス」を発表し、C と C がメモリと互換性のない安全なプログラミング言語であると指摘しました。ソフトウェア開発者は、Rust や Java など、他のメモリセーフなプログラミング言語を採用する必要があることを強調します。このガイドの目的は、ソフトウェア開発におけるメモリの安全性の問題に対する認識を高め、潜在的なセキュリティ脆弱性を軽減するために、より信頼性の高いプログラミング言語の採用を奨励することです。 CISA は、悪意のある攻撃やデータ漏洩のリスクを軽減するのに役立つため、メモリセーフなプログラミング言語を採用することの重要性を特に強調しています。この動きは、より安全で信頼性の高い方向へのソフトウェア開発業界の発展を促進することも目的としています。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

出典: https://www. cisa.gov /sites/default/files/2023-12/The-Case-for-Memory-Safe-Roadmaps-508c.pdf

C と C を放棄し、Rust に切り替えます。メモリの安全性のためだけに

メモリの安全性により、バグや問題を引き起こす可能性のあるバッファ オーバーフローやダングリング ポインタなどの問題が防止されるため、メモリ安全なプログラミング言語の使用を強調することが重要です。脆弱性。したがって、メモリの安全性の概念を理解することが重要です。

#記憶の不安はどれほど有害ですか? 2019 年、Microsoft のセキュリティ エンジニアは、セキュリティ問題の約 70% がメモリの安全性の問題によって引き起こされていると報告しました。 2020 年に、Google は Chromium ブラウザで発見されたバグについて同様のデータを報告しました。

プログラミング言語の場合、C と C の両方で、境界チェックなしで直接メモリ アドレスを使用した任意のポインタ演算が可能です。報告書によると、専門家らはCやCに代表される一部のプログラミング言語がメモリ安全関連の機能を持たず、一部の重要なシステムに広く普及していることを発見したという。したがって、C および C は「安全でない」プログラミング言語とみなされます。

C および C に対応する Rust は、メモリセーフなプログラミング言語の古典的な例とみなされます。 Rust は、安全性、特に同時実行の安全性に重点を置いたシステム プログラミング言語です。関数型、命令型、汎用プログラミングパラダイムなどのマルチパラダイム言語をサポートしており、TensorFlow などの深層学習フレームワークでも優れたフロントエンド言語として使用されています。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

プログラマーの質問と回答の Web サイト Stack Overflow の 2021 年の年次開発者調査レポートでは、Rust 言語が開発者の間で最も人気のあるプログラミング言語になりました。 Rust がシステム プログラミングの世界で人気がある理由の 1 つは、メモリ関連のセキュリティ脆弱性の排除に役立つことです。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

Rust のメモリ安全機能は、業界によって長い間検証されてきました。 2021 年 4 月、Google は Android が Rust 言語のサポートを追加すると発表しました。その理由は、C および C のメモリ安全性のバグは解決するのが最も困難なバグの原因であり、Google はそのようなバグを検出、修正、軽減し、多数のバグの侵入を効果的に防ぐために多大な労力とリソースを投資してきました。 Android のバージョン。

しかし、これらの取り組みにもかかわらず、メモリ安全性のバグは依然として安定性の問題の主な原因であり、Android の重大なセキュリティ脆弱性の約 70% を慢性的に占めています。したがって、Google はオペレーティング システム開発者向けに 3 番目のオプションである Rust を追加しました。

ワシントン大学のコンピュータ サイエンス教授であるダン グロスマン氏は、何十年も前から誰もが C と C の危険性を理解していましたが、今ようやくメモリセーフ プログラミング言語を推進する良い時期が来たと述べました。やっぱり実用的で大人っぽいものがあるんですね。

彼はまた、特に組み込みシステムにおいて、C と C の排除は一夜にして達成されるものではないと考えています。ただし、Rust などの他のプログラミング言語がシステム ソフトウェアでより広く使用されるようになるにつれて、このプロセスは加速すると予想されます。

CとCに対する公式の態度に関しては、購入しない人が増えているようです。

最近の C はメモリセーフであり、すべてのオペレーティング システムは C または C でプログラムされていると考える人もいます。また、C はメモリ安全ではないが、最新の C にはより多くの「ガードレール」があり、低コスト、または無料であると信じている人もいます。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

メモリの安全性を考慮して「厳選」された Rust については、そのレベルが不十分であると感じる人もいます。サポートはそれほど高くなく、政府システムに統合する価値もありません。

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

Rust に加えて、他のメモリセーフなプログラミング言語は何ですか? 2022 年、米国国家安全保障局 (NSA) は、メモリ安全とみなされるプログラミング言語の詳細を記載したサイバーセキュリティ情報シートを公開しました。

Rust

  • Go
  • ##C
  • #Java
  • Swift
  • JavaScript
  • Ruby
  • Python
  • Delphi/Object Pascal
  • Ada
  • 上記のプログラミング言語はどのくらい人気がありますか? 2024年2月のプログラミング言語人気指数TIOBEによると、プログラミングではPythonが1位、C#が5位、Javaが4位、JavaScriptが6位、Goが8位、Delphi/Object Pascalが12位となり、Swiftが16位、Rustが1位となった。 18位、Rubyはかろうじて20位でした。

ご覧のとおり、NSA によって選択された言語のほとんどはトップ 20 に入っていますが、Ada だけがトップ 10 に入っていません。上位 5 言語のみです。十。

#出典: https://www.tiobe.com/tiobe-index/

ホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」された

##レポートでは、ソフトウェア セキュリティのより適切な測定も求めています。 ONCD は次のように考えています。指標が改善されれば、テクノロジー プロバイダーは脆弱性が問題になる前に、より適切な計画を立て、予測し、軽減できるようになります。

報告書では、NASAが「成功した失敗」と分類したアポロ13号のミッションについてもレビューしています。ミッション自体は壊滅的な失敗に見舞われ、3人の宇宙飛行士は安全に帰還するために応急修理を行い、問題の一部を軽減した。報告書には次のように記載されています: メモリ セキュリティ コードは宇宙計画にとって非常に重要です。人間による宇宙探査では、将来の事故を避けるために、メモリセーフな言語、つまりカーネルにできるだけ近い言語を使用する必要があります。

世界のデジタル化が進むにつれて、より優れたコーディングがますます重要になり、悪いコードが悪用される可能性があります。

Rust 言語

Rust 言語は、Mozilla が主導する汎用のコンパイル済みプログラミング言語です。設計基準は「安全性、同時実行性、実用性」であり、関数型、同時実行型、手続き型、およびオブジェクト指向のプログラミング スタイルをサポートします。

Rust 言語の最も顕著な利点は、パフォーマンスをさらに低下させることなくメモリの安全性を保証できることです。従来のシステムレベルプログラミング言語 (C/C++) の開発プロセスでは、ヌルポインタ、ワイルドポインタ、メモリリーク、メモリ範囲外、セグメンテーション違反など、さまざまなメモリエラーに起因するクラッシュやバグが頻繁に発生します。データの競合と反復、デバイスの障害など。

メモリの問題は、プログラムの安定性とセキュリティに影響を与える隠れた大きな危険であり、開発効率に影響を与える大きな要因です。 2 つの大手テクノロジー企業である Google と Microsoft は、自社の重要な製品におけるプログラム セキュリティ問題の 70% はメモリの問題によって引き起こされていると述べており、両巨人はメモリの安全性の問題を解決するために Rust 言語を使用することを検討しています。

さらに、Rust は優れたクロスプラットフォーム機能を備え、クロスコンパイルをサポートし、組み込み環境にも優しいです。

ただし、Rust 言語には厄介な欠点もいくつかあります。

まず、Rust には「ライフタイム」などの特殊な構文があるため、初心者には少しとっつきにくいです。それに比べて、Python や Java などの言語はシンプルで習得が簡単です。ただし、すでに C 言語を知っている場合は、Rust 言語を学ぶのがはるかに簡単です。Rust 言語は多くの C 構文を借用しているためです。

第二に、Rust 言語のコンパイラ チェックは非常に厳格であり、開発プロセスのほとんどはコンパイルの問題の解決に費やされます。ただし、コンパイルが完了すると、開発者はメモリの安全性、メモリ リーク、その他の問題を心配する必要がなく、ビジネス ロジックに集中するだけで済みます。

以上がホワイトハウスは開発者にCとC++を放棄するよう求める文書を発行:Rustはメモリ安全性のために「厳選」されたの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:51cto.com
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!