東京電機大学研究推進社会連携センター総合研究所 サイバー・セキュリティ研究所 教授 上野洋一郎先生インタビュー「コンピュータの原理原則に着眼したセキュリティカーネル技術とその応用に関する研究」(第1回)

 情報社会である現代では、ほとんどの市民がパソコンやスマーフォンを所持し、端末を通じてさまざまなサービスを受けています。その際に提供する電話番号やメールアドレス、IDやパスワードなどの個人情報は、外部に漏れないよう厳重なセキュリティのもとに管理されており、セキュリティ技術も日進月歩で進化していますが、それでも「情報漏えい」のニュースは後を絶ちません。
 今後ますます情報化が進んでいくなかで、情報を守るためには何が不足しており、何が必要なのか、東京電機大学研究推進社会連携センター総合研究所、サイバー・セキュリティ研究所の上野洋一郎先生にお話をうかがいました。

「助成研究者個人ページへ」

1994年より、東京工業大学大学院情報理工学研究科の助手を勤める。1996年同大学理工学研究科にて博士(工学)の学位取得。1998年東京電機大学工学部情報通信工学科講師となり、2001年同大学情報環境学部助教授を経て、2008年に教授となる。現在は東京電機大学研究推進社会連携センター総合研究所のサイバー・セキュリティ研究所副所長を兼任。
研究室URL :http://www.hpcl.sie.dendai.ac.jp

大学時代は、どのようなご研究をされていたのですか。

 私が学生時代を過ごした1980年代は、マイクロコンピュータ(マイクロプロセッサを利用した個人用小型コンピュータ・以下マイコン)が流行っていた時代です。そのため私たち世代のコンピュータ技術者の多くは、大学に入る前からハードウェア・ソフトウェアの両方に触れていました。
 大学に入ると、さらにワークステーションやインターネットが使えるようになり、その環境を活かして耐故障性の研究をしていました。「コンピュータは壊れるものである」という前提に立ち、どうすれば壊れにくいCPUを作れるのか、安全に壊れるCPUを作れるのか、さまざまな方法で試していました。

「安全に壊れる」とは、どういう状態ですか?

 コンピュータが壊れたとき、何も反応しなくなれば、ユーザは「壊れた」とわかります。しかし、中途半端に応答し続けていると、そのコンピュータが壊れているのかどうか、判別が難しくなります。そのため「壊れたとき、全く反応しないか、壊れたことを自己申告するコンピュータの構築」を目指して、研究していました。
 その後、研究内容が非同期式に移りました。当時はクロック信号(コンピュータの各電子回路が動作の同期をとるうえで基準とする一定周期の信号)の周波数がどんどん上がっていったので「いつか同期を取ることができなくなるだろう」という発想から、同期ができなくてもコンピュータを動かす方法について研究をしていました。
 またアルバイト等で、コンピュータからCPUを一度抜いて、CPUのフリをする機械を埋め込み、コンピュータを起動・作動させたときの全てのプログラムの動きを見て、正しく動いているかどうかを解析する、という経験もしました。
 私はもともとハードウェアの技術者であり、セキュリティを専門に学んできたわけではありません。ただ偶然にも、ハードウェア・ソフトウェア・ネットワークに関する一通りの技術と知識を身につけられる環境にあったのです。

セキュリティ分野のご研究を始めたきっかけは?

 2001年に情報環境学部の開設が決定し、私は、開設前はキャンパスネットワークやサーバの設計を、開設後は管理の仕事に携わることになりました。そのため、どこかの研究室のコンピュータが外部から侵入されると「どの部分が破られたのか? 何をされたのか?」という解析をしたり、独自の検出機構の実装や運用をしていたので、徐々にセキュリティも扱うようになったのです。
 そのなかで私が感じていたのは、耐故障も、非同期式も、セキュリティソフトも、すべてコンピュータが「壊れるもの」「同期できなくなるもの」「マルウェアに感染するもの」という、本来防がなければならないことに対して、やや悲観的な発想からスタートしているという点です。そして、私はもっと根本的な部分、ハードウェアレベルからマルウェアを防ぐ技術はないだろうかと考えるようになり、サイバー・セキュリティ研究所の佐々木良一先生、古川義久先生とのご縁もあって、共同研究を始めることにしたのです。

いまのセキュリティ技術は、ハードウェアではなく、ソフトウェアのレベルでマルウェアを防いでいるということですか。

 そうです。まずは、コンピュータが持つCPUの権限についてご説明します。
 たとえばインターネットに接続する、特定のアプリケーションを起動する、メールチェックするなど、ユーザがコンピュータに対して行う命令は、すべてCPUで処理されます。
 このCPUの処理は、与えられた権限レベルにしたがって行われます。
 パソコンで広く使われているIntel製CPUの権限レベルには、Ring0〜Ring3という4つの階層があり、Ring0がもっとも大きな権限を持ちます。OSやドライバーの処理はRing0、アプリケーションの処理はRing3で行われています。
 マルウェアはRing3で動くアプリケーションなので、本来ならRing0にあるOSで駆逐が可能です。しかしOSは常にさまざまなアプリケーションとの通信を行っており、どこかにセキュリティホールが残存しています。マルウェアはこのセキュリティホールを利用して自分の権限をRing3からRing0に昇格させることで、OSやセキュリティソフトの監視から逃れられるようになり、感染したコンピュータを中心に問題を発生させていくのです。