メモリーセーフなプログラミング言語が台頭しています。 開発者は次のように対応する必要があります

画像:マスコット/ゲッティ

Consumer Reports の調査によると、政府や業界全体の開発者は、新しい製品やツールにメモリ セーフ言語を使用することを約束し、最も重要なライブラリとパッケージを特定してメモリ セーフ言語に移行する必要があります。

消費者向け製品のテストで知られる米国の非営利団体は、C や C++ などのオプションよりも、Rust などの「メモリ セーフ」な言語の導入を支援するためにどのような手順を実行できるかを尋ねました。 Consumer Reports は、「ユーザーの行動や消費者の選択によっても解決できない業界全体の脅威」に対処したいと述べ、そのような問題の 1 つとして「メモリの安全性の問題」を特定しました。

レポート、 メモリ安全性の未来、大学内でのメモリセーフ言語の採用を構築する際の課題、メモリセーフ言語に対する不信のレベル、他の言語で書かれたコードベースへのメモリセーフ言語の導入、インセンティブと公的説明責任など、さまざまな問題に注目しています。

また: プログラミング言語: この古くからの人気が再び上昇している理由

過去 2 年間で、より多くのプロジェクトが C および C++ で記述されたコードベースに Rust を徐々に採用し始め、コードをよりメモリセーフにしています。 その中には、Meta、Google の Android オープン ソース プロジェクト、C++ が主流の Chromium プロジェクト (一種)、および Linux カーネルからのイニシアチブがあります。

2019 年、Microsoft は過去 12 年間に修正したセキュリティ バグの 70% がメモリの安全性の問題であることを明らかにしました。 Windows はほとんどが C と C++ で書かれていたため、この数値は高くなりました。 それ以来、国家安全保障局 (NSA) は、開発者が戦略的に C++ から離れ、C#、Java、Ruby、Rust、および Swift を支持するよう推奨しています。

メモリ セーフな言語への移行 (最も顕著なのは、Rust だけではありません) は、C++ の作成者である Bjarne Stroustrup とその仲間たちに、「C++ の安全性」のための計画を考案するよう促しました。 開発者は C++ のパフォーマンスを好み、今でも組み込みシステムを支配しています。 C++ は Rust よりもはるかに広く使用されていますが、どちらもシステム プログラミングで人気のある言語です。

コンシューマー レポートの調査には、情報セキュリティの著名人や、サイバーセキュリティおよびインフラストラクチャ セキュリティ エージェンシー (CISA)、インターネット セキュリティ リサーチ グループ、Google、国家サイバー ディレクターのオフィスなどの代表者からの情報が含まれています。

報告書は、コンピューター科学の教授が「危険性を説明する絶好の機会」を持っていることを強調しており、例えば、成績評価における記憶の安全性に関する誤りの重みを増大させる可能性がある. しかし、Rustで一部のコースを教えることは「不必要な複雑さ」を追加する可能性があり、Rustは学ぶのが難しいという認識がある一方で、Cは多くの学生にとって将来の雇用可能性の安全な賭けであるように思われる.

このレポートは、業界がソフトウェア部品表 (SBOM) を調べることで、メモリセーフ言語を知っている人や C/C++ を必要とする人を雇用している企業に関するデータを取得できることを示唆しています。

メモリセーフ言語はより難しいというプログラマーの信念を克服するために、誰かがこれらの言語を説明することができます.

また: 「情熱を注げるものを見つけてください。」 あなたに合ったキャリアパスを構築する5つの方法

このレポートでは、既存のコード ベースに新しい言語を導入する方法についても取り上げています。 Linux カーネル プロジェクトは、既存のカーネル コードを書き直すのではなく、最初に一部のドライバーで Rust を有効にします。 Chromium のセキュリティ チームは、ビジネス上意味がある場合は慎重に Rust を有効にし、Chrome で C++ コード用のメモリ セーフティ機能を構築しています。 Android オープン ソース プロジェクトは Rust をより積極的に推し進めています。 Android 13 では、新しいコードの 21% が Rust で書かれていますが、C と C++ のコードが依然として支配的です。

レポートでは、企業はバグの原因について透明性を保ち、セキュリティの脆弱性に関する詳細な情報を提供して、研究者や業界の専門家がメモリの安全性に起因する脆弱性の割合を確認できるようにする必要があると述べています。

しかし、どこから始めればよいかを知るのは難しいでしょう。なぜなら、脆弱性の開示は一般に、欠陥の原因を特定の言語に結び付けるのに十分な情報を提供しないからです。

「たとえば、Apple のセキュリティ速報は現在、C/C++ によって引き起こされたメモリの脆弱性とロジックのバグを区別するのに十分な詳細を提供していません」と指摘しています。

このレポートは、この規模の問題に完全に対処するために必要な社会的および商業的インセンティブが存在しないという業界の信念を認めています。

また、「メモリーセーフ」な調達規制が実際に存在する世界も想像しています。 現在、完全にメモリセーフな言語で書かれたルーターを購入することはできない、というのは、そのような製品は存在しないからです。

「しかし、政府は、業界をゆっくりと前進させるために、新しく開発されたカスタムコンポーネントはメモリセーフでなければならないと言うことができるかもしれません。これには、そのシステムに対するある種の中央調整と信頼が必要です。政府はメモリ調達の一環としての安全ロード マップ。このマップは、企業が自社製品からメモリ セーフでないコードを徐々に排除する計画を説明するものです。」

メモリセーフ言語の採用を促進するためのアイデアには、開発者にソフトウェアの一部で使用されているメモリの安全性の軽減策をリストしてもらうことや、コードの何パーセントが安全な言語、監査、ファジングによってカバーされているかを示す「栄養ラベル」アプローチが含まれます。 、サンドボックス化、最小権限など。

また、組織がレガシ コードをメモリ セーフな言語に移行するための規制上および金銭上のインセンティブも推奨しています。

Leave a Comment

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