🎓️ 東京大学「品川研究室」の紹介 🎓️

品川研究室では、オペレーティングシステムや仮想化ソフトウェアを中心とした
システムソフトウェア」の研究をしています。


研究室紹介ポスター 学部生向けパンフレット 募集一覧

🖥️ システムソフトウェア研究の魅力と特徴

Responsive Image

💻️ オペレーティングシステム(OS)や仮想化ソフトウェアといったシステムソフトウェアは、コンピュータ全体を制御することができる特別な権限を持ったソフトウェアであり、通常のアプリケーションにはない独自の魅力があります。たとえば、OSはCPUの特権命令を実行したり、全ての物理メモリにアクセスしたり、各種デバイスの全機能を直接制御することができます。このような特権を持つソフトウェアは、その設計や実装によってシステム全体の性能や安全性に大きな影響を与えるため、研究対象として非常に興味深く、同時に難しさも伴います。

🔭 システムソフトウェア研究には、コンピュータの原理や本質を探究し、アプリケーションに対して適切に抽象化・一般化された本質的な機能を提供するという「理学的」な側面があります。たとえば、プロセスファイルといった抽象概念は、多くのOSが提供する汎用的で便利な機能です。このような適切な抽象概念を提供することで、プログラムの書きやすさ、性能、移植性が大きく向上します。したがって、本質を捉えた抽象化を行うことは、システムソフトウェアにおける重要な役割のひとつです。

⚙️ 一方で、システムソフトウェア研究は、実際のハードウェアと密接に関わるため、ソフトウェアを設計・実装・評価してはじめてその有用性が認められるという「工学的」な側面も持ち合わせています。たとえば、理論上は性能が大きく向上すると考えられるアルゴリズムを思いついたとしても、それを実際のハードウェアやOS、アプリケーションを用いて検証するまでは、その有効性は証明できません。現代のコンピュータは極めて複雑であり、実際に動かしてみると理屈通りに動作しないことや、他の部分にしわ寄せが生じることもよくあります。そのため、自らプログラミングし、動かして確かめる能力が極めて重要です。

🖼️ さらに、システムソフトウェア研究には、その設計思想やアーキテクチャを考える上で、ある種のセンスや美学が求められる「アート」のような側面もあります。たとえば、OSカーネルのアーキテクチャとして、モノリシック構造が良いのか、マイクロカーネル構造が良いのかという議論は長年続いています。それぞれに長所と短所があり、どちらが優れているかを一概に決めることはできませんが、どう設計すべきかという思想やセンスが重要になります。実際、著名なOSカーネルは、天才的な開発者によって設計・実装されていることが多く(たとえば Linux の Linus Torvalds 氏、Windows の Dave Cutler 氏など)、ある意味でアーティストとしての役割が求められることも、システムソフトウェア研究のユニークで魅力的な点です。

🔐 研究内容1:システムソフトウェアによるセキュリティ向上

近年はシステムのセキュリティ向上が特に重要な課題となっています。品川研究室では、システムソフトウェアによる様々なセキュリティ向上手法の研究を多くおこなっています。

まず、ソフトウェアが攻撃を受けて乗っ取られた場合の被害を最小限に抑えるための、安全な隔離実行環境に関する研究を数多く行っています。例えばアプリケーションのプロセスからのシステムコールを参照モニタと呼ばれるプログラムでチェックして、実行のために最低限必要な権限だけを与えるサンドボックスと呼ばれる仕組みをさらに堅牢にするための研究を行っています。また、BitVisor という国産ハイパーバイザを用いて、OS自体のアクセス権限を制限したり、様々なセキュリティ機能をOS非依存で実現する仕組みの研究を行っています。さらに近年は、機密仮想マシン(Confidential Virtual Machine) と呼ばれる仕組みを利用して、クラウドベンダーを信頼することなく機密データをクラウドの仮想マシン上で安全に処理できるような仕組みも研究しています。さらに、ケンブリッジ大学が研究開発した CHERI と呼ばれるCPUアーキテクチャを活用して、バイト粒度で高速かつ柔軟な保護ができるケーパビリティ仮想マシン(CAP-VM)の仕組みをインペリアル・カレッジ・ロンドンと共同で行なっています。他にも、FPGAベースの軽量RDMAを活用した物理隔離実行環境などの研究を行っています。

また、既存のソフトウェアを堅牢にするために、プログラムに機械的に生成した大量の入力を与えて脆弱性を炙り出すファジングと呼ばれる手法の研究も行なっています。特に、低レイヤシステムソフトウェアに対してファジングを適用するための手法を研究しており、コンテナネステッド仮想化など複雑な機能を実現するためのシステムソフトウェアの堅牢性を向上させることを目指しています。また、これまでは人手に頼っていたファジングにより発見されたクラッシュの根本原因の解析を支援する新しい可視化手法などの研究も行なっています。

他にも、CPUの新しい機能を用いた Use-After-Free 対策や、C から Rust への自動変換により安全な言語への移行を支援するシステム、機械学習によるマルウェア解析など、幅広いセキュリティ対策の研究を行なっています。

🚀 研究内容2:システムソフトウェアによる性能・機能向上

品川研究室では、セキュリティに限らずシステムソフトウェアによる性能向上や機能向上のための研究を幅広く手掛けています。

例えば、現在行っている研究には、FPGAを用いてカーネル内のメモリ操作を仮想するための仕組みの研究や、新しいオペレーティングシステムの開発をサポートするためのデバイスドライバ再利用を容易化するアーキテクチャの設計などがあります。 また、仮想化環境でページングが二重におこなわれるネステッドページングを高速化する変換パススルーの研究や、コンテナ起動時のレイヤ取得の高速化、不揮発メモリ向けファイルシステム、低遅延のクラスタスケジューラ、macOS や Windows 上で Linux バイナリを動作させる OS エミュレータなど、システムソフトウェア全般の性能や機能を向上させるための様々な研究に取り組んでいます。

🔑 キーワード

品川研究室でおこなっている研究のキーワードとしては、例えば以下のようなものがありますが、これに限定されるものではありません。

  • OSカーネル、ハイパーバイザ、仮想マシンモニタ、機密VM、TEE、ネステッド仮想化、保護ドメイン、DMA、FPGA、I/Oデバイス、ファームウェア、デバイスドライバ、コンテナ、クラウド、ファイルシステム、ケーパビリティ、不揮発メモリ、ライブマイグレーション、ファジング、バッファオーバーフロー攻撃、Use-After-Free、マルウェア、ルートキット、JITコンパイラ、ポリシー記述言語、eBPF、プログラム変換