Upgrade to Pro — share decks privately, control downloads, hide ads and more …

データ×エンジニアリング×CSで実現するクレジットカードの不正対策

Avatar for 0x6b 0x6b
August 20, 2025
78

 データ×エンジニアリング×CSで実現するクレジットカードの不正対策

Avatar for 0x6b

0x6b

August 20, 2025
Tweet

Transcript

  1. 3

  2. 1. 資金移動業とは? — 銀行以外がお金の送金を行う事業 
 ◦ PayPay による個人間送金、LINE Pay による友達への送金、電子マネーから銀行口座への資金移動など


    2. 法的義務 (の一部)
 ◦ 資金決済に関する法律 (資金決済法 ): 資金移動業としての基本的義務
 ▪ 財務局への登録制
 ▪ 利用者保護のための資金分別管理
 ▪ 履行保証金の供託・分別管理の実施
 ▪ 送金限度額の設定
 ◦ 犯罪による収益の移転防止に関する法律 (犯収法): マネーロンダリング・テロ資金供与防止
 ▪ 本人確認義務・疑わしい取引の届出
 ▪ 取引記録の保存・内部管理体制の整備
 5 資金移動業とその法的義務

  3. 1. 行政当局からの要請・注意喚起 
 ◦ 金融庁・警察庁からの要請 : オンラインカジノに係る賭博事犯防止及び電子マネーを利用した特殊 詐欺被害防止のための対応について(要請) (2025 年

    5 月)
 ◦ 警察庁による注意喚起 : 賭博罪での摘発事例あり
 2. 実務上の課題 : 多数の取引からの検知困難性 
 ◦ 数百万件/月の決済取引
 ◦ 数十億円超/月の流通金額
 ◦ 月間平均800件程度のオンラインカジノ決済が発生
 ◦ 目視確認による全件チェックは事実上不可能
 7 オンラインカジノのリスクと課題

  4. 10 ユーザー
 オンラインカジノ
 決済システム
 CS
 カード利用
 決済要求
 決済拒否
 エラー通知
 ブロックルール


    評価
 定期的なブロックルール見 直し
 オンラインカジノ決済がブロックされるまでの大まかな流れ
 参考: B/43カード決済システムのしくみ (前編) - inSmartBank

  5. 1. データ基盤 
 ◦ MySQL: データを格納
 ◦ Redash: データ抽出・可視化ツール
 2.

    活用しているデータ 
 ◦ 取引データ : これまで蓄積された決済履歴
 ◦ 加盟店マスタ : 加盟店カテゴリ、店舗名などの基本情報
 11 データ: 既存データの活用
 MySQL/Redash を Snowflake/Lightdash へ移行中: 戦略と実行を爆速でつなぐデータ活用の現在地 - inSmartBank

  6. 決済だけでなくブロック機能も自社開発のため柔軟な制御が可能
 • オンラインカジノ決済ブロック機能の実装 
 ◦ 加盟店 ID・端末 ID・理由に基づいて決済をブロックするルールを実装
 ◦ 決済時にリアルタイムでブロックルールを評価


    • CS チームが管理画面で直接ルールを登録・無効化できる仕組みの提供 
 ◦ 専用管理画面
 ◦ ブックマークレット
 • Redashによるブロック候補の抽出 
 12 エンジニアリング: 決済ブロック機能の実装、管理画面・支援ツールの提供、ブロック候補の抽出

  7. 13 加盟店 ID・端末 ID・理由に基づいて決済をブロックするルールを Ruby on Rails におけるモデルとして実装
 class AuthorizationBlockRule

    < ApplicationRecord # ... enum :reason, { no_authorization: 1, # 無許可加盟店 other: 2, # その他の理由 credit_master: 3, # クレジットマスター攻撃(手動検知) credit_master_auto_detection: 4, # クレジットマスター攻撃(自動検知) fraud_authorization: 5, # 不正利用の疑い online_casino: 6 # オンラインカジノ ← 今回の対策 } # ... class << self def create_by_administrator!( administrator:, acquiring_id:, reason:, acceptor_id: nil, merchant_terminal_id: nil, memo: nil ) # ... end # ... end
  8. 14 決済時にリアルタイムでブロックルールを評価
 class Processing class Validators # ... # 指定されたパラメータに一致するAuthorizationBlockRuleの理由一覧をキャッシュして返す

    # 複数のvalidationメソッドで使用されるため、インスタンス変数でメモ化することでクエリ数を削減 # @return [Array<String>] マッチした認可ブロックルールの理由一覧 def matched_authorization_block_rules @matched_authorization_block_rules ||= AuthorizationBlockRule.matched_rules_for_all_reasons( acquiring_id:, # アクワイアラ(決済代行業者) acceptor_id:, # 加盟店 merchant_terminal_id: # 決済端末 ) end # ... end end
  9. 加盟店カテゴリ情報による機械的な判定が困難な境界は人による判断が必要
 1. データ抽出 : Redashから加盟店リスト取得
 2. スプレッドシート管理 : 判定記録を管理
 3.

    手動判定: 加盟店サイトを目視確認
 4. ブロックルール定義 : 管理画面でルール登録
 5. コンプライアンス連携 : 現業部門とは異なる間接管理部門にて適切性を確認
 16 CS: 人による判断、お客さま対応とフィードバックのプロセス

  10. 17 ブロック判定基準の例
 ブロック対象外 
 ブロック対象 
 国内公営ギャンブル : 競馬・競輪・パチンコなど
 海外オンラインカジノ

    : KKpoker.net、mystino など
 ギャンブル外商材 : 加盟店のカテゴリがギャンブ ル・賭博関連であったとしても非ギャンブル商品を 取り扱う場合もある
 高リスク加盟店 : CS スタッフがサイトを目視してリ スクが高いと判明した加盟店

  11. 2 2

  12. • AI家計簿アプリワンバンク
 • 株式会社スマートバンク
 • 資金決済に関する法律
 • 犯罪による収益の移転防止に関する法律施行規則
 • オンラインカジノに係る賭博事犯防止及び電子マネーを利用した特殊詐欺被害防止のための対応

    について(要請)
 • 警察庁オンラインカジノ注意喚起
 • ワンバンクカードはオンラインカジノなどのギャンブルサイトでご利用できません
 • 細かな技術を駆使して CS 業務を効率化する - inSmartBank
 23 参考資料