21
踏踏踏踏踏踏踏踏踏踏踏踏踏 VMM 踏踏踏 踏踏踏踏踏踏踏踏 踏踏 踏踏踏踏踏踏 踏踏踏踏:08 M54012 踏踏 踏踏 踏踏踏踏 踏踏 踏

踏み台攻撃だけを抑制できる VMM レベル・パケットフィルタ

  • Upload
    marvin

  • View
    76

  • Download
    0

Embed Size (px)

DESCRIPTION

踏み台攻撃だけを抑制できる VMM レベル・パケットフィルタ. 数理・計算科学専攻 学籍番号:08 M54012 安積 武志 指導教員 千葉 滋. 踏み台攻撃への対処. IaaS 型サービスを提供するデータセンタにとって踏み台攻撃は脅威 ユーザの仮想マシン( VM )に侵入されて外部を攻撃 被害者でありながら加害者になってしまう 攻撃を検出したらその通信を即座に制限すべき できるだけ攻撃パケットだけを制限したい サービスの可用性を保つため. VM. 大量の パケット. データセンタ. 外部 ホスト. ポート スキャン. データセンタ. 外部 - PowerPoint PPT Presentation

Citation preview

踏み台攻撃だけを抑制できる

VMM レベル・パケットフィルタ数理・計算科学専攻

学籍番号:08 M54012安積 武志

指導教員 千葉 滋

踏み台攻撃への対処

IaaS 型サービスを提供するデータセンタにとって踏み台攻撃は脅威 ユーザの仮想マシン( VM )に侵入されて外部を

攻撃 被害者でありながら加害者になってしまう

攻撃を検出したらその通信を即座に制限すべき できるだけ攻撃パケットだけを制限したい

サービスの可用性を保つため

VM大量のパケット

ポートスキャン

データセンタ外部ホスト

メールサーバ

一般的な対処法

外部のファイアウォールによる通信制限 ポートや IP アドレス単位で通信を制限 踏み台攻撃でない通信まで制限してしまう

制限が大雑把過ぎる

  port:25

  port:25

SMTPスキャン

sendmail

deny ip A port 25

データセンタ外部ホスト

ファイアウォール

               OS

メールサーバ

従来のきめ細かい対処法

サーバ内部のファイアウォールで通信制限 OS 内部のパケット送信

元の情報も利用 踏み台攻撃を行っている

プロセスからのパケットのみ制限

攻撃者に通信制限を無効化される恐れ 管理者権限を取られると

ルールを削除できる

port:25 port:25

SMTPスキャン

sendmail

deny ip A port 25 pid 100

データセンタ

外部ホスト

ファイアウォール

xFilter

仮想マシンモニタ( VMM )内で動作するきめ細かいパケットフィルタ VMM における通信制限

すべてのパケットを検査できる VM から隔離されているので安全

ゲスト OS 内の送信元情報を利用 踏み台攻撃のみを抑制できる VM のメモリを解析して取得

VM

            VMMxFilter

プロセス

ゲスト OS

deny ip A port 25 pid 100

パケット 情報

システム構成

xFilter は3つのコンポーネントからなる xFilter コア

モジュール、 IDS を統括 xFilter モジュール

ゲスト OS に合わせたメモリ解析 パケット送信元プロセスの特定

パケットをルールと照合 IDS

踏み台攻撃を検出 攻撃を防ぐルールを追加

ゲスト OS

SMTPスキャン

sendmail

modulecore

IDS破棄

送信

VMM

xFilter

パケット 情報

メールサーバ

xFilter モジュール

送信元プロセスによるパケットフィルタリング 型情報を用いてメモリ解析

デバッグ情報から取得 deny ルールに指定された

プロセスを探す 対象パケットを送信した

ソケットが見つかれば拒否                xFilter

        VMM

VM

modulecore

IDS

task_structfiles_struct

fdtable file

sock socket

pid 、 uid

を取得

ポート、IP アドレスを取得

メモリ解析

deny ip A port 25 pid 100

フィルタリング結果のキャッシュ

xFilter

性能向上のために xFilter コアがフィルタリング結果をキャッシュ TCP の同一コネクション内のパケットについて

は結果が変わらないことを利用

パケットの TCP ヘッダのフラグで判断 SYN: コネクションの確立

フィルタリング結果をキャッシュ FIN: コネクションの終了

キャッシュからエントリを削除

miss

hit

core

cache module

packet

xFilter モジュールの開発支援

別 VM で xFilter モジュールを動かせる デバッグが容易になる

クラッシュしても立ち上げなおすだけで良い

フィルタリング性能は低下 完成したら VMM に入れる

ことができる 変更は不要

ゲスト OS

プロセス

xFiltercore

xFiltermodule

送信破棄 VMM

xFilter

パケット

外部 IDS を用いた場合の問題点

VMM 内の IDS が踏み台攻撃を検出 パケット送信から検出までのタイムラグを小さく

できる 外部の IDS で検出するとタイムラグが長い

送信元プロセスを特定できない可能性を減らす ソケットのクローズ プロセスの終了

VM

modulecore外部IDS

xFilter

VMM

IDS による攻撃元の特定

IDS が攻撃を検出したらパケットの送信元を特定 ゲスト OS の全てのソケットを調べる

xFilter モジュールの機能を利用 攻撃を検出したら送信元特定フェーズに移行

以降は送信元を記録 常に記録すると性能に影響

誤検知を防ぐ                 xFilter

        VMM

VM

modulecore

IDS

フィルタリングルールの自動登録

検出した攻撃を防ぐルールを自動的に追加 新しいルールの生成

検出した攻撃パケット(群)を包括するルールを生成 既存のルールとの統合

類似の攻撃を遮断できるように必要に応じてルールをまとめる

deny ip A port 22 pid 100deny ip B port 25 pid 100 deny ip * port * pid 100

deny ip A port 22 pid 100 uid 1000deny ip B port 22 pid 101 uid 1000

deny ip * port 22 pid * uid 1000

実装

xFilter を Xen3.4.2 に実装 xFilter コア

ドメイン 0 の netback と実ドライバの間に実装

ハイパーコールを使ってモジュールを呼び出し

xFilter モジュール VMM 内に実装

IDS ドメイン 0 内に実装

hypervisor call

domain0 domain U

      Xen VMM

netfrontnetbackreal

driver

xFilter core

プロセス

xFiltermodule

stab

IDS

送信

実験

ポートスキャンの検出 nmap を用いてドメイン U からポートスキャン フィルタリングルールの最適化

アプリケーションの性能への影響 ドメイン U で Apache 2.0 ApacheBench で 50KB のサイズの HTTP ファイ

ル をリクエスト

xFilter モジュール、 IDS それぞれについて

実験環境Intel Core i7 860Xen 3.4.2 (x86_64)domain0:Linux 2.6.18.8, 7GbytedomainU:Linux 2.6.18.8, 1Gbyte

ポートスキャンの検出

nmap を用いて特定ホストへポートスキャン 1 つのプロセスで実験

ポートスキャンを検出、遮断 ssh 等の他のプロセスからの通信は行える

fork しながら実験 ポートスキャンを検出、遮断 ルールの統合が行われ、以降の攻撃も遮断 別のユーザからの通信は行える

VM

ポートスキャン

VMM

ssh

xFilter

deny ip xx.xx.xx.xx port * pid 16532

deny ip xx.xx.xx.xx port * pid 27904 uid 0deny ip xx.xx.xx.xx port * pid 28281 uid 0

deny ip xx.xx.xx.xx port * pid * uid 0

送信

メモリ解析時間

メモリ解析を行うハイパーコールの実行時間 プロセスのリストのみ解析 ソケット情報まで解析

結果 プロセス数に比例

1 プロセスにつき約 28ns ソケット数に比例

1 ソケットにつき約 41ns

usメモリ解析時間( )

0

10

20

30

40

50

100 200 300 400 500ソケット数

us

メモリ解析時間

0

50

100

150

200

1000 2000 3000 4000 5000

プロセス数

us

フィルタリングによる性能低下

プロセス数を変えて測定 IDS は動作していない xFilter なしでは

スループット  961req/sレスポンス  1.04ms

結果 キャッシュが有効であれば

500 プロセスにつき約 2.5 % キャッシュが無効であれば

500 プロセスにつき約 15 %

0

200

400

600

800

1000

1000 2000 3000 4000 5000プロセス数

(req

/s)

スル

ープ

ット

no cachecache on

0

1

2

3

4

5

1000 2000 3000 4000 5000プロセス数

(ms)

レス

ポン

no cachecache on

IDS による性能低下

プロセス数を変えて測定 ポートスキャンを検出す

る IDS を用いて実験 xFilter モジュールは動作

していない

結果 攻撃検出フェーズでは

スループット  950req/sレスポンス  1.05ms

攻撃元特定フェーズでは500 プロセスにつき約 3%

0

200

400

600

800

1000

1000 2000 3000 4000 5000

プロセス数

(req

/s)

スル

ープ

ット

xFilter なしではスループット  960.82req/s

レスポンス  1.041ms

0

0.5

1

1.5

2

1000 2000 3000 4000 5000

プロセス数

(ms)

レス

ポン

関連研究

Amazon EC2 ドメイン 0 上で動作するファイアウォール 踏み台攻撃に対応できない

ステートフルインスペクション SYN パケットはルールベースで、それ以降はス

テートテーブルでチェック Chorus[Rozier ら ‘ 92]/CAPELA[kourai ら ‘ 98]

カーネルモジュールの開発支援システム プロセスとして実装し、変更なしにカーネルに移

まとめ

VMM レベル・パケットフィルタの xFilter を提案 踏み台攻撃に対して安全かつきめ細かい通信制限

が可能 送信元プロセスの情報を用いてフィルタリング VM のメモリを解析してゲスト OS 内の情報を取得

VMM 内の IDS により、ルール追加を自動化 ルールの統合を行い、以降の同様の攻撃を防ぐ

今後の課題 ポートスキャン以外の踏み台攻撃用の IDS を追加

成果

論文 DSW08summer @北海道 ソフトウェア科学会 2009 @島根 OS 研究会 2010 @伊東 PRDC 2010 @ Tokyo  (不採録) OS 研究会 2011 @福岡 ACS 論文誌 2011 (投稿中) ESORICS 2011 @ Belgium (執筆中)

ポスター Comsys2008 @品川 Comsys2010 @大阪