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
20190226_JP_StripesNagoya
Search
mori-hisayuki
February 26, 2019
Technology
0
62
20190226_JP_StripesNagoya
PayPayで話題になったCVCアタックに対してStripeでどう戦うか?
mori-hisayuki
February 26, 2019
Tweet
Share
More Decks by mori-hisayuki
See All by mori-hisayuki
Cloudflare Page を使った Webアプリケーションを構築
hisayuki
0
550
jawssonic2020_AWSサービスで_JAMStackの構築をしてみた.pdf
hisayuki
1
1k
20191219_JAWS_UG_NAGOYA
hisayuki
0
29
20190717_JAWS_UG_NAGOYA.pdf
hisayuki
0
59
20190423_JP_Stripes_kobe
hisayuki
0
40
Other Decks in Technology
See All in Technology
顧客との商談議事録をみんなで読んで顧客解像度を上げよう
shibayu36
0
270
FinTech SREのAWSサービス活用/Leveraging AWS Services in FinTech SRE
maaaato
0
130
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.6k
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
980
Claude_CodeでSEOを最適化する_AI_Ops_Community_Vol.2__マーケティングx_AIはここまで進化した.pdf
riku_423
2
600
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
250
日本の85%が使う公共SaaSは、どう育ったのか
taketakekaho
1
230
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
170
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
モダンUIでフルサーバーレスなAIエージェントをAmplifyとCDKでサクッとデプロイしよう
minorun365
4
220
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
180
AIエージェントに必要なのはデータではなく文脈だった/ai-agent-context-graph-mybest
jonnojun
0
160
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
62
50k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
380
The Art of Programming - Codeland 2020
erikaheidi
57
14k
Music & Morning Musume
bryan
47
7.1k
Collaborative Software Design: How to facilitate domain modelling decisions
baasie
0
140
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
38
2.7k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
590
WCS-LA-2024
lcolladotor
0
450
Building AI with AI
inesmontani
PRO
1
700
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
Transcript
PayPayで話題になったCVCアタックに対してStripe でどう戦うか? 森 久由生 #JP_Stripes
自己紹介
Introduction Name : Hisayuki Mori Company : Cloud9 Holdings Inc.
Post : CTO Community : JP-Stripes, JAWS-UG 名古屋 Facebook : 森 久由生 Twitter : @hisayuki_mori Blog : https://hisa-tech.site
弊社初のWebサービス
Jupiter • 電話占いサービス • 3/6展開予定 • クレジットカード登録にElements • ポイント購入にStripeCharge リリース延期確定w
Stripeさんとの戦闘はまだ続く・・・
いろいろ使ってます
2/22
初JP_Stripes Tokyo 参加!
そして・・・
岡本さん ✨ご結婚おめでとうございます✨
Developers.IO Cafe
None
本日のセッション
アジェンダ • 今回起きた問題 • Stripeではどうする? • StripeRadar • カード登録のみは弾けるのか? •
やりたかったこと • まとめ • お楽しみ
ブログ見た方は すこし退屈かもしれないです
今回起きた問題
PayPayで起きた問題① 今回PayPayで起きた問題はクレジットカード情報漏 洩といわれてるが・・・ 実際はCVC入力失敗の制限を掛けていなかったた め、CVCの総当たりが出来るようになっていた。 ⇛漏れたというより仕組みを利用されたに近い
PayPayで起きた問題② 利用されただけなので、クレジットカードがPayPayに 登録していたかどうかはあまり問題ではない 登録されていないクレジットカードでも、番号を保持し ていてCVCがわからないカードはCVC総当たりで突 破されてしまう。
Stripeではどうする?
Stripeの仕組み Elements経由でクレジットカードを登録した場合 Elements Customer Card(defult) 最初にはCustomerが作成されて、Customerのデフォル トカードとしてのCardが作成される。 token Stripe Front
End
Stripe StripeChargeの仕組み① Elementsでカード情報を送りつつ、そのまま支払をする 場合 Elements Charge Elementsから送らてたToken情報をそのままChargeに 突っ込みます。 この方法ではCustomerもCardも作られませんが、カード 情報も登録されませんので都度入力。
Front End token
StripeChargeの仕組み② Elementsでカード情報を登録。 その後、アプリ側にあるCustomerIDでCharge ChargeAPI Charge 既にElementsなどで登録済みの場合Customerができている ので、APIでCustomerIDをPostすることでCustomerのデフォ ルトカードで決裁出来る。 CustomerID Stripe
Front End
Attention StripeChargeには2パターンある これ大事なところです
StripeRadar
StripeRadarとは? • ルールを設定することで、怪しい決済を防げる • 複数のルールを設定可能 – Allowd(許可ルール) – Block(防止ルール) –
Place in revies(最後に通るルール) • 永久ブロックはリストに追加
StripeRadarルール設定
StripeRadarでのルールサンプル • Block if: CVC verification fails – 入力ミスされたらブロック •
Block if :blocks_per_card_number_daily: > 10 – 24時間以内に同じcardで10回以上カード番号を間違 えた場合は支払いブロック • Block if :charge_attempts_per_customer_hour > 5 – 1時間以内に同じcustomerで5回以上の支払試行が された場合はブロック
永久ブロック • Radarのルールが弾くのは都度のトランザクションの みで、永久ブロックしてるわけではない。 • ただし弾いた記録は残るので、明らかにおかしいもの は手動でRadarのリストに追加することで永久ブロッ クが出来る
Attention StripeRadarのルールは決済がトリガーになる なので、決済を弾くことは出来ます。
カード登録のみは弾けるのか?
もう気づいてる人もいるかもしれない
Attention カード登録のみは決済を通らない
Stripeの仕組み • Elementsから直接決済をせずカード登録のみにした 場合、CustomerとデフォルトCardの作成しかしな い。 ⇛Radarのルール発動条件を満たさない。
間違ったカード登録時の動作①
間違ったカード登録時の動作② • JSONでExceptionが返ってくる • Stripe側には402エラーとしてのログが残る • そもそもカード情報が間違ってるので、Customerも Cardも作られない Stripe側には”あなたのカードのセキュリティコードは正 しくありません。”という記録のみ残って終了
やりたかったこと
PayPayで起きた問題の対策 課題: CVC入力失敗の制限を掛けていなかったため、CVCの 総当たりが出来るようになっていた。 対策: 決済はもちろん防がないとだが、そもそもカード登録の総 当たりが出来ないように失敗回数上限などを設けたい
つまり・・・
Attention StripeだけではCVCアタックを 完全に防ぐことは出来ない
まとめ
まとめ • "支払い”(Chargeなど)はStripeのみで防げる • カード情報入力から決済までを1トランザクションにす ればRadarで引っ掛けて、永久ブロックも可能 • カード登録と決済が別トランザクションだと、CVCア タック対策はStripe単体では難しいアプリで作り込み が必要
しかし・・・
じつは・・・
ここからは裏動作 • StripeRadarのルール部分は起動しないが、機械学 習ツールは動いている。 • 最大限有効にするならすべてのページにStripe.jsを 読み込むタグを入れる ◦ SPAであればTOPページの1箇所に入れればOK ◦
Stripe.jsが入っているページの動線チェック等を行ってい て、明らかに怪しい動作をしている場合はカード登録前に 弾いている • 100%ではないが、それによりCVCアタックはかなり 防げるとのこと。
ここからは裏動作 ここに書いてあることはそういうことらしい
本当のまとめ • "支払い”(Chargeなど)はStripeのみで防げる • カード情報入力から決済までを1トランザクションにす ればRadarで引っ掛けて、永久ブロックも可能 • カード登録と決済が別トランザクションだと、CVCア タック対策はStripe単体では難しいアプリで作り込み が必要
• new すべてのページにStripe.jsを読み込ませてお けば、Radarの機械学習ツールで怪しい動作を検知 して、カード登録以前で弾くことが出来る
Radarはルールとリストだけではないのだ
お知らせ
None
JP_Stripes Connect 2019 !! JP_Stripes初の全国イベント!! 2019/03/21(木) 13:00〜 エムオーテックス新大阪ビルにて
LT応募しました!! 今も続いてるStripe様との戦いについて 簡易版を話そうと思います♪
まだまだ応募すくない!! 皆様奮ってご参加ください
None
ご清聴ありがとうございました