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



        @yokkuns 里 洋平
2011/08/27 第16回R勉強会@東京(Tokyo.R#16)
本日の内容
●
    異常行動検出
AGENDA
●
    自己紹介
●
    異常行動検出
    ●
        サイバー犯罪の検出
    ●
        ナイーブベイズによる異常行動検出
    ●   異常行動検出エンジン AccessTracer
    ●
        応用例
●
    最後に
AGENDA
●
    自己紹介
●
    異常行動検出
    ●
        サイバー犯罪の検出
    ●
        ナイーブベイズによる異常行動検出
    ●   異常行動検出エンジン AccessTracer
    ●
        応用例
●
    最後に
自己紹介

       ●   名前 : 里 洋平
       ●   ID   : yokkuns
       ●   職業 : データマイニングエンジニア
       ●   出身 : 種子島
Tokyo.Rを主催しています

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




    http://groups.google.com/group/r-study-tokyo
Japan.R 今年もやります!
本を執筆しました
AGENDA
●
    自己紹介
●
    異常行動検出
    ●
        サイバー犯罪の検出
    ●
        ナイーブベイズによる異常行動検出
    ●   異常行動検出エンジン AccessTracer
    ●
        応用例
●
    最後に
異常行動検出

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

はずれ値検出   多次元ベクトル   独立モデル    外れ値        不正検出
                                       侵入検知
                                       故障検知
変化点検出    多次元時系列    時系列モデル   時系列上の      攻撃検出
                             急激な変化     ワーム検出
                            バースト的異常    障害予兆検出
異常行動検出   セッション     行動モデル    異常セッション    なりすまし検出
         時系列                異常行動パターン   障害予兆検出
                                       不審行動検出




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


                           ※セッション : ある一まとまりの行動履歴
サイバー犯罪の検出

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


                    1 サーバにアクセス
   1 コピー            2 ファイルをコピー    いつもと
   2 リネーム
   3 ファイルを開く
            学習      3 ファイルをリネーム
                                  違う行動
                    4 ファイルを圧縮
   4 ファイルを閉じる
   5 他フォルダに移動
                    5 メールに添付し送付
                    6 ファイルを削除
                                  を検出
   6 ファイルを開く


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

 通常業務               情報漏洩行為
ナイーブベイズによる異常行動検出
        特定のユーザに関するセッションの発生確率が
 他のユーザに比べて優位に小さくなった時にアラート

                           訓練データ


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




        a   b   c   ...            出現確率   a    b       c       ...




                                              P 〜 u ( x 1,. .. , x N )
                          スコアリング               P u ( x 1,. .. , x N )
異常行動検出エンジン AccessTracer
●
    ナイーブベイズでは”動き”を捉える事が出来ない
    ●
        珍しいコマンドが出た時にアラートを出すにとどまっている
    ●
        コマンドの出現頻度だけを見るとなんら変わりなくても、
        発生する時間的順序がいつもと違っているという異常など




        異常行動検出エンジンAccessTracer
          ●
              ”動き”を確率モデルで表現
          ●
              非定常な環境の元手も精度良く異常行動を検出する
AccessTracerの基本原理1

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

                   セッション列




      HMM混合モデル                 HMM混合モデル
       の忘却型学習       ・・・・        の忘却型学習
      M1(混合数1)                 MN(混合数N)




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




                   各セッションの
                   異常スコア計算
AccessTracerの基本原理2

       AccessTracerの基本的な流れ
  隠れマルコフモデルの混合分布による行動モデリング



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



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



            スコアリング
行動モデリング

              各セッションはK個の成分を持つ
隠れマルコフモデルに従って生起されていると仮定
セッションyjの発生確率
                  K
P ( y j | θ)= ∑k =1 π k P k ( y j | θk )

P k ( y j | θ k )=∑(s                    γ k∗∏ a k (st | s t−1 , ... , s t−n )∗∏ bk ( y t | st )
                        1,. .. , s T )
                                   j



                      状態ベクトルの                            状態変数の                     シンボルの
                      初期確率分布                             遷移確率                      出力確率


              状態系列                     S t−1             St              S t +1




              出力系列                       y t −1          yt              y t +1
                                                  隠れマルコフモデル
SDHMアルゴリズム

混合隠れマルコフモデルをオンラインで忘却型学習
SDHMアルゴリズム

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




  メンバーシップ確率
SDHMアルゴリズム

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

         混合係数



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


      状態変数の
      遷移確率




       シンボルの              状態確率
       出力確率
                          Baum–Welch
                          で求める
動的モデル選択
学習されたモデルの中で最適な混合数を持つものを選択
最適な混合数の時間的変化は行動パターンの構造的な変化




 データ
            y 1, ... , y t−1           y t −1 ,... , y n

              モデル1                          モデル2           時間


       => 観測データを説明する最適なモデル系列を選択
        ( M 1, ... , M 1, M 2, ... , M 2)
異常スコアリング

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


                         1               ( j−1)
          Score ( y j )=− log P ( y j | θ       )
                         Tj
または

               1               ( j−1)   1
 Score( y j )=− log P ( y j | θ       )− compress( y j )
               Tj                       Tj
異常スコアリング

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


                         1               ( j−1)
          Score ( y j )=− log P ( y j | θ       )
                         Tj
または                                           シャノン情報量
                                             対数損失

               1               ( j−1)   1
 Score( y j )=− log P ( y j | θ       )− compress( y j )
               Tj                       Tj

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

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


                         1               ( j−1)
          Score ( y j )=− log P ( y j | θ       )
                         Tj
または

               1               ( j−1)   1
 Score( y j )=− log P ( y j | θ       )− compress( y j )
               Tj                       Tj

                                    ユニバーサル統計検定量
閾値の動的最適化

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



              閾値
 確率




                   累積確率がρ未満
応用例1 : なりすまし検出

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


隠れマルコフ                       なりすましの
モデル                          パターンを同定
             なりすまし
      パターン   開始検出      パターン2個
       1個


                                                        行動
                                                        パターン
                                                        の数



                                                         異常
                                                        スコア


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



                     図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf
応用例2 : syslogからの障害検知

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




               図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf
Rでの実装するには
      Rで隠れマルコフモデル
       HMMパッケージ
HMMパッケージ

               HMMの初期化

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

  ●States : 状態変数のベクトル
  ●Symbols : イベントシンボルのベクトル

  ●startProbs : 状態変数の初期確率のベクトル

  ●transProbs : 状態変数の遷移確率

  ●emissionProbs : 状態変数からのイベントシンボルの出力確率
HMMパッケージ

          HMMのパラメータ推定
               forward型推定
        forward(hmm, observation)

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

          HMMのパラメータ推定
              backward型推定
        backward(hmm, observation)

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

             HMMのパラメータ推定


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

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

   ●maxIterations : Baum - Welchアルゴリズムの反復の最大数
HMMパッケージ実行例
HMMパッケージ実行例

      HMMのパラメータ推定
        forward型推定
HMMパッケージ実行例

      HMMのパラメータ推定
        backward型推定
Baum-Welchアルゴリズム
AGENDA
●
    自己紹介
●
    異常行動検出
    ●
        サイバー犯罪の検出
    ●
        ナイーブベイズによる異常行動検出
    ●   異常行動検出エンジン AccessTracer
    ●
        応用例
●
    最後に
最後に




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




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

      yohei0511@gmail.com
ご清聴ありがとうございました

More Related Content

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

  • 1. 異常行動検出入門 - 行動データ時系列のデータマイニング - @yokkuns 里 洋平 2011/08/27 第16回R勉強会@東京(Tokyo.R#16)
  • 2. 本日の内容 ● 異常行動検出
  • 3. AGENDA ● 自己紹介 ● 異常行動検出 ● サイバー犯罪の検出 ● ナイーブベイズによる異常行動検出 ● 異常行動検出エンジン AccessTracer ● 応用例 ● 最後に
  • 4. AGENDA ● 自己紹介 ● 異常行動検出 ● サイバー犯罪の検出 ● ナイーブベイズによる異常行動検出 ● 異常行動検出エンジン AccessTracer ● 応用例 ● 最後に
  • 5. 自己紹介 ● 名前 : 里 洋平 ● ID : yokkuns ● 職業 : データマイニングエンジニア ● 出身 : 種子島
  • 6. Tokyo.Rを主催しています 参加ありがとうございます! http://groups.google.com/group/r-study-tokyo
  • 9. AGENDA ● 自己紹介 ● 異常行動検出 ● サイバー犯罪の検出 ● ナイーブベイズによる異常行動検出 ● 異常行動検出エンジン AccessTracer ● 応用例 ● 最後に
  • 10. 異常行動検出 3つの基本的な異常検出の中の一つ 機能 入力対象 確率モデル 検出対象 応用 はずれ値検出 多次元ベクトル 独立モデル 外れ値 不正検出 侵入検知 故障検知 変化点検出 多次元時系列 時系列モデル 時系列上の 攻撃検出 急激な変化 ワーム検出 バースト的異常 障害予兆検出 異常行動検出 セッション 行動モデル 異常セッション なりすまし検出 時系列 異常行動パターン 障害予兆検出 不審行動検出 セッション時系列データを扱う異常検出 ※セッション : ある一まとまりの行動履歴
  • 11. サイバー犯罪の検出 大量のログから不正行為や不審行為を 自動的に検出することが求められている 1 サーバにアクセス 1 コピー 2 ファイルをコピー いつもと 2 リネーム 3 ファイルを開く 学習 3 ファイルをリネーム 違う行動 4 ファイルを圧縮 4 ファイルを閉じる 5 他フォルダに移動 5 メールに添付し送付 6 ファイルを削除 を検出 6 ファイルを開く 防犯や犯罪が 起こった際の調査の ために大量のログが 蓄積されている 通常業務 情報漏洩行為
  • 12. ナイーブベイズによる異常行動検出 特定のユーザに関するセッションの発生確率が 他のユーザに比べて優位に小さくなった時にアラート 訓練データ ユーザuの ユーザu以外の コマンド出現パターン コマンド出現パターン 出現確率 a b c ... 出現確率 a b c ... P 〜 u ( x 1,. .. , x N ) スコアリング P u ( x 1,. .. , x N )
  • 13. 異常行動検出エンジン AccessTracer ● ナイーブベイズでは”動き”を捉える事が出来ない ● 珍しいコマンドが出た時にアラートを出すにとどまっている ● コマンドの出現頻度だけを見るとなんら変わりなくても、 発生する時間的順序がいつもと違っているという異常など 異常行動検出エンジンAccessTracer ● ”動き”を確率モデルで表現 ● 非定常な環境の元手も精度良く異常行動を検出する
  • 14. AccessTracerの基本原理1 セッション時系列から行動パターンを学習 セッション単位で異常スコアリングを行う セッション列 HMM混合モデル HMM混合モデル の忘却型学習 ・・・・ の忘却型学習 M1(混合数1) MN(混合数N) 動的モデル選択による 最適なモデル系列の選択 各セッションの 異常スコア計算
  • 15. AccessTracerの基本原理2 AccessTracerの基本的な流れ 隠れマルコフモデルの混合分布による行動モデリング 複数の混合隠れマルコフモデルのオンライン忘却型学習 動的モデル選択による最適混合数の決定 スコアリング
  • 16. 行動モデリング 各セッションはK個の成分を持つ 隠れマルコフモデルに従って生起されていると仮定 セッションyjの発生確率 K P ( y j | θ)= ∑k =1 π k P k ( y j | θk ) P k ( y j | θ k )=∑(s γ k∗∏ a k (st | s t−1 , ... , s t−n )∗∏ bk ( y t | st ) 1,. .. , s T ) j 状態ベクトルの 状態変数の シンボルの 初期確率分布 遷移確率 出力確率 状態系列 S t−1 St S t +1 出力系列 y t −1 yt y t +1 隠れマルコフモデル
  • 18. SDHMアルゴリズム E-Step : メンバーシップ確率の更新 メンバーシップ確率
  • 19. SDHMアルゴリズム M-Step : 各パラメータの更新 混合係数 状態ベクトルの 初期確率分布 状態変数の 遷移確率 シンボルの 状態確率 出力確率 Baum–Welch で求める
  • 20. 動的モデル選択 学習されたモデルの中で最適な混合数を持つものを選択 最適な混合数の時間的変化は行動パターンの構造的な変化 データ y 1, ... , y t−1 y t −1 ,... , y n モデル1 モデル2 時間 => 観測データを説明する最適なモデル系列を選択 ( M 1, ... , M 1, M 2, ... , M 2)
  • 21. 異常スコアリング 各セッションの異常スコアを以下のように定義 1 ( j−1) Score ( y j )=− log P ( y j | θ ) Tj または 1 ( j−1) 1 Score( y j )=− log P ( y j | θ )− compress( y j ) Tj Tj
  • 22. 異常スコアリング 各セッションの異常スコアを以下のように定義 1 ( j−1) Score ( y j )=− log P ( y j | θ ) Tj または シャノン情報量 対数損失 1 ( j−1) 1 Score( y j )=− log P ( y j | θ )− compress( y j ) Tj Tj ユニバーサル符号化を 行った時の符号長 高い規則性をもつ系列 => 小 ランダムな系列 => 大
  • 23. 異常スコアリング 各セッションの異常スコアを以下のように定義 1 ( j−1) Score ( y j )=− log P ( y j | θ ) Tj または 1 ( j−1) 1 Score( y j )=− log P ( y j | θ )− compress( y j ) Tj Tj ユニバーサル統計検定量
  • 25. 応用例1 : なりすまし検出 UNIXコマンド列からのなりすまし検出問題 隠れマルコフ なりすましの モデル パターンを同定 なりすまし パターン 開始検出 パターン2個 1個 行動 パターン の数 異常 スコア ユーザのコマンド なりすましのコマンド 図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf
  • 26. 応用例2 : syslogからの障害検知 syslogにAccessTracerを適用 システムロックアップの予兆を2 日前に発見 図 : http://fbi-award.jp/sentan/jusyou/2005/nec.pdf
  • 27. Rでの実装するには Rで隠れマルコフモデル HMMパッケージ
  • 28. HMMパッケージ HMMの初期化 initHMM(States, Symbols, startProbs=NULL, transProbs=NULL, emissionProbs=NULL) ●States : 状態変数のベクトル ●Symbols : イベントシンボルのベクトル ●startProbs : 状態変数の初期確率のベクトル ●transProbs : 状態変数の遷移確率 ●emissionProbs : 状態変数からのイベントシンボルの出力確率
  • 29. HMMパッケージ HMMのパラメータ推定 forward型推定 forward(hmm, observation) ●hmm : HMMモデルオブジェクト ●observation : 観測されたイベントシンボルのベクトル
  • 30. HMMパッケージ HMMのパラメータ推定 backward型推定 backward(hmm, observation) ●hmm : HMMモデルオブジェクト ●observation : 観測されたイベントシンボルのベクトル
  • 31. HMMパッケージ HMMのパラメータ推定 baumWelch(hmm, observation, maxIterations=100, ...) ●hmm : HMMモデルオブジェクト ●observation : 観測されたイベントシンボルのベクトル ●maxIterations : Baum - Welchアルゴリズムの反復の最大数
  • 33. HMMパッケージ実行例 HMMのパラメータ推定 forward型推定
  • 34. HMMパッケージ実行例 HMMのパラメータ推定 backward型推定
  • 36. AGENDA ● 自己紹介 ● 異常行動検出 ● サイバー犯罪の検出 ● ナイーブベイズによる異常行動検出 ● 異常行動検出エンジン AccessTracer ● 応用例 ● 最後に
  • 37. 最後に 次回以降の 発表者を募集しています!