セブン-イレブンアプリの7pay機能。7月23日現在も、新規登録・チャージなどはできないままの状態が続いている。
Business Insider Japan
7payをめぐる脆弱性の懸念が解決しないまま、不正使用事件発覚から約3週間が経った。この間、実行犯とみられる複数の中国籍の容疑者が逮捕され、また外部ID連携の実装の不備から、セキュリティーの懸念を指摘する報道が続いている。
セブン&アイHDは7月中を目処に、今後の対応策などを公表する予定だ。
しかしここへきて、これまでとは異なる、別の問題が浮上してきた。
7payにも関連する、ECアプリ「オムニ7」の設計図にあたるソースコードが漏洩していた可能性がある。オムニ7アプリはセブン-イレブンアプリとは別アプリだが、ログインまわりの設計は非常に似通っているとみる専門家もいる。
事実であれば、アプリ開発の管理体制、アプリ自体やサービスのセキュリティーに関するリスクの有無についても、一層の警戒が必要になる可能性がある。
「オムニ7アプリ」のソースコードがGitHub上で公開されていた?
Business Insider Japan
「7pay問題に関連すると思われる、プログラムのソースコードが漏洩している可能性があります」
7月上旬のある日、首都圏のIT企業につとめるプログラマーのユースケさん(仮名)は、そう言ってソースコードの実物を取材班に見せた。
ユースケさんがこの問題に気づいたのは、7月16日の記事のタロウさんと同様にセブン-イレブンアプリの通信解析をしていたからだ。
外部ID連携に設計上の問題があるのでは、との指摘は、報道が始まる以前から一部のITエンジニアらの間で噂になっていた。
ユースケさんもそんなうちの一人だった。しかし、他の人と違ったのは通信解析を試す中で偶然、解析中に表示されたオムニ7の「APIサーバー」の名前を、GitHubで検索してみようと思ったことだった。GitHubは開発者の間で一般的に使われている開発支援サービスプラットフォームだ。
ユースケさんによると、このソースコードは、少なくとも7月10日ごろまではGitHub上に存在した。一目見て「今回の問題に関連する重要な情報だ」と感じたユースケさんは、事前にGitHubのスクリーンショットを残していた。
同ソースコードは、その週のうちに削除されている。このソースコードをアップロードしたと思われるのは、“iからはじまる7文字のアカウント”の人物だ。
削除される前のリポジトリ(GitHub上の保存場所)のスクリーンショット。
提供:取材協力者
ユースケさん自身はソースコードの内容詳細までは解析していない。
しかし、ざっと見たところ、iOS向けのソースコードで、コードの一部に開発会社らしき複数のメールアドレスが書かれていること、またフォルダー名などからオムニ7アプリの一部のように見える、ということにも気づいた。
削除直前の足跡から、このソースコードはGitHub上で2015年5月〜7月頃に公開されたもので、それ以来更新されることなく、削除される2019年7月10日付近まで公開状態が続いていた可能性が高い、とユースケさんは言う。
事実であるならば、セキュリティーの観点から無視できない管理上の不手際ということになる。
別のソースコードを日本の企業が削除した痕跡
オムニ7アプリ。現在もAppStoreなどで配信中だ。
撮影:7pay取材班
ソースコード漏洩の懸念については、別の気になる動きもあった。
ユースケさんが発見したソースコード(便宜的にソースコードAと呼称)が削除されて以降も、同様にオムニ7のAPIサーバーの名前で検索すると別のリポジトリ(保存場所)がヒットする状況だった。そこには、消えたソースコードAより古い、開発初期と思われるソースコード(ソースコードBと呼称)の断片があった。
以下は7pay取材班が、7月19日時点で公開状態にあったことを確認した画面のスクリーンショットだ。またソースコードBに関連するアカウントには、ソースコードAのときと同様に“iからはじまる7文字のアカウント”も含まれる。
編集部が7月19日時点で保存したスクリーンショット。コミット者の名前として“iからはじまる7文字のアカウント”の人物も確認できる(モザイク処理をしています)。開発の初期段階のバージョンなのか、フォルダー構造などは異なる。
7pay取材班
ソースコードBにはその後、興味深い動きが起こる。
GitHub上で日本企業が、アメリカのデジタルミレニアム著作権法(DMCA)にからんだ申し立てをし、運営から受理され、その後削除にいたったのだ。そのログも公開されている。日付は現地時間の7月18日。
申し立て内容の要点をまとめると、
- このソースコードの権利者は「Seven & i Net Media Co.,Ltd.」である
- オリジナルのソースコードは7月11日に削除。しかし、そこからフォーク(複製)されたソースコードを発見した(ソースコードBのこと)
- フォークされた「関連するソースコード」の権利者が我々であることは、以下「omniMbaas〜〜〜」で始まる一連の4つのソースコードの権利表記で証明できる
- DMCAテイクダウンの申請者はNTT DATA MSE社
というものになる。
11日に削除したオリジナルのソースコードが「ソースコードA」を指すのかは不明だが、日付からするとユースケさんが見つけたものである可能性は高い。
数週間前から元のソースコードの調査を進めていた
実は、7pay取材班は、DMCAの申し立てが発覚する以前の数週間前の段階から、本件について調査を進めていた。
DMCAの申し立てが発覚する以前に、取材班が独自入手したソースコードについて、国際大学GLOCOM客員研究員の楠正憲氏に分析を依頼していた。楠氏はアプリ開発やセキュリティーに詳しい識者だ。
楠氏は当時、断定は避けながらも、セブンネットショッピングと関係があるソースコードである可能性が高いと語った。楠氏のコメント公開は今回が初めてだ。
楠氏のTwitterアカウントより。セキュリティーや技術系の論客としても定評がある。
「(ソースコードには)iOSデバイスへのプッシュ通知に必要な電子証明書が含まれており、(これを根拠として)セブンネットショッピングと関係あるソースコードである可能性が高い。
BaaS(※)に接続するSDK(※)に含まれるヘッダーファイルからは、(すでにBI Japanが報道している)外部IDログインに関して指摘されているのと同様の脆弱性を発見した。
リソースファイルに直接、“外部IDログインに必要なシークレット”などが直書きされている。
これらのファイルが長い期間、GitHub上で公開されていたのだとしたら、かなりずさんな管理が行われていたことが推察される」(楠氏)
また、今回のDMCAの申し立ての発覚を受け、楠氏は次のように改めてコメントを寄せた。
「スマートフォンのアプリ開発では、インターネットに接続していることを前提とした開発環境が多く、昔のようにインターネットから隔離することで秘密保持するのは難しくなった。
特にiOSの場合Macで開発することが一般的で、開発会社のMac向けデータ漏洩対策は、Windowsと比べて出遅れているケースがある。秘密保持できている前提ではなく、漏れることも想定した上で監視する必要があるのではないか」(同)
SDKとは:Software Development Kitの略。ソフトウェア開発キットのこと。
セブン&アイHDの回答
セブン&アイHD広報が事実関係の問い合わせに回答。担当者は「本件については現在確認中です」とのコメントにとどめた。
7月中にセブン側が公表を予定する「今後の対応策」のなかに、ソースコードの漏洩の可能性についての情報が含まれるかどうかは、現時点で明確な回答はなかった。
(文・7pay取材班)