産業技術総合研究所(産総研)は2月14日、装着するだけでPCやサーバ、制御システムの重要データを防御するセキュリティバリアデバイス(SBD)を開発と発表した。

同成果は、同所 セキュアシステム研究部門 制御システムセキュリティ研究グループの戸田賢二主任研究員らによるもの。技術研究組合制御システムセキュリティセンター(CSSC)と共同で行われた。詳細は、2月17日~18日に東京で開催される情報セキュリティ国際会議「CODE BLUE」にて発表された。

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

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

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

SBD装着概念図

SBD装着実体図

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

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

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

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

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

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