異常行動検出入門 – 行動データ時系列のデータマイニング –

39
異常行動検出入門 異常行動検出入門 - - 行動データ時系列のデータマイニング 行動データ時系列のデータマイニング - - @yokkuns @yokkuns 里 洋平 里 洋平 2011/08/27 2011/08/27 16 16 R R 勉強会@東京( 勉強会@東京( Tokyo.R#16 Tokyo.R#16

Upload: yohei-sato

Post on 31-May-2015

7.978 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常行動検出入門異常行動検出入門- - 行動データ時系列のデータマイニング 行動データ時系列のデータマイニング --

@yokkuns @yokkuns 里 洋平里 洋平2011/08/27 2011/08/27 第第1616回回RR勉強会@東京(勉強会@東京(Tokyo.R#16Tokyo.R#16))

Page 2: 異常行動検出入門 – 行動データ時系列のデータマイニング –

本日の内容本日の内容

● 異常行動検出

Page 3: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AGENDAAGENDA

● 自己紹介● 異常行動検出

● サイバー犯罪の検出● ナイーブベイズによる異常行動検出● 異常行動検出エンジン AccessTracer● 応用例

● 最後に

Page 4: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AGENDAAGENDA

● 自己紹介● 異常行動検出

● サイバー犯罪の検出● ナイーブベイズによる異常行動検出● 異常行動検出エンジン AccessTracer● 応用例

● 最後に

Page 5: 異常行動検出入門 – 行動データ時系列のデータマイニング –

自己紹介自己紹介

● 名前 : 里 洋平● ID : yokkuns

● 職業 : データマイニングエンジニア● 出身 : 種子島

Page 6: 異常行動検出入門 – 行動データ時系列のデータマイニング –

Tokyo.RTokyo.Rを主催していますを主催しています

参加ありがとうございます!

http://groups.google.com/group/r-study-tokyo

Page 7: 異常行動検出入門 – 行動データ時系列のデータマイニング –

Japan.R Japan.R 今年もやります!今年もやります!

Page 8: 異常行動検出入門 – 行動データ時系列のデータマイニング –

本を執筆しました本を執筆しました

Page 9: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AGENDAAGENDA

● 自己紹介● 異常行動検出

● サイバー犯罪の検出● ナイーブベイズによる異常行動検出● 異常行動検出エンジン AccessTracer● 応用例

● 最後に

Page 10: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常行動検出異常行動検出

3つの基本的な異常検出の中の一つ機能 入力対象 確率モデル 検出対象 応用

はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出侵入検知故障検知

変化点検出 多次元時系列 時系列モデル 時系列上の 急激な変化バースト的異常

攻撃検出ワーム検出障害予兆検出

異常行動検出 セッション時系列

行動モデル 異常セッション異常行動パターン

なりすまし検出障害予兆検出不審行動検出

セッション時系列データを扱う異常検出

※セッション : ある一まとまりの行動履歴

Page 11: 異常行動検出入門 – 行動データ時系列のデータマイニング –

サイバー犯罪の検出サイバー犯罪の検出

大量のログから不正行為や不審行為を自動的に検出することが求められている

1 コピー2 リネーム3 ファイルを開く4 ファイルを閉じる5 他フォルダに移動6 ファイルを開く

学習1 サーバにアクセス2 ファイルをコピー3 ファイルをリネーム4 ファイルを圧縮5 メールに添付し送付6 ファイルを削除

通常業務 情報漏洩行為

いつもと違う行動を検出

防犯や犯罪が起こった際の調査のために大量のログが蓄積されている

Page 12: 異常行動検出入門 – 行動データ時系列のデータマイニング –

ナイーブベイズによる異常行動検出ナイーブベイズによる異常行動検出

特定のユーザに関するセッションの発生確率が他のユーザに比べて優位に小さくなった時にアラート

a b c ... a b c ...

訓練データ

スコアリング

ユーザuのコマンド出現パターン

ユーザu以外のコマンド出現パターン

出現

確率

出現

確率

P〜u(x1,. .. , xN )Pu(x1,. .. , xN )

Page 13: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常行動検出エンジン 異常行動検出エンジン AccessTracerAccessTracer

● ナイーブベイズでは”動き”を捉える事が出来ない● 珍しいコマンドが出た時にアラートを出すにとどまっている● コマンドの出現頻度だけを見るとなんら変わりなくても、

発生する時間的順序がいつもと違っているという異常など

異常行動検出エンジンAccessTracer

● ”動き”を確率モデルで表現● 非定常な環境の元手も精度良く異常行動を検出する

Page 14: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AccessTracerAccessTracerの基本原理の基本原理11

セッション時系列から行動パターンを学習セッション単位で異常スコアリングを行う

セッション列

HMM混合モデルの忘却型学習

M1(混合数1)

HMM混合モデルの忘却型学習

MN(混合数N)

動的モデル選択による最適なモデル系列の選択

各セッションの異常スコア計算

・・・・

Page 15: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AccessTracerAccessTracerの基本原理の基本原理22

AccessTracerの基本的な流れ

隠れマルコフモデルの混合分布による行動モデリング

複数の混合隠れマルコフモデルのオンライン忘却型学習

動的モデル選択による最適混合数の決定

スコアリング

Page 16: 異常行動検出入門 – 行動データ時系列のデータマイニング –

行動モデリング行動モデリング

各セッションはK個の成分を持つ隠れマルコフモデルに従って生起されていると仮定

S t−1 S t S t+1

yt−1 yt yt+1

P k ( y j|θ k)=∑(s1,. .. , sT j)γk∗∏ ak (st| st−1 , ... , st−n)∗∏ bk ( y t| st)

状態系列

出力系列

P ( y j|θ)=∑k=1

Kπk Pk ( y j|θk)

セッションyjの発生確率

隠れマルコフモデル

状態ベクトルの初期確率分布

状態変数の遷移確率

シンボルの出力確率

Page 17: 異常行動検出入門 – 行動データ時系列のデータマイニング –

SDHMSDHMアルゴリズムアルゴリズム

混合隠れマルコフモデルをオンラインで忘却型学習

Page 18: 異常行動検出入門 – 行動データ時系列のデータマイニング –

SDHMSDHMアルゴリズムアルゴリズム

E-Step : メンバーシップ確率の更新

メンバーシップ確率

Page 19: 異常行動検出入門 – 行動データ時系列のデータマイニング –

SDHMSDHMアルゴリズムアルゴリズム

M-Step : 各パラメータの更新

状態確率

状態ベクトルの初期確率分布

状態変数の遷移確率

シンボルの出力確率

混合係数

Baum–Welchで求める

Page 20: 異常行動検出入門 – 行動データ時系列のデータマイニング –

動的モデル選択動的モデル選択

学習されたモデルの中で最適な混合数を持つものを選択最適な混合数の時間的変化は行動パターンの構造的な変化

y1, ... , y t−1 y t−1 , ... , yn

モデル1 モデル2

=> 観測データを説明する最適なモデル系列を選択

データ

時間

(M 1, ... ,M 1,M 2, ... ,M 2)

Page 21: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常スコアリング異常スコアリング

各セッションの異常スコアを以下のように定義

Score ( y j)=− 1T j

log P ( y j|θ( j−1))

または

Score( y j)=− 1T j

log P ( y j|θ( j−1))− 1T j

compress( y j)

Page 22: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常スコアリング異常スコアリング

各セッションの異常スコアを以下のように定義

Score ( y j)=− 1T j

log P ( y j|θ( j−1))

または

Score( y j)=− 1T j

log P ( y j|θ( j−1))− 1T j

compress( y j)

シャノン情報量

ユニバーサル符号化を行った時の符号長高い規則性をもつ系列 => 小ランダムな系列 => 大

対数損失

Page 23: 異常行動検出入門 – 行動データ時系列のデータマイニング –

異常スコアリング異常スコアリング

各セッションの異常スコアを以下のように定義

Score ( y j)=− 1T j

log P ( y j|θ( j−1))

または

Score( y j)=− 1T j

log P ( y j|θ( j−1))− 1T j

compress( y j)

ユニバーサル統計検定量

Page 24: 異常行動検出入門 – 行動データ時系列のデータマイニング –

閾値の動的最適化閾値の動的最適化

異常スコアのヒストグラムをオンライン忘却型学習裾確率がρを超えない最大のスコアを閾値とする

確率

閾値

累積確率がρ未満

Page 25: 異常行動検出入門 – 行動データ時系列のデータマイニング –

応用例応用例1 : 1 : なりすまし検出なりすまし検出

UNIXコマンド列からのなりすまし検出問題

図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf

隠れマルコフモデル

パターン1個

パターン2個なりすまし開始検出

なりすましのパターンを同定

行動パターンの数

異常スコア

ユーザのコマンド なりすましのコマンド

Page 26: 異常行動検出入門 – 行動データ時系列のデータマイニング –

応用例応用例2 : syslog2 : syslogからの障害検知 からの障害検知

syslogにAccessTracerを適用システムロックアップの予兆を2 日前に発見

図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf

Page 27: 異常行動検出入門 – 行動データ時系列のデータマイニング –

RRでの実装するにはでの実装するにはRで隠れマルコフモデル

HMMパッケージ

Page 28: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージパッケージ

HMMの初期化

initHMM(States, Symbols, startProbs=NULL, transProbs=NULL, emissionProbs=NULL)

●States : 状態変数のベクトル●Symbols : イベントシンボルのベクトル●startProbs : 状態変数の初期確率のベクトル●transProbs : 状態変数の遷移確率●emissionProbs : 状態変数からのイベントシンボルの出力確率

Page 29: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージパッケージ

HMMのパラメータ推定forward型推定

forward(hmm, observation)

●hmm : HMMモデルオブジェクト●observation : 観測されたイベントシンボルのベクトル

Page 30: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージパッケージ

HMMのパラメータ推定backward型推定

backward(hmm, observation)

●hmm : HMMモデルオブジェクト●observation : 観測されたイベントシンボルのベクトル

Page 31: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージパッケージ

HMMのパラメータ推定

baumWelch(hmm, observation, maxIterations=100, ...)

●hmm : HMMモデルオブジェクト●observation : 観測されたイベントシンボルのベクトル●maxIterations : Baum - Welchアルゴリズムの反復の最大数

Page 32: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージ実行例パッケージ実行例

Page 33: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージ実行例パッケージ実行例

HMMのパラメータ推定forward型推定

Page 34: 異常行動検出入門 – 行動データ時系列のデータマイニング –

HMMHMMパッケージ実行例パッケージ実行例

HMMのパラメータ推定backward型推定

Page 35: 異常行動検出入門 – 行動データ時系列のデータマイニング –

Baum-WelchBaum-Welchアルゴリズムアルゴリズム

Page 36: 異常行動検出入門 – 行動データ時系列のデータマイニング –

AGENDAAGENDA

● 自己紹介● 異常行動検出

● サイバー犯罪の検出● ナイーブベイズによる異常行動検出● 異常行動検出エンジン AccessTracer● 応用例

● 最後に

Page 37: 異常行動検出入門 – 行動データ時系列のデータマイニング –

最後に最後に

次回以降の次回以降の発表者を募集しています!発表者を募集しています!

Page 38: 異常行動検出入門 – 行動データ時系列のデータマイニング –

最後に最後に

データマイニングエンジニアデータマイニングエンジニア募集しています!募集しています!

[email protected]@gmail.com

Page 39: 異常行動検出入門 – 行動データ時系列のデータマイニング –

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