リアルタイム異常検出のリファレンス パターンを使用して、不正行為に対処
Google Cloud Japan Team
※この投稿は米国時間 2020 年 11 月 19 日に、Google Cloud blog に投稿されたものの抄訳です。
企業はその規模や形態にかかわらず、顧客、自社のシステム、外部要因が自社の事業へ及ぼす影響についてより深く理解する必要があります。いかに迅速にリスクを軽減し事業機会を活用できるかが、成功する企業と失敗する企業とを分かちます。異常検出(より広い表現では外れ値検出)を活用することにより、企業は刻々と変わるユーザーニーズを捉えて対応し、悪影響のある行為者や行動を見つけて改善して、負担の大きい修正作業を減らすための予防的措置を講じることができます。
企業が異常を検出する速さは、対応までの時間そして関連するコストに大きな影響を及ぼします。たとえば、不正な金融取引の発見が発生から数時間または数日後になってしまうと、ほとんどのケースで損失処理の必要が生じます。異常な取引を数秒で検出する機能を備えることにより、取引の無効化や、将来の不正行為を防止する是正措置の実施が可能となります。同様に、産業用機器における異常を検出することにより、製造業者は事前に機器を停止させたり予防的に保守を行ったりして、重大な障害による金銭面での損失や人的損失の発生を予測、防止することができます。さらに、異常なユーザー行動(同じ場所やデバイスからの複数のアカウントへのログインなど)を検知することにより、悪用、データ侵害、知的所有権の盗用も防げます。
つまり、異常なイベントは実質的に有用な情報であるということです。この情報の把握をおろそかにすると、充分な量のイベント情報を収集して遡及的分析をしない限り、関連性を見出すことができません(このコンセプトについて示す以下の画像をご覧ください)。このような「情報の喪失」状態に陥ることを防ぐために、多くの組織は、リアルタイム異常検出を活用できるストリーム分析に注目しています。
Google Cloud のカスタマー サクセス チームは、多くのお客様に協力し、ストリーミング異常検出の実装をサポートしてきました。そのような異常検出システムの構築支援を通じて、異常検出のリファレンス パターンを提供することで、お客様の問題解決に必要な時間を大きく削減できることに気づきました。
ストリーミング異常検出のリファレンス パターン
リファレンス パターンは、実装とデプロイメントに関する詳細な手順とサンプルコードを提供する技術的なリファレンス ガイドです。リファレンス パターンを利用することで、効率的なアーキテクチャを一から作り直す必要がなくなります。
ユースケースごとに固有の部分(何をもって異常とみなすか、必要な感度のレベル、アラートを人に発するかダッシュボードに表示するか、など)はありますが、ほとんどの異常検出システムはアーキテクチャの面からは類似しており、多くの共通のビルディング ブロックを使用しています。以上のように、これまでの知見を元にして、ストリーミング異常検出における再現可能なリファレンス パターンをまとめ、リファレンス パターン カタログとしてリリースしました(異常検出のセクションをご覧ください)。
これらのパターンを利用することで、以下のような手順が実装できます。
リアルタイムでイベントをストリームする
イベントを処理し、有用なデータポイントを抽出して、使用している検出アルゴリズムをトレーニングする
ほぼリアルタイムで検出アルゴリズムをイベントに適用し、異常を検出する
ダッシュボードの更新やアラートの送信を行う
次に、多様な異常検出アーキテクチャの実装に活用できる主なパターンの概要を示します。
K 平均法クラスタリングを使用してネットワーク侵入を検知する
通信事業者のお客様と協力した最近の事例では、Netflow ログにストリーミング異常検出を実装しています。これまでは、シグネチャベースの侵入検知システムを実装するケースがほとんどでした。この手法は既知の脅威に対しては効果的ですが、新しい攻撃の場合にはパターンまたはシグネチャを利用できないため、発見するのが困難です。セキュリティの脅威がかつてないほど増し、セキュリティ侵害のコストが著しく増加している現状においては、この手法にはかなりの制限があります。そのような制限に対処するため、教師なし学習をベースとした異常検出システムを構築しました。ストリーミング分析と AI による異常検出に、詳細な内容を公開しています。
次の動画では、異常検出システムの実装手順について概要を説明しています。動画で説明するアーキテクチャと手順は、ネットワーク ログだけでなく、他の分野の問題にも適用が可能です。
ブーストツリーを使用して、不正な金融取引を検知する
クラスタリング アルゴリズムを使用(BigQuery ML でトレーニングを実施)するパターンとは異なり、この事例では、ブーストツリーを使用してリアルタイムで金融取引の異常を検出します。この場合、ブーストツリーと呼ばれる別の ML 手法が使用されます。ブーストツリーとは、一連のベースモデルからの出力を組み合わせることで予測を行う手法です。このパターンでは、同じハイレベル アーキテクチャに従い、Google の Cloud AI Platform を使用して、予測を行います。このリファレンス パターンの秀逸な点は、API 呼び出しを CAIP Prediction API にグループ化するマイクロバッチ処理を採用していることです。これにより、大量のストリーミング データを扱う場合でも、API の割り当ての問題を抑制することができます。アーキテクチャは次のようになります。
LSTM オートエンコーダを使用した時系列での外れ値検出
多くの異常検出シナリオでは、時系列データ(時系列順の一連のデータポイント。通常は等間隔の時間区分)が利用されています。時系列データの主な課題の一つは、ソースまたはトランザクション上の問題に起因するデータの不備を修正するために、前処理が必要なことです。また、以前の時間枠から現在の時間枠に変換する際に、各種の指標(Last、First、Min、Max、Count value など)を集約する必要がある点も、一般的な要件として挙げられます。ストリーミング データに関するこれらの問題を解決し、時系列データを用いた実装を効率よく開始できるように、Google は GitHub ライブラリを作成しました。
これらのパターンは、問題を解決するためにお客様と協力する中で確認されたニーズに基づいています。膨大なデータから重要な知見や異常を見つけ出すという課題は、特定の企業に固有なものではなく、すべての企業に当てはまります。ストリーミング異常検出について、お客様の取り組みがどのような段階であっても、Google が支援いたします。
開始するには、リファレンス パターンのカタログにある異常検出のセクションをご覧ください。実際に、分析のリファレンス パターンを実装されましたら、ぜひご意見をお寄せください。こちらの短いアンケートにお答えいただき、ご感想をお聞かせいただければ幸いです。
-ストリーミング分析担当プロダクト マネージャー Shan Kulandaivel
-Google Cloud ソリューション マネージャー Cody Irwin