デジタル人材の育成
公開日:2023年6月19日
近年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には次の特徴がある。
本OSは最小権限の原則に則り、可能な限りカーネルの機能を減らすためにマイクロカーネル方式で実装する。カーネルが提供する機能は次の通りとする。
カーネルが提供する機能を利用するためには、対応するCapabilityを所有している必要がある。
本プロジェクトでは実用的なOSを目指すため、カーネル本体以外にも次のユーザプロセス(サーバ)を開発する。
本プロジェクトでは、セキュリティを重視した新たなOSを作るもので、SELinuxに代表される既存のOSカーネルでは不十分だった利便性や機能性を、一から設計しようとする野心的なものである。
既存のSELinuxではアクセス制御リスト(ACL)ベースで強固なセキュリティを実現しているものの、プロセスを跨いでセキュリティの欠陥を突くような攻撃手法には対応できないことがあり、Capability-basedと言われるユーザの役割や資格に応じてアクセス制限を行う手法が有用である。そのため、今回のプロジェクトにおいては、capabilityを実装した新たなマイクロカーネルを開発し、それをベースとしたセキュリティ重視の汎用OSを開発し、GitHub上でOSSとして公開しようとしている。
多くのプロジェクトでは既存のカーネルやOSをベースに開発することが多いが、今回はカーネルから開発を行う。目的とする高いセキュリティを実現するために、多くのハードルを超えて開発を進めること自体に未踏性があると考えて採択した。
2023年6月19日
2023年度採択プロジェクト概要(今村PJ)を掲載しました。