[レポート] AWSの分析サービスによるソニー・プレイステーションの不正防止対策 #ANT331 #reinvent
DA事業本部の川崎です。
本記事はAWS re:Invent 2019のセッションレポートとなります。
概要
Sony Interactive Entertainment built their EVE Fraud System as a big data platform to aggregate transactional activity of users, resulting in substantially increased approvals with no increase in declines or chargebacks from banks. In this session, learn how Sony used Amazon Kinesis Data Analytics, Amazon Kinesis Data Firehose, AWS Lambda, AWS Glue, Amazon Simple Storage Service (Amazon S3), and Amazon DynamoDB to generate aggregations and retrieve them in a single purchase transaction in less than 180 milliseconds.
ソニー・インタラクティブエンタテインメントは、ユーザーのトランザクションアクティビティを集約するビッグデータプラットフォームとしてEVE(エンタープライズ向けイベント検証) 不正防止システムを構築し、銀行からの不承認やチャージバックを増やすことなく、大幅に承認を増やしました。 このセッションでは、ソニーがAmazon Kinesis Data Analytics、Amazon Kinesis Data Firehose、AWS Lambda、AWS Glue、Amazon Simple Storage Service(Amazon S3)、およびAmazon DynamoDBを使用して集計データを生成し、単一の購入トランザクションのデータを180ミリ秒以下で取得する方法をご紹介します。
スピーカー
- Nicholas Walsh - Technical Evangelist, Amazon Web Services
- Eric Krauss - Engineering Manager, Commerce Platform - Fraud, SIE
- Tom Lilley - Staff Software Engineer, Sony Interactive Entertainment
- エリック・クラウス 氏
- SIEのコマースエンジニアリング部門のエンジニアリングマネージャー
- 金融サービスおよび電子商取引の25年の経験
- Sony Interactive Entertainmentに11か月間勤務している(新しいドレスコードが大好き)
- Javaおよび.NETのフルスタックとしてのソフトウェアエンジニアリングのバックグラウンド
- DevOps、アジャイル、およびAPI管理に焦点を当てたアクティブスピーカー
- 12年間結婚し、2人の男の子の父親であることを誇りに思っています
- トム・リリー 氏
- SIEのコマースエンジニアリング部門のスタッフソフトウェアエンジニア
- 詐欺およびリスクチームのテクニカルリード
- 顧客がPlayStationストアとやり取りするときに、リアルタイムの不正行為とリスク分析を行うバックエンドサービスを構築
- 10年以上のソフトウェア開発経験
- SIEで3年
- 低遅延、大容量のトランザクションシステムに焦点を当てる
- AWSはかなり短く、プラットフォームでの経験はわずか2年
- 最初のre:Inventは2017年でした
- ニコラス・ウォルシュ 氏
- アマゾンウェブサービスのテクニカルエバンジェリスト
- 主にAl / ML +ゲームテクノロジーに取り組む
- 実際には、データにまつわる問題を解決することであれば何でも好き
- 一風変わった開発者の経歴、学界+研究
- 違法なフカヒレ売買を抑制するために、サメの種識別システムの構築を支援
- また、無関心の診断のための神経学ソフトウェア
- サステイナブルな卵の代替食品を作ろうとしているフード科学のスタートアップ
- 私がAWSで働く数年前に、ハッカソンで大学生に初めてAWSを教えました
ソニー・インタラクティブエンタテインメント社について
- カリフォルニア州サンマテオに本社を置くSIEは、ソニー株式会社の完全子会社であり、ロンドンと東京に地域本社があります。
- インタラクティブおよびデジタルエンターテイメントのグローバルリーダーとして認められているSony Interactive Entertainment(SIE)は、PlayStationブランドと製品ファミリを担当しています。
- PlayStationは、1994年に日本で最初のPlayStationが発売されて以来、革新的な製品を市場に提供してきました。
- PlayStationファミリーの製品およびサービスには、PlayStation 4、PlayStation VR、PlayStation Store、PlayStation Nowが含まれます。
- SIEは、Worldwide Studiosも監督します。WorldwideStudiosは、PlayStation専用の世界クラスのゲームの開発を担当しています。
アジェンダ
- イニシアチブの概要
- テクノロジーの概要
- 結果のレビュー
- 学んだ教訓
- Q&A
イニシアチブの概要
PlayStation Storeで顧客を保護する
- ビジョン
- プレイステーションネットワークを、プレイヤーが安心して参加し、滞在し、楽しむことができる世界クラスの場所にすること。 PlayStationのブランド名と収益を詐欺や搾取から保護するため。
- ミッション
- リアルタイムのデータ駆動型の個別のリスクスクリーニングアプローチを採用してこれを実行し、悪意のある人物を事前に特定して阻止します。
- エンタープライズ向けイベント検証(EVE)は、PlayStationコマースプラットフォーム内でユーザーが開始したトランザクションのインライン詐欺/リスク決定を可能にするプラットフォームです。
EVEのPlayStation Networkの目標
- PSNのリアルタイムリスクの360度ビュー
- 運命のきめ細かな制御
- ワールドクラスの顧客体験
- 集中リスク管理
- たちの悪いアクターに積極的に対処する能力
- 最先端のテクノロジーを使用してプラグアンドプレイする機能
ユースケースN
- チャレンジ:
- PlayStation Networkが、リスクのある、または詐欺的な活動について、商業プラットフォーム上のイベントをリアルタイムで評価する能力を向上させるため
- 目標:
- PSNプラットフォーム上のさまざまなトランザクションイベントによってSaaSとして使用できるマルチテナントシステムを構築
- ソリューション:
- EVEは、ワンストップショップリスク管理システムとして構築された
ユースケース1 — 購入
- チャレンジ:
- 盗難または不正なカードと、PlayStation Networkでデジタル商品を購入するためのユーザー情報を使用した詐欺をさらに防止するため
- 目標:
- 可能な限り高い取引承認率を保持し、可能な限り低いチャージバック率を保持する
- ソリューション:
- EVE Purchaseは、PSストアから開始された各購入トランザクションを評価し、ビッグデータと高度なMLを活用した承認/拒否を提供
ユースケース2 —ログイン
- チャレンジ:
- 盗まれたアカウント情報を使用してアカウント乗っ取り(ATO)を実行する詐欺師をさらに防ぐため
- 目標:
- ネットワークとユーザーを悪意から保護するため
- ソリューション:
- EVEログインは、Webまたはモバイルプラットフォームでの各ユーザーログインを評価し、承認/チャレンジ/拒否を提供し、ビッグデータと高度なMLを活用
テクノロジーの概要
AWSテクノロジーが選ばれる理由
- SIEは、2018年にコアシステムをAWSに正常に移行した
- SIEのクラウドジャーニーは、EVEプロジェクトの進行と同時に起きていた
- インフラストラクチャを管理するのではなく、マネージドリソースを活用し、ビジネスユースケースに焦点を当てるユニークな機会
- 市場へのデリバリーを加速する機会を得た
AWSマネージドサービスの利点
- スケーラブル
- システム内のすべてのコンポーネントは水平方向にスケーリングされる(そうすることは操作上非常に簡単)
- メンテナンス可能性
- エンジニアと運用チームは、これらのサービス(アップグレード、パッチなど)の日常のメンテナンスに縛られない
- 問題やスケールの必要性を通知するためのシンプルなCloudWatchアラーム
AWSサーバーレスアーキテクチャのコアバリュー
- インフラストラクチャのプロビジョニングや管理は不要
- 価値に対する支払い(アクションまたは呼び出しごと)
- 自動スケーリング、高い同時実行性および可用性
- アーキテクチャは「スモールサイズ、疎結合」で構成する
- 複雑さを管理しやすくするために、マイクロサービスごとのスコープを減らす
データストレージ
- Amazon S3:
- あらゆるサイズのデータセット、耐久性の高いオブジェクトストレージ(99.999999999%)
- どこにでもデータを配置またはデータにアクセスし、リージョン間レプリケーションをサポート
- DynamoDB:
- 1桁台の数字のミリ秒クエリを含むキー-バリュー(NoSQL)データベース
- 大規模で高いスループット(1日に10兆回のリクエストと2000万r/s)
コンピュート
- AWS Lambda
- サーバーレスのイベント駆動型コード実行
- すべての言語のランタイム
- データソースをトリガーとして設定可能
- AWS Glue
- サーバーレスETL。Spark用のカスタム変換ジョブを作成
- データソースからの自動スキーマ検出
データ転送
- Amazon Kinesis Data Firehose
- ストリーミングデータをデータストアまたは分析ツールに確実にロード
- バッチ処理、変換、暗号化などの機能
- Amazon Kinesis Data Analytics
- ストリーミングデータをリアルタイムで簡単に処理
- 分析を転送するときに合理化することにより、複雑さを軽減
アーキテクチャ管理
- CloudWatch
- アプリケーションとインフラストラクチャの監視と可観測性
- ログ、メトリック、およびイベントから、リソース使用率と運用状態のカスタムメトリックを設定
- AWS CloudFormation
- Infrastructure as Code(IaC)。プロビジョニングおよび展開プロセスを合理化
- 構成ファイルでアーキテクチャを定義し、スタック全体の自動化された再現可能な展開を可能に
すべてを結合する
- イベントの取り込みからストレージ、コード実行まで、すべてをサーバーレスで実行可能
- アプリケーションの分離により、ワークロードに対するツールのより効果的な組み合わせが可能に
- コスト削減
- より高速な機能の速度
- 最適化の余地を増やして、希望するカスタマーエクスペリエンスを提供
機械学習!
- みなさんの関心事ですが…申し訳ありませんが、機械学習についてはあまりお話ししません
- 機械学習を大いに利用しています!
- 機械学習の品質は、モデルに提供するデータ次第
時系列に基づくデータ集計
- リスクの最も強力な指標は、コンテキストデータに基づいている
- リアルタイム分析システムは、プラットフォーム上のイベントの集合データを時間の経過とともに提供
- 例:
- 過去7日間にこのアカウントで見た一意のIPアドレスの数
- 過去1時間にこのデバイスが何回購入しようとしたか
- AWSで構築したシステムは、これらの集約を作成し、プラットフォーム上の複数のイベントに対してリアルタイムで機械学習モデルに配信します
主要なシステム要件
- スピード
- 優良顧客ができるだけ早くプラットフォームとやり取りできるようにします
- 今すぐ新しいバニースーツが欲しい!
- 優良顧客ができるだけ早くプラットフォームとやり取りできるようにします
- スケール
- トラフィックパターンが変化し、新しいイベントが追加されたときにシステムを拡大できるようにしたい
- 「特定のゲーム」は、新しいシーズンをリリースするときにトラフィックが非常に急増。 インフラストラクチャは、これらのシナリオに対処できる必要がある
- トラフィックパターンが変化し、新しいイベントが追加されたときにシステムを拡大できるようにしたい
- 復元力
- 人的エラーと機械的エラーの両方に対してフォールトトレラントなシステムが必要
- トムは時々バグを出すことを認めているが、トムにコードを書かせる必要がある
- 人的エラーと機械的エラーの両方に対してフォールトトレラントなシステムが必要
リアルタイム分析—Lambdaアーキテクチャ
- Lambdaアーキテクチャ(AWS Lambdaと混同しないで)
- データ処理アーキテクチャのベストプラクティス
- バッチ処理を使用して包括的かつ正確なビューを提供し、リアルタイムストリーム処理を使用して結果をより迅速に提供するシステム
Lambdaアーキテクチャの利点
- 複雑さの分離
- 増分更新の複雑さはスピードレイヤーに分離され、その結果は一時的なものに過ぎない
- データがマスターデータセットからバッチビューに永続化されると、リアルタイムビューは無視される
- 最終的な精度
- 一部のアルゴリズムは、インクリメンタルに計算するのが困難(一意のカウントなど)
- バッチレイヤーで正確なアルゴリズムを使用し、スピードレイヤーで近似アルゴリズムを使用する
- フォールトトレランス(マシンと人間の両方)
- 大きな不具合が発生した場合は、バッチビューを再生成し、リアルタイムビュー全体を破棄すると、すべてが正常に戻る
AWSの各サービスとLambdaアーキテクチャ
バッチレイヤー
- Kinesis Data Firehose
- データをJSONからParquetに変換し、AWS Glueテーブルスキーマを使用してETL向けに最適化し、Amazon S3に配信
- Amazon S3
- ラムダアーキテクチャのマスターデータセット、イミュータブルなのアペンドオンリーのイベントログ
- AWS Glue
- 再利用可能なSparkジョブ。毎時、毎日、オンデマンドで実行し、Amazon S3からDynamoDBへの集約データを生成(および潜在的に再生成)可能
- DynamoDB
- バッチINSERT操作で一度に書き込まれたデータ、増分更新なし
スピードレイヤー
- Kinesis Data Analytics
- 1秒の時間間隔で集計するカスタムSQL
- ラムダ
- データベースへの書き込み用にキー別にデータを整理
- 大量のトラフィックでスループットを向上させるために、データベースへの書き込みを並列化するために複数のラムダに展開
- DynamoDB
- データは更新として書き込まれ、集計値がインクリメンタルに更新される
技術的チャレンジ-読み取りの最適化
- 集約の取得速度が重要
- 顧客が待っている!
- データを時間の「間隔」に整理する
- システムでリアルタイムにイベントが発生
- 日、時間、および分間隔
- キー
- ハッシュキー
- 間隔の種類と集計されるデータ
- ソートキー
- 時間間隔
- ハッシュキー
技術的チャレンジ-読み取りの最適化
- 時間を考慮して適切な間隔をクエリすると、常に右側に移動し、使用する間隔が変化
- クエリの例
- このアカウントは過去30日間に何回購入しようとしたか?
- 今日(速度表示を含む)および30日前の分間隔
- バッチビュー間隔が存在する場合は優先する
- 今日と30日前の時間間隔
- 真ん中の日間隔
- 今日(速度表示を含む)および30日前の分間隔
- このアカウントは過去30日間に何回購入しようとしたか?
技術的チャレンジ-拡張性
- システムの主要なコンポーネントは、集約用の汎用メタモデルを中心に設計
- 例
- このアカウントは過去7日間に何回購入しようとしたか?
- 例
- 繰り返し可能な構造に分割
- 時間(1日、1分、30日)にわたるイベント(購入、ログイン)のキー(アカウント、デバイス)と値(金額、IP)の操作(合計、カウント、一意のカウント)
AWSサービスとメタモデル
- ソフトウェアは、集計に関する知識を持たず、構成ストアから取得
- Amazon EC2
- DynamoDBに対して実行するクエリ
- AWS Glue
- 操作対象の列
- DynamoDBに保持するデータ
- Kinesis Data Analytics
- SQLを自動生成するテンプレートエンジン
技術的チャレンジ-ビッグデータ
- 1日に数百万件のトランザクション、一意のカウント集計により、長い時間間隔で大きなセットサイズを作成可能
- DynamoDBにはアイテムサイズの制限あり。非常に大きなデータセットに使用することはお勧めしない
- リスク分析に十分な精度を維持しながら、アイテムのサイズを削減するために近似値を導入
- HyperLogLog + —セット内の個別の要素の数を概算するアルゴリズム
結果のレビュー
ユースケース1-購入
- 圧倒的な成功!
- 承認率を3%以上改善することができた。これは、実質的な月間売上につながる
- チャージバック率を一定に保ちながら、承認率を上げることができた
- 応答時間を約2秒から約195ミリ秒未満に短縮
- リスク低下の不正確率を40%改善
ユースケース1-購入結果
- EVE Purchaseは1月中旬に公開され、顕著な結果が得られた
- 休日の交通のルールを緩めた
- EVE購入インストールにより、承認率が大幅に向上
- システムを調整すると、パフォーマンスがさらに向上
ユースケース1-購入結果
- EVE Purchaseは1月中旬に公開され、結果は明らかな勝利
- EVE購入インストールにより、誤検知が大幅に減少
- システムを調整すると、パフォーマンスがさらに向上
ユースケース2-ログイン
- これまでのところ、私たちは苦戦を強いられています!
- 私たちは、不審な活動について顧客に積極的に警告することができた
- 送信した警告メールのうち、受信者の20%がパスワードを変更
- 8月に発売されて以来、潜在的に〜15Kの顧客がATOから保護されています
学んだ教訓
チャレンジ
- 精度とコスト
- データをバケットに整理すると、現在の1分のタイムバケット内で操作する場合、100%未満の精度になる
- 1秒のバケットに短縮すると、アイテムの数とコストが増加
- データをバケットに整理すると、現在の1分のタイムバケット内で操作する場合、100%未満の精度になる
- コードとしてのインフラストラクチャ
- AWS CloudFormationは、必要なデプロイメントの自動化をすべてサポートしていませんでした
- 展開後にリソースを構成するカスタムラムダを作成
- 例
- Kinesis Data Analyticsアプリケーションを起動し、適切なAWS GlueスキーマでKinesis Data Firehoseを構成
- セキュリティ
- 機密性の高いプラットフォームデータ
- IAMと暗号化は非常に重要
-
非常に詳細なポリシーを介して、各リソースへのアクセスを最小限に抑える必要があった
エキサイティングな予定
- リスク管理の対象を拡大
- 今後12〜18か月にわたって、より多くのイベントインターセプターを作成し、リアルタイムの360度リスク管理プラットフォームにより近づける
- 不正管理システム用にAWS管理サービスを使用して、エキサイティングなテクノロジーを調査
- チームの成長
- ベイエリアと南カリフォルニアの拠点でチームを拡大
まとめ
ソニー・インタラクティブエンタテインメント社のビッグデータプラットフォーム、EVE(エンタープライズ向けイベント検証) 不正防止システムの事例をご紹介いただきました。
具体的なアーキテクチャの解説は、今後クラウド上のビッグデータプラットフォームを設計する際に、非常に参考になりそうです。