セブン&アイ・ホールディングスが決済サービス「7pay(セブンペイ)」の不正利用を受けて外部のIDからアプリへのログインを一時停止した措置について、原因となった脆弱性の一端が明らかになった。日経 xTECHの取材で2019年7月12日までに分かった。外部IDとの認証連携機能の実装に不備があり、パスワードなしで他人のアカウントにログインできる脆弱性があったという。

 同社は2019年7月11日午後5時、FacebookやTwitter、LINEなど5つの外部サービスのIDを使ったログインを一時停止した。「各アプリ共通で利用しているオープンIDとの接続部分にセキュリティー上のリスクがある恐れがあるため」(広報)としている。

 この脆弱性は、不正利用が判明した後に外部からの指摘で明らかになったもので、セブン&アイのグループ共通ID「7iD」の認証システムに存在した。外部ID連携機能を使っている人のIDに、他人がパスワードなしにログインしてなりすませるという内容だ。同認証システムは7payを含めて同社の複数のアプリが使っている。

 「OpenID Connect」などの認証連携プロトコルは、なりすましを防ぐためのチェック手順を定めている。7iDの認証システムには、このチェック手順が実装されていなかったとみられる。

 これとは別に、7iDにログイン後、API(アプリケーション・プログラミング・インターフェース)を通じて認証システムから取得できるユーザーデータの設計にも問題があった。あるアプリで認証に成功した場合、他のアプリを含めた広範な個人データを取得でき、さらにハッシュ化されたパスワードまで取得できたという。「顧客データベースにフリーでアクセスできる状況に近かった」と取材に応じた事情に詳しい技術者は話す。

 認証連携の脆弱性を悪用して他人のIDでアプリにログインするか、あるいはAPI経由で取得した他人のハッシュ化済みパスワードから平文のパスワードを復元し、他人のIDとパスワードを入力してログインできた可能性がある。

 今回の7pay不正利用の手口は「パスワードリスト攻撃」や「パスワードリセットの悪用」など複数の可能性が指摘されている。前述の脆弱性と不正利用との関連は明らかになっていない。