セブン＆アイの緊急会見の模様。 撮影：鈴木淳也

セブン&アイ・ホールディングスが7月1日に開始したコード決済サービス｢7pay｣の不正利用にからみ、同社は4日に緊急会見を開いて謝罪した。

7payサービスとそのアプリであるセブン-イレブンアプリは、決済関連を追いかけている筆者からすると、率直に言ってずさんな設計、というほかない。同社は根本的なサービスの見直しが必要だ。


利便性のためにセキュリティーが犠牲になった

実際の7payの不正利用被害者のスクリーンショット。まったく位置の違う別店舗で次々に使われていることが確認できる。 提供：不正利用被害者

あえて厳しい言い方をすると、同社の根本的な勘違いは、会見で担当者の口から出た｢UX（顧客体験）をどう作っていくかという話と、セキュリティーをどう確保するかは、常にどうバランスさせるか難しい問題｣という言葉が端的に表している。

よく言われる言葉だが、これは｢ユーザーの使い勝手のためにセキュリティーを弱くする｣ということではない。

この言葉は本来、セキュリティーを確保した上で、いかにユーザーの使い勝手を高めるか、そしてセキュリティーを確保できない機能は提供しない、という意味で使われるべき言葉だ。

IT業界ではすでに一般的になっている（はずの）｢セキュリティー・バイ・デザイン｣という思想がその背景にある。

セブン&アイは、この担当者の言葉で、ユーザー数を増やすためにセキュリティーを犠牲にしたことを事実上認めたと言われても仕方がないのではないか。

｢脆弱性チェックに合格した｣はずの7payに潜む複数の問題

昨日までは7payを全面に押し出した店舗が多かったが、状況はまさに一変した。

会見で同社は、｢セキュリティー審査では脆弱性を指摘されなかった｣としたが、実際のサービスを見ると、いくつもの問題が存在していた。

問題1. 登録メールアドレスの問題

まず、会員登録時にIDとしてメールアドレスを登録させるが、その有効性や本人確認をしておらず、｢他人のメールアドレスでも登録｣できた。単なる間違いで無効なメールアドレスを登録してしまう可能性もあり、今回のような問題発生時にメールが届かずに被害への確認が遅れる危険性がある。

問題2. 本人確認の問題

撮影：小林優多郎

会員登録時の本人確認も、セキュリティー的観点から不備がある。登録するスマートフォンが本人のものか考慮されていなかった。

一般的には、携帯番号を入力させてその番号にSMSを送る｢SMS認証｣が利用される。これによってアカウントと電話番号が紐づけられ、別端末への移行時に本人確認が行える。この機能がないために、アカウントにログインできれば誰でも別の端末で利用できた。

アカウントのログインにおいて、総当たり攻撃などへの対策が行われていたかは、会見の中では明らかにされなかった。ただし、漏えいしたIDとパスワードのリストを使ってログインを試行する｢リスト型攻撃｣が頻発している昨今、IDとパスワードが一致しても｢ログインを試行する行為自体｣に対して警戒すべきだった。

そのため、海外IPアドレスからのアクセスはブロックするなどの対策は、そもそもしておくべきだった。実際、攻撃が海外IPから行われたことが明らかにされている。事前対策の不備が明らかになった形だ。

問題3. パスワードリセットにまつわる複数の不備

パスワード忘れの際のリセットの仕組みにも問題があった。

パスワードリセットは通常、登録アドレスに対してリセットのための情報を送信する。本来はすでにメールアドレスの有効性を確認しているため、大きな問題にはならないが、なぜか7payでは登録メールアドレスとは別のメールアドレスも指定できた（これは会見の中で、登録時がスマホで、リセットする際にPCを使う場合を想定した、との回答があった）。

さらに危険性が高かったのは、パスワードリセットのための本人確認として｢生年月日｣が要求されたことだ。生年月日は、セキュリティー業界では一般に秘匿情報とはみなさない人が多い。これを本人確認に使うのは危険ではなかったか。

さらに、会員登録時に生年月日を設定しない場合、｢自動的に指定の年月日で設定される｣という問題もあった。これではメールアドレスが分かれば誰でもパスワードリセットをして好きなパスワードに設定できてしまう。

会見では｢二段階認証をなぜ設定していなかったのか｣という質問にきちんと回答できないという一幕もあった。今回の場合、端末を移行する際、IDとパスワードに加えて、登録した電話番号あてにSMSを送る｢SMS認証｣を実施していれば、二段階かつ二要素認証となり、攻撃者のログインの多くを防げた可能性は高い。

なぜ脆弱な状態でサービスインしてしまったのか

7payは公式サイトで注意をうながしている 撮影：小林優多郎

7payのクレジットカード登録では、本人確認のための認証である｢3Dセキュア｣が必須となっており、本人確認をする必要性は認識していたはずだ。それにも関わらず、7pay自体は本人確認の手段が脆弱で、設計が中途半端になっている。

使い勝手という意味では、一度登録されたクレジットカードで毎回複雑なパスワードを入力させるのは現実的ではない。そのため、｢決済サービス側が攻撃を防ぐ｣ことが重要になる。サービスに不正ログインされなければ、クレジットカードを不正に利用されないからだ。

一般的には、不正ログインされないようにさまざまな対策を施し、一定の安全性が確保できた場合にのみ、ユーザーの利便性のためにクレジットカードのチャージを可能にする。これが、冒頭に書いた｢セキュリティー・バイ・デザイン｣の考え方だ。

コード決済サービスでは、クレジットカードの不正登録によって、PayPay経由での不正利用被害が発生した。これは、クレジットカード登録に3Dセキュアなどの本人認証を行わなかったため、漏えいしていたクレジットカード情報が悪用されたとみられている。

根本的な再設計が必要ではないか？

セブン・ペイ社による、不正アクセスの経緯説明文。

こうした不正利用の問題は、決済サービスが常に抱えているリスクだ。そのため、クレジットカード事業者は長年にわたって多大なコストをかけてセキュリティー対策を施し、安全性の向上に努めてきた。

その点で、セブン&アイは決済に携わることに対する覚悟が足りていなかったのではないか。今まで同社が提供していたnanacoは、物理カードが存在することによる一定のセキュリティーと抑止力があった。nanacoを不正使用するには、カード自体を入手する必要があるからだ。電子的な7payでは、時間も場所も無関係に｢盗難｣できる。

nanaco以上のセキュリティー対策が必要だった点を、同社は設計段階で十分に検討していたのだろうか。セブン&アイは、7payの必要性とセキュリティー対策を、改めて一から検討し直したほうが良いのでは、とすら感じる。

今回の問題は、コード決済全体の信頼性にも悪影響を及ぼしかねない。そうした懸念は、少しでも早く払拭しなければならない。

被害を被ったユーザーが極力不利益を被らないように、補償にとどまらず説明責任も果たしていく、誠意ある対応が必要だ。

（文・小山 安博）