[レポート] AWS キミにきめた!:ポケモン対Bot戦 #reinvent #SEC402

SEC402 - AWS, I Choose You: Pokemon's Battle against the Botsに参加してきましたのでレポートをお届けします。
2019.01.01

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

こんにちは。サービスグループの武田です。

SEC402 - AWS, I Choose You: Pokemon's Battle against the Bots に参加してきましたのでレポートをお届けします。

池田も同セッションのレポートを上げていますのであわせてご覧ください。

[レポート] SEC402 – AWS, I Choose You: Pokemon’s Battle Against the Bots( キミにきめた!Bot たちとポケモンの戦い ) #reinvent

なおセッションの動画はYouTubeからも視聴できます。

セッション概要

Join us for this advanced-level talk to learn about Pokemon's journey defending against DDoS attacks and bad bots with AWS WAF, AWS Shield, and other AWS services. We go through their initial challenges and the evolution of their bot mitigation solution, which includes offline log analysis and dynamic updates of badbot IPs along with rate-based rules. This is an advanced talk and assumes some knowledge of Amazon DynamoDB, Amazon Kinesis Data Firehose, Amazon Kinesis Data Analytics, AWS Firewall Manager, AWS Shield, and AWS WAF.

機械翻訳したものも掲載します。

AWS WAF、AWS Shield、およびその他のAWSサービスを使用したDDoS攻撃や不正ボットに対するPokemonの防御策について学ぶためのこの高度な講演にご参加ください。 我々は彼らの最初の課題と彼らのボット軽減ソリューションの進化を経験します。それはオフラインのログ分析とレートベースのルールと共にバッドボットIPの動的な更新を含みます。 これは上級者向けの話で、Amazon DynamoDB、Amazon Kinesis Data Firehose、Amazon Kinesis Data Analytics、AWS Firewall Manager、AWS Shield、およびAWS WAFに関する知識があることを前提としています。

アジェンダ

  • Botは問題なのか?
  • ポケモンの話

後半はライブデモがありましたが、そちらはYouTubeをご覧ください。ここでは前半の内容についてレポートにしました。

Botは問題なのか?

  • 悪いBot(なぜ悪いのか?)
  • DoS
  • コンテンツのスクレイピング
  • アカウント乗っ取り
  • 不当な優位性
  • 経済的なインセンティブ
  • このセッションで話すこと
  • Botへの挑戦
  • 最初のソリューション
  • 新しい挑戦
  • ソリューションの進化
  • スケールおよびパフォーマンスの改善
  • 現実世界へのソリューションの適用
  • 関連するAWSサービス
  • Amazon CloudFront
  • AWS WAF
  • AWS Shield
  • AWS Lambda
  • Amazon DynamoDB
  • Amazon SQS
  • Amazon Kinesis
  • Kinesis Data Firehose
  • Kinesis Data Analytics

ポケモンの話

  • ポケモントレーナーズクラブ
  • 世界規模の認証サービス
  • さまざまなポケモンのゲームおよびサービスへのアクセス
  • 子どもアカウントのセキュリティが最重要

  • Botへの挑戦
  • 新規ユーザーの大幅な増加
  • 不正なユーザーとトラフィックの大規模、不相応な増加
  • Bot
  • スキャナー
  • DDoS攻撃
  • 進行中の冒険(継続的な問題)
  • re:Invent 2017でもセッションで話した
  • CloudFront + AWS WAF&Shieldに切り替え、安定性とパフォーマンスの改善
  • Shield DRTチームのサポートと回答により改善
  • 始めたばかりのこと
  • 非常に多数の不正アカウント
  • WAFルールおよびレート制限により、もっとも悪意のある違反者は排除できた
  • Botによる超過アクセス
  • オレンジの線:CloudFrontへの総リクエスト
  • グリーンの線:バックエンドへのリクエスト

  • CloudFront Serverless analytics
  • Kinesis Data Firehoseを介したトラフィック分析のアーキテクチャ
  • WAFルールを通過したトラフィックのみを分析
  • Build a Serverless Architecture to Analyze Amazon CloudFront Access Logs Using AWS Lambda, Amazon Athena, and Amazon Kinesis Analytics | AWS Big Data Blog
  • 誰がBotなのか?
  • リクエストとレスポンスのトラフィックを見ても検出できないものがある
  • それ以外の情報を見る必要があった
  • 次の挑戦
  • ハイタッチ
  • 戦略のシフト
  • 証跡監査
  • 武器の選択およびゴール
  • 悪い行動を高価にする(コストがかかるようにする)
  • 誤検知のリスクを減らす
  • Set and forget(設定したら忘れても大丈夫)
  • 証跡の監査
  • サーバーレス
  • スケーラビリティ
  • 迅速な実装
  • これらをすべて盛り込んで進化したアーキテクチャ

  • Kinesis Streamsのスケーリング
  • シャードごとにラムダを1回トリガー
  • 特定のシャードに集中しないようシャードキーをユニークに保つ
  • シャードを増やすときは最大で倍にできる
  • 24時間ごとに2回しか増やせない
  • Lambdaが失敗したときはリトライ
  • DynamoDBのスケーリング
  • スループット
  • パーティション間で負荷分散
  • TTLを使用してデータを長期保存しない
  • 最終的にアーキテクチャは次のように進化した
  • ホワイトリストアーキテクチャの簡素化
  • ルールをDynamoDBに移動
  • Kinesis Data Analyticsの簡素化
  • ソースをWAFログに更新

まとめ

Kinesis、Lambda、DynamoDBを利用したサーバーレスアーキテクチャとしてとても参考になります。私もポケモンGOをプレイしていますが、サービスの裏側ではこういった努力がされていることが知れました。またre:Inventでポケモンが見れてうれしくなりました。

さていつの間にか新年も明けて、初日の出ももうすぐです。今年も1年よい年でありますように。