【更新】7pay問題でオムニ7アプリのソースコードに漏洩の疑い。「GitHub」上で誰でも入手可能だったか

7pay-handson1

セブン-イレブンアプリの7pay機能。7月23日現在も、新規登録・チャージなどはできないままの状態が続いている。

Business Insider Japan

7payをめぐる脆弱性の懸念が解決しないまま、不正使用事件発覚から約3週間が経った。この間、実行犯とみられる複数の中国籍の容疑者が逮捕され、また外部ID連携の実装の不備から、セキュリティーの懸念を指摘する報道が続いている。

セブン&アイHDは7月中を目処に、今後の対応策などを公表する予定だ。

しかしここへきて、これまでとは異なる、別の問題が浮上してきた。

7payにも関連する、ECアプリ「オムニ7」の設計図にあたるソースコードが漏洩していた可能性がある。オムニ7アプリはセブン-イレブンアプリとは別アプリだが、ログインまわりの設計は非常に似通っているとみる専門家もいる。

事実であれば、アプリ開発の管理体制、アプリ自体やサービスのセキュリティーに関するリスクの有無についても、一層の警戒が必要になる可能性がある。

「オムニ7アプリ」のソースコードがGitHub上で公開されていた?

7pay_2_omni7_-1-1

Business Insider Japan

「7pay問題に関連すると思われる、プログラムのソースコードが漏洩している可能性があります」

7月上旬のある日、首都圏のIT企業につとめるプログラマーのユースケさん(仮名)は、そう言ってソースコードの実物を取材班に見せた。

ユースケさんがこの問題に気づいたのは、7月16日の記事のタロウさんと同様にセブン-イレブンアプリの通信解析をしていたからだ。

外部ID連携に設計上の問題があるのでは、との指摘は、報道が始まる以前から一部のITエンジニアらの間で噂になっていた。

ユースケさんもそんなうちの一人だった。しかし、他の人と違ったのは通信解析を試す中で偶然、解析中に表示されたオムニ7の「APIサーバー」の名前を、GitHubで検索してみようと思ったことだった。GitHubは開発者の間で一般的に使われている開発支援サービスプラットフォームだ。

ユースケさんによると、このソースコードは、少なくとも7月10日ごろまではGitHub上に存在した。一目見て「今回の問題に関連する重要な情報だ」と感じたユースケさんは、事前にGitHubのスクリーンショットを残していた。

同ソースコードは、その週のうちに削除されている。このソースコードをアップロードしたと思われるのは、“iからはじまる7文字のアカウント”の人物だ。

omni7

削除される前のリポジトリ(GitHub上の保存場所)のスクリーンショット。

提供:取材協力者

ユースケさん自身はソースコードの内容詳細までは解析していない。

しかし、ざっと見たところ、iOS向けのソースコードで、コードの一部に開発会社らしき複数のメールアドレスが書かれていること、またフォルダー名などからオムニ7アプリの一部のように見える、ということにも気づいた。

削除直前の足跡から、このソースコードはGitHub上で2015年5月〜7月頃に公開されたもので、それ以来更新されることなく、削除される2019年7月10日付近まで公開状態が続いていた可能性が高い、とユースケさんは言う。

事実であるならば、セキュリティーの観点から無視できない管理上の不手際ということになる。

別のソースコードを日本の企業が削除した痕跡

オムニ7アプリ

オムニ7アプリ。現在もAppStoreなどで配信中だ。

撮影:7pay取材班

ソースコード漏洩の懸念については、別の気になる動きもあった。

ユースケさんが発見したソースコード(便宜的にソースコードAと呼称)が削除されて以降も、同様にオムニ7のAPIサーバーの名前で検索すると別のリポジトリ(保存場所)がヒットする状況だった。そこには、消えたソースコードAより古い、開発初期と思われるソースコード(ソースコードBと呼称)の断片があった。

以下は7pay取材班が、7月19日時点で公開状態にあったことを確認した画面のスクリーンショットだ。またソースコードBに関連するアカウントには、ソースコードAのときと同様に“iからはじまる7文字のアカウント”も含まれる。

omni7_2

編集部が7月19日時点で保存したスクリーンショット。コミット者の名前として“iからはじまる7文字のアカウント”の人物も確認できる(モザイク処理をしています)。開発の初期段階のバージョンなのか、フォルダー構造などは異なる。

7pay取材班

ソースコードBにはその後、興味深い動きが起こる。

GitHub上で日本企業が、アメリカのデジタルミレニアム著作権法(DMCA)にからんだ申し立てをし、運営から受理され、その後削除にいたったのだ。そのログも公開されている。日付は現地時間の7月18日。

7pay_sourcecode-1

申し立て内容の要点をまとめると、

  • このソースコードの権利者は「Seven & i Net Media Co.,Ltd.」である
  • オリジナルのソースコードは7月11日に削除。しかし、そこからフォーク(複製)されたソースコードを発見した(ソースコードBのこと)
  • フォークされた「関連するソースコード」の権利者が我々であることは、以下「omniMbaas〜〜〜」で始まる一連の4つのソースコードの権利表記で証明できる
  • DMCAテイクダウンの申請者はNTT DATA MSE社

というものになる。

11日に削除したオリジナルのソースコードが「ソースコードA」を指すのかは不明だが、日付からするとユースケさんが見つけたものである可能性は高い。

数週間前から元のソースコードの調査を進めていた

実は、7pay取材班は、DMCAの申し立てが発覚する以前の数週間前の段階から、本件について調査を進めていた。

DMCAの申し立てが発覚する以前に、取材班が独自入手したソースコードについて、国際大学GLOCOM客員研究員の楠正憲氏に分析を依頼していた。楠氏はアプリ開発やセキュリティーに詳しい識者だ。

楠氏は当時、断定は避けながらも、セブンネットショッピングと関係があるソースコードである可能性が高いと語った。楠氏のコメント公開は今回が初めてだ。

kusunoki

楠氏のTwitterアカウントより。セキュリティーや技術系の論客としても定評がある。

Twitter

(ソースコードには)iOSデバイスへのプッシュ通知に必要な電子証明書が含まれており、(これを根拠として)セブンネットショッピングと関係あるソースコードである可能性が高い。

BaaS(※)に接続するSDK(※)に含まれるヘッダーファイルからは、(すでにBI Japanが報道している)外部IDログインに関して指摘されているのと同様の脆弱性を発見した。

リソースファイルに直接、“外部IDログインに必要なシークレット”などが直書きされている。

これらのファイルが長い期間、GitHub上で公開されていたのだとしたら、かなりずさんな管理が行われていたことが推察される」(楠氏)

また、今回のDMCAの申し立ての発覚を受け、楠氏は次のように改めてコメントを寄せた。

「スマートフォンのアプリ開発では、インターネットに接続していることを前提とした開発環境が多く、昔のようにインターネットから隔離することで秘密保持するのは難しくなった。

特にiOSの場合Macで開発することが一般的で、開発会社のMac向けデータ漏洩対策は、Windowsと比べて出遅れているケースがある。秘密保持できている前提ではなく、漏れることも想定した上で監視する必要があるのではないか」(同)

BaaSとは:Backend as a Serviceの略。スマホなどの端末内アプリを出入り口として、目的の機能を提供するためクラウド上で動作しているサービス本体のこと。

SDKとは:Software Development Kitの略。ソフトウェア開発キットのこと。

セブン&アイHDの回答

セブン&アイHD広報が事実関係の問い合わせに回答。担当者は「本件については現在確認中です」とのコメントにとどめた。

7月中にセブン側が公表を予定する「今後の対応策」のなかに、ソースコードの漏洩の可能性についての情報が含まれるかどうかは、現時点で明確な回答はなかった。

編集部より:セブン&アイHD広報の回答を追加し、「セブン&アイHDの回答」以下の文章をアップデートしました。 2019年7月24日19:10

(文・7pay取材班)

Popular

あわせて読みたい

BUSINESS INSIDER JAPAN PRESS RELEASE - 取材の依頼などはこちらから送付して下さい

広告のお問い合わせ・媒体資料のお申し込み