ZOZOを支える基盤技術」が開催されました。2社で活躍するエンジニアたちが、その舞台裏を明かします。寺西一平DMM.comDMMの不正対策システムと運用サイクル寺西一平氏:はじめに、自己紹介ですが私はプラットフォーム事業本部の運営部不正対策チームでプロダクトオーナーを担当させていただいております、寺西一平と申します。2012年に入社してからDMMのWebアプリケーションの脆弱性診断、2015年から会員基盤のセキュリティ強化、2017年から現在まで不正対策を担当させて頂いています。本日ですが3点あります。1つ目に「不正とは?」ということで、不正と言ってもかなりスコープの広い話なので、不正についての説明をした後に、「不正に対してどのように対策をしているのか」最後に「伝えたいこと」をお話しします。「不正とは?」ということで、こちらはDMMの中の機能でも不正ユーザ、不正を企む方に狙われやすいものを3点挙げています。ログイン、クレジットカード登録、購入です。それぞれ見ていきますと、ログイン機能で考慮すべき不正は、アカウントの乗っ取りで、ニュースでもよく話題になっていると思います。手法としてはアカウントリストアタックが最近すごく多いと感じています。古典的なものとしては、ブルートフォースや、その派生形のリバースブルートフォースという方法。この2つがメインというか有名どころかと思います。次に、クレジットカード登録。こちらは有効性確認というピンとこない方も多いワードかと思いますが、ECサイトでクレジットカードを登録するとき、情報入力の際に間違えるとエラーが出ると思います。その機能を使って、ダークウェブ上でやり取りされているクレジットカード情報を不正に、もしくは、クレジットマスターで割り出した番号を試しに入力してみる。入力した結果、登録できたらその情報は使える。いった実際に使えるクレジットカード情報を探すものになります。最後に購入で、こちらが今回お話するテーマの部分です。DMMでは不正な購入を大きく2つに分類しており、1つがDMMのアカウントを乗っ取って、乗っ取ったアカウントのクレジットカードや決済手段を使うというもの。2つめに、有効性確認等の手法を用いて得たクレジットカード情報を使ってDMMで買い物をするものです。DMMでは、実際どういう状況なのかをお伝えしますと、アカウントの乗っ取りがかなり多い状態で、70パーセントがアカウントの乗っ取りでした。今日はそのアカウントの乗っ取り対策についてフォーカスしていきます。2つ目のどのような不正対策をやっているのかという話ですが、今日は実は良いタイミングでして、不正購入対策は以前からやっているのですが、つい最近かなり成果というか数値に現れてきたので、今日はその数値をお見せします。どのくらい効果が出たのかと言いますと、不正のアカウントの乗っ取りは全体の70パーセントのうち、50パーセント以上を防止できています。そこで、この50パーセントをどうやって下げたかについてお伝えします。不正対策でお悩みの方がいたら今日お持ち帰りいただいてご活用いただければと思います。不正対策システムと運用シンプルにまとめますと2点です。1つは「不正を検出できる条件を見るけること」、2つ目が「その状態を維持すること」。すごくシンプルになっていますが、すごく大変でした。1つずつ見ていこうと思います。はじめにお伝えするのは失敗したパターンです。最初にトライして失敗したものです。何をしたかと言いますと、「アカウントの乗っ取り」なので、当然過去との購入時のIPやブラウザの情報が変化するだろうということで、それらの情報が違ったら不正と判断します。図の見方からですが、右側にある青い大きな枠がDMMの全購入だと思ってください。赤いのが不正対策チームのシステムが不正と判断した購買です。紫と赤が重なれば重なるほど良いというものです。それで数値を見てみると、検出率は結構よくて、最大で20パーセントぐらい取れていました。赤丸がどれだけ紫に重なっているかというと、最大でも2パーセントで、ここが問題でした。なってしまったのか、紫に当たってないほうの赤の内容を見たところ、いくつか原因が分かりましてありまして、1つはネットカフェからのアクセス、2つ目にさまざまなWi-Fiスポットからのアクセスです。今日もおそらくこの会場のWi-Fiを使われていると思います。このWi-Fiから購入すれば、いつもと違う環境という風に見えてしまいます。他にはVPNの利用も意外と多いです。これは、一部のセキュリティ製品やブラウザのアドオンを使っていると国外が終端となるVPN経由でのアクセスとなるケースがあり、「あれ、何でこのお客様は、急にアメリカからアクセスしたんだろう?」と、そういった状況になります。普段、不正対策チームは不正ユーザばかり見ていて、正規のユーザを見ていない事に気付かされました。次にこちらが現在動いてるシステムです。これは円が重なってきているんですが、まだまだ改善の余地はあるので、これの改善はどんどん進めていきます。何をしたかと言いますと、2段階のチェックに切り替えています。はじめに、確実に本人操作だと言える特長を捉えて、その購買を検出します。次に、不正ユーザというのはアクセスに特長がありますので、「その特徴を含む購買というものを検出して、不正と判断しよう」としました。分かりやすい例を挙げると「日本語のページに台湾のIPからロシア語でアクセスする」って明らかにおかしいですよね。いった特徴を探していきました。その結果、数値として見ると検出率は50〜60パーセントに改善、半分以上の不正を検出でき、10倍ほど改善しました。正当判定率はまだ改善の余地がありますが、数値的には26倍の改善ということで、最大で13パーセントほど正しい判定が出来るようにになりました。続いて「その状態を維持すること」ということで、どちらかというとパッと見はBのほうが簡単そうに見えますが、Bのほうが大変です。いうと、不正対策は不正ユーザに嫌がらせをしているようなものなんです。DMMが対策を行うと、向こうも対策をします。いたちごっこになってしまうので、向こうよりも早く有利に進める必要があるという課題がありました。そこで何をしたかというと、このようなサイクルで回しました。不正ユーザを検出できるルールというか、先ほどの台湾でロシア語みたいな......そういったルールをどんどん作って緑色のところに入って実際に試験投入します。試験投入したらどのような状況になるかと言うと、実際に購買は止めませんが、引っかかったという情報を蓄積していきます。それを評価して、「このルールは不正だけ止めている」となると、本番環境に適用します。いったサイクルを回しています。実際、不正対策チームのメンバーが回しているところもありますが、この他にも、実際に不正被害にあわれたお客様には当然返金をしておりますので、返金業務をされている方々にもこのルールを作っていただきまして、チームとしては違うチームではありますが、お客様を守るために横断的にやらせていただいて、違和感のある購入の情報をどんどんピックアップしています。毎週ミーティングで話をしていますが、そこから気になる特徴などをピックアップしてルール化していく作業を行い、だいたい半年で360パターンほど追加して、最終的には50パーセント削減を達成しました。いうことで、継続することが非常に大事だなと改めて感じました。最後に伝えたいことです。これは不正対策以外にも言えることかもしれませんが、現状把握と横連携はすごく大事だと思ってます。不正対策特有のところで言いますと、不正被害状況を継続的にモニタリングすることが非常に大事かと思ってます。それに加えて、不正をちゃんとラベリングしていきましょう。今お伝えしたアカウントの乗っ取り対策は、過去との行動の差で見ることができますが、不正クレジットカードの利用について、過去との一致は一切ありません。そのため、対策も変わってくるので、自分の会社がどちらの被害を受けているのかを把握しなければ有効な対策を打つことができません。セキュリティ関連の業務をやられてる方はすごく身に染みるのではないかと思いますが、どれだけポイントポイントで守りを高めていっても、不正ユーザはよく見ていますので1番守りの弱いところを確実に狙っていきます。自チームでオーナーシップを持って動かしていくことは当然大事なんですが、それ以外にも関連している各部署やカスタマーサポートなど、同じプラットフォームの中でも会員基盤や決済基盤、各事業の方々との連携は非常に重要になってきます。ビジネスモデルや商材によって不正リスクがかなり変わってきますし、不正対策だけでなく、ビジネスのやり方、お客様へのデリバリーの仕方を少し変えてもらうだけでも、不正が100あるものが10になるのはよくある話です。いったところで協力をお願いして連携してしていくことは大切です。最後に、私自身痛感してることですが、不正対策自体は1社ではなかなか難しいという状況は正直あります。情報をどんどんシェアしていかなければなかなか対抗できない状況です。よければ不正でお悩みの方や実際に担当だという方、可能な範囲で意見交換や連携をさせていただければと思っております。私からは以上になります。ありがとうございました。合同勉強会に関する記事をまとめています。合同勉強会に関する新着記事が公開された際に、通知を受け取ることができます。