$30 off During Our Annual Pro Sale. View Details »

AWSにおける標的型Bot対策

 AWSにおける標的型Bot対策

hacomono Inc.

December 26, 2022
Tweet

More Decks by hacomono Inc.

Other Decks in Programming

Transcript

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

    View Slide

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

    View Slide

  3. section
    01 私とhacomonoについて

    View Slide

  4. 4
    section 01: 私とhacomonoについて
    株式会社 hacomono

    大西 時雨 / Shigure Onishi
    SREチーム マネージャー

    香川県の離島からフルリモートで勤務
    2021年8月にhacomonoに入社
    好きなAWSのサービスはS3

    View Slide

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

    View Slide

  6. section
    02 弊社サービスの特性

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  19. section
    03 課題

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  28. AWS WAF Bot Control for Targeted Bots

    View Slide

  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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  33. Amazon Fraud Detector

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  48. section
    05 まとめ

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide