どうやればここまでザルなセキュリティになるのか---- コンビニ最大手のセブン&アイHDがリリースしたQRコード決済の「7pay (セブンペイ)」、リリース数日で不正使用被害の報告も相次ぎ、悪意の第三者が勝手にログインパスワードを変更可能である致命的なセキュリティ欠陥が指摘され、早々にサービス停止しています。
ここに来て、不正使用の際に利用されたと思しきセキュリティホールの詳細が、Business Insiderで報じられました。今回は安心・安全が最も必要とされる決済サービスにおける、セブンペイの致命的なセキュリティ欠陥について前述のBusiness Insiderの記事を引用しつつ考えてみたいと思います。
実はメールアドレスさえも要らなかった、外部ID連携でログインし放題のセブンペイ
外部ID連携とは
ご存知の方も多いと思いますが、外部ID連携とは、他サービスのアカウントと(この場合はセブンペイを)紐付けすることで、他サービスのアカウントでセブンペイへログインすることを可能とする機能です。
例えばオンラインゲーム、Nexonのサービスだとe-mail以外にFacebook, Google, Twitterのアカウントと紐付けてこれらのアカウントをNexonのログインアカウントとして利用可能になります。
7payのズブズブな外部ID連携
去る7月12日に外部ID連携の停止を発表したセブンペイですが、実際は7月11日時点でこの機能は停止されていました。それほど急いで外部ID連携機能を無効化しなければいけない理由があったということになります。
発表当日の7月12日時点で既にスラッシュドットコムあたりでは「外部ID連携周りに脆弱性があるのではないか」、などと予想されておりましたが、今回のBusiness Insiderの記事でその予想が事実であったことが分かりました。
- 外部IDを使ったログインの場合、一般的なツールを使うことで容易にID書き換えによるなりすましログインができた
- 書き換えに使うID情報は、X桁の数字を元にした英数字が含まれ、容易に総当たり、また一部はソーシャル上の公開情報から推測可能だった
- オムニ7の認証用APIはセブン-イレブンアプリを介すことなく外部から容易にアクセスし、トークン(鍵情報)を入手できる状態だった
引用元 : 狙われた7pay「外部ID連携」の脆弱性の全貌。急遽“遮断”した理由 ---- BUSINESS INSIDER (一部編集)
詳細は上記のURLへアクセスして読んでいただくとして、重要なポイントは以下の点です。
- 外部ID連携において、7pay側認証を担うomni7に対して他人のIDを通知すればパスワード認証無しで他人のIDに紐付く7pay IDでログイン可能だった
- 総当たり攻撃で外部サービスIDとomni7 IDの紐付けを容易に特定可能だった
例えば、攻撃者は自分のFacebook IDでFacebookにログインします。その状態で7payへFacebook ID連携で7payにログインする際に、第三者であるAさんのFacebook IDをomni7へ通知すればAさんのIDに対するパスワード認証なしでAさんの7payにログインできたそうです。そういう悪さするセキュリティ実験用のアプリを使えば割と簡単に自分のIDをAさんのIDに書き換え可能な模様。
簡単に言えば、他人のFacebookやYahoo! IDさえ分かっていれば、そのIDに紐付く7pay IDに簡単にログインできた、ということに。だってパスワード要らないんだもん。
悪意を持った人間が他人のIDでログインしたらやることはひとつ!気付かれる前に買い物しまくるということになります。
セキュリティ屋さんの言葉を借りれば、外部ID連携の基礎となるOpenID Connectをきちんと実装していなかった、ということになります。認証周りの実装をおろそかにしたままサービス開始するとはなかなかの大物ですが、社長自身が二段階認証すら知らない会社なのでいかにセキュリティにカネと労力をかける意識がなかったかが知れてしまいますね。
やはりOAuth2.0とOpenID Connectの実装例を見ても、7payの認証周りの実装がいかにチャチだったか、そして成果物のレビューをろくにせずにサービスリリースだけを重要視していたかが分かりますね。
※ 既にこの外部ID連携機能は無効化されていますので良い子はマネしない様にしましょう
他のomni7系サービスにも飛び火した模様
本件を受けてか、ひっそりとセブン&アイ主要サービスが軒並み外部ID連携による認証を停止しています。何でかなー、と考えてみるまでもなく本丸のomni7自体に外部ID連携で認証を行うプロセスでセキュリティホールがあるんでしょうね。復旧の際にはセブン&アイ系アプリ更新が走り最新バージョン以外ではログイン不可能となるでしょう。
因みにオープンIDでなく、OpenIDです。専門用語は正しく書きましょうよ、プレスリリースなんだし。
・・・「株式会社セブン・ペイ」なのにサービス名は「セブンペイ」なので深く気にしない主義なんですね、きっと!
株式会社セブン&アイ・ホールディングス(本社:千代田区、代表取締役社長:井阪 隆一)は、株式会社セブン・ペイ(本社:千代田区、代表取締役社長:小林 強)が運営するバーコード決済サービス「7pay」に対する不正アクセス被害を真摯に受け止め、現在、社外のセキュリティアドバイザーと連携しながら、セキュリティ対策プロジェクトにおいて総点検を進めております。
セキュリティ強化に向けた総点検の一環として、本日 17 時をもってオープン ID によるログインを一時停止いたしました。
尚、今月中には、現在進めているセキュリティ対策における具体的かつ網羅的な施策について、取りまとめる予定です。
皆様には多大なるご迷惑、ご心配をお掛けしたことを、深くお詫び申し上げます。記
【今回の対応策】
オープン ID(Facebook 、Twitter 、Google、Yahoo!JAPAN、LINE)によるログインを一時停止【対象となる各社アプリ】
セブン-イレブンアプリ、イトーヨーカドーアプリ、西武・そごうアプリ、ロフトアプリ、アカチャンホンポアプリ引用元 : 「7pay(セブンペイ)」に対する不正アクセスの件(第 4 報)オープン ID による各社アプリへのログインの一時停止のお知らせ
確定被害報告を7月16日に発表
7月16日付でセブン&アイHDが確定した7pay不正使用による被害総額・被害に遭った人数を公表しました。それによると、被害人数は1,574人、被害総額は3,240万688円とのこと。
当初の被害900人、被害額5,000万と5割ぐらい食い違っています。多数ある被害報告のいくつかをサンプリングしてその平均値を使用した推計だったのだと思いますが、けっこうずれてますね。
セブン&アイHDは7月16日、7payの不正利用について、正確な被害規模を公表した。
7pay社として認定した被害人数は1574人、被害金額は3240万688円(7月11日17時時点)。
従来公表していた情報(参考:被害人数900人、被害金額5500万円)は被害推定規模だった。
引用元 : 7pay不正、確定被害は1574人、総額3240万688円と公表。7月中に対策公表へ ---- BUSINESS INSIDER
おわりに
今回は続報として、7pay (セブンペイ) の不正使用被害の原因となったセキュリティホールについてのお話でした。流石にこれは7payも被害者面だけしていたら本当に顧客が離れて二度と戻ってこなくなるレベルだと思いますが、社長があそこまで他人事のようにぼへーっとしてて大丈夫なんでしょうか。
すごく不安になりますね。