35
OSやアプリを問わず装着するだけで 重要データを防御する セキュリティバリアデバイス 戸田賢二 海老原一郎 瀬河浩司 高橋孝一 古原和邦 (独)産業技術総合研究所 AIST[制御システムセキュリティセンター(CSSC)との連携研究]

OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

Embed Size (px)

DESCRIPTION

セキュリティバリアデバイス(SBD)は、PCや制御機器などの防御対象機器(以降PC)のマザーボードと周辺機器の各種ポートの間に挿入し、これらを中継することにより防御を実現するハードウェアである。PCからはSBDは透過的で全く見えず、OSやアプリケーションを問わず装着可能である。本講演では、SBDがSATAポートの中継により実現したストレージ保護機能について論ずる。 SBDは、自分だけアクセス可能なセキュリティ情報ディスクを備えており、そこにPCのオリジナルディスクに対するアクセス可否情報を保持している。PCからオリジナルディスクに対しデータアクセス要求があると、SBDはその部位のアクセス可否情報を参照し、リード禁止であれば0などのダミーデータを返し、ライト禁止であればそのライトを行わない。さらにこの領域単位の保護に加え、ファイル単位の保護を実現した。ファイルのライト禁止では、メモリ上のディスク関連キャッシュとの齟齬、ディレクトリ上のファイルへのポインタ位置の変動(NTFSはB-tree)などの問題があったが、それらを解決した手法を示す。 SBDは、ブートデータ領域やシステムファイル改変を伴うゼロデイを含むマルウェアからの防御に有効であり、アクセス違反の検出からイーサネットポートを遮断して遠隔操作を切断してマルウェア感染防止を行う様子も紹介する。 戸田 賢二 - Kenji Toda 独立行政法人 産業技術総合研究所にて、30Gbps侵入検知装置、60GbpsURLフィルタリング装置、ネットワーク機器試験装置などのハードウェアの研究開発を行ってきた。現在、技術研究組合制御システムセキュリティセンターと連携してセキュリティバリアデバイスの開発を行っている。

Citation preview

Page 1: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

OSやアプリを問わず装着するだけで重要データを防御する

セキュリティバリアデバイス

戸田賢二 海老原一郎 瀬河浩司 高橋孝一 古原和邦

(独)産業技術総合研究所 (AIST)

[制御システムセキュリティセンター(CSSC)との連携研究]

Page 2: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

講演内容

• 開発の背景 • SBDの概念 • データ保護機能の動作方式 • ハードウェア及びセキュリティタグ • セクタ単位のアクセス制御 • ファイル単位のアクセス制御 • マルウェアへの対応 • デモビデオ • 今後の予定

現在はNTFSのみ実現 EXTとFATは対応予定 それ以外へも適用可能

2

Page 3: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

研究の背景:PCやサーバ

• 巨大となったOSやアプリ

の脆弱性を完全にふさぐことは困難

• 未発見の脆弱性や発見されてから対策が行われるまで間はゼロデイと呼ばれ無防備な状態

脆弱性特定数の推移

(http://www.symantec.com/ja/jp/threatreport/topic.jsp?id=vulnerability_trends&aid= total_number_of_vulnerabilities) 3

Page 4: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

研究の背景:制御システム

• ハードウェアの制約上負荷のかかるセキュリティソフトの導入が困難

• 動作検証や可用性の問題から古いOSやアプリをセキュリティパッチもあてずに使い続けるケースも多い

• 簡単に後付けでき、ソフトのインストールが不要で、OSやアプリを問わず装着するだけで、重要データを防御する本発表のSBDの開発

4

Page 5: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD装着概念図

Target System

ソフトもハードもそのままで OSやアプリを問わず IOポートにSBDを挟むだけ データアクセスを保護!

5

Page 6: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

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

①ターゲットシステム(防御対象システム)からストレージにIOリクエスト発生

①SBDは、対応するIOブロッ

クのセキュリティ情報を同時に読み出す

②セキュリティ情報に応じて、アクセスを制限したり、ユーザに確認したりする

① ②

追加HDD: セキュリティ情報 PCから不可視!

オリジナルHDD: 通常データ

RW=10

③ Read〇 Write×

6

Page 7: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD: 全体写真

セキュリティバリアデバイス SBD用FPGAボード

7

Page 8: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD: ボードとその仕様

• ボード大きさ: PCI Expressカード形状(突起部除き長さ230mm高さ110mm) • FPGAチップ: Xilinx Kintex-7 676ピン XC7K325T • コンフィギュレーション用フラッシュロム: 電源ON時にFPGAへの回路書き込み用 • メモリI/F: DDR3 SODIMM×1ポート • 映像入力: HDMI×1ポート(コピー制御機能HDCPなし) • 映像出力 : HDMI×1ポート(コピー制御機能HDCPなし) • 光オーディオ: 入力×1 ,出力×1 • ストレージI/F: SATA (7ピン)×5ポート • 通信用I/F: 1G/100Mビットイーサ(RJ-45)×2ポート • 汎用I/F: USB (Type A)×6ポート(USB2.0対応) • SBD制御PC用I/F: PCI Express×1 8

Page 9: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBDボードの接続形態

SBD Control PC

SBD Board

Target Control Device

USB0

Ethernet (LAN)

HDMI

SATA0

PCIe(card slot)

SATA1

USB1

SATA0

SATA1

USB0

USB1

HDMI

Ethernet (LAN)

Peripherals of Target Control Device

9

Page 10: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD: セキュリティタグの構成(セクタ単位の制御)

Security Barrier Device (SBD)

Additional Storage for SBD Security

Target Control Device

User Login to SBD

SBD PASSWORD FILE

USER NAME

PASSWORD(root)

UID0

GID

SBD Control PC(Linux kernel 2.6 or above)

SBD Board

OWNER GROUP OTHER

RqraWqra RqraWqra RqraWqraRqraWqra

UID GID

Original Storage of Target Control Device

SBD SECURITY TAGs for corresponding BLOCK

BLOCK

Original Data in Target Storage

USER NAME

PASSWORDUID1

GID

Storage Access Storage Access

Additional Storage Access

Loop Back

...

LoopBack / AccessControl:{Query - assert / negate},

{Recording - all / no},{Alert - no}

SBD SECURITY MODEfor storage access

(R: read, W: write, q: query, r: record, a: alert)

USB

USB

HDMI

SATA

PCIe

UID

SBD DEFAULT UID & GID

Ethernet

Loop Back

GID

• 現在SATA ポート回路が実装済み • Ethernet は遮断可能

10

Page 11: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

セキュリティバリアデバイス(SBD): セクタ単位のアクセス制御

アクセス制御の対象はHDD/SSD/USBメモリなどブロックデバイスを想定

アクセスの単位はATAのセクタサイズ512バイトなので セクタ単位のアクセス制御が可能 • ディスクの領域やパーティション単位の防御はOK! • 書き換えるべきでないデータやシステムファイルを書き込み禁止パーティションに集める

• 通常は読み出すべきでないデータを読み出し禁止パーティションに集める

11

Page 12: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

セキュリティバリアデバイス(SBD): ファイル単位のアクセス制御 動機

ファイル単位の防御ができれば利便性が大幅に向上する: • システムや重要データは多くの場合ファイルである • ファイルを防御用パーティションに移動しなくてよい • オリジナルのデータディスクをそのまま保護可能 • 防御対象ファイルの指定や解除が極めて容易 • SBDの着脱のストレスがゼロ(コネクタ着脱のみ)

12

Page 13: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

セキュリティバリアデバイス(SBD): ファイル単位のアクセス制御 要件

よく使われるファイルシステム: • NTFS (Windows系) • EXT系(Linux系) • FAT系(旧Windows, MS-DOS, VxWorks, USBメモリ他) • HFS+(Mac OS X,…) これらファイルシステムに対応するには: • データブロックをアクセス制御するのに →〇セクタ単位でOK →〇読み出し制御はOK →×書き込み制御はノンレジデントデータファイルでは、ポインタの付け替えでデータブロックにアクセスしないのでNG +ディレクトリもアクセス制御が必要

13

Page 14: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD:ファイル単位のアクセス制御 高解像度化の実現

ファイルのデータ + ルートからのパス を保護 ディレクトリやポインタ領域のアクセス単位 ≦セクタサイズ512B アクセス制御の高解像度化が必要

1. セクタに対応するセキュリティ情報に必要とされる解像度を記録 2. 当該セクタをストレージに書き込むとき,その解像度の単位でアク

セス制御の処理を行う:書き込み禁止であれば,書き込み禁止の部分のデータはストレージから読み出した方を用いて当該ディレクトリ領域上のデータは変更しない

14

Page 15: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

セキュリティバリアデバイス(SBD): ファイルの読み出し禁止は容易

SBDの読み出し禁止制御でダミーデータ(0)を返した場合: 保護対象PCでファイルを開こうとした際のエラーメッセージ(Ubuntu) →

15

Page 16: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD:書き込み禁止の要件 EXT2(Linux)ファイルシステムの例

• /appdata/app_critical がセキュアデータ: ルートからのパスも保護が必要 16

Page 17: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

ファイル単位のアクセス制御: 高解像度化しても残る困難

NTFSファイルのライト禁止制御: ① PCメモリ上のディスクのキャッシュの内容とディスクの内容が異なってし

まうためファイルシステムが破損しOSがクラッシュする可能性がある。

② ライト禁止ファイルのルートからのパス(すなわちそのファイルまでのディレクトリ群)もライト禁止する必要があるが、NTFSでは、ディレクトリ内のファイルへのポインタエントリはBalanced Treeのアルゴリズムで管理さ

れ、ライト禁止ファイルのエントリの位置が、通常ファイルの追加や削除により変動する。←SBDは固定領域の保護を想定したFPGA上の回路で高速化を達成しており、可変領域への対応は性能ペナルティを招く。

17

Page 18: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBDのファイル単位のアクセス制御: OSのキャッシュとの整合

【問題点】 WindowsやLinuxではメモリ上のキャッシュを活用し高速化:

• スーパーブロック(ブロックグループデスクリプタ,フリーブロックやフリーi-nodeのビットマップ情報など)

• i-nodeキャッシュ • ディレクトリエントリキャッシュ • バッファキャッシュ(ディスクブロックのデータに対応) • ページキャッシュ(ファイルのデータに対応)

書き込み時にストレージ上のデータ書き込みを禁止すると キャッシュとの齟齬が発生!

18

Page 19: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

ファイル単位のアクセス制御: 困難を克服

→SBDからエラーを返し意図的に疑似不良ブロックを発生させる!

→ファイル内の親ディレクトリへのポインタは位置固定!

NTFSファイルのライト禁止制御: ① PCメモリ上のディスクのキャッシュの内容とディスクの内容が異なってし

まうためファイルシステムが破損しOSがクラッシュする可能性がある。

② ライト禁止ファイルのルートからのパス(すなわちそのファイルまでのディレクトリ群)もライト禁止する必要があるが、NTFSでは、ディレクトリ内のファイルへのポインタエントリはBalanced Treeのアルゴリズムで管理さ

れ、ライト禁止ファイルのエントリの位置が、通常ファイルの追加や削除により変動する。←SBDは固定領域の保護を想定したFPGA上の回路で高速化を達成しており、可変領域への対応は性能ペナルティを招く。

SBDでOSの挙動を観察・実験

19

Page 20: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD:ファイル単位のアクセス制御 書き込み禁止の動作形態

NFTSファイルのライト禁止制御: ① ライト禁止ファイルへのライト、リネーム、削除などが行われた場合、ま

ずメモリ上のディスクのキャッシュで操作が完了し、書き換えが成功したように見える。

② しかし、間もなくそれは、ディスクに書かれることになり、SBDが検知する。

③ SBDは、疑似不良ブロックを発生させ、同時にユーザにライト禁止違反を警告 (SBDは違反をトリガとしてイーサネットを遮断することも可能)

④ ユーザがOSを再起動すると、SBDがファイル復帰動作を行いライト禁止のファイルが元の状態に復活し、PCは元の状態にもどる。

ライト禁止をOSと整合させて解決!

$BadClusファイルから疑似不良ブロックを回収

24

Page 21: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD: ファイル単位のアクセス制御 実現方式

Security Barrier Device (SBD)

Additional Storage for SBD Security

Target Control Device

User Login to SBD

SBD PASSWORD FILE

USER NAME

PASSWORD(root)

UID0

GID

SBD Control PC(Linux kernel 2.6 or above)

SBD Board

OWNER GROUP OTHER

RqraWqra RqraWqra RqraWqraRqraWqra

UID GID

Original Storage of Target Control Device

SBD SECURITY TAGs for corresponding BLOCK

BLOCK

Original Data in Target Storage

USER NAME

PASSWORDUID1

GID

Storage Access Storage Access

Additional Storage Access

Loop Back

...

LoopBack / AccessControl:{Query - assert / negate},

{Recording - all / no},{Alert - no}

SBD SECURITY MODEfor storage access

(R: read, W: write, q: query, r: record, a: alert)

USB

USB

HDMI

SATA

PCIe

UID

SBD DEFAULT UID & GID

Ethernet

Loop Back

GID

ファイルシステムを解釈し高解像度化したブロック毎の監視制御ルールを事前に作成

(ファイルシステム依存)

監視制御はバイト単位に高解像度化したブロック単位でFPGAの回路で行う

ため高速 (ファイルシステム

非依存)

25

Page 22: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBD: アクセス制御 性能

オーバヘッドの大きい高解像度化した状態: バイト単位のアクセスを監視した状態= ファイル単位のアクセス(リード、ライト)を監視した状態 実験レベルで100MByte/s←様々な条件でテスト中 測定条件: データ用及びセキュリティタグ用ディスクとして、Samsung

SSD 830, 128GBを用い、UbuntuのDisk UtilityのRead-Only Benchmarkで測定

セクタ同士の比較をバイト単位でマスクして行う回路+複数セクタをまとめてディスクIOするバッファ回路

26

Page 23: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

セキュリティバリアデバイス: マルウェアへの対応

SBDでの防御: • ブートキット • ルートキット

27

Page 24: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

28

• 最も危険なマルウェアの形態であるブートキットは、Windows が起動する前に起動し、ハードウェアとオペレーティング システムとの間に隠れるため、実質的には検出が不可能となり、システム リソースに無制限にアクセスします。(technet.microsoft.com)

• Win32/Gapz:新しいブートキットの手口 VBR感染型はBIOS Parameter Block の数バイトを改変するだけなので発見が困難(MBR感染型が進化) 。(blog.eset-smart-security.jp)

ブートキットの定義と Win32/Gapz

Page 25: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

29

ブートキット Win32/Gapz MBR感染型

• 図はMBR感染型の感染シーケンス (従来手口)

① ブートキットコードがディスクから

読み込まれ、Int 13hのディスクハンドラを乗っ取る

② ntldr, bootmgr, winload.exe, loInitSystemが順次フックされ、カーネルモードコード(ルートキット)を実行

Page 26: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

30

ブートキットWin32/Gapz VBR感染型

• VBR感染型のディスクイメージ(新手口)

① Volume Boot Recordの

BIOS Parameter BlockのHidden Sectors (4B)を上図から下図に変更

② 次のブート時に、Bootkitの前までがスキップされ、IPLの代わりにBootkitが実行

③ 後はMBR感染型と同様

Page 27: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

31

ブートキット: ELAM

• Win8で導入されたELAM(Early Launch Anti-Malware Module) はブートキットには役立ちません。

• (blog.eset-smart-security.jp)

Page 28: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

32

ブートキットWin32/Gapz

• VBR感染型のディスクイメージ(新手口)

① Volume Boot Recordの

BIOS Parameter BlockのHidden Sectors (4B)を上図から下図に変更

② 次のブート時に、Bootkitの前までがスキップされ、IPLの代わりにBootkitが実行

③ 後はMBR感染型と同様

SBDで防御可能!

Page 29: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

34

ブートキット: セキュアブート • セキュア ブートでは、PC の UEFI (Unified Extensible Firmware

Interface) によって、Windows ブートローダーが読み込まれる前にその安全性が確認されます。ブートローダーが変更された場合 (ブートキットがインストールされた場合など) や置換された場合、セキュア ブートによって、その実行が妨げられます。 (technet.microsoft.com, blogs.msdn.com)

ブートローダコード自体が守られる訳ではな

い!

認証のためにファイルとして管

理される!

Page 30: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

35

ブートキット: セキュアブート • セキュア ブートでは、PC の UEFI (Unified Extensible Firmware

Interface) によって、Windows ブートローダーが読み込まれる前にその安全性が確認されます。ブートローダーが変更された場合 (ブートキットがインストールされた場合など) や置換された場合、セキュア ブートによって、その実行が妨げられます。 (technet.microsoft.com, blogs.msdn.com)

ブートローダコード自体が守られる訳ではな

い!

認証のためにファイルとして管

理される! SBDで防御可能!

Page 31: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

36

ルートキット

• ルート権限(管理者権限)を使ってコンピュータシステムに侵入しシステムを改ざんするようなツールの総称(ASCII.jp)

• 典型的なルートキットはログオン、プロセス、ファイルやログを隠蔽する。また端末、ネットワークやキーボードからのデータ入力を傍受することもある。多くの場合、ルートキットはトロイの木馬でもある。(Wikipedia)

• ソニーBMG製CD XCP問題: コピーガード機能と音楽再生用のコンピュータソフトウェアと同等の機能をもつ製品だが、秘密裏にrootkitを用いたアク

セスコントロール(外部への送信、および侵入を許可するもの)がインストールされ、コンピュータ内の情報を外部へ送信したり、CDドライブへのアクセス権限などを隔離し、音楽CDを他のメディアプレイヤーソフトなどで再生し

たり、コンピュータ内にコピーすることを不能にする。脆弱性が見つかり他のマルウェアに悪用されたりもした。(→現在ではwindows updateで駆除可能。) (Wikipedia)

システムファイルが改ざん!

Page 32: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

37

ルートキット

• ルート権限(管理者権限)を使ってコンピュータシステムに侵入しシステムを改ざんするようなツールの総称(ASCII.jp)

• 典型的なルートキットはログオン、プロセス、ファイルやログを隠蔽する。また端末、ネットワークやキーボードからのデータ入力を傍受することもある。多くの場合、ルートキットはトロイの木馬でもある。(Wikipedia)

• ソニーBMG製CD XCP問題: コピーガード機能と音楽再生用のコンピュータソフトウェアと同等の機能をもつ製品だが、秘密裏にrootkitを用いたアク

セスコントロール(外部への送信、および侵入を許可するもの)がインストールされ、コンピュータ内の情報を外部へ送信したり、CDドライブへのアクセス権限などを隔離し、音楽CDを他のメディアプレイヤーソフトなどで再生し

たり、コンピュータ内にコピーすることを不能にする。脆弱性が見つかり他のマルウェアに悪用されたりもした。(→現在ではwindows updateで駆除可能。) (Wikipedia)

システムファイルが改ざん! SBDで防御可能!

Page 33: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

SBDがブート領域への書き込みを防御しイーサネットを遮断し遠隔操作を断ち切った例

38

Page 34: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

今後の研究予定

• 技術研究組合 制御シス テムセキュリティセンター (CSSC)での実証実験と それによる改善 • Linux系EXTと普及し手軽なFATファイルシステムへの対応は進行中(これ以外も対応可能)

• 動作の高速化及び安定化の追求 • 様々なマルウェアでの評価 • イーサネット、USB、HDMIなどのポート中継によるセキュリティ機能強化の検討

• 小型化(SBDストレージなど)の検討 39

Page 35: OSやアプリを問わず装着するだけで重要データを防御するセキュリティバリアデバイス by 戸田 賢二

ご静聴ありがとうございました

40