Hot Chips Arm 社は Hot Chips カンファレンスで、実験的な Morello プログラムと、コンピュータ システムへの攻撃の根底にあるメモリ アクセスの脆弱性に対処するために設計された CHERI アーキテクチャの実装方法について説明しました。
CHERI は、英国ケンブリッジ大学と米国に拠点を置く SRI International による研究プロジェクトである Capability Hardware Enhanced RISC Instructions の略称です。一方、Morello は Arm が CHERI を Armv8.2-A アーキテクチャに基づくプロトタイプ プロセッサに適応させたものです。
Arm は 1 月にテスト目的で Morello 評価システム ボードを出荷しており、このハードウェア上で実行される CheriBSD と呼ばれる FreeBSD オペレーティング システムのバージョンも存在します。
CHERI と Arm Morello 実装の目的は、既存のプロセッサ アーキテクチャを適応させて、少なくともメモリ アクセスに関するシステム セキュリティを向上させることです。
Armのシニアバイスプレジデント兼チーフアーキテクト兼フェローであるリチャード・グリゼンスウェイト氏によると、バッファオーバーフローや解放後使用エラーといったメモリ安全性の問題は、報告されている多くの脆弱性の原因となっており、その傾向は様々なコンピューティングエコシステムにおいて驚くほど一貫しているようです。これはこれまでソフトウェアの問題と考えられてきましたが、CHERIは少なくとも一部の問題をハードウェアで解決することを目指しています。
「人々がテクノロジーを信頼できる必要があることはますます明らかになっており、サイバー犯罪のコストは極めて高い」とグリセンスウェイト氏は語った。
Morello は、ポインターやその他のデータ アクセス レジスターのように動作する機能の概念を導入することでこれを実現しますが、アドレスとともに、コードによって試行される操作がそのメモリ空間内で許可されているかどうかをハードウェアが確認するために使用できるアクセス許可と境界情報も保存します。
コンピューティングにおける多くのアイデアと同様に、機能の概念はまったく新しいものではなく、以前は一部のメインフレーム システムに実装されていました。
「これらは単一の128ビットユニットとして保持され、レジスタファイルとメモリシステムにメタデータタグが追加されることで、機能とデータを区別することができます」とグリゼンスウェイト氏は説明した。このメタデータタグは、「機能の偽造を不可能にすることができる」ため重要であると同氏は付け加えた。
つまり、メタデータ タグはカーネルまたはその他の特権プロセスによってのみ設定可能であり、攻撃者が機能をデータであるかのように操作してその属性を変更しようとすると、機能のステータスが失われ、無効になります。
「主な変更点は、機能レジスタからベースアドレスを取得し、生成されたアドレスをチェックするロードとストアの完全なセットが用意されていることです。これらのアドレスには通常、機能の境界に対して整数オフセットが追加されます」とグリゼンスウェイト氏は説明した。
機能の権限は通常のメモリ管理チェックと並行してチェックされ、機能チェックに違反すると、トランスレーション ルックアサイド バッファ (TLB) からのメモリ管理エラーと同じようにメモリ アボートが発生します。
Grisenthwaite 氏によると、Morello アーキテクチャでは、従来の汎用レジスタからアドレスを取得する通常のロード命令とストア命令が引き続き許可されていますが、Arm は、そのようなアクセスに境界と権限を適用するデフォルト データ機能と呼ばれるものを追加し、機能を認識しないレガシー コード用のサンドボックスを効果的に作成しています。
一方、機能を操作するには、新しいデータ処理命令が必要です。これらの新しいデータ処理命令には、機能の境界によって定義された制限内でアドレスを調整するための特定のルールがあります。
「重要なのは、一般的に、ケイパビリティ内に保持されている境界を拡大することはできないということです。命令文を使えば、ケイパビリティの境界や権限を縮小し、元のオブジェクトからサブオブジェクトを作成できるようにすることが可能です。しかし、権限の境界を拡大するには、その権限を与えるケイパビリティが必要です」とグリゼンスウェイト氏は述べた。
このプロジェクトの目標の一つは、プログラムカウンタをプログラムカウンタ機能に変更し、それに関連付けられた一連の境界を設定することです。直接分岐は境界内で分岐できるようになり、間接分岐は機能の境界を変更することで、異なるコードブロック間での呼び出しが可能になります。
「この機能が実現すれば、通常は汎用レジスターに保持されるアドレスの一部またはすべてを機能に置き換えることができ、セキュリティを向上させる基盤が整う」とグリゼンウェイト氏は述べた。
これらの新しい機能を利用する一つの方法としては、プログラムコード内のほぼすべてのアドレスポインタを再コンパイルによって機能に置き換えることが挙げられますが、その場合もコードに多少の修正が必要になる可能性があります。グリゼンスウェイト氏によると、この方法にはメモリの安全性が向上するという利点があり、機能とデータを区別するメタデータによって、C言語でメモリを解放する際に隔離やガベージコレクションのようなアプローチが可能になります。
- インテルはFlexデータセンターGPUをビデオやゲームのストリーミング向けに開発
- インテルはチップレットがMeteor Lake CPUを形成する様子を示す
- カーネルメモリリークを引き起こすインテルプロセッサの設計上の欠陥により、LinuxとWindowsの再設計が必要に
- インテルはポンテ・ヴェッキオGPUから最大限のパフォーマンスを引き出そうとしている
- インテルのゲルシンガー氏、兆トランジスタチップの「システムファウンドリー」時代を語る
しかし、これには欠点があり、主に新機能のキャッシュとメモリフットプリントが大きくなることが挙げられます。MorelloプロトタイプシステムのArm CPUコアは、標準的な64ビット汎用レジスタではなく、一連の機能を持つレジスタファイルをサポートするようにカスタマイズおよび適合されています。実際には、メタデータタグを含めるために、すべてのレジスタが129ビットに拡張され、キャッシュとシステムバスも同様に拡張されます。
グリゼンウェイト氏は、「テストの目的で、Arm は 32 個の CPU レジスタすべてをデータまたは機能のいずれかを保持できるようにしたが、将来の商用実装では機能レジスタの数を減らすことが選択される可能性がある」と述べた。
「基本的に、マイクロアーキテクチャのかなり多くの部分が129ビット対応に拡張されており、これはデータパス設計全体に大きな影響を与えています。Morelloでは、メモリへのデータパスの幅を単純に2倍にすることはしませんでした。これは、パフォーマンスと面積の比較が現実的になるようにするためでもあります。しかし、量産システムでは、より詳細なパフォーマンスモデリングによってこの点を検討する必要があるでしょう」と彼は説明した。
また、これらの機能は、現在実現可能なものよりはるかにきめ細かな区画化を構築する能力も提供する。アプリケーションの区画化は通常、複数のプロセスを使用して構築される。
よりきめ細かな区分化を実現することで、単一の脆弱性を悪用することで発生する損害を制限し、ソフトウェアをより堅牢にすることができ、システム全体のセキュリティが向上します。
もうひとつの利点は、CHERI アーキテクチャでは、従来のプロセス スイッチと比較して、コンパートメント間の切り替えのオーバーヘッドを桁違いに削減できることだと同氏は主張しています。
CHERIの実装方法において興味深い点の一つは、ケーパビリティの境界値と権限情報が圧縮形式で保存されるため、状態情報が64ビットだけ追加される点です。しかし、これはアドレスチェックを実行する際に、ベース値と境界値をアドレス計算結果と比較できるように解凍する必要があることを意味します。
グリゼンウェイト氏によると、デバイスの重要な部分に影響を与えないように、必要なときにすぐに解凍できる方式を考案するために、圧縮に多大な労力が費やされたという。
「メモリアクセスパスでは、ベースと境界の解凍は、アドレス生成演算と並行して、一対の展開として実行されます。つまり、境界チェックのタイミングは通常のTLBヒットと非常によく似ています」と彼は述べた。
ソフトウェアへの影響については、グリゼンウェイト氏は、CheriBSD の X11 KDE ベースのデスクトップ環境が、600 万行のコードのうち 0.03% 未満の変更を 1 人のエンジニアが行うだけで 3 か月で Morello に移植され、これらの変更によって脆弱性と軽減率が約 73.8% と評価されたと述べた。
ArmのMorelloへの信頼は、Microsoft Security Research Center(MSRC)が実施した詳細な調査によって裏付けられています。この調査では、2019年にMicrosoft製品に影響を与え、アップデートによる修正が必要となったメモリ安全性の脆弱性がすべて調査され、CHERIを他の対策と組み合わせることで、これらの問題の少なくとも3分の2を軽減できるとMicrosoftは結論付けています。
Morelloボードは純粋なプロトタイピングシステムであり、商用製品ではないため、比較的少数しか製造されていません。Armは、英国研究イノベーション機構(UKRI)の指導の下、Google、Microsoft、そして多くの大学や企業を含む様々なパートナーにMorelloボードを提供しています。
しかし、CHERI の技術は特許を取得していないため、Arm はコンピューティング業界の他社に評価を促しており、Morello は他のアーキテクチャ向けの技術のショーケースとしての役割を果たしていると Grisenthwaite 氏は述べた。
「私たちはこの技術の将来性に非常に興奮しており、モレロがどのようにこの非常に有望なアプローチをセキュリティの重要な領域に適切に適用できるかを見たいと思っています。」®