CHERIoT、C のセキュリティを向上させる Microsoft プロジェクト

チェリオ

組み込みシステム向けセキュリティの MS オプション、CHERIoT

ニュースは最近それを破った マイクロソフトは、CHERIoT プロジェクトに関連する開発を公開しました (モノのインターネットのための RISC-V への機能ハードウェア拡張)、 C および C++ コードのセキュリティ問題をブロックすることを目的としています 既存。 CHERIoT は、既存の C/C++ コード ベースをリファクタリングせずに保護するソリューションを提供します。

保護は、変更されたコンパイラを使用して実装されます これは、プロセッサによって提供されるプロセッサ命令 (ISA) の特別な拡張セットを使用し、ハードウェア レベルでメモリ アクセスを監視し、ポインターを使用してジョブの正確性を検証し、コード ブロックの分離を提供します。

シェリオについて

プロジェクト C 言語の低レベルな性質を理解して作成されました。 メモリエラーの原因となり、 バッファオーバーフローなどの問題を引き起こします。 すでに解放されているメモリへのアクセス、ポインターの逆参照、または二重解放。

実際には、厳格な変更レビュー ポリシーを持ち、最新の開発方法と静的分析ツールを使用している Google や Microsoft などの大企業でさえ、メモリでエラーのない作業を保証することはできません (たとえば、Microsoft や Google の脆弱性の約 70%安全でないメモリ管理が原因です)。

問題 安全な作業を保証するプログラミング言語を使用することで解決できます。または、解放されたメモリ領域にアクセスするための追加の制御を実行する、共通ポインタの代わりに MiraclePtr (raw_ptr) を使用するなど、追加の制御を持つメモリまたはリンクを使用します。

しかし そのようなメソッドは新しいコードにより適しています y 既存の C/C++ プロジェクトを手直しするのはかなり面倒です。 特に、組み込みシステムや IoT デバイスなど、リソースに制約のある環境で実行することを意図している場合。

たくさん CHERIoT ハードウェア コンポーネントは、マイクロコントローラーとして設計されています RISC-V アーキテクチャに基づいており、セキュア プロセッサ アーキテクチャ CHERI (RISC-V の容量ハードウェア拡張) を実装し、制御されたメモリ アクセス モデルを提供します。

に基づく 命令セットアーキテクチャ (ISA) CHERIoT で提供されるプログラミング モデルは、個々のオブジェクトのレベルでメモリを操作する安全性を保証し、既に解放されたメモリへのアクセスに対する保護を提供し、メモリ アクセス用の軽量分離システムを実装するように構築されています。

このプログラムによる保護モデルは、C/C++ 言語モデルを直接反映しているため、既存のアプリケーションを保護するために使用できます (ISA CHERIoT 準拠のハードウェアのみで再コンパイルして実行する必要があります)。

提案されたソリューションにより、メモリ内のオブジェクトの範囲外を引き起こすエラーをブロックできます、ポインターの置換を許可しません (すべてのポインターは既存のポインターから生成する必要があります)。

たとえば、CHERIoT を使用すると、コードを変更することなく、自動境界チェックを実装し、メモリ領域の有効期間を追跡し、信頼できないデータを処理するコンポーネント内のポインターの整合性を確保できます。

プロジェクト CHERIoT 命令セット アーキテクチャの仕様が含まれています 拡張、ISA CHERIoT 準拠の 32 ビット RISC-V CPU のリファレンス実装、および修正された LLVM ツールセット。

最後に あなたがそれについてもっと知りたいのなら、 あなたはそれを知っておくべきです プロトタイプ図 Verilog での CPU およびハードウェア ブロックの説明は、Apache 2.0 ライセンスの下で配布されます。 lowRISC プロジェクトの Ibex コアは CPU のベースとして使用され、CHERIoT ISA コード モデルは Sail 言語で定義され、BSD ライセンスの下で配布されます。

さらに、プロトタイプの CHERIoT RTOS リアルタイム オペレーティング システムが提案されています。これは、256 MB の RAM を備えた組み込みシステムでもコンパートメント (コンパートメント) を分離する機能を提供します。

コード チェリオRTOS C++ で書かれており、MIT ライセンスの下で配布されています。 コンパートメントの形で、オペレーティング システムの基本的なコンポーネント (ブート ローダー、スケジューラ、メモリ割り当てシステムなど) が設計されています。


コメントを残す

あなたのメールアドレスが公開されることはありません。 必須フィールドには付いています *

*

*

  1. データの責任者:AB Internet Networks 2008 SL
  2. データの目的:SPAMの制御、コメント管理。
  3. 正当化:あなたの同意
  4. データの伝達:法的義務がある場合を除き、データが第三者に伝達されることはありません。
  5. データストレージ:Occentus Networks(EU)がホストするデータベース
  6. 権利:いつでも情報を制限、回復、削除できます。