Lock in $30 Savings on PRO—Offer Ends Soon! ⏳
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
61
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
540
jawssonic2020_AWSサービスで_JAMStackの構築をしてみた.pdf
hisayuki
1
1k
20191219_JAWS_UG_NAGOYA
hisayuki
0
27
20190717_JAWS_UG_NAGOYA.pdf
hisayuki
0
57
20190423_JP_Stripes_kobe
hisayuki
0
40
Other Decks in Technology
See All in Technology
OCI Oracle Database Services新機能アップデート(2025/09-2025/11)
oracle4engineer
PRO
1
210
マイクロサービスへの5年間 ぶっちゃけ何をしてどうなったか
joker1007
17
6.7k
会社紹介資料 / Sansan Company Profile
sansan33
PRO
11
390k
プロンプトやエージェントを自動的に作る方法
shibuiwilliam
13
13k
多様なデジタルアイデンティティを攻撃からどうやって守るのか / 20251212
ayokura
0
490
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
220
AI時代の新規LLMプロダクト開発: Findy Insightsを3ヶ月で立ち上げた舞台裏と振り返り
dakuon
0
230
CARTAのAI CoE が挑む「事業を進化させる AI エンジニアリング」 / carta ai coe evolution business ai engineering
carta_engineering
0
2k
[デモです] NotebookLM で作ったスライドの例
kongmingstrap
0
160
re:Invent 2025 ~何をする者であり、どこへいくのか~
tetutetu214
0
230
学習データって増やせばいいんですか?
ftakahashi
2
510
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
140
Featured
See All Featured
Imperfection Machines: The Place of Print at Facebook
scottboms
269
13k
How STYLIGHT went responsive
nonsquared
100
6k
Discover your Explorer Soul
emna__ayadi
2
1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
Design of three-dimensional binary manipulators for pick-and-place task avoiding obstacles (IECON2024)
konakalab
0
310
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
140
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
48
9.8k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Chasing Engaging Ingredients in Design
codingconduct
0
74
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
0
840
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
286
14k
Building a Scalable Design System with Sketch
lauravandoore
463
34k
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
ご清聴ありがとうございました