Microsoft が Rust のコートを Azure Sphere IoT プラットフォームに適用 • The Register

開発者は、インターネットに接続されたデバイス用の Azure Sphere プラットフォームでアプリケーションを作成するときに、Rust プログラミング言語を使用できるようになりました。

プログラマーは、Rust 内のパフォーマンスとセキュリティ機能を適用して、ボットネットやその他のマルウェアの標的になる可能性があるモノのインターネット デバイスやその他の組み込みシステム用のソフトウェアを作成できます。

null ポインター逆参照を試してみませんか? 起こらない! 組み込みシステムにとって、これは生命線です…

「Rust と Azure Sphere は相性が良いです。インターネットに接続されたデバイス向けの Azure Sphere の安全な ID、更新、およびエンドツーエンドの暗号化された通信サービスと並んで、厳格なコンパイル時の安全性チェックによりコードの安全性を向上できるプログラミング言語は、より優れたものを提供する必要があります。顧客アプリケーションへのセキュリティ」と、Microsoft の組み込みソフトウェア エンジニアである Akshatha Udayashankar は、今週のブログ投稿に書いています。

2022 年 6 月にこのアイデアをプレビューした Microsoft による動きは、Google がオープンソースの Chronium プロジェクトでサードパーティの Rust ライブラリをサポートすると発表したのと同じ週に行われました。 Microsoft と同様に、Google はプログラミング言語のすべてのセキュリティ機能を備えています。

姉妹サイトの DevClass が当時書いたように、魅力は安全性だけではありません。 「その他の要因には、安全性保証の副作用としてのより正確な可能性と、より信頼性の高い同時実行性が含まれます。Rust の「豊富な型システム」は、表現力豊かなコードを書くのに役立ちます。」

Azure Sphere には、インターネットに接続されたデバイス用の組み込みのセキュリティ機能と、MediaTek および Linux ベースのオペレーティング システムのチップ上に構築された理解されたハードウェアが既に含まれています。 さらに、デバイスとインターネットまたはクラウドの間に安全な接続を作成するクラウドベースの Azure Sphere Security Services (AS3) が含まれています。

AS3 は、セキュア ブート、デバイス ID 認証、ソフトウェアの信頼、デバイスが信頼できるコードを実行していることの証明を保証します。 また、Microsoft はデバイス上の Azure Sphere OS とアプリケーションの更新を安全にダウンロードできます。

Azure Sphere への Rust の導入により、より多くのセキュリティ機能が追加されます。

Azure Sphere のプリンシパル テクニカル プログラム マネージャーであるジョセフ ロイド (Joseph Lloyd) は、6 月に次のように書いています。

「変数を初期化するのを忘れましたか? 明示的なコンパイラ エラーです! ヌル ポインターの逆参照を試してみませんか? 起こりません! 組み込みシステムにとって、これは生命線であり、ますます複雑化するシステムのコスト エントロピーに対するプッシュバックであり、桁違いの作業と作業が必要になります。古いコードから継承したり、複数のオープンソース プロジェクトを統合したりする場合でも、市場に参入するための努力が必要です。」

Udayashankar 氏は、Rust は最新の開発者ツールをシステム プログラミングと低レベルのコード制御にもたらし、他のほとんどの言語では広範なテストとコード レビューを実行する開発者によってのみ発見できるさまざまな「微妙なバグ」に遭遇する可能性があると付け加えました。

対照的に、Rust コンパイラは、同時実行バグなどの欠陥のあるコードのコンパイルを拒否します。 コンパイラのアクションにより、機能の追加とリファクタリングによって安定性が向上し、そのようなチェックがない言語のレガシー コードよりもリスクが低くなる、と彼女は書いています。

「Rust は、安全なコードを高速なコードにする努力もしています」と Udayashankar は書いています。 「ゼロコストの抽象化により、コードが手動で記述されるのと同じくらい速く、高レベルの機能が低レベルのコードにコンパイルされます。」

Rust は 2021 年まで Mozilla によって開発され、作業を継続するための独自の基盤ができました。 Microsoft と Google の両方による採用は、言語に恩恵をもたらし、そのセキュリティ機能にうなずきます。 Google はすでに Android で Rust を使用しており、Apple や Linux カーネルなども Rust を採用しています。

2022 年 11 月、アメリカの国家安全保障局 (NSA) は、Rust が言語 C および C++ から Rust、Go、C# などのメモリセーフ言語に移行することを組織に奨励したときに、Rust を認めました。

このような言語は、コンパイル時および実行時チェックを使用して、プログラマーが誤ってコードに含める可能性のある多くの欠陥を自動的にブロックします。

昨年のレポートで、Okta は、Rust コンパイラは「安全でないブロックまたは関数で安全でないと明示的にマークされていない限り、メモリの安全でないコードを許可しない」と書いています。この静的なコンパイル時の分析により、多くの種類のメモリ バグが排除され、ランタイムが追加されます。 Rust はメモリの安全性を保証します。」

とはいえ、Rust は、検出を回避するために Hive や BlackCat などのサイバー脅威グループによって使用されている、多くの新しいプログラミング言語の 1 つであり、Go もその 1 つです。

Rust は Rust のクレート システムを通じて Azure Sphere に実装され、Microsoft がプラットフォームの「カスタマー アプリ」と呼ぶものに依存関係が組み込まれています。 Udayashankar 氏は、Azure Sphere アプリには無数の依存関係があるため、プログラマーは、C 言語で記述されたアプリと比較して、Rust がメモリをどのように使用するかを判断する必要があると述べました。

Microsoft は、API、サンプル、ライセンス条項を含む Azure Sphere Rust プロジェクトへのリンクを GitHub で提供しています。 ®

Leave a Comment

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