Upgrade to Pro — share decks privately, control downloads, hide ads and more …

AWSにおける標的型Bot対策

 AWSにおける標的型Bot対策

hacomono Inc.

December 26, 2022
Tweet

More Decks by hacomono Inc.

Other Decks in Programming

Transcript

  1. AWSにおける標的型Bot対策

  2. PRESENTATION AGENDA 01 私とhacomonoについて 02 弊社サービスの特性 03 課題 04 AWSサービスを使った解決策

  3. section 01 私とhacomonoについて

  4. 4 section 01: 私とhacomonoについて 株式会社 hacomono
 大西 時雨 / Shigure

    Onishi SREチーム マネージャー
 香川県の離島からフルリモートで勤務 2021年8月にhacomonoに入社 好きなAWSのサービスはS3
  5. 5 5 代 表: 蓮田 健一 設 立: 2013年7月 (現在10期目) 住 所: 東京都渋谷区神宮前 2丁目34番17号 住友不動産原宿ビル 5F メンバー:

    120名 フィットネスクラブなど、月謝制店舗向け会員管理・予約・決済システム hacomono開発・販売 株式会社hacomono
  6. section 02 弊社サービスの特性

  7. 7 section 02: 弊社サービスの特性 フィットネスクラブの レッスン予約は熱い オンライン化する前は 店舗に行列ができるような状態 我々は慣習をオンラインに持っていった

  8. 8 section 02: 弊社サービスの特性 場所指定システム

  9. 9 section 02: 弊社サービスの特性 スケジュール公開

  10. 10 section 02: 弊社サービスの特性 スケジュール公開

  11. 11 section 02: 弊社サービスの特性 スケジュール公開 AutoScalingも中々追いつかない 事前に顧客から公開時間を聞いて強化スケジュールセット (Aurora Serverless v2、Lambdaによるサーバレス化も検証中

    )
  12. 12 section 02: 弊社サービスの特性 あまりにもアクセスが増え過ぎではないか? 1分でそんなに増えるものか? 予約完了が開始3秒以内に終わってる? 同じ人が同じ場所で毎回予約いるんだけど?と問い合わせくる

  13. 13 section 02: 弊社サービスの特性 もしやBot . . . ? 🤔

  14. 14 section 02: 弊社サービスの特性 顧客からも調査依頼がくる ログをとりあえず目視で見る

  15. 15 section 02: 弊社サービスの特性 目視結果 1. UAが「python-requests/x.xx.x」 2. 1分間隔で1日中アクセスしてくるIP 3.

    予約確認画面を通らずに予約完了 4. 公開時間ぴったりにアクセスして3秒で予約完了
  16. 16 section 02: 弊社サービスの特性 行動ログの可視化 (QuickSight) ユーザーがどのようなページ遷移をして予約に至ったか? 1日に何回アクセスがあったか?など

  17. 17 section 02: 弊社サービスの特性 Botが販売されていることを知る

  18. 18 section 02: 弊社サービスの特性 自分が会員側であまりにも予約が取れないなら自分用に作る、、、かも 完全にそれを否定することは心情的にも難しい 最終的に判断するのは我々ではなく、我々の顧客 (企業様の規約の話) 便利になる世の中は素晴らしいことではある だが、ITリテラシーによって優劣が大きく変わってしまうのは考えもの

    対策しなければ、サービス解約されるかもしれないので頑張る Botって本当にダメなのか?
  19. section 03 課題

  20. 20 section 03: 課題 1. IP制限 ツールを購入・作成して自宅で実行している人を一掃 インフラ系の知識がなければ突破できない 2. UAによるブロック

    販売されたものをそのまま使っている人を一掃 プログラムの修正知識などがなければ対応不能 簡単なところから対策
  21. 21 section 03: 課題 全然収まらない . . . 😢

  22. 22 section 03: 課題 1. AWS WAFによるIPベースのRate limit 短時間で大量にアクセスしてくるユーザーをブロック ホスティング型の予約

    Botをブロック 2. AWS WAF Bot Control 一般的なBotはブロックされるようになった 3. URLを連番からランダム文字列 URLの予測を不可能に ちょっと構成変更
  23. 23 section 03: 課題 まだすり抜ける . . . 😢

  24. section 04 AWSサービスを使った解決策

  25. 25 section 04: AWSサービスを使った解決策 1. AWS WAF Bot Control for

    Targeted Bots (2022年10月リリース) 標的型ボットの攻撃から保護するブラウザの調査、フィンガープリント、 行動分析などの 高度なボット検出技術を簡単に有効にできます https://aws.amazon.com/jp/about-aws/whats-new/2022/10/aws-waf-challenge-rule-action-bot-control-targeted-bots/ 2. Amazon Fraud Detector (2020年7月 GA) 機械学習 (ML) の経験がなくても、不正検出 モデルを構築、デプロイ、管理できます。 https://aws.amazon.com/jp/fraud-detector/ AWS WAFの新機能とAWSサービスの紹介
  26. 26 section 04: AWSサービスを使った解決策 Bot対策をしてもBot側に対策を打たれて突破される 基本的に対策されたもの検知してから対策を打つので後手に回る 機械学習ならBotの振る舞いから検出モデルを作れば ある程度先回りできるのではないか? いたちごっこから開放されたい

  27. 27 section 04: AWSサービスを使った解決策 我々のビジネスの場合、Botをブロックするのが本当の目的ではない。 機械学習を作り込んだところで予測は所詮予測である。 ブロックするのではなく、マーキングすることをゴールとする 1. 最終的にはログを目視判断する 2.

    相手はジムに現れるし個人情報も握ってる 偽陽性がたくさん出るぐらいで良い 要求と要件を整理
  28. AWS WAF Bot Control for Targeted Bots

  29. 29 section 04: AWSサービスを使った解決策 1. TGT_VolumetricIpTokenAbsent Challengeトークンを含むかどうかで判断 2. TGT_VolumetricSession 過去のトラフィックと比較して異常に増加していないかで判断

    3. TGT_SignalAutomatedBrowser ブラウザ自動化周りで判断 4. TGT_SignalBrowserInconsistency ブラウザの問い合わせデータに矛盾がないかを検査 AWS WAF Bot Control for Targeted Bots
  30. 30 section 04: AWSサービスを使った解決策 AWS WAF Bot Control for Targeted

    Bots
  31. 31 section 04: AWSサービスを使った解決策 疑わしい行動をするとこんな状態になる

  32. 32 section 04: AWSサービスを使った解決策 疑わしい行動をするとこんな状態になる

  33. Amazon Fraud Detector

  34. 34 section 04: AWSサービスを使った解決策 1. 疑わしいオンライン決済の特定 2. 新規アカウント不正の検出 3. トライアルプログラムやロイヤリティプログラムの不正使用の防止

    4. アカウント乗っ取り検出の改善 Amazon Fraud Detectorのユースケース
  35. 35 section 04: AWSサービスを使った解決策 1. オンライン不正インサイト 過去データが存在しないものに有効 (大量のアカウント不正発行 ) 2.

    トランザクション不正インサイト 過去データが存在するものに有効 (クレカの決済など) 3. アカウント乗っ取りインサイト 過去データが存在するものに有効 (ログインの時間帯、ログイン場所など ) 4. SageMakerのインポート Amazon Fraud Detectorの不正検出モデル
  36. 36 section 04: AWSサービスを使った解決策 CSVのEVENT_LABELに不正フラグを立てて、Fraud Detectorに食わせるだけ データセットについて

  37. 37 section 04: AWSサービスを使った解決策 これだけでそれっぽい結果が返ってくる 学習結果について

  38. 38 section 04: AWSサービスを使った解決策 1. 学習データと同じ型の要素データをFraud Detectorに送る 2. 送ったデータの不正度が点数で返ってくる 3.

    開発者が不正かどうかを判断する —------------------------------------- if (700点 < score) { # ブロックする処理 } 不正かどうかの判断基準
  39. 39 section 04: AWSサービスを使った解決策 このモデルは「billing_state」の項目がスコアに大幅に影響を与えている どの要素が影響を与えているか

  40. 40 section 04: AWSサービスを使った解決策 Amazon Fraud Detector

  41. 41 section 04: AWSサービスを使った解決策 レスポンス比較 (資料探せなかった) Fraud Detector Targeted Bots

    200ms ~ 250ms? 50ms以下?
  42. 42 section 04: AWSサービスを使った解決策 カスタマイズ比較 Fraud Detector Targeted Bots モデル構築から

    検出時の挙動は自前 ブラックボックス 検出時の挙動は他の AWS WAFと同じ
  43. 43 section 04: AWSサービスを使った解決策 運用比較 Fraud Detector Targeted Bots モデルを自分で運用・調整

    おまかせ
  44. 44 section 04: AWSサービスを使った解決策 精度比較 Fraud Detector Targeted Bots 開発者による

    一定水準の精度
  45. 45 section 04: AWSサービスを使った解決策 コスト比較 Fraud Detector Targeted Bots 0.03

    USD/予測 10.00USD/検査するリクエスト100万件
  46. 46 section 04: AWSサービスを使った解決策 全リクエストを突っ込むわけにはいかない 😢 1予測が約4円

  47. 47 section 04: AWSサービスを使った解決策 両方利用するのが現実的 1. Targeted Botsで手前である程度落とす 2. 予約完了リクエスト時のみFraud

    Detectorで評価 作戦変更
  48. section 05 まとめ

  49. 49 section 05: まとめ 弊社の場合、要求と要件がそこまで厳しくないため素人の自分でもここまでできた。 Fraud Detectorは1日触っただけで今日ぐらいの資料が作れるぐらいに簡単。 大変なのはデータセットをクレンジングなり評価する仕組みの方である。 機械学習素人でもそれっぽいことでき〼

  50. 50 Copyright Machiiro Inc. All Rights Reserved. 私たちはフィットネス業界の新しいプラットフォームを構築していきます。 一人では決して達成できない大きな目標を成し遂げるために、心強い仲間を募集しています。 Join

    us! こんな仲間を募集しています • 「私」ではなく「お客様」を主語に業務を捉えられる方 • 現状維持ではなく、会社・自己の成長、カイゼン意欲のある方 • プロ意識・責任感を持って仕事に取り組める方
  51. Mission ご清聴、ありがとうございました