悪意ある者によるデータアクセスを困難にする全く新しいハードウェア
SRIのサイバーセキュリティ変革への貢献
サイバーセキュリティは、コンピューター業界が現在直面している決定的な課題です。社会のあらゆる側面のデジタル化が進んでおり、絶えず新しい技術や製品が開発されてテクノロジーは私たちの日常生活に深く入り込んできています。
テクノロジーは今や、ウェアラブルデバイスによる健康管理、IoTによる家電製品やセキュリティの制御、各種支払い、そして私たちを取り巻く重要なインフラの制御の大半などを担っています。
私たちの生活に、新しいより便利なテクノロジーを取り入れるということは、データセキュリティに関しても新しくより全体的なアプローチが必要であるということを意味します。ケイパビリティハードウェアにより改良されたRISC命令セット(Capability Hardware Enhanced RISC Instructions:CHERI)は、まさにこれを目指しています。
SRIインターナショナル、ケンブリッジ大学、Armなどの協力により、CHERIは、コンピューターのメモリに使用されているハードウェアの再設計や、ソフトウェアがメモリにアクセスする方法の再定義を目的としています。
CHERIは以下のように、新しいアーキテクチャの拡張を可能にしています。
・ きめ細かなメモリ保護により、従来ではメモリ安全性の低いプログラミング言語(C/C++)に存在する脆弱性を解消
・ 重要なコードを分離し、セキュリティの脆弱性の影響を抑制するスケーラブルな区画化(コンパートメント化)
CHERIは、ソフトウェアがメモリにアクセスする方法を根本的に変えています。この変化はハードウェアとシリコン自体の設計に内在するものであり、ソフトウェアによる最も巧妙な回避策からも保護されます。
マイクロソフトの調査によると、毎年セキュリティアップデートで対処される脆弱性のうち、70%はメモリ安全性に起因するものであることが分かっています。CHERIはこのような脅威を防ぐことを目的としており、先月このプロジェクトは大きな節目を迎えました。
SRIインターナショナルと共同で研究を進めているArmは、幅広いユースケースにてテストを実施するために、初めてCHERIアーキテクチャのプロトタイプを採用したMorelloボードを出荷しました。より多くのプロトタイプ・シリコンを利用できるようになったことから、このプロジェクトは現在、以下についてもテストを進めようとしています。
· ソフトウェア性能
· マイクロアーキテクチャの選択
· コンパートメント化
· ソースレベルの互換性
· セキュリティ評価
CHERIプロジェクトの歴史
CHERIは、ケンブリッジ大学のRobert Watson氏の研究成果として生まれました。Watson氏はプロセスレベルでのソフトウェアのコンパートメント化を開発していました。その結果、コンパートメント化はセキュリティには有効でも、非常にコストがかかることが明らかになったのです。そこで、ハードウェアとソフトウェアのスタック全体を開発し、あまりコストをかけずにコンパートメント化を実現するとともに、CやC++などの言語で見られるメモリ関連のバグを克服できるようなメモリ安全性を実装する、新しいプロジェクト「CHERI」が発足しました。
CHERIは米国防高等研究計画局(DARPA)のDARPA CRASH(Clean-slate design of Resilient, Adaptive and Secure Hosts)プログラムの支援の下、SRIインターナショナルとケンブリッジ大学との共同研究プロジェクトとして2010年に始まりました。このプロジェクトは、セキュリティの向上と変革のためにコンピューティングアーキテクチャを一から作り直すとしたら、どのように再設計できるかを研究者たちで考えることから始りました。
DARPAは、MRC:Mission-oriented Resilient Clouds(意訳:ミッション重視型の強靭なクラウド)とSSITH:System Security Integration Through Hardware and Firmware(意訳:ハードウエアとファームウエアによるシステムセキュリティの統合)という2つの研究プログラムを通して、このプロジェクトを継続的に支援しました。また、英国工学物理研究会議(Engineering and Physical Sciences Research Council:EPSRC)と欧州研究会議(European Research Council:ERC)からも支援を受けています。
2015年にCRASHプログラムが終了したとき、CHERIプロジェクトはFPGA:Field Programmable Gate Array(意訳:フィールド上でプログラム可能なゲートアレー)プロトタイプの製作に成功しており、メモリ安全を確保したCとC++のコードを効率的に走らせることができたことから、将来性を示すことができていました。このプロジェクトは、より安全なソフトウェア・アーキテクチャの可能性もさることながら、産業規模のプロセッサ設計に統合できるかどうかを示さなければなりませんでした。
2017年のDARPA SSITHプログラムのもと、SRIとケンブリッジ大学はRISC-VアーキテクチャにCHERI技術を導入しました。RISC-Vはカリフォルニア大学バークレー校で開発されたオープンな設計の新しい中央処理装置(CPU)アーキテクチャで、今日のCPU研究に最適なアーキテクチャです。これらの取り組みにより、CRASHで使用された単一アーキテクチャの枠を超えて、CHERIのアイデアが移植可能であることが実証されました。
そして、Armが2014年にプロジェクトに参加し、携帯電話に広く使われておりサーバーにも使われるようになっていたArmv8-AインストラクションセットにCHERI技術を導入しました。2019年10月からは、Armの実験的なCHERI対応プロセッサとチップ搭載型システム(System on a Chip:SoC)の開発を目的とした「Morello」と呼ばれる5年間のプログラムが開始しています。
「良いとこ取り」なメモリアクセス
では、CHERIは一般的なアーキテクチャと何が違うのか、どのようにセキュリティを高めているのでしょうか。プログラミング言語、言わばソフトウェアは、ポインターと呼ばれる変数を用いてデータ(あるいはメモリ)にアクセスします。ポインターは、ソフトウェアが必要なデータを見つけるために、コンピューターのメモリのどこを見ればよいかを示すアドレスのようなものです。ハッカーは、ポインターを利用して本来アクセスしてはならない情報にアクセスし、メモリ安全性の脆弱性を悪用します。
CHERIは、従来の整数アドレスによるポインターの実装を、ハードウェアレベルで定義されたアーキテクチャ能力に置き換えたものです。このケイパビリティには、アドレス、境界、許可、有効性を保証するタグが含まれます。ソフトウェアがメモリをロード、ストア、アクセスするたびに、ケイパビリティによる許可が必要です。これにより、メモリのアクセス可能な範囲とどのように使用するのかを制限します。
整数ポインターをメモリアドレスの機能に置き換えることで、ソフトウェア、特にCやC++を使って書いたコードの安全性が向上します。現在のシステムは、アクセスを制限することに長けていません。悪意のあるソフトウェアはいったん内部に侵入すると、好きなようにアクセスすることができてしまいます。ケイパビリティは、特定のメモリアドレスへのアクセスを制御することで、この脅威を排除します。
メモリはすべてCHERIのケイパビリティを通してアクセスするため、単一のアドレススペース内でもコンパートメント化を実現できることから、従来のプロセスベースのアプローチに比べて飛躍的に多くのコンパートメント化を実現できます。様々な重要コードを分離することで、1つの違反がシステム全体を乗っ取ることを防ぎ、偶発的なバグやサプライチェーンへの意図的な攻撃からも保護することができます。CHERIのコンパートメント化アーキテクチャは、現在のコンパートメント化アプローチと比較して、コストを削減しつつ保護性能を劇的に向上させ、あらゆる種類のセキュリティ問題を排除できる可能性があります。しかも、性能への影響は最小限に抑えられているのです。
CHERIを大規模に導入する
CHERIが重要とする目標は、CとC++のコードを継続して使用できるようにすることです。この言語で書かれた何十億行ものコードを置き換えることは、メモリ安全性の問題を排除するにあたり、現実的な解決策ではありません。これを念頭に置いて、CHERIは従来のメモリ管理ユニット(memory management unit:MMU)ベースのアーキテクチャや、仮想メモリとC/C++を使用して構築したソフトウェアスタックと統合するように設計されたハイブリッド能力アーキテクチャ拡張です。また、このアプローチでは混乱を最小限にしつつ、既存のシステムに段階的に実装することが容易になります。
英国研究・イノベーション機構(UK Research and Innovation:UKRI)のデザイン型デジタルセキュリティ(Digitial Security by Design:DSbD)プログラムのリードパートナーとして、Armは予定通り2022年1月に初となるMorelloデモボードをリリースしました。CHERIを搭載した数百枚のMorelloボードは今年、企業や大学、公的な研究機関に送付されて評価される予定です。新しいアーキテクチャをテストするための研究アジェンダが整いました。これには、さまざまなプログラミング言語やオペレーティングシステムにまたがる幅広いアプリケーションでのテストが含まれています。
このテストには、よりエキサイティングなデモができるグラフィックドライバ、一般的なソフトウェアの移植、最適化作業、CHERIが直接サポートしていない一時的なメモリ安全性の側面に関する研究などを行うスタッフが関わっています。
参考資料:
https://www.cl.cam.ac.uk/research/security/ctsrd/cheri/
https://www.cl.cam.ac.uk/techreports/UCAM-CL-TR-941.pdf
https://msrc-blog.microsoft.com/2022/01/20/an_armful_of_cheris/
https://www.lightbluetouchpaper.org/2022/01/20/arm-releases-experimental-cheri-enabled-morello-board-as-part-of-187m-ukri-digital-security-by-design-programme/
https://www.arm.com/company/news/2022/01/morello-research-program-hits-major-milestone-with-hardware-now-available-for-testing
https://www.arm.com/architecture/cpu/morello
https://www.arm.com/blogs/blueprint/morello