Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
現実世界での
機械学習による
アノマリ検知システムの
構築と回避
機械学習
私の目標
• 機械学習によるアノマリ検知システムの概略を伝える
• いつ/どこで/どのように システムを構築するか議論に火をつける
• システムが どれくらい 「安全」 か調査する
• 私達はここからどこに向かうか議論する
アノマリ検知 機械学習vs.
分類基準
分類基準
アノマリ検知機械学習
ヒューリスティック/ルールベース
予測モデルによる機械学習
侵入検知?
199.72.81.55 - - [01/Jul/1995:00:00:01 -0400] "GET /history/apollo/ HTTP/1.0" 200 6245
unicomp6.unicomp.net - - [01/Jul/19...
機械学習の技術は
しきい値/ルールベースの
ヒューリスティックと比べて
なぜ魅力的なのか?
• 適応的
• 動的
• (理論的に)人の介入が最小
しかし…
しきい値/ルールベースの
ヒューリスティックはなぜ良いか?
• 簡単な理由
• シンプル&理解しやすい
• 動的/適応的にも出来る
好評な機械学習のアプリケーション
好評な機械学習のアプリケーション
好評な機械学習のアプリケーション
期待値を設定
機械学習+アノマリ検知の大問題点
多くの機械学習+アノマリ検知の研究があるが、
現実世界で成功したシステムはあまり多くない。
なぜ?
アノマリ検知:
従来の機械学習:
新規の攻撃を発見する、
今まで見たことないものを見分ける
パターンを学習する、
似たものを見分ける
機械学習+アノマリ検知の大問題点
アノマリ検知は何が違うのか?
機械学習の他の問題点と基本的に異なる
• とても多い誤検知
• 訓練データの不足
• 「意味上の隔たり」
• 評価の難しさ
• 攻撃者の設定
もしシステムが間違ったら・・・
本当に悪い
• 他の学習アプリケーションと
比べて、誤検知の被害が
とても大きい
• もし高い偽陽性率なら何が
起こるか?
• 高い偽陰性率なら?
訓練データの不足・・・
• どのデータでモデルを学習させるか?
• 入力データをクリーンにすることが大変!
結果/警告を解釈することが大変・・・
「意味上の隔たり」
ok… 警告は分かった…
なぜ警告が出ているのか…?
評価の問題
• しっかりした評価体系を考案することはシステムそのもの
を構築するよりさらに難しい
• 学術研究論文での機械学習によるアノマリ検知評価に
依存しているという問題
攻撃者の影響
高度な当事者は
システムを回避するために
時間と労力を費やすことが
出来る(費やすだろう)
どのようにして現実世界の
アノマリ検知システムは
失敗してきたのか?
• 多くの偽陽性
• 攻撃がない訓練データの発見が大変
• 深く理解しないで使用
• ポイズニングモデル
それで・・・絶望した?
こうしよう!
• 時系列を生成する
• 代表的な特徴を選び出す
• 「正常」のモデルを訓練/調整する
• 入力点がモデルから外れたら警告する
インフラの例
Sensitivity of PCA for Traffic Anomaly Detection, Ringberg et. al.
密度に基づく
部分空間/相関に基づく
サポートベクターマシン
クラスタリング
ニューラルネットワーク
共通の技術
「モデル」?
クラスタ
• 重心法
• 「逐次学習」によい
どのようにして特徴を選び出すか?
• 結局は問題の最も挑戦的な部分にたびたびなる
• 単なるパラメータの最適化問題ではないか?
どのようにして特徴を選び出すか?
難しさ:
• 繰り返すべき組み合わせが非常に多い!
• 評価が大変
• 頻繁に「最適」が変わる
• 基準だけではなく性能の精度
• 改良されたモデルの説明力
• より短い訓練期間
• 高度な一般化/削減された過...
主成分分析
• 自動的に特徴を選び出すための共通の
統計的な手法
どのように?
• データを異なる次元に変換する
• データの分散を最もよく表すことの出来る
次元の順序付きのリスト(主成分)を返す
主成分分析
http://setosa.io/ev/principal-component-analysis/
射影
主成分分析
http://setosa.io/ev/principal-component-analysis/
主成分分析
http://setosa.io/ev/principal-component-analysis/
本当の主成分分析の結果、
分散を最大化した図
主成分分析
データセットの分散の80-90%に及ぶ
主成分を選ぶ
「固有値」プロット
効果がより大きい
主成分分析
使用した主成分の数
累積的な%分散図
100804020060
10^0 10^1 10^2 10^3
効果がより小さい
主成分分析
どのように共通的な落とし穴を
回避するか?
• 脅威モデルをよく理解する
• 検知範囲を狭めたままにする
• 偽陰性/陽性の損失を減らす
意味上の
隔たりを
補う
もし、未来に問題が有るのであれば、それは、過去を分析
することと現在を理解することに失敗したからでしかない。
私のアノマリ検知器は
どれくらい良いか?
偽陽性を
どのくらい簡単に除外できるか?
本当のポジティブを評価する?
私のアノマリ検知器は
どれくらい良いか?
どのように攻撃するか?
最も重要な質問・・・
どのように攻撃するか?
特定の攻撃を許すように
学習システムを操作する
信頼性を損なうように
システムの性能を低下させる
つまらないもの
主成分分析システムへの攻撃
攻撃前の
中心
攻撃後の
中心
「つまらないもの」
攻撃前
攻撃後
「つまらないもの」
明確ではない
攻撃の方向
主成分分析システムへの攻撃
茹でガエル
攻撃
主成分分析システムへの攻撃
つまらない量 vs. 注入期間
検知を回避するために、ゆっくりする!
どのようにこれを防ぐか?
較正テストセットを整備する
どのようにこれを防ぐか?
後前
決定境界の
検出率
どのようにこれを防ぐか?
主成分分析システムへの攻撃
攻撃前
攻撃後
決定境界の領域
機械学習を安全に出来るか?
教師なし逐次学習での実現は簡単ではない
攻撃の速度を落とす
攻撃目標にされたときに
検知する時間が与えられる
どのようにこれを防ぐか?
改良された主成分分析
• 対策
• 主成分の追及
• ロバスト主成分分析
ロバスト統計
平均の代わりに中央値を使う
主成分分析の「分散」最大化 vs. 対策の「中央絶対偏差」
データセットをモデル化する適切な分布を見つける
正規/ガウス分布 vs. ラプラス分布
ロバスト主成分分析を使う
自分のテスト
本物のデータを使って
自分のシミュレーションを動かした・・・
なぜこんなことをしたか?
第一主成分に射影
「攻撃目標の流れ」に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
ところで、
このつまらない
ものを生成する
ことは大変
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
「攻撃目標の流れ」に射影
第一主成分に射影
間違った警告率(偽陽性率)
ポイズニング検知率(真陽性率)
1.00.80.40.200.6
0 0.2 0.4 0.6 0.8 1.0
真陽性率 vs. 偽陽性率
攻撃期間
(訓練期間の数)
回避成功率(偽陰性率)
1.00.80.40.200.6
0 2 4 6 8 10
つまらないものを注入 0% 10% 20% 30% 40% 50%
茹でガエル向け
単純な注入向け
回避成功率
単純な主成分分析 ロバスト(な)主成分分析
単純なつまらな
いものの注入
(50%の注入、
たった一つの訓練期間)
~ 76% 回避成功 ~ 14% 回避成功
茹でガエルの
注入
(10の学習期間)
~ 87% 回避成功 ~ 38% 回避成功
• あまり良くないけど、改良されている・・・
• 純粋な機械学習のアノマリ検知システムは
ずっと妥協されやすい
• 特徴やしきい値を見つけるために機械学習を使い、
静的ルールを用いてアノマリ検知を流動的に行う
今日のアノマリ検知システム
次はなに?
• 他の人が作ったアノマリ検知システムでさらにテストする
• ポイズニング技術に対する他の防御
• 機械学習モデルの耐障害モードで実験する
cchio@shapesecurity.com
@cchio
現実世界での機械学習によるアノマリ検知システムの構築と回避 by Clarence Chio - CODE BLUE 2015
現実世界での機械学習によるアノマリ検知システムの構築と回避 by Clarence Chio - CODE BLUE 2015
現実世界での機械学習によるアノマリ検知システムの構築と回避 by Clarence Chio - CODE BLUE 2015
Upcoming SlideShare
Loading in …5
×

現実世界での機械学習によるアノマリ検知システムの構築と回避 by Clarence Chio - CODE BLUE 2015

8,136 views

Published on

過去10年間で、機械学習(Machine Learning: ML)ベースのネットワーク侵入検知技術はWebセキュリティ業界において注目に値する勢いを獲得しました。一部の侵入検知システム(Intrusion Detection System: IDS)はこの技術を利用して侵入を検出し、ネットワークサービスに影響を与えさせることなく弾くことに成功しています。MLベースのIDSについて簡単に説明すると、IDSはまずWebのアクセスログを入力として正常なトラフィックのモデルを構築します。そして、オンライン処理システムにより正しいトラフィックの情報と不正なトラフィックの情報をモデルに学習させていきます。IDSはモデルと比較してある閾値以上離れたトラフィックを不正なものとして判定します。この理論では、システムに与えられるデータが多いほどモデルが正確になるため、進化・成長を続けるWebのトラフィックパターンを解析する上では一見して万能なシステムであるかのように思われます。
しかし、このお伽話はそう長くは続きませんでした。この分類モデルに対して、攻撃者が「ポイズニング」を行うことで侵入検知を回避していることが分かったのです。攻撃者はそれ自体は無害なトラフィックを大量に送り、攻撃ベクトルが閾値内に収まるように少しずつモデルを学習させるという方法で攻撃に成功しました。
この講演では、この「モデルポイズニング」攻撃のデモを行うと共に、MLベースの異常検知システムを攻撃者の操作による影響を受けにくくするための手法を解説します。背景にあるMLの理論そのものよりも、実世界で動いているこういったIDSやそれらを無効化する攻撃、そしてネットワーク侵入検知に関わる開発者への影響についてお話しします。さらに、最も重要な点としてMLベースのネットワーク侵入検知の未来についてお話しします。

Published in: Technology
  • Be the first to comment

現実世界での機械学習によるアノマリ検知システムの構築と回避 by Clarence Chio - CODE BLUE 2015

  1. 1. 現実世界での 機械学習による アノマリ検知システムの 構築と回避
  2. 2. 機械学習
  3. 3. 私の目標 • 機械学習によるアノマリ検知システムの概略を伝える • いつ/どこで/どのように システムを構築するか議論に火をつける • システムが どれくらい 「安全」 か調査する • 私達はここからどこに向かうか議論する
  4. 4. アノマリ検知 機械学習vs. 分類基準
  5. 5. 分類基準 アノマリ検知機械学習 ヒューリスティック/ルールベース 予測モデルによる機械学習
  6. 6. 侵入検知?
  7. 7. 199.72.81.55 - - [01/Jul/1995:00:00:01 -0400] "GET /history/apollo/ HTTP/1.0" 200 6245 unicomp6.unicomp.net - - [01/Jul/1995:00:00:06 -0400] "GET /shuttle/countdown/ HTTP/1.0" 200 3985 199.120.110.21 - - [01/Jul/1995:00:00:09 -0400] "GET /shuttle/missions/sts-73/mission-sts- 73.html HTTP/1.0" 200 4085 burger.letters.com - - [01/Jul/1995:00:00:11 -0400] "GET /shuttle/countdown/liftoff.html HTTP/ 1.0" 304 0 199.120.110.21 - - [01/Jul/1995:00:00:11 -0400] "GET /shuttle/missions/sts-73/sts-73-patch- small.gif HTTP/1.0" 200 4179 burger.letters.com - - [01/Jul/1995:00:00:12 -0400] "GET /images/NASA-logosmall.gif HTTP/1.0" 304 0 burger.letters.com - - [01/Jul/1995:00:00:12 -0400] "GET /shuttle/countdown/video/ livevideo.gif HTTP/1.0" 200 0 205.212.115.106 - - [01/Jul/1995:00:00:12 -0400] "GET /shuttle/countdown/countdown.html HTTP/ 1.0" 200 3985 この中からどのようにアノマリを見つける???
  8. 8. 機械学習の技術は しきい値/ルールベースの ヒューリスティックと比べて なぜ魅力的なのか? • 適応的 • 動的 • (理論的に)人の介入が最小
  9. 9. しかし…
  10. 10. しきい値/ルールベースの ヒューリスティックはなぜ良いか? • 簡単な理由 • シンプル&理解しやすい • 動的/適応的にも出来る
  11. 11. 好評な機械学習のアプリケーション
  12. 12. 好評な機械学習のアプリケーション
  13. 13. 好評な機械学習のアプリケーション
  14. 14. 期待値を設定
  15. 15. 機械学習+アノマリ検知の大問題点 多くの機械学習+アノマリ検知の研究があるが、 現実世界で成功したシステムはあまり多くない。 なぜ?
  16. 16. アノマリ検知: 従来の機械学習: 新規の攻撃を発見する、 今まで見たことないものを見分ける パターンを学習する、 似たものを見分ける 機械学習+アノマリ検知の大問題点
  17. 17. アノマリ検知は何が違うのか? 機械学習の他の問題点と基本的に異なる • とても多い誤検知 • 訓練データの不足 • 「意味上の隔たり」 • 評価の難しさ • 攻撃者の設定
  18. 18. もしシステムが間違ったら・・・ 本当に悪い • 他の学習アプリケーションと 比べて、誤検知の被害が とても大きい • もし高い偽陽性率なら何が 起こるか? • 高い偽陰性率なら?
  19. 19. 訓練データの不足・・・ • どのデータでモデルを学習させるか? • 入力データをクリーンにすることが大変!
  20. 20. 結果/警告を解釈することが大変・・・ 「意味上の隔たり」 ok… 警告は分かった… なぜ警告が出ているのか…?
  21. 21. 評価の問題 • しっかりした評価体系を考案することはシステムそのもの を構築するよりさらに難しい • 学術研究論文での機械学習によるアノマリ検知評価に 依存しているという問題
  22. 22. 攻撃者の影響 高度な当事者は システムを回避するために 時間と労力を費やすことが 出来る(費やすだろう)
  23. 23. どのようにして現実世界の アノマリ検知システムは 失敗してきたのか? • 多くの偽陽性 • 攻撃がない訓練データの発見が大変 • 深く理解しないで使用 • ポイズニングモデル
  24. 24. それで・・・絶望した?
  25. 25. こうしよう! • 時系列を生成する • 代表的な特徴を選び出す • 「正常」のモデルを訓練/調整する • 入力点がモデルから外れたら警告する
  26. 26. インフラの例 Sensitivity of PCA for Traffic Anomaly Detection, Ringberg et. al.
  27. 27. 密度に基づく 部分空間/相関に基づく サポートベクターマシン クラスタリング ニューラルネットワーク 共通の技術
  28. 28. 「モデル」? クラスタ • 重心法 • 「逐次学習」によい
  29. 29. どのようにして特徴を選び出すか? • 結局は問題の最も挑戦的な部分にたびたびなる • 単なるパラメータの最適化問題ではないか?
  30. 30. どのようにして特徴を選び出すか? 難しさ: • 繰り返すべき組み合わせが非常に多い! • 評価が大変 • 頻繁に「最適」が変わる • 基準だけではなく性能の精度 • 改良されたモデルの説明力 • より短い訓練期間 • 高度な一般化/削減された過学習
  31. 31. 主成分分析 • 自動的に特徴を選び出すための共通の 統計的な手法 どのように? • データを異なる次元に変換する • データの分散を最もよく表すことの出来る 次元の順序付きのリスト(主成分)を返す
  32. 32. 主成分分析 http://setosa.io/ev/principal-component-analysis/ 射影
  33. 33. 主成分分析 http://setosa.io/ev/principal-component-analysis/
  34. 34. 主成分分析 http://setosa.io/ev/principal-component-analysis/ 本当の主成分分析の結果、 分散を最大化した図
  35. 35. 主成分分析 データセットの分散の80-90%に及ぶ 主成分を選ぶ
  36. 36. 「固有値」プロット 効果がより大きい 主成分分析 使用した主成分の数 累積的な%分散図 100804020060 10^0 10^1 10^2 10^3 効果がより小さい 主成分分析
  37. 37. どのように共通的な落とし穴を 回避するか? • 脅威モデルをよく理解する • 検知範囲を狭めたままにする • 偽陰性/陽性の損失を減らす
  38. 38. 意味上の 隔たりを 補う
  39. 39. もし、未来に問題が有るのであれば、それは、過去を分析 することと現在を理解することに失敗したからでしかない。
  40. 40. 私のアノマリ検知器は どれくらい良いか? 偽陽性を どのくらい簡単に除外できるか?
  41. 41. 本当のポジティブを評価する? 私のアノマリ検知器は どれくらい良いか?
  42. 42. どのように攻撃するか? 最も重要な質問・・・
  43. 43. どのように攻撃するか? 特定の攻撃を許すように 学習システムを操作する 信頼性を損なうように システムの性能を低下させる
  44. 44. つまらないもの
  45. 45. 主成分分析システムへの攻撃 攻撃前の 中心 攻撃後の 中心 「つまらないもの」
  46. 46. 攻撃前 攻撃後 「つまらないもの」 明確ではない 攻撃の方向 主成分分析システムへの攻撃
  47. 47. 茹でガエル 攻撃
  48. 48. 主成分分析システムへの攻撃 つまらない量 vs. 注入期間 検知を回避するために、ゆっくりする!
  49. 49. どのようにこれを防ぐか? 較正テストセットを整備する
  50. 50. どのようにこれを防ぐか? 後前
  51. 51. 決定境界の 検出率 どのようにこれを防ぐか?
  52. 52. 主成分分析システムへの攻撃 攻撃前 攻撃後 決定境界の領域
  53. 53. 機械学習を安全に出来るか? 教師なし逐次学習での実現は簡単ではない 攻撃の速度を落とす 攻撃目標にされたときに 検知する時間が与えられる
  54. 54. どのようにこれを防ぐか? 改良された主成分分析 • 対策 • 主成分の追及 • ロバスト主成分分析
  55. 55. ロバスト統計 平均の代わりに中央値を使う 主成分分析の「分散」最大化 vs. 対策の「中央絶対偏差」 データセットをモデル化する適切な分布を見つける 正規/ガウス分布 vs. ラプラス分布 ロバスト主成分分析を使う
  56. 56. 自分のテスト 本物のデータを使って 自分のシミュレーションを動かした・・・ なぜこんなことをしたか?
  57. 57. 第一主成分に射影 「攻撃目標の流れ」に射影
  58. 58. 「攻撃目標の流れ」に射影 第一主成分に射影
  59. 59. 「攻撃目標の流れ」に射影 第一主成分に射影
  60. 60. ところで、 このつまらない ものを生成する ことは大変 「攻撃目標の流れ」に射影 第一主成分に射影
  61. 61. 「攻撃目標の流れ」に射影 第一主成分に射影
  62. 62. 「攻撃目標の流れ」に射影 第一主成分に射影
  63. 63. 「攻撃目標の流れ」に射影 第一主成分に射影
  64. 64. 「攻撃目標の流れ」に射影 第一主成分に射影
  65. 65. 「攻撃目標の流れ」に射影 第一主成分に射影
  66. 66. 「攻撃目標の流れ」に射影 第一主成分に射影
  67. 67. 間違った警告率(偽陽性率) ポイズニング検知率(真陽性率) 1.00.80.40.200.6 0 0.2 0.4 0.6 0.8 1.0 真陽性率 vs. 偽陽性率
  68. 68. 攻撃期間 (訓練期間の数) 回避成功率(偽陰性率) 1.00.80.40.200.6 0 2 4 6 8 10 つまらないものを注入 0% 10% 20% 30% 40% 50% 茹でガエル向け 単純な注入向け 回避成功率
  69. 69. 単純な主成分分析 ロバスト(な)主成分分析 単純なつまらな いものの注入 (50%の注入、 たった一つの訓練期間) ~ 76% 回避成功 ~ 14% 回避成功 茹でガエルの 注入 (10の学習期間) ~ 87% 回避成功 ~ 38% 回避成功
  70. 70. • あまり良くないけど、改良されている・・・ • 純粋な機械学習のアノマリ検知システムは ずっと妥協されやすい • 特徴やしきい値を見つけるために機械学習を使い、 静的ルールを用いてアノマリ検知を流動的に行う 今日のアノマリ検知システム
  71. 71. 次はなに? • 他の人が作ったアノマリ検知システムでさらにテストする • ポイズニング技術に対する他の防御 • 機械学習モデルの耐障害モードで実験する
  72. 72. cchio@shapesecurity.com @cchio

×