7payクレジットカード不正利用:第三者乗っ取りがあり得る致命的な2つの弱点
セブンイレブンのスマホ決済「7pay」で、クレジットカード不正利用事件が起きています。まだ原因はハッキリしませんが、仕様に大きな弱点があることがわかりました。
メールアドレス・生年月日・電話番号がわかれば、第三者が7payのセブンイレブンアプリのパスワードを変更できることが判明したのです。
さらにSMS認証など2つ目の認証がないため、第三者が乗っ取ることも可能になります。
7payクレジットカード不正利用が7月3日から発生
7月3日早朝から、セブンイレブンの7payでクレジットカード不正利用の被害が出ています。Twitterで複数の人が報告しているもので、3日午前中にはセブンイレブンも注意喚起を出しました。
クレジットカードからのチャージは止めていますが、決済機能自体は生きています。現時点では原因は発表されていません。
パスワードリスト攻撃(流出しているパスワードのリストで攻撃するもの)とも思われましたが、Twitterでの被害報告では「パスワードは使い回さず独自のものにしていた」という人もいるため、別の原因も考えられそうです。
ここで1つの穴が発見されました。それは7payのアプリ(セブンイレブンアプリ)は「メールアドレス・生年月日・電話番号」がわかると、パスワードリセットができ、かつ別の端末から第三者が乗っ取ることができるという穴です。
パスワードリセットに弱点がある
これはTwitterのshao (Sho SAWADA)氏が指摘しているもので、パスワードリセットを別のメールアドレスからできてしまうという穴です
同じことができるか、検証しました(7iDでの検証)。
下記は7payの機能が内蔵されたセブンイレブンアプリのログイン画面。「パスワードをお忘れの方」というパスワードリセットのリンクがあります。クリックするとメールアドレスの入力画面になるので次へ押します。
なんと別のメールアドレスにパスワードリセットメールを送信できる
問題は次のパスワードリセット申請画面です。
生年月日と電話番号を入れるところまではいいのですが、その次に謎の入力項目があります。
赤で囲んだ部分は「送付先メールアドレス」です。なんと登録しているアドレスとは別のアドレスに、パスワードリセットメールを送信できるのです。実際にやってみました。
別のメールアドレスにパスワードリセットメールが来た
必要な情報は「生年月日」「電話番号」「メールアドレス」の3つだけ。その上で別のメールアドレスを設定します。
その結果、届いたメールがこちら。
登録メールアドレスとは関係のない別のアドレスに、パスワードリセットのリンクがメールで届いたのです。クリックしたところ、パスワード変更ができてしまいました(ちなみに元のメールアドレスにも通知が届く。そのため本来の持ち主は気づくことが可能だとは思われる)。
恐ろしい仕様です。
つまり第三者であっても「メールアドレス(セブンイレブンアプリに登録したもの)」「生年月日」「電話番号」がわかれば、パスワードを変更できるわけです。
7/4 7時追記
高木浩光氏によれば、なんとiOS版では会員登録時に生年月日を登録なしにでき、その場合は「2019/1/1」が自動入力。つまり未登録の人は生年月日なしでパスリセットができるそうです。驚き。
ここまで追記
悪意のある第三者にとって流出しているパスワードよりも、「生年月日」「電話番号」は入手しやすいでしょう。何らかの会員名簿を入手するなどの方法でわかる情報だからです。
しかも下記の問題があるため、第三者がアプリを乗っ取ることもできます。
SMS認証などがないためメールアドレス・パスワードを知られると別端末で乗っ取りも
もう一つ問題点があります。それは二段階認証(多要素認証)が存在しないことです。
二段階認証とはパスワードとは別に、電話番号のSMSなどで本人確認をするしくみのこと。パスワードが漏えいしたとしても、第三者が悪用できないようにするしくみです。
セブンイレブンアプリには二段階認証がありません。そのため会員ID(メールアドレス)とパスワードがわかると、第三者が別の端末から乗っ取ることが可能です。
実際に自分のIDで試してみましたが、別のスマホでログインでき、元のスマホは自動ログアウトになりました。
クレジットカードを登録する重要なアプリにも関わらず、二段階認証がないのは大問題です。
その結果、上記のパスワードリセットを悪用すると、第三者が別のスマホでセブンイレブンアプリ(7pay)を乗っ取ることができてしまうのです。
セブンイレブンは今すぐ7payをサービス停止したほうがいい
なぜこんな甘い仕様にしたのか理解に苦しみます。百歩譲ってこの方式を許したとしても、そのアプリに7pay、つまりクレジットカードを自由に使える決済機能を入れるのはお粗末としか言いようがありません。
ここで取り上げた2つの弱点が、7payでのクレジットカード不正利用の原因かどうかはわかりません。とは言え、大きな弱点を残したままで7payをスタートさせたのはセブンイレブン側の明らかな判断ミスです。7payを既存のセブンイレブンアプリに組み込んだため、仕様が甘くなったと考えられます。サービス開始を焦ったのかもしれません。
セブンイレブンは今すぐ、7payのサービス全体を止めるべきです。原因が判明するまでは7pay全体のサービスを止め、対策が完了してから再開したほうがいいでしょう。
原因がわからないままでサービスを続けるのは無責任であるだけでなく、スマホ決済全体のイメージも悪くします。「スマホ決済・コード決済は怖いもの」という評判が7pay・セブンイレブンによって広まってしまうのです。
利用者にリスクを負わせたまま、弱点があるサービスを継続すること無謀です。どうか今すぐサービスを止め、原因究明・補償・対策に取り組むことを強く望みます。
それができないなら、私は「セブンイレブンは信用できない」と言うしかありません。そして利用者の方には「すぐに7payの利用をやめる」ことを勧めざるを得ません。現状はそれほど深刻です。