デジタル人材の育成

未踏IT人材発掘・育成事業:2023年度採択プロジェクト概要(今村PJ)

公開日:2023年6月19日

1.担当プロジェクトマネージャー

  • 田中 邦裕(さくらインターネット株式会社 代表取締役社長)

2.採択者氏名

  • 今村 翔太(慶應義塾大学環境情報学部環境情報学科)

3.採択金額

  • 2,736,000円

4.プロジェクト名

  • Capabilityを主軸とするマイクロカーネル

5.関連Webサイト

6.申請プロジェクト概要

近年IoTやクラウドの普及が進み、分散コンピューティングの重要性が高まっている。IoT機器が社会のインフラとして機能するようになってきた一方、セキュリティ対策が不十分であることが多く、サイバー攻撃の踏み台にされることがしばしばある。これはIoT機器内部のユーザに対して必要以上の権限を与えてしまうことが原因の一つであり、Linuxではアクセスコントロールリスト(ACL)を利用して細かく権限を分けることで対処している。しかしACLではユーザ単位でアクセス制御をすることから、「Confused Deputy Problem」(混乱した使節の問題)と呼ばれるセキュリティホールを生む問題となっている。このような問題を緩和するアクセス制御の一つに「Capability-based security」がある。Capabilityとはあるリソースとそのリソースへのアクセス権をまとめた概念であり、Capabilityを経由してのみ、そのリソースへアクセスできるようにするものである。Capability-based securityを採用したOSはいくつか存在するが、チップ制御用であったり、リアルタイムOSであったりと、Linuxを置き換えるようなものではない。

本プロジェクトではCapabilityによるアクセス制御を中心としたセキュリティ重視の汎用OSを開発する。ターゲットとするアーキテクチャはRISC-Vである。本OS上で表現されるCapabilityには次の特徴がある。

  • あるリソースに対するCapabilityはシステム全体で唯一となる。
  • プロセス間でのリソース共有のためにCapabilityを移譲できる。
  • Capabilityはその権限の縮小版を作成できる。

本OSは最小権限の原則に則り、可能な限りカーネルの機能を減らすためにマイクロカーネル方式で実装する。カーネルが提供する機能は次の通りとする。

  • Capabilityの発行・管理
  • プロセスの作成・管理
  • メモリページテーブルの管理
  • プロセス間通信の中継
  • 割り込みハンドラの中継

カーネルが提供する機能を利用するためには、対応するCapabilityを所有している必要がある。

本プロジェクトでは実用的なOSを目指すため、カーネル本体以外にも次のユーザプロセス(サーバ)を開発する。

7.採択理由

本プロジェクトでは、セキュリティを重視した新たなOSを作るもので、SELinuxに代表される既存のOSカーネルでは不十分だった利便性や機能性を、一から設計しようとする野心的なものである。

既存のSELinuxではアクセス制御リスト(ACL)ベースで強固なセキュリティを実現しているものの、プロセスを跨いでセキュリティの欠陥を突くような攻撃手法には対応できないことがあり、Capability-basedと言われるユーザの役割や資格に応じてアクセス制限を行う手法が有用である。そのため、今回のプロジェクトにおいては、capabilityを実装した新たなマイクロカーネルを開発し、それをベースとしたセキュリティ重視の汎用OSを開発し、GitHub上でOSSとして公開しようとしている。

多くのプロジェクトでは既存のカーネルやOSをベースに開発することが多いが、今回はカーネルから開発を行う。目的とする高いセキュリティを実現するために、多くのハードルを超えて開発を進めること自体に未踏性があると考えて採択した。

更新履歴

  • 2023年6月19日

    2023年度採択プロジェクト概要(今村PJ)を掲載しました。