English

 

発表・掲載日:2014/02/14

装着するだけで重要データを防御するセキュリティバリアデバイスを開発

-機密データの読み出し、システムファイル・領域などの改ざんをハードウエアが検知して防御-

ポイント

  • パソコン、サーバー、制御システムなどの記憶装置と本体の間に装着するだけで防御
  • コンピューターウイルスなどからはセキュリティバリアデバイスは見えず、迂回や解除は原理的に不可能
  • セキュリティソフトウエアが検知できないゼロデイ攻撃などにも対処可能

概要

 独立行政法人 産業技術総合研究所【理事長 中鉢 良治】(以下「産総研」という)セキュアシステム研究部門【研究部門長 松井 俊浩】制御システムセキュリティ研究グループ【研究グループ長 古原 和邦】戸田 賢二 主任研究員らは、技術研究組合 制御システムセキュリティセンター【理事長 新 誠一】(以下「CSSC」という)と共同で、装着するだけでパソコンやサーバー、制御システム(以下単に「システム」という)の重要データを防御するセキュリティバリアデバイス(SBD)の開発に成功した。SBDはシステムの入出力ポート(IOポート)と周辺機器の間に差し込むだけで機能を発揮し、OSの種類を問わず、またデバイスドライバーなどのソフトウエアをインストールする必要もない。

 SBDは、専用に開発した多種類のIOポートを持つFPGAボードとその制御装置から構成されている。今回、SATAポートで接続する記憶装置(ハードディスクなど)とマザーボードなどの本体の間にSBDを割り込ませることでマルウエアの攻撃からデータを保護する機能を実現した。特に、記憶装置のブロック単位の保護に加え、ファイル単位での読み出しや書き出しの保護を実現し、防御の適用範囲をこれまでよりも大幅に拡大することができた。

 SBDの特徴は、オリジナルの記憶装置には手を加えることなく、オリジナルのファイルやデータブロックを防御できることである。機密情報の漏えい防止のほか、ブート領域システムファイルを保護できるため、OSを再起動すればメモリ上のマルウエアを排除でき、SBDのログから攻撃の様子を確認して即座に業務や制御・監視を再開することが可能である。

 なお、この成果の詳細は、2014年2月17日~18日に東京で開催される情報セキュリティ国際会議「CODE BLUE」で発表する。

開発したセキュリティバリアデバイスとSBD用FPGAボードの写真
開発したセキュリティバリアデバイス(左)とSBD用FPGAボード(右)

開発の社会的背景・経緯

 巨大となった最近のOSやアプリケーションソフトウエア(アプリ)の脆弱性を完全にふさぐことは困難であり、脆弱性の報告例は年を追って増加している。脆弱性はその対策が行われるまで「ゼロデイ」と呼ばれ無防備な状態であり、マルウエアの主な攻撃対象となっている(ゼロデイ攻撃)。特に、制御システムおいては、ハードウエアの性能が限られていてセキュリティソフトウエアの導入が困難なことがある。また、動作検証や可用性の問題からセキュリティパッチをあてずに古いOSやアプリを使い続けるケースも多い。これらの問題に対処すべく産総研とCSSCが共同で開発を行ったのが、簡単に後付けでき、ソフトウエアのインストールが不要で、OSやアプリを問わずに重要なデータを保護するSBDである。従来、パーティション単位での保護やファイルを保護領域に移動させるものはあったが、システムの記憶装置に全く手を加えずにファイルやデータブロックを自由に指定して防御できるような技術はなかった。

研究の内容

 SBDは、防御対象のシステムと周辺機器を繋ぐIOポートを中継する形で装着することで、セキュリティの強化を行う装置である(図1、図2)。装着は、IOコネクターの着脱のみであり簡単に行える。SBDは多様なポート中継による広範囲な防御を目指している。今回、SATAポートに接続される記憶装置と本体の間にSBDを割り込ませることで、ディスクのブロック単位の保護に加えてファイル単位での読み出しや書き込みの保護を行うことに成功した。オリジナルの記憶装置はそのままで、デバイスドライバーなどのインストールも不要という特徴がある。

SBD装着の概念図
図1 SBD装着概念図

SBD装着の実体図
図2 SBD装着実体図

 SBDの記憶装置保護機能の仕組みを図3に示す。システムのデータが格納された記憶装置と本体はSBDにより中継されるが、SBDはシステムの記憶装置とは別に自分だけ読み書き可能な記憶装置を持っており、そこにシステムのオリジナルの記憶装置のデータブロックへの読み書き(アクセス)可否情報を保存している。システムからその記憶装置に対してデータの読み書き要求があると、SBDはその領域のアクセス可否情報を参照する。許可されていればそのまま読み出しや書き込みを行うが、読み出しが禁止されていれば0などのダミーデータを返し、書き込み禁止されていればその書き込み動作を行わない。なお、ディスクのアクセス単位は、物理的には512バイトのセクター単位となるが、SBDではこれをバイト単位にする拡張を行った。すなわち、読み出したセクターの内容をSBDが書き込むセクターの内容とバイト単位で比較し、バイト単位のデータが同一の内容であれば書き換えなし、異なる内容であれば書き換えありとの判断をFPGAボードで行う。書き換える部分以外は読み出したデータを用い、セクター単位で記憶装置に書き込む。これにより、バイト単位のデータ保護を実現した。システムからセキュリティ情報ディスクは見えないため、マルウエアは原理的にこのセキュリティ情報を変更することはできない。

SBDのデータ保護機能の動作方式の図
図3 SBDのデータ保護機能の動作方式

 今回、さらにデータブロック単位のアクセス制御を拡張し、ファイル単位のアクセス制御を実現した。ファイルの読み出し禁止は、SBDでファイル部分のデータブロックを読み出し禁止に指定し、ダミーデータを返す。ファイルの書き込み禁止については、Windowsで一般に使われているファイルシステムのNTFSの場合、ユーザーに当該ファイルの書き込み禁止違反の検出を知らせつつ、一旦ファイルへの書き込みを許す。そして再起動時にSBDが当該ファイルを元の内容に書き戻す。従って、システムファイルなどを書き込み禁止にしておけば、OSの起動前にそれらのファイルが復活し、システムを無事元の状態に復帰させることができる。このように書き込み禁止ファイルへの書き込みを一旦許すのは、Windowsなど一般的なOSでは、高速化のためファイルシステムのキャッシュがメモリ上にあり、書き換えはまずこのキャッシュ上で行われる。このためSBDが記憶装置(ディスク)への書き込みを禁止した場合、書き換えられたキャッシュとディスクの間に齟齬が発生するからである。キャッシュは短時間の内にディスクに反映されるため、書き込み禁止違反は早期に検出できる。また、ブート領域などファイル以外の領域を破壊したりマルウエアを仕込んだりする攻撃に対しては、SBDはその書き換えを即座に検出し禁止できる。

 今回開発した技術は、オリジナルのディスクに全く手を加えず、ファイルやデータ領域を自由に指定して防御できるものであり、同等な機能の製品はなく、新たに実現した。

 SBDは、アクセス違反を検出すると同時にイーサネットなどの外部との通信を遮断することもできるため、マルウエアによる遠隔操作を断ち切ったり、それ以上の侵入や他への感染、情報流失などを防止したりすることもできる。その後、安全な状況でSBDのログや書き換えられたファイルを解析し、マルウエアの分析も進めることもできる。また、FPGAボードでアクセス違反を検出しているため、装着による記憶装置のアクセス速度の低下は小さく抑えられており、モーションコントロールなどのリアルタイムでの処理が必要なシステムや広い通信帯域が必要なデータサーバーなどにも対応可能と考える。

今後の予定

 今回、SBDでのファイル単位の保護をユーザーの多いWindows系OSで用いられるNTFSで実現した。他のファイルシステムにも適用可能であり、Linux系のEXTおよび小規模ストレージ向きのFATについては近日中に対応予定である。ほかのファイルシステムについても必要に応じて対応させることができる。また、イーサネット、USB、HDMIなどのほかのIOポートを中継する機能を開発することでSBDの防御機能のさらなる強化を行っていく予定である。

 現在のSBDでは、専用に開発したFPGAボードが10 cm×23 cmという大きさであり、また、SBD制御装置はFPGAボードを内蔵できるよう市販のパソコンを用いているため、全体としてデスクトップパソコンほどのサイズのプロトタイプ機となっている。一般ユーザー向けには小型化が望まれるため、今後、記憶装置のメーカーと連携することにより現在の記憶装置と同一のサイズでのSBDストレージを開発することを検討していく予定である。


用語の説明

◆入出力ポート(IOポート)
キーボード、ディスプレイ、ハードディスク、イーサネットなどの周辺機器を接続するための入出力端子のこと。[参照元へ戻る]
◆OS
Operating System(オペレーティングシステム/基本ソフトウエア/システムソフトウエア)は、キーボード、ディスプレイ、記憶装置などの入出力、ファイル、メモリ、プロセッサなどの管理といった、アプリケーションプログラムから共通に利用される基本的な機能を提供し、コンピューターシステム全体を管理するソフトウエアのことである。WindowsLinuxAndroid、OS Xなどがある。[参照元へ戻る]
◆デバイスドライバー
周辺機器(入出力デバイス)を制御するためのソフトウエア。デバイスの種類や機能に応じて異なるものが必要とされることが多い。[参照元へ戻る]
◆FPGAボード
Field Programmable Gate Array(論理プログラム可能なLSIチップ)を搭載したボード。ユーザーが後から何度でも論理プログラム(回路)を書き直すことが可能。[参照元へ戻る]
◆SATAポート
IOポートの一種で、パソコンとハードディスク(HDD)などの記憶装置を接続する規格Serial Advanced Technology Attachmentの通信ポート。最近のほとんどのパソコンはこの規格を採用している。[参照元へ戻る]
◆マザーボード
プロセッサ、メモリ、(ここでは特に)IOポートなどを搭載した主要な電子回路基板。[参照元へ戻る]
◆マルウエア
malicious”(悪意のある)と“software”(ソフトウエア)からの造語であり、コンピューターウイルスなどの悪意を持ったソフトウエアの総称。[参照元へ戻る]
◆ブロック単位
ハードディスクなどの記憶装置の多くは、ブロックデバイスと呼ばれ、決められた単位(セクタ、512~4096バイト)でしか入出力ができない。[参照元へ戻る]
◆ブート領域
システムの電源を入れた際、最初に実行される起動のためのプログラムや情報が格納された記憶装置の領域。この領域が壊されるとOSを起動することができなくなる。[参照元へ戻る]
◆システムファイル
OSを正常に動作させるために必要なファイル群。[参照元へ戻る]
◆ゼロデイ攻撃
ソフトウエアの脆弱性が発見されてから、対策プログラムなどが準備されるまでの間に、その脆弱性を攻撃すること。[参照元へ戻る]
◆可用性
システムが故障などで停止したりせず継続して使用できる能力。[参照元へ戻る]
◆パーティション単位
ハードディスクの論理的に分割された領域のこと。OSからは各パーティションがそれぞれ独立な論理デバイスとして見える。[参照元へ戻る]
◆イーサネット
PCのネットワーク用通信ポート(LAN)の規格。コンピューターネットワークで最も普及している通信規格。[参照元へ戻る]
◆モーションコントロール
動作制御のこと。工場の組み立て機械などで制御に実時間性が必要とされる。[参照元へ戻る]


お問い合わせ

お問い合わせフォーム

▲ ページトップへ