Arm、「Morello」ボードのプロトタイプ版を提供開始–メモリー脆弱性の一掃に向け
今回は「Arm、「Morello」ボードのプロトタイプ版を提供開始–メモリー脆弱性の一掃に向け」についてご紹介します。
関連ワード (セキュリティ等) についても参考にしながら、ぜひ本記事について議論していってくださいね。
本記事は、ZDNet Japan様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。
英国のチップ設計企業Armは、開発中の「Morello」ボードのプロトタイプ版を、GoogleやMicrosoftのほか、業界内の関心を持った企業にリリースしている。これら企業のリサーチャーらは、コードに潜むメモリー関連のセキュリティ脆弱性の撲滅に向けたCPU設計をテストすることになる。
Morelloボードは、「Capability Hardware Enhanced RISC Instructions」(CHERI)アーキテクチャーに基づき、Armとケンブリッジ大学、Microsoftなどが協力して生み出したものだ。Microsoftは、このボードとSoCがCHERI初となる高性能な実装であり、これにより「ハードウェアレベルでの、きめ細かいメモリー安全性」が提供されると述べた。レガシーソフトウェアを用いたテストでこのボードが成功を収めれば、未来のCPU設計への道が開かれることになる。
CHERIアーキテクチャーにおける拡張部分は、メモリー安全性に関わる脆弱性の低減を目的としたものだ。CHERIでは、ポインター(データが格納されているメモリー上の位置を参照するためにコンピューターのコードが使用する変数)に対して、そういった参照の利用方法と、アクセスに使用できるアドレス範囲、使用できる機能に制限が加えられている。Armは「いったんシリコン上に焼き付けてしまえば、ソフトウェアによる改ざんは不可能になる」と説明している。CHERIは、米国防高等研究計画局(DARPA)の「The Clean-Slate Design of Resilient, Adaptive, Secure Hosts(CRASH)」プログラムの出資を受け、ケンブリッジ大学、SRI Internationalが開発した。
MorelloのアーキテクチャーはCHERIがベースになっている。Armは2019年に、Morello向けのハードウェアへの取り組みを開始した。英政府の「デジタルセキュリティバイデザイン(DSbD)」プログラム、UK Research and Innovation(UKRI)の支援を受けている。
Morelloのデモ用ボードは、「Armv8.2-A」アーキテクチャーをサポートし、サーバー向けとして開発された2.5GHz駆動のクアッドコア搭載64ビットCPUである「Arm Neoverse N1」に合わせて調整され、メモリー関連のセキュリティ脆弱性に対抗するために、CHERIに基づく「コンパートメント化」機能が追加されている。
Armは「こういったハードウェア能力をシリコン上に実装した高性能CPUは今までになかった」と述べている。
Morelloボードは、10年以上をかけて開発されてきたCHERIにとって著しい進歩と言える。Microsoftのセキュリティリサーチ/防御チームのSaar Amar氏によると、これまでは「Toooba」がCHERIの実装として1番に挙げられていたという。ただ同氏は、Tooobaが「意義ある成果」ではあるものの、50MHz駆動のデュアルコアFPGAでしか実行できなかったと述べ、これは「マイクロアーキテクチャーとして見た場合、おおよそ90年代半ばのCPUに相当する」性能であり、複雑なソフトウェアスタックを大規模にテストするには不十分だと続けている。
CHERIとMorelloのアーキテクチャーは、「C」や「C++」といったプログラミング言語で記述されたコードに起因するメモリー関連のセキュリティ脆弱性に取り組むための1つの手段となるかもしれない。MicrosoftとGoogleは、セキュリティ脆弱性の多くはメモリー安全性の問題であり、これらの言語で書かれたコーディングの問題に起因する場合が多いと述べている。
Morelloのボードは、CHERIによるコンパートメント化のアプローチの仮説、そして、これが企業やコンシューマーにとって将来有効なセキュリティアーキテクチャーとなるかどうかをテストするため、研究者に共有される。
GoogleのリサーチャーBen Laurie氏らがCHERIに関する論文で詳述している通り、さまざまなCHERIのモードは、従来のメモリー管理ユニット(MMU)ハードウェアにおける緩和策より効果的であり効率的となる可能性がある。
Laurie氏は、CHERIによって今日のOSにおけるソフトウェアの隔離プロセスと似たような方法で、ソフトウェアのコンパートメント化が可能になると述べている。また、CHERIはプロセス内でメモリー安全性を確保するメカニズムを備えているため、ソースコードに大規模な変更を加える必要性を避けられるという。これによって、既存のコードベースにとって大きなメリットとなる可能性がある。
Amar氏は「現代のタイプセーフな言語では、巨大なクラスを構築できないが、CHERIのメモリー保護があれば脆弱性が潜んだクラスの悪用を防げるようになる」と述べている。