講演資料ダウンロード

ビッグデータ分析でWebサイトの不不正アクセスを⾒見見抜く!
2014/11/06
株式会社 ⽇日⽴立立ソリューションズ
ITプラットフォーム事業部
牧⽥田 慶
技術統括本部
⼤大峡 光晴
© Hitachi Solutions, Ltd. 2014. All rights reserved.
Who are you ?
•  牧⽥田 慶 (まきた けい)
•  [email protected]
•  主にHadoop案件の設計/開発を担当
•  以前は.NET系の製品開発など (Linuxナニソレ?)
•  Hadoopの経験は2年年ちょっと
•  ⽇日⽴立立ソリューションズは2012年年9⽉月に
Cloudera社との販売代理理店契約を締結
SE部門
金融 / 公共 / 産業 ...
•  Cloudera認定資格
- Cloudera Apache Hadoop 認定開発者
- Cloudera Apache Hadoop 認定管理理者
- Cloudera Apache HBase 認定スペシャリスト
- Cloudera認定プロフェッショナル:データサイエンティスト
プロダクト部門
・Hadoop
・他社パッケージ
・自社製品開発
研究部門
ここにいます
© Hitachi Solutions, Ltd. 2014. All rights reserved.
2
分析の前に...
© Hitachi Solutions, Ltd. 2014. All rights reserved.
3
Hadoop使ってますか?
もっとも簡単な⽅方法
- Cloudera Live ・・・ クラウドサービス
- QuickStart VMs ・・・ VM提供
⾃自分で構築してみる
- Cloudera Express・・・無償版
•  CDHにCloudera Managerが同梱
•  PercelによるCDHバージョン管理理 (CM4)
•  リソース管理理 (CM5)
- Cloudera Enterprise・・・有償サブスクリプション
•  利利⽤用状況のレポーティング
•  定期診断
※ Cloudera Downloads 画⾯面
© Hitachi Solutions, Ltd. 2014. All rights reserved.
4
とはいえ
VM
分散できてますか?
- 擬似分散環境ではほんとのHadoopの実⼒力力が⾒見見えない
- スケールアウトなどの運⽤用も試してみたい
VM
VM
VM
- VMを並べるのも限界がある (並べてもI/Oは分散しない)
ハードウェアありますか?
- ちょっと試すのにハードウェアを揃えるのは難しい
- マスタサーバ / スレーブサーバ / クライアント / DBサーバ...
- ディスクも複数にしてみたい
試してみないとわからない
- 本当に台数並べたら早くなるの?
- データサイズ⼤大きくしても⼤大丈夫?
- このデータ分析したらどんな結果が出るの?
© Hitachi Solutions, Ltd. 2014. All rights reserved.
5
PoCのススメ
ビッグデータの活⽤用にはPoC (Proof-of-Concept)が重要!
- 投資判断 / ユースケースの確認にPoCは当然のアプローチ
- 本番で動かしてから問題が発⽣生しても⼿手遅れ
PoCを実施する意義
最適な構成の裏裏付けや
具体的なビジネス効果を数値で⽰示さないと
経営層に説明できない
IT部⾨門
投資コストとビジネスの
改善予測が⾒見見える化できていないと
投資の判断ができない
経営層
© Hitachi Solutions, Ltd. 2014. All rights reserved.
6
ビッグデータ・ラボのご紹介
ビッグデータ・ラボ
- PoCを試したいお客様のためのHadoop環境
- すぐに検証を始められる (OS・Hadoopのセットアップ済)
- 30台のブレードサーバによるフレキシブルな構成の変更更
- 専⾨門技術スタッフが⽀支援
システム構成概要
■ソフトウェア ■ハードウェア
Cloudera Enterprise
CDH5
CDH4
ハードウェア
HA8000-bd/BD10
プロセッサー
Xeon 4core
メモリ
16GB / ブレード
総ディスク容量量
50TB
© Hitachi Solutions, Ltd. 2014. All rights reserved.
7
ビッグデータ・ラボのご紹介
当社からご提案する⼀一般的なPoCの進め⽅方
STEP1
アセスメント実施
STEP2
要件定義〜~設計〜~開発
STEP3
実機検証と評価レポート
課題解決や⽬目標達成に向けて、
現状調査や把握をおこないます
作業項⽬目の決定、評価に必要な
データおよびプログラムの
設計開発を⾏行行います
STEP2の内容をもとに
実機検証とレポーティングを
実施します
[1週間前後]
[1〜~2週間前後]
[1週間前後]
アプリ開発
性能実機検証
データ分析
チューニング
運⽤用確認
評価 / レポート
© Hitachi Solutions, Ltd. 2014. All rights reserved.
8
ラボ活⽤用 〜~ これまでの研究投資
•  2012年年下 NameNode HA,パラメタ調査
- NameNode HAの実機検証
- Cloudera Manager上で設定可能なパラメタの確認
•  2013年年上 Impala / Search
- Impala / Search の基礎機能調査
- 各種ファイルフォーマットでの性能検証 (Impala)
•  2013年年下 DWHオフロード
- BIツールとHadoopとの接続性検証
- オフロード時のETLツールとSqoopとの性能⽐比較
•  2014年年上 YARN / Sentry
- YARNおよびCloudera Manager 5によるリソース管理理機能調査
- Sentryによるアクセスコントロールの検証
•  2014年年下 Spark / Cloudera Navigator
Now!
- Sparkでの機械学習とストリーミング処理理の検証
- Cloudera社のGazzag社買収発表(2014/06)によるデータ暗号化の強化
© Hitachi Solutions, Ltd. 2014. All rights reserved.
9
ラボ活⽤用 〜~ 分析事例例
その1:ID-POSデータを利利⽤用した顧客セグメンテーション
- 平均購買額 / 来店回数 などに応じた顧客セグメントや売上ランキングをSQLで導出
- 当初はDWHを利利⽤用していたが集計処理理での性能に課題
- ⼀一部SQLをHadoop (Impala) にオフロードした場合の性能検証を実施
その2:Web動線によるホワイトパターン型不不正検知
- Webサイトにおける未知のなりすましを防⽌止するコンセプトモデル
- ⼤大量量のWebログからユーザの「動き⽅方」をプロファイリング
- これまでの動きと異異なるユーザの⾃自動検出を⽬目指す
© Hitachi Solutions, Ltd. 2014. All rights reserved.
10
ラボ活⽤用 〜~ 分析事例例その1
ID-POSデータを利利⽤用した顧客セグメンテーション
- 全体超概要
お客様モデル
蓄積
ID-POS
商品購⼊入
全件検索索や集計処理理が遅い!
DWH
SQL
Data
Mart
顧客セグメンテーション
集計
ランキング
⼩小売店
利利⽤用SQLをImpala⽤用に変換
PoC 構成
Hadoop
Excel
+
Java
テストデータ
⽣生成ツール
⽣生成
PUT
テストデータ
性能検証
HDFS
l  TextFile
l  Parquet
© Hitachi Solutions, Ltd. 2014. All rights reserved.
11
ラボ活⽤用 〜~ 分析事例例その1
実施プロセス
- 全体スケジュールは2週間!
STEP1
アセスメント実施
STEP2
要件定義〜~設計〜~開発
STEP3
実機検証と評価レポート
お客様要望
・Impalaを使った性能検証
・Impala環境の準備
・性能検証 ・DWHで実⾏行行しているSQLと
・データ⾃自動⽣生成ツールの開発
・チューニング
同等のSQLを使う
・Impala⽤用テーブルの作成
・レポートの作成
・利利⽤用データを⾃自動⽣生成させる
・測定⽤用SQL変換 / 試⾏行行
・ご報告
・データ項⽬目は指定形式とする
[1週間]
[1週間]
[打合せのみ]
© Hitachi Solutions, Ltd. 2014. All rights reserved.
12
測定環境
Hadoop構成
- ラボ構築済みの環境をそのまま利利⽤用!
Master#1 Active
NN JN ICS ISS
JT
ZK
Master#2 Standby
Master#3 CM / Client
NN JN
JT
ZK HS2 HMS
JN
CM ZK
Slave#1
DN
TT
ID
Slave#6
・・・
DN
TT
ID
スレーブ台数
6台
プロセッサー
Xeon 4core
2.4GHz
メモリ
16GB
OS
CentOS 6.4
HDD
OS × 1
Data × 2
CDH
5.0.0 (Beta)
Impala Daemon
mem_limit
13GB
© Hitachi Solutions, Ltd. 2014. All rights reserved.
13
サンプルデータの特徴
商品マスタ
レコード件数:120件
1
商品コード
2
商品名称
3
⼤大分類コード
4
⼤大分類名称
5
⼩小分類コード
6
⼩小分類名称
7
単価
⾷食品 (5種類)
全12種類 × 10品⽬目 = 120件
⽇日雑品 (3種類)
⽇日⽤用品
⽂文具・雑貨
ヘルスケア
加⼯工⾷食品
デイリー⾷食品
精⾁肉
⻘青果
鮮⿂魚
⾐衣料料品 (4種類)
紳⼠士服
婦⼈人服
⼦子供服
肌着
© Hitachi Solutions, Ltd. 2014. All rights reserved.
14
サンプルデータの特徴
顧客マスタ
レコード件数:500,000件
1
カード会員番号
2
性別
3
⽣生年年⽉月⽇日
男⼥女女⽐比
年年代の割合
男性
30%
⼥女女性
70%
60代
20%
50代
20%
20代
10%
30代
20%
40代
30%
© Hitachi Solutions, Ltd. 2014. All rights reserved.
15
サンプルデータの特徴
ID-POSデータ
レコード数:100,000,000件
データサイズ:5.5GB
1
⽇日付
2
時間
3
店番号
4
⼤大分類コード
5
⼩小分類コード
6
商品コード
7
数量量
8
売単価
9
カード会員番号
⽉月単位の購買額の割合と顧客セグメント条件
⽉月額購買額
超優良良顧客 上位 10%
休眠顧客
優良良顧客 上位 20%
準優良良顧客 上位 30%
9% 9%
10%
42%
購買額がこの割合に近づくよう
ランダムに配置
13%
17%
⼀一般顧客 上位 50%
新規顧客 下位 50%
© Hitachi Solutions, Ltd. 2014. All rights reserved.
16
サンプルデータの特徴
ID-POSデータ
- データの期間
1年年分
〜~2013/03/31
2013/04/01 〜~ 2014/03/31
2014/04/01〜~
ランダム発⽣生
- 購買の時間帯
8時間
00:00
10:00 11:00
19:00 20:00
24:00
ランダム発⽣生
来店(購買)が多い時間帯
© Hitachi Solutions, Ltd. 2014. All rights reserved.
17
サンプルデータの⾃自動⽣生成ツール
ツールの概要
- ⽣生成の条件(期間、時間帯、etc...)は定義指定で変更更可能
ID-POS⽤用定義
参照
Excelで⽣生成
商品マスタ
参照
ツールで⽣生成
RecordCerator
(データ⽣生成ツール)
参照
ID-POSデータ
Java
顧客マスタ⽤用
定義
顧客マスタ
参照
ツールで⽣生成
© Hitachi Solutions, Ltd. 2014. All rights reserved.
18
クエリ内容
#
集計軸
集計項⽬目
1
会員
⽉月別購買⾦金金額,⽉月別来店回数,⽉月別来店⽇日数,⽉月別ロイヤリティセグメント
2
会員
⽉月別購買カテゴリ数
3
会員
年年間ロイヤリティセグメント
4
ロイヤリティ
⼈人数構成,⽉月別平均購買⾦金金額,⽉月別平均来店回数,⽉月別平均来店⽇日数
5
ロイヤリティ
性別年年代構成
6
ロイヤリティ
⽉月別平均購買カテゴリ数
7
商品
⽉月別売上ランキング
8
商品
⽉月別ロイヤリティ別売上ランキング
9
商品
⽉月別トライアル率率率,⽉月別リピート率率率
10
商品
⽉月別ロイヤリティ別トライアル率率率
© Hitachi Solutions, Ltd. 2014. All rights reserved.
19
測定結果
Impalaの使⽤用感
- 10億件レコードが10数秒のオーダーで実⾏行行可能
- スモール構成・費⽤用でも⼗十分な性能を確保
Text vs Parquet
- 10秒未満のオーダーでは差異異はほとんどない
- 線形的に実⾏行行時間が伸びるParquetはImpalaに最適化されていると⾔言える
全クエリ平均実⾏行行時間
秒
60
TextFile
Parquet
50
40
ID-‐‑‒POSデータのサイズ
TextFile
Parquet
(Snappy)
1億件
5.5 GB
300 MB
5億件
27.5 GB
1.5 GB
10億件
55.0 GB
3.0 GB
対Text
38%
30
20
対Text
131%
10
0
1億件
5億件
10億件
© Hitachi Solutions, Ltd. 2014. All rights reserved.
20
測定結果
実⾏行行時間の⼀一覧
80
70
60
50
秒 40
30
20
1億件
5億件
TextFile
10_4
10_2
09
08_4
08_2
07
05
03
01
10_4
10_2
09
08_4
08_2
07
05
03
01
10_4
10_2
09
08_4
08_2
07
05
03
0
01
10
10億件
Parquet
© Hitachi Solutions, Ltd. 2014. All rights reserved.
21
ラボ活⽤用 〜~ 分析事例例その2
Coming next
© Hitachi Solutions, Ltd. 2014. All rights reserved.
22
Who are you ?
•  ⼤大峡 光晴 (おおば みつはる)
•  [email protected]
•  新規プロダクトの研究/開発を担当
•  専⾨門はデータマイニング、テキスト・画像処理理、検索索エンジンなど
•  Cloudera関連では主にSolrプラグイン開発を3年年経験
- スキーマレスXML検索索:SolrでどんなXMLでも検索索可能
- 地理理動線経路路検索索:動線の「経路路」を検索索指定可能
- ⾃自動ファセット分類:⽂文書の内容に応じた⾃自動ファセット分類
SE部門
金融 / 公共 / 産業 ...
プロダクト部門
・Hadoop
・他社パッケージ
・自社製品開発
研究部門
ここにいます
© Hitachi Solutions, Ltd. 2014. All rights reserved.
23
不不正アクセス被害の現状 リスト型攻撃による「なりすましによる不不正ログイン」被害が急増
他社のWebサービスで不不正⼊入⼿手したアカウント情報
(ID・パスワード)を使って別のWebサービスへの
ログインを試みるサイバー攻撃
6
リスト型攻撃による
被害企業数推移
5
4
3
2
警察庁の調査(Webサービス提供企業13社協⼒力力)では
不不正ログイン試⾏行行の6.7%が不不正ログインに成功
1
13/10
11
12 14/1
2
3
4
5
6
ユーザ
ID:ABCDE
パスワード:YopiKa3a
ID:ABCDE
パスワード:YopiKa3a
アカウント情報を使い回し
クラッカー
フィッシングなどにより
アカウント情報を不正入手
不正ログイン
リストを使ってログインを試行
© Hitachi Solutions, Ltd. 2014. All rights reserved.
24
取組み内容
⼀一般的な対策
- アカウント情報流流出対策:フィッシング、Webインジェクト攻撃などへの対策
- 不不正ログイン対策:ワンタイムパスワード、認証コードなど
懸念念点
- 攻撃⼿手法は常に進化している
- ⼀一旦正規ユーザとしてログインされてしまうと不不正の発⾒見見や防御が困難
ビッグデータ分析での不不正検知アプローチ
- 既存の攻撃モデル(怪しい挙動)ベース(ブラックパターン)
- 本⼈人の正常⾏行行動モデルベース(ホワイトパターン) (本⽇日ご紹介内容)
ユーザ個別の本⼈人らしさをモデル化し、モデルとはずれたセッションに対してアラート
不不正ログインを早期発⾒見見し被害拡⼤大防⽌止・今後の対策に活⽤用
© Hitachi Solutions, Ltd. 2014. All rights reserved.
25
取組みのイメージ
分析サーバ
ユーザA
日付
Webサーバ
動線化
ユーザID スコア
2014/3/1 00:01
A
9
2014/3/1 00:03
B
84
属性値計算
オペレータ
クラッカー
不正ログイン
アクセスログ
・夜間アクセス頻度●%
・直帰率●%
・画面A→P→D遷移●%
:
ユーザA
ホワイトパターン
不正ログインの疑い・詳細確認へ
Web動線データからWebサイト上のユーザの「動き⽅方」をプロファイリングし
これまでの動き⽅方と異異なるユーザ(=なりすまし)の⾃自動検出を⽬目指す [特許出願済]
Web動線とは?
同⼀一セッションにおける画⾯面遷移データ
A
・アクセス時間:23:30:12
・アクセス曜日:土曜日
・画面遷移:A→B→D
:
B
C
F
D
E
© Hitachi Solutions, Ltd. 2014. All rights reserved.
26
処理理フロー
<ホワイトパターン⽣生成時>
<運⽤用時>
画⾯面クラスタリング
アクセスログ
動線化
属性値計算
ユーザ別ホワイトパターン⽣生成
パラメータチューニング
アクセスログ
動線化
属性値計算
ユーザA動線
スコアリング
ホワイトパターン
ユーザAスコア
© Hitachi Solutions, Ltd. 2014. All rights reserved.
27
ホワイトパターン⽣生成 – (1)画⾯面クラスタリング
「動き⽅方」をパターン化しやすくするため、同種の画⾯面をクラスタリングする
グラフクラスタリング技術(Louvain法等)により
同種の画面をクラスタリング
ユーザのマクロな
動きをパターン化
© Hitachi Solutions, Ltd. 2014. All rights reserved.
28
ホワイトパターン⽣生成 – (2)動線化
アクセスログからユーザ単位の動線データを⽣生成
入力:アクセスログ
アクセス日時
セッション情報
遷移元画面
遷移先画面
ユーザID
2014-10-25 20:25:46
セッション情報A
画面A
画面P
1234567890
2014-10-25 20:25:52
セッション情報B
画面B
画面M
8931934131
・・・
・・・
・・・
・・・
・・・
・・・
・・・
アクセス⽇日時、ユーザID毎にソート・集計し
動線データを⽣生成
出力:ユーザ単位の動線データ
セッション情報
ユーザID
開始日時
遷移画面リスト
滞在時間
セッション情報A
1234567890
2014-10-25 20:25:46
C1,C2,C4
0,31,12,・・・
セッション情報P
1234567890
2014-10-26 10:15:52
C2,C3,C6,・・・
0,12,92,・・・
・・・
・・・
・・・
・・・
C1
C2
C3
・・・
・・・
C6
C4
C5
© Hitachi Solutions, Ltd. 2014. All rights reserved.
29
ホワイトパターン⽣生成 – (3)属性値計算
(1) ⼀一般的な属性値
- アクセス時間帯、アクセス曜⽇日、画⾯面滞在時間、遷移画⾯面数、各アクションの有無、etc.
(2) 画⾯面遷移パターン
- ユーザの「動き⽅方」を特徴量量化したいが画⾯面遷移の組合せパターンは膨⼤大になってしまう、、
類似の画⾯面遷移パターンをまとめる(動線クラスタリング)
<Step1>
同⼀一ユーザの全ての動線間で類似度度を求める
①C
F
I
L
A
D
G
J
M
B
E
H
K
N
②
③
④
⑤
動線クラスタペア 類似度
①-②
S12
①-③
S13
①-④
S14
①-⑤
S15
②-③
S23
…
…
<Step2>
類似度度がMAXになるペアを同⼀一動線にまとめる
②
③
マージ
⑥
動線クラスタペア 類似度
①-②
S12
①-③
S13
①-④
S14
①-⑤
S15
②-③
S23 MAX
…
…
画⾯面遷移の類似度度計算は
⽂文字列列の類似度度問題とみなせる
[A,D,G,J,M]
[A,D,G,F,G,J,M]
文字列比較
(DPマッチング等)
類似度
<Step3>
Step1,2を収束するまでイテレーション演算
①C
F
I
L
A
D
G
J
M
⑥
B
E
H
K
N
⑦
© Hitachi Solutions, Ltd. 2014. All rights reserved.
30
ホワイトパターン⽣生成 – (4)ユーザ別ホワイトパターン⽣生成
ユーザ毎に属性値を集計しホワイトパターンを⽣生成
<Step1>
動線の属性値をもとに各属性の頻度度分布を求める
画面遷移パターン
頻度
パターンA
12
パターンB
324
パターンC
228
パターンD
36
…
…
<Step2>
同様に他の属性の頻度度分布を求める
画面遷移パターン
の頻度分布
遷移画面数
6% 2%
38
%
3%
39
%
54
%
■ パターンA
■ パターンB
■ パターンC
■ パターンD
6%
22%
52
%
■ 0≦x<5
■ 5≦x<10
■ 10≦x<15
■ 15≦x<20
<Step3>
各ユーザの属性の頻度度分布データをホワイトパターンとする
ユーザA
…
・
・
43%
24%
11%
・・・
■ 0時≦x<6時
■ 6時≦x<12時
■ 12時≦x<18時
■ 18時≦x<24時
ユーザA
ホワイトパターン
…
ユーザB
アクセス時間帯
ユーザB
ホワイトパターン
ユーザ別
ホワイトパターン
© Hitachi Solutions, Ltd. 2014. All rights reserved.
31
ホワイトパターン⽣生成 – (5)パラメータチューニング
良良いホワイトパターンとは?
- 本⼈人の特徴に明確に傾向がある
週末アクセスが多い、アクセスするページや経路路が固定的、など
- 本⼈人と他⼈人との識識別性が⾼高い(ユーザ毎に傾向が異異なる)
アクセス時間帯が深夜型/⽇日中型/早朝型、ログイン後の画⾯面遷移が固定型/周遊型、など
パラメータチューニング
- どの属性を使えばよいか?(曜⽇日?時間?どのアクション?)
- 最適な分類数・分類境界値は?(曜⽇日で分ける?平⽇日/祝⽇日?時間帯はどう分ける?)
本⼈人識識別指数・他⼈人識識別指数を定義し、パラメータを変えながら総当り演算を⾏行行い、
最適な属性と最適な分類数・分類境界値を求める
© Hitachi Solutions, Ltd. 2014. All rights reserved.
32
スコアリング
<Step1>
⼊入⼒力力された動線の各属性値を求める
<Step2>
ユーザのホワイトパターンと照合し
各属性の発⽣生確率率率をもとにスコアを求める
アクセス日
(平日/休日)
動線パターン
7% 6%
C1
C2
・アクセス時間:23:30:12
・アクセス曜日:土曜日
・画面遷移:パターンD
:
C3
C6
C4
C5
<Step3>
ユーザの属性の発⽣生確率率率を時系列列に求め、
レアなパターンが頻出した場合はスコアに加算
2回前
1回前
4%
1%
15
%
72
%
14%
14%
99
%
・・・
68%
スコアリング関数適用 スコア(本人らしさ)
<Step4>
これまでのユーザのホワイトパターンと
異異なる特徴のセッションを不不正候補として検出
日付
ユーザID
スコア
2014/3/1 00:01
123456
9
2014/3/1 00:03
111234
84
ドリルダウン
不正ログインの疑い・詳細確認へ
分析・新たな
パターンの発見
今回
アクセス時間帯
オペレータ
© Hitachi Solutions, Ltd. 2014. All rights reserved.
33
Hadoop適⽤用の検討
<ホワイトパターン⽣生成時>
画⾯面クラスタリング
■ポイント1
現在多段になっているMapReduceを
Spark化により⾼高速化できないか
<運⽤用時>
■ポイント3
Kafka, Flumeなどのストリーミング
エンジンと連携してSparkストリーミング
によるリアルタイムに近いスコアリング
による不不正ログイン検知ができないか?
アクセスログ
動線化
属性値計算
ユーザ別ホワイトパターン⽣生成
パラメータチューニング
アクセスログ
動線化
属性値計算
ユーザA動線
スコアリング
ホワイトパターン
■ポイント2
網羅羅的な計算を⾏行行うため
Spark化による⾼高速化に期待
ユーザAスコア
© Hitachi Solutions, Ltd. 2014. All rights reserved.
34
おわりに
⼀一緒に試してみませんか?
- 弊社では⽇日々新たな分析テーマに取り組んでいます
- Hadoop,PoC,データマイニング,機械学習 などなど
気になった⽅方はお声掛けください!
© Hitachi Solutions, Ltd. 2014. All rights reserved.
35