ビッグデータ分析で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
© Copyright 2024 ExpyDoc