Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
AWSにおける標的型Bot対策
Search
hacomono Inc.
PRO
December 26, 2022
Programming
2.5k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
AWSにおける標的型Bot対策
hacomono Inc.
PRO
December 26, 2022
More Decks by hacomono Inc.
See All by hacomono Inc.
開発者の認知負荷軽減を目指して選んだCrossplane - Self-serviceの理想と現実
hacomono
PRO
0
220
クラウドネイティブ DB はいかにして制約を 克服したか? 〜進化歴史から紐解く、スケーラブルアーキテクチャ設計指針〜
hacomono
PRO
6
1.5k
AI ネイティブな開発プロセスを目指して ~田中のローカルmac編~
hacomono
PRO
1
79
新規事業×QAの挑戦:不確実性を乗りこなす!フェーズごとに求められるQAの役割変革
hacomono
PRO
0
490
テストプロセスにおけるAI活用 :人間とAIの共存
hacomono
PRO
0
450
作ったのに使われなかったを繰り返さないために。
hacomono
PRO
0
360
NewSQL_ ストレージ分離と分散合意を用いたスケーラブルアーキテクチャ
hacomono
PRO
4
540
インプロセスQA、テスト自動化にどう向き合う?挑戦の道のり
hacomono
PRO
0
110
ウェルネス SaaS × AI、1,000万ユーザーを支える 業界特化 AI プロダクト開発への道のり
hacomono
PRO
0
2.2k
Other Decks in Programming
See All in Programming
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.9k
メソッドのジェネリクスでGoの夢は広がるか? / Kyoto.go #65
utgwkk
3
750
Composerを使ったサプライチェーン攻撃の様子を眺めてみる #phpstudy
o0h
PRO
2
250
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
4.2k
AIとASP.NET Coreで雑Webアプリを作った話
mayuki
0
600
3Dシーンの圧縮
fadis
1
770
Even G2とAWSで推しのエージェントを召喚しよう!
har1101
1
100
JavaDoc 再入門
nagise
1
340
気圧・高度・GPSを記録&可視化するアプリ「Koudo」を作った話
hjmkth
1
230
Claspは野良GASの夢をみるか
takter00
0
190
正しくソフトウェアを作る、前提を疑うための認知の視点 / doubt-premise
minodriven
21
6.6k
ローカルLLMを使ってB2Bサービスを作っていての学び
yaotti
0
170
Featured
See All Featured
The untapped power of vector embeddings
frankvandijk
2
1.8k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
30k
For a Future-Friendly Web
brad_frost
183
10k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
330
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
310
Tell your own story through comics
letsgokoyo
1
950
Git: the NoSQL Database
bkeepers
PRO
432
67k
職位にかかわらず全員がリーダーシップを発揮するチーム作り / Building a team where everyone can demonstrate leadership regardless of position
madoxten
62
54k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
エンジニアに許された特別な時間の終わり
watany
107
250k
Side Projects
sachag
455
43k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
Transcript
AWSにおける標的型Bot対策
PRESENTATION AGENDA 01 私とhacomonoについて 02 弊社サービスの特性 03 課題 04 AWSサービスを使った解決策
section 01 私とhacomonoについて
4 section 01: 私とhacomonoについて 株式会社 hacomono 大西 時雨 / Shigure
Onishi SREチーム マネージャー 香川県の離島からフルリモートで勤務 2021年8月にhacomonoに入社 好きなAWSのサービスはS3
5 5 代 表: 蓮田 健一 設 立: 2013年7月 (現在10期目) 住 所: 東京都渋谷区神宮前 2丁目34番17号 住友不動産原宿ビル 5F メンバー:
120名 フィットネスクラブなど、月謝制店舗向け会員管理・予約・決済システム hacomono開発・販売 株式会社hacomono
section 02 弊社サービスの特性
7 section 02: 弊社サービスの特性 フィットネスクラブの レッスン予約は熱い オンライン化する前は 店舗に行列ができるような状態 我々は慣習をオンラインに持っていった
8 section 02: 弊社サービスの特性 場所指定システム
9 section 02: 弊社サービスの特性 スケジュール公開
10 section 02: 弊社サービスの特性 スケジュール公開
11 section 02: 弊社サービスの特性 スケジュール公開 AutoScalingも中々追いつかない 事前に顧客から公開時間を聞いて強化スケジュールセット (Aurora Serverless v2、Lambdaによるサーバレス化も検証中
)
12 section 02: 弊社サービスの特性 あまりにもアクセスが増え過ぎではないか? 1分でそんなに増えるものか? 予約完了が開始3秒以内に終わってる? 同じ人が同じ場所で毎回予約いるんだけど?と問い合わせくる
13 section 02: 弊社サービスの特性 もしやBot . . . ? 🤔
14 section 02: 弊社サービスの特性 顧客からも調査依頼がくる ログをとりあえず目視で見る
15 section 02: 弊社サービスの特性 目視結果 1. UAが「python-requests/x.xx.x」 2. 1分間隔で1日中アクセスしてくるIP 3.
予約確認画面を通らずに予約完了 4. 公開時間ぴったりにアクセスして3秒で予約完了
16 section 02: 弊社サービスの特性 行動ログの可視化 (QuickSight) ユーザーがどのようなページ遷移をして予約に至ったか? 1日に何回アクセスがあったか?など
17 section 02: 弊社サービスの特性 Botが販売されていることを知る
18 section 02: 弊社サービスの特性 自分が会員側であまりにも予約が取れないなら自分用に作る、、、かも 完全にそれを否定することは心情的にも難しい 最終的に判断するのは我々ではなく、我々の顧客 (企業様の規約の話) 便利になる世の中は素晴らしいことではある だが、ITリテラシーによって優劣が大きく変わってしまうのは考えもの
対策しなければ、サービス解約されるかもしれないので頑張る Botって本当にダメなのか?
section 03 課題
20 section 03: 課題 1. IP制限 ツールを購入・作成して自宅で実行している人を一掃 インフラ系の知識がなければ突破できない 2. UAによるブロック
販売されたものをそのまま使っている人を一掃 プログラムの修正知識などがなければ対応不能 簡単なところから対策
21 section 03: 課題 全然収まらない . . . 😢
22 section 03: 課題 1. AWS WAFによるIPベースのRate limit 短時間で大量にアクセスしてくるユーザーをブロック ホスティング型の予約
Botをブロック 2. AWS WAF Bot Control 一般的なBotはブロックされるようになった 3. URLを連番からランダム文字列 URLの予測を不可能に ちょっと構成変更
23 section 03: 課題 まだすり抜ける . . . 😢
section 04 AWSサービスを使った解決策
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 section 04: AWSサービスを使った解決策 Bot対策をしてもBot側に対策を打たれて突破される 基本的に対策されたもの検知してから対策を打つので後手に回る 機械学習ならBotの振る舞いから検出モデルを作れば ある程度先回りできるのではないか? いたちごっこから開放されたい
27 section 04: AWSサービスを使った解決策 我々のビジネスの場合、Botをブロックするのが本当の目的ではない。 機械学習を作り込んだところで予測は所詮予測である。 ブロックするのではなく、マーキングすることをゴールとする 1. 最終的にはログを目視判断する 2.
相手はジムに現れるし個人情報も握ってる 偽陽性がたくさん出るぐらいで良い 要求と要件を整理
AWS WAF Bot Control for Targeted Bots
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 section 04: AWSサービスを使った解決策 AWS WAF Bot Control for Targeted
Bots
31 section 04: AWSサービスを使った解決策 疑わしい行動をするとこんな状態になる
32 section 04: AWSサービスを使った解決策 疑わしい行動をするとこんな状態になる
Amazon Fraud Detector
34 section 04: AWSサービスを使った解決策 1. 疑わしいオンライン決済の特定 2. 新規アカウント不正の検出 3. トライアルプログラムやロイヤリティプログラムの不正使用の防止
4. アカウント乗っ取り検出の改善 Amazon Fraud Detectorのユースケース
35 section 04: AWSサービスを使った解決策 1. オンライン不正インサイト 過去データが存在しないものに有効 (大量のアカウント不正発行 ) 2.
トランザクション不正インサイト 過去データが存在するものに有効 (クレカの決済など) 3. アカウント乗っ取りインサイト 過去データが存在するものに有効 (ログインの時間帯、ログイン場所など ) 4. SageMakerのインポート Amazon Fraud Detectorの不正検出モデル
36 section 04: AWSサービスを使った解決策 CSVのEVENT_LABELに不正フラグを立てて、Fraud Detectorに食わせるだけ データセットについて
37 section 04: AWSサービスを使った解決策 これだけでそれっぽい結果が返ってくる 学習結果について
38 section 04: AWSサービスを使った解決策 1. 学習データと同じ型の要素データをFraud Detectorに送る 2. 送ったデータの不正度が点数で返ってくる 3.
開発者が不正かどうかを判断する —------------------------------------- if (700点 < score) { # ブロックする処理 } 不正かどうかの判断基準
39 section 04: AWSサービスを使った解決策 このモデルは「billing_state」の項目がスコアに大幅に影響を与えている どの要素が影響を与えているか
40 section 04: AWSサービスを使った解決策 Amazon Fraud Detector
41 section 04: AWSサービスを使った解決策 レスポンス比較 (資料探せなかった) Fraud Detector Targeted Bots
200ms ~ 250ms? 50ms以下?
42 section 04: AWSサービスを使った解決策 カスタマイズ比較 Fraud Detector Targeted Bots モデル構築から
検出時の挙動は自前 ブラックボックス 検出時の挙動は他の AWS WAFと同じ
43 section 04: AWSサービスを使った解決策 運用比較 Fraud Detector Targeted Bots モデルを自分で運用・調整
おまかせ
44 section 04: AWSサービスを使った解決策 精度比較 Fraud Detector Targeted Bots 開発者による
一定水準の精度
45 section 04: AWSサービスを使った解決策 コスト比較 Fraud Detector Targeted Bots 0.03
USD/予測 10.00USD/検査するリクエスト100万件
46 section 04: AWSサービスを使った解決策 全リクエストを突っ込むわけにはいかない 😢 1予測が約4円
47 section 04: AWSサービスを使った解決策 両方利用するのが現実的 1. Targeted Botsで手前である程度落とす 2. 予約完了リクエスト時のみFraud
Detectorで評価 作戦変更
section 05 まとめ
49 section 05: まとめ 弊社の場合、要求と要件がそこまで厳しくないため素人の自分でもここまでできた。 Fraud Detectorは1日触っただけで今日ぐらいの資料が作れるぐらいに簡単。 大変なのはデータセットをクレンジングなり評価する仕組みの方である。 機械学習素人でもそれっぽいことでき〼
50 Copyright Machiiro Inc. All Rights Reserved. 私たちはフィットネス業界の新しいプラットフォームを構築していきます。 一人では決して達成できない大きな目標を成し遂げるために、心強い仲間を募集しています。 Join
us! こんな仲間を募集しています • 「私」ではなく「お客様」を主語に業務を捉えられる方 • 現状維持ではなく、会社・自己の成長、カイゼン意欲のある方 • プロ意識・責任感を持って仕事に取り組める方
Mission ご清聴、ありがとうございました