• 2019年9月30日に7payのサービスが終了する

2019年8月1日、セブン&アイ・ホールディングス(以下、セブン&アイ)はスマホ決済サービス「7pay(セブンペイ)」の不正利用問題について記者会見を開き、2019年9月30日にサービスを終了させると発表しました。

2時間以上に及んだ会見では、7payが不正利用された手口や、被害の状況が語られました。しかし、未解決の問題が残っているとの指摘は多く挙がります。いったい何が問題なのか、7payの特徴を照らし合わせながら解説していきましょう。

被害額は4,000万弱、全て補償対象に

セブン&アイの発表によれば、2019年7月1日の7payサービス開始後、7月中旬までに不正利用の被害に遭った人数は808人、被害金額は3,861万5,473円と発表されました(2019年7月31日17時時点)。これらの被害についてセブン&アイ側が補償をすること、チャージ済みの残高についても後日の払い戻しを発表したことで、金銭的な問題の着地点は見えてきたといえます。

しかし、会見の中で疑問の声が噴出したのが、「攻撃の手口はリスト型攻撃だった」というセブン&アイ側の説明でした。実際にはリスト型攻撃だけでは説明できないケースが報告されており、真の原因は別にあるのではないか、という憶測を呼んでいます。

開始当初から何千万回ものアタック

リスト型攻撃はインターネット上に流出したIDとパスワードを利用し、Webサービスなどを通じて個人情報にアクセスする攻撃手法です。このため、複数サービスでアカウント情報を使い回すことは危険が大きいといえます。特に今回セブン-イレブンアプリで発生した、7iDの不正ログインには、SMS認証などの“2段階”的な仕組みがなく、乗っ取られやすい構造になっていました。

たしかに7iDがリスト型攻撃を受けた形跡はあるようで、同社の説明によれば、7月2日未明から何千万回ものアクセスがサーバーのログに記録されていたとのこと。攻撃者はこの時点で7iDの正確なアカウント情報までは持っておらず、強引に割り出そうとしたものと考えられます。

なお、7月30日にセブン&アイは全ユーザーの7iDパスワードをリセットし、再設定を促しています(ただし同社はこの措置について、セキュリティ上な意味は少なく、ユーザーの不安感に配慮したもの、としています)。

  • 7iDのパスワード再設定を呼びかけるセブン-イレブン店頭の掲示物

ID乗っ取りで7payが不正利用される

7iDを乗っ取られると、生年月日や利用履歴などの個人情報が漏洩するだけでなく、「7payが使える状態になる」ことが問題です。第三者のスマホでセブン-イレブンアプリにログインし、7pay決済に必要なQRコードを表示できるので、セブン-イレブンの店頭に行けば買い物ができてしまいます。

ただし、その時(単純にアプリに不正ログインしただけの状態で)使われるのは、すでにチャージ済みの残高だけ。サービス開始直後から多額のチャージをした人はあまりいないでしょう。筆者も1,000円しか入れていませんでした。これでは7iDを乗っ取っても、使える金額はたかがしれています。攻撃者としても、攻撃をしかける価値があるかどうか微妙なラインではないでしょうか。

しかし、不正利用の被害額である約3,861万円を被害人数の808人で割ると、1人あたり5万円近い金額を不正利用されています。これは、アプリに登録済みのクレジットカードから7payを不正チャージされたためですが、7payでチャージするためには、アプリへのログインとは別のパスワード(サービス内の名称は「認証パスワード」)を入力する必要がありました。

  • セブン-イレブンアプリにログインすると7payの支払い機能を利用できる

ここで、7pay機能について改めて概要をおさらいしましょう。7pay機能は、セブン&アイの総合通販サイト「omni7(オムニ7)」を機能の中心に据えた、セブン-イレブンアプリ内にある決済機能です。セブン-イレブンアプリの利用には7iDの設定が必要で、2018年6月に現在の形にリニューアルされています。

当初、7payは単独のアプリとして設計されたといいますが、最終的にはこのセブン-イレブンアプリに「増築」する形で、2019年7月1日にサービスを開始しました。7payを利用するだけなら追加のパスワードや生体認証は必要ないものの、残高のチャージには2つ目のチャージ用パスワード(認証パスワード)を入れる必要があります。

ではいったいなぜ、このチャージ用パスワードまで破られたのでしょうか。

チャージ用パスワードが破られた理由は謎のまま

ここでわかっている問題の1つが、7iDのログインパスワードと、チャージ用のパスワードを同じ値に設定できてしまう点です。

これではチャージ用のパスワードが防壁として機能しません。セブン側も当初からこの問題を認識しており、同じパスワードを設定しないようユーザーに注意喚起していましたが、そもそもアプリ側で同一のパスワードを受け付けない設計にすべきだったといえます。

そして今回、最大の謎といえるのが、7iDのパスワードとチャージ用のパスワードを異なる値に設定し、他のサービスでも使い回しをしていないケースがインターネット上で報告されている点です。もしこれが本当なら、リスト型攻撃で突破することは事実上不可能といえるでしょう。

チャージ用パスワードを変更する機能はありますが、そのためには、そもそも現在設定しているチャージ用パスワードの入力が求められます。忘れた場合には「秘密の質問」に答えることで再設定する機能もありますが、5回間違えるとロックされ、アクセスできなくなります。また、パスワードが変わるとメールで変更完了通知が送られるシステムもありました。

また、個々の端末のアプリ自体を解析した可能性はどうでしょうか。スマートフォンのアプリは、コストさえかければ内部で行われた処理を把握できます。しかし、7pay機能はWebアプリケーションとして実装されており、クライアント(端末)側の処理はほとんどないことから、サーバーに侵入しない限り、処理内容を読み取ることはできないと思われます。

  • チャージ用パスワードの変更画面(左)、秘密の質問の入力画面(中央)、チャージ用パスワードの再設定画面(右)

このようにリスト型攻撃だけでは説明できない点があることから、会見では筆者を含めた複数の記者が繰り返し質問を投げかけました。しかしセブン&アイ・ネットメディアの田口広人社長は、パスワードリセットやサーバー側からの情報流出の痕跡はなく、リスト型攻撃が原因であるとの説明に終始し、質疑は平行線をたどりました。

本当に「穴」はないのか。原因究明に期待

7payは9月末に終了となりますが、セブン&アイはキャッシュレスへのニーズは高いことを背景に、他社キャッシュレスとの連携やセブンによる新たなサービスへの取り組みに言及しました。

しかし、未解決の問題を残したままでは、7iDのプラットフォーム自体に別の脆弱性があるのではないか、といった疑いは晴れないことになります。

一連の騒動を通して、7payから直接の金銭的被害を受けた人だけでなく、7payを始めとするスマホ決済を使う多くの人を不安に陥れたことは間違いないでしょう。「臭いものに蓋」をして終わらせるのではなく、セブンには真の原因究明に向き合う姿勢を期待したいところです。

  • 会見の最後に再び謝罪をしたが、未解決の問題とプラットフォーム全体への疑念も残った