ZOZOTOWNの不正対策への取り組み

不正対策

こんにちは、基幹システム部サポートチームの西山です。

私の所属するサポートチームでは、主にZOZOTOWNの注文の返品・返金のシステムや、カスタマーサポートの使用するバックオフィスシステムの開発に従事しております。

今回はECサイトの不正対策として、ZOZOではどういった観点で対策をしているのか、不正検知までどういったフローを踏んでいるのか、一部だけですがご紹介できればと思います。

はじめに

一般的なECサイトの不正利用ってこういうものがよく言われていますよね。

  • なりすましによるクレジットカード不正
  • 集合住宅の空室やレンタルオフィスでの不正な受け取り
  • 海外転送サービスの利用

その中でも、なりすましによるクレジットカード不正に関しては、特に不正の代表的な事例だと思います。

ZOZOTOWNも例外ではなくて、当然対策をしないといけません。

どのような対策をすれば良い?

ほとんどのECサイトではクレジットカード決済時に、セキュリティコードの導入による対策をとられているのではないでしょうか。

セキュリティコードとは、クレジットカードの裏面に記載されている3~4桁の番号のことを言い、クレジットカード番号とは別の数字ですので、カード所有者にしかわからない情報です。

ECサイトでの決済時に、このセキュリティコードも入力してもらうことで、クレジットカード情報をスキミングなどで取得されたとしても、不正利用をしにくくする対策です。

このような対策を決済時に行うのはもちろんですが、うまく決済をすり抜けて発送までされてしまうケースがあります。

クレジットカードの不正利用をされたお客様は、見覚えのない請求があるということでクレジットカード会社へ返金を求めます。

クレジットカード会社より、ECサイト側にチャージバック請求がくるので、大量に不正注文が発生してしまうとECサイト側は大きな損失を負ってしまうことになります。

チャージバックとは、クレジットカード利用者が不正利用などの理由により利用代金の決済に同意しない場合に、クレジットカード会社が加盟店に対して支払いを拒絶することを言います。

フロー1

このような損失を防ぐには、決済時の対策に加えて受注後の注文に対しても不正を検知することで、うまく決済をすり抜けてきた不正注文をあぶり出し、未然にチャージバックを防止する必要があります。

どうやって検知するの?

ZOZOTOWNでも様々な不正の対策はしていますが、そのうちの1つとして独自の不正検知システムを利用しており、受けた注文の不正度合いを判定し、発送される前に対策を打つという使い方をしています。

不正度合いを判定する上で、こんな観点で見るといいよねというところを少し挙げてみます。

普通のお客様に迷惑をかけない

これは一番大事なことかもしれません。

雑な条件で、一般のお客様の注文まで不正判定してしまうと、無駄に正常なお客様への確認や配送停止処理が発生してしまい、一般のお客様のショッピングを邪魔してしまうことになってしまいます。

逆に条件を絞りすぎた判定にしてしまうと、その条件に該当する不正だけは防げますが、本来防ぎたかった不正注文を広く防げなくなるため、バランスの見極めが非常に難しい部分でもあります。

不正ユーザーの気持ちになってみる

不正注文したことないのでどんな気持ちか実際はわかりませんが・・

不正ユーザーはどういう商品をほしがるのか、どういう風にクレジットカード情報を入手するかなどを考えてみます。

イメージした不正手法をもとに、「ではそういう不正を防止するには、どういう判定条件や機能があればいいか」ということを考え、判定条件の土台を作ります。

顧客情報から推測する

過去の不正注文から、氏名、年齢、住所、電話番号などの顧客情報から不正ユーザーの法則を探し出したりもします。

注文特性から推測

注文金額、注文頻度、注文商品、配送先などの特性を掛け合わせて不正度合いを見極めます。

アクセスログから推察する

不正利用ユーザーがグループ犯罪であるケースもありえます。

最新の不正情報の傾向を把握する

不正対策の方向性を検討するのにセキュリティ系のサイトを参考にしています。

また、カスタマーサービス部門からも情報を吸い上げつつ、ZOZOTOWNならではな不正判定の視点での判定ロジックも組んでいたりします。

条件の作成までの過程

カスタマーサポート(CS)から不正判定の相談が来ます。

そこで、CS担当者とコミュニケーションをとりながら条件を決めていきます。

何かのサービスが始まるタイミングだったり、日々の運用の中で追加したい条件が発生したタイミングなどで都度相談が来る感じですね。

私が不正判定の条件作成時に気を付けていることとしては、こんなところでしょうか。

  • 提示された条件で作成した判定処理のパフォーマンス
  • 裏側のデータを知っているからこそ見える不正判定の切り口がないか
  • 対象件数が数百件出るような場合は条件を疑う(誤検知を疑う)
  • すでに設定されている判定条件に似たようなものがないか

このようにパフォーマンス対策や、過剰検知にならないように担当者と調整して作成された条件を不正検知システムに仕込んでいくわけなのですが、以下のようなフローをたどって検知されていきます。

フロー2

検知された注文は、不正検知システム上で管理されます。

CSによる確認を行いますが、一発で不正と判断できるものは当然、キャンセルという流れになっていきます。

一次判定では判別つかないものは保留になり、その後の判定で発送orキャンセルというフローです。

  • 不正判断されたユーザー:不正確定、キャンセル対象
  • 通常判定ユーザー:商品発送へ
  • 不正の疑いがあると判断されたユーザー:怪しいけどセーフライン、確認のため保留

日々運用はアップデートしていきますが、基本的にはこういったフローが一般的なものです。

どれくらい効果があるの?

今年度の不正件数は昨年に比べて二倍強くらい増えてはいるのですが、その分防止もできていて、不正件数の精度としては年々向上しています。

精度の向上の裏には、エンジニアだけではなくZOZOTOWNの分析チームの協力もあり、より専門的で高度な観点から条件を作成できてきているという背景もあります。

課題もあります

毎年の検知件数はどんどん増えていますが、その中には実際は通常の購入であったのに検知された、誤検知もあります。

やはり、そういった誤検知によってお客様に対して不快な思いをさせてしまうこともあり、そこはZOZOTOWNに対して悪い印象を持たれてしまうことにもなってしまうためケアしていきたい部分です。

お客様だけでなく、CSの心理的負担や作業負荷にも繋がってしまうため、しっかり改善をしていかないとダメですね。

課題解決にむけて

現在は、より専門的な視点が必要と判断し分析チームに協力してもらっています。

そのおかげで、2020年度の不正防止率は向上し、だいぶ成果が出ている状況です。

さらに今後の取り組みとして、より高度な精度を求めるために、機械学習を用いて不正の疑いをスコアリングし、不正の疑いが高い注文に対して自動検知していくといった新しい検知方法の取り組みを進めています。

これが実現すると、不正検知の精度が向上して誤検知を防ぎ、お客様に気持ちの良いショッピングを楽しんでもらえます。

また、CSの負担軽減にも繋がっていきますね。

おわりに

ZOZOTOWNのプロダクトで導入されている不正対策ということで、あまり詳しい情報まで提供はできないのですが、ZOZOTOWNとしての不正対策の観点や基本となる検知フローなどおわかりいただけたでしょうか?

少しでも参考になることがあればうれしいです。

このように、私たちサポートチームでは日々現場の業務改善、生産性UPを目標に取り組んでおります。ZOZOTOWNならではのスピード感があるので、相談を受けてから決まるまでが早いです。

また、いかに早く判定を開始できるかも重要なので、判定パターンのアップデートが容易にできるような作りにしています。どの部署も協力的なマインドを持っているからこそ実現できていると感じています。

ZOZOテクノロジーズでは、今回紹介したような裏側の仕組み作りや、運営する様々なサービスを一緒に作り上げていける方を募集しています。ご興味のある方は、以下のリンクからぜひご応募ください。

tech.zozo.com

カテゴリー