orangeitems’s diary

クラウドで働くインフラエンジニアの日々の感想です(ほぼ毎日更新)。



会社でGitHubを使うとなぜ危ないのか

f:id:orangeitems:20190724153745j:plain

 

はじめに

7PayにおけるGitHubソースコード漏洩(の可能性)の件、できるだけわかりやすく、何が起こったかを説明してみたいと思います。一般の人にはなかなかわかりにくいと思いますので。

 

この件そのものの顛末は、下記の記事をごらんください。

www.businessinsider.jp

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

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

 

説明してみる

GitHubっていうのはインターネット上のWEBサービスです。

GitHubには、ファイルをアップロードできます。GitHubはバージョン管理してくれるので昔の状態を覚えていて、戻してくれたりします。バージョン管理システムと呼び開発者にはおなじみです。GitHub上のファイルは自分のパソコンに複製できます。基本的にはソースコードというプログラムが書かれているファイルを管理するためのシステムですが、最近はそれ以外のファイル(ワードやエクセルファイルなど)を管理するために使う方もいらっしゃるようです。

会社のパソコンでプログラム開発をしたとしてその内容をGitHubに複製。家に帰ったらGitHub上から自宅のパソコンに同期して、作業を続けられる。

便利ですね!

フリーランスなどで企業のシステム開発を手伝っている人は、企業でも自宅でもGitHubのデータ(データを入れる箱をリポジトリと呼びます)を同期すれば複数の場所で作業が続けられます。

このGitHubというサービスが提供するリポジトリですが、2つの種類があります。1つはパブリックリポジトリと言われるもの。しかし誰からでも見えるようになっています。それでは困るのでもう1つ、プライベートリポジトリと言うものがあります。これは限られたユーザーしか見えないものです。

去年まではプライベートリポジトリは有料版のユーザーしか使えなかったのですが、今年になって無料版のユーザーも使えるようになりました。プライベートリポジトリには共同作業者を招待できますが、無料版は3人のみしか招待できません。その制限に目をつぶれば最近は無料でも使い倒せるようになりました。

ということで便利なGitHubですが、何にも考えずに自分のパブリックリポジトリに公開しようものなら、大事な情報を公共にさらしているのと同じことになります。もしくは、プライベートにアップロードしていたと思っていたら、実はパブリックだった。これでも同じことです。今回のオムニ7アプリかもしれないソースコードはそのようにして第三者に読み取られただろうということになります。またその中身は機密情報も含まれていて、企業自体の管理体制不備を指摘されています。

そもそも、何某かのプログラマーが、企業の成果物を勝手にインターネットのWEBサービスにアップロードすることからして微妙な話です。また、WEBサービスの運営がまずくて、プライベートリポジトリの内容が実は読み取られるかもしれません。

GitHubには、このように他人の著作物を勝手にアップロードされ公開された場合に、著作権者が公開の停止を申請することができます。DMCAテイクダウンと呼ばれていますが、今回のリポジトリに対してとある企業がこれを行っています。

以上が今回の問題の顛末となります。

 

企業でのGitHub運用に最適解はあるか

このようにどんなに便利とは言え、企業内でGitHubを無制限に使うのは危険と言えます。GitHubにおいては、エディションによって企業でアクセス管理をするプランもありますから使うとすれば、その運用方法を考える必要があります。

ただ、企業にて自分のパソコンにGitHubからソースコードを手に入れた人が、個人的な無料のGitHubリポジトリにアップロードするかもしれませんから、企業のネットワーク内においてGitHubにはつながせない企業も出てきているということも付け加えておきます。

 

it.srad.jp

 

企業においては有料版を契約し、GitHubのプライベートリポジトリ上に成果物を保管。オフィスでも自宅でも同じリポジトリを使えるのでリモートワークに最適。WEB系のベンチャーなどスタートアップはこういうスタイルも増えてきていると思います。

そんなメリットを享受されている企業がいる一方で、いやオフィスのLANでは全部禁止だ、というのも一つの考え方だと思います。

本件は、システム開発会社がGitHubをどう捉えるか、分かれ目となる事件になるのではないかと思います。なんとなく、だいたいのSIerはガチガチに閉じてきそうな気がしております。

また、GitHubをいくら禁止しても、インターネットの他のサイトに接続可能であれば別のGitを提供するWEBサービスはありますし、それこそ自分でクラウドサービスを借りてアップロードすればよいだけですから、GitHubを悪者扱いするよりアップロードを試行する技術者自身のコンプライアンス自体に問題があると思います。やる人はどんなに制限かけてもやるだろう・・という論理です。

もしネットワークの仕組み的にアップロードを防ぐなら、それこそインターネットにつながせないぐらいの強硬手段を取らないと最適解とならない、と思います。そして企業のLANの中にローカルGitサーバーを立てる。ガチガチの金融案件でしかお目にかかれないようなプログラム開発環境をどうしても取らないとこういう問題は起こってしまうのかな・・とクラウド時代に多少途方に暮れてしまった本件でした。

 

追記

日経 xTECHより報道がありました。

 

tech.nikkeibp.co.jp

 セブン&アイ・ホールディングスが提供するスマートフォンアプリ「オムニ7アプリ」のものとみられるソースコードが2019年7月中旬までGitHubで公開状態にあったことが分かった。誰でも見られる状態で事実上の流出と言える。現在は公開を停止している。

 

記事を確認する限り、上記以上の事実は分からないと思われます。