Slide 1

Slide 1 text

AWSにおける標的型Bot対策

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

section 01 私とhacomonoについて

Slide 4

Slide 4 text

4 section 01: 私とhacomonoについて 株式会社 hacomono
 大西 時雨 / Shigure Onishi SREチーム マネージャー
 香川県の離島からフルリモートで勤務 2021年8月にhacomonoに入社 好きなAWSのサービスはS3

Slide 5

Slide 5 text

5 5 代 表: 蓮田 健一 設 立: 2013年7月 (現在10期目) 住 所: 東京都渋谷区神宮前 2丁目34番17号 住友不動産原宿ビル 5F メンバー: 120名 フィットネスクラブなど、月謝制店舗向け会員管理・予約・決済システム hacomono開発・販売 株式会社hacomono

Slide 6

Slide 6 text

section 02 弊社サービスの特性

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

15 section 02: 弊社サービスの特性 目視結果 1. UAが「python-requests/x.xx.x」 2. 1分間隔で1日中アクセスしてくるIP 3. 予約確認画面を通らずに予約完了 4. 公開時間ぴったりにアクセスして3秒で予約完了

Slide 16

Slide 16 text

16 section 02: 弊社サービスの特性 行動ログの可視化 (QuickSight) ユーザーがどのようなページ遷移をして予約に至ったか? 1日に何回アクセスがあったか?など

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

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

Slide 19

Slide 19 text

section 03 課題

Slide 20

Slide 20 text

20 section 03: 課題 1. IP制限 ツールを購入・作成して自宅で実行している人を一掃 インフラ系の知識がなければ突破できない 2. UAによるブロック 販売されたものをそのまま使っている人を一掃 プログラムの修正知識などがなければ対応不能 簡単なところから対策

Slide 21

Slide 21 text

21 section 03: 課題 全然収まらない . . . 😢

Slide 22

Slide 22 text

22 section 03: 課題 1. AWS WAFによるIPベースのRate limit 短時間で大量にアクセスしてくるユーザーをブロック ホスティング型の予約 Botをブロック 2. AWS WAF Bot Control 一般的なBotはブロックされるようになった 3. URLを連番からランダム文字列 URLの予測を不可能に ちょっと構成変更

Slide 23

Slide 23 text

23 section 03: 課題 まだすり抜ける . . . 😢

Slide 24

Slide 24 text

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

Slide 25

Slide 25 text

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サービスの紹介

Slide 26

Slide 26 text

26 section 04: AWSサービスを使った解決策 Bot対策をしてもBot側に対策を打たれて突破される 基本的に対策されたもの検知してから対策を打つので後手に回る 機械学習ならBotの振る舞いから検出モデルを作れば ある程度先回りできるのではないか? いたちごっこから開放されたい

Slide 27

Slide 27 text

27 section 04: AWSサービスを使った解決策 我々のビジネスの場合、Botをブロックするのが本当の目的ではない。 機械学習を作り込んだところで予測は所詮予測である。 ブロックするのではなく、マーキングすることをゴールとする 1. 最終的にはログを目視判断する 2. 相手はジムに現れるし個人情報も握ってる 偽陽性がたくさん出るぐらいで良い 要求と要件を整理

Slide 28

Slide 28 text

AWS WAF Bot Control for Targeted Bots

Slide 29

Slide 29 text

29 section 04: AWSサービスを使った解決策 1. TGT_VolumetricIpTokenAbsent Challengeトークンを含むかどうかで判断 2. TGT_VolumetricSession 過去のトラフィックと比較して異常に増加していないかで判断 3. TGT_SignalAutomatedBrowser ブラウザ自動化周りで判断 4. TGT_SignalBrowserInconsistency ブラウザの問い合わせデータに矛盾がないかを検査 AWS WAF Bot Control for Targeted Bots

Slide 30

Slide 30 text

30 section 04: AWSサービスを使った解決策 AWS WAF Bot Control for Targeted Bots

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

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

Slide 33

Slide 33 text

Amazon Fraud Detector

Slide 34

Slide 34 text

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

Slide 35

Slide 35 text

35 section 04: AWSサービスを使った解決策 1. オンライン不正インサイト 過去データが存在しないものに有効 (大量のアカウント不正発行 ) 2. トランザクション不正インサイト 過去データが存在するものに有効 (クレカの決済など) 3. アカウント乗っ取りインサイト 過去データが存在するものに有効 (ログインの時間帯、ログイン場所など ) 4. SageMakerのインポート Amazon Fraud Detectorの不正検出モデル

Slide 36

Slide 36 text

36 section 04: AWSサービスを使った解決策 CSVのEVENT_LABELに不正フラグを立てて、Fraud Detectorに食わせるだけ データセットについて

Slide 37

Slide 37 text

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

Slide 38

Slide 38 text

38 section 04: AWSサービスを使った解決策 1. 学習データと同じ型の要素データをFraud Detectorに送る 2. 送ったデータの不正度が点数で返ってくる 3. 開発者が不正かどうかを判断する —------------------------------------- if (700点 < score) { # ブロックする処理 } 不正かどうかの判断基準

Slide 39

Slide 39 text

39 section 04: AWSサービスを使った解決策 このモデルは「billing_state」の項目がスコアに大幅に影響を与えている どの要素が影響を与えているか

Slide 40

Slide 40 text

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

Slide 41

Slide 41 text

41 section 04: AWSサービスを使った解決策 レスポンス比較 (資料探せなかった) Fraud Detector Targeted Bots 200ms ~ 250ms? 50ms以下?

Slide 42

Slide 42 text

42 section 04: AWSサービスを使った解決策 カスタマイズ比較 Fraud Detector Targeted Bots モデル構築から 検出時の挙動は自前 ブラックボックス 検出時の挙動は他の AWS WAFと同じ

Slide 43

Slide 43 text

43 section 04: AWSサービスを使った解決策 運用比較 Fraud Detector Targeted Bots モデルを自分で運用・調整 おまかせ

Slide 44

Slide 44 text

44 section 04: AWSサービスを使った解決策 精度比較 Fraud Detector Targeted Bots 開発者による 一定水準の精度

Slide 45

Slide 45 text

45 section 04: AWSサービスを使った解決策 コスト比較 Fraud Detector Targeted Bots 0.03 USD/予測 10.00USD/検査するリクエスト100万件

Slide 46

Slide 46 text

46 section 04: AWSサービスを使った解決策 全リクエストを突っ込むわけにはいかない 😢 1予測が約4円

Slide 47

Slide 47 text

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

Slide 48

Slide 48 text

section 05 まとめ

Slide 49

Slide 49 text

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

Slide 50

Slide 50 text

50 Copyright Machiiro Inc. All Rights Reserved. 私たちはフィットネス業界の新しいプラットフォームを構築していきます。 一人では決して達成できない大きな目標を成し遂げるために、心強い仲間を募集しています。 Join us! こんな仲間を募集しています ● 「私」ではなく「お客様」を主語に業務を捉えられる方 ● 現状維持ではなく、会社・自己の成長、カイゼン意欲のある方 ● プロ意識・責任感を持って仕事に取り組める方

Slide 51

Slide 51 text

Mission ご清聴、ありがとうございました