著者
谷本 陽祐 山田 浩史
雑誌
研究報告システムソフトウェアとオペレーティング・システム(OS) (ISSN:21888795)
巻号頁・発行日
vol.2023-OS-159, no.13, pp.1-15, 2023-05-09

オペレーティングシステム(OS)カーネルはシステムの根幹をなし,カーネルの障害はシステム全体に影響が及ぶ.一般的なモノリシックカーネルは単一のカーネル空間を持ち,あらゆるシステムコールは単一のメモリ空間を共有している.この問題点の一つとして,カーネル空間でメモリ破壊が発生した際に,カーネル全体に影響が伝播し,カーネルが未定義の動作を起こす可能性がある.しかしながら,現在も Linux や Windows など広く利用されているモノリシックカーネル OS において脆弱性の報告は跡を絶たず,バグ修正までの期間も要する.そこで本研究では,カーネルのメモリ破壊によるエラーの伝播の影響を小さくする手法を提案する.各システムコールが自身に許可されたメモリオブジェクトのみアクセスできるようアクセス制御を行い,不正なアクセスが生じた場合,ページフォルトを起こしてシステムコールの実行を停止させる.これによりカーネルのバグによる誤ったメモリアクセスが未然に阻止され,未定義の動作を防止することができる.本研究では単一のメモリ空間内の隔離(Isolation)に Intel MPK を用いて,提案手法を xv6 に実装し,そのすべてのシステムコールにアクセス制御を実現した.実験の結果,システムコールによる不正アクセスが生じたとき,ページフォルトが発生し実行を停止できた.また,xv6 のテストプログラムである usertests を実行したところ,全体の実行時間は従来の約 1.55 倍であった.