GitHubにSMBCのソースコードが公開されちゃってた件いついて

なんだか大変なことになっていますね。

本件の経緯はキーワードでググれば出ると思うので、ここでは取り上げません。・・・と思ったらTogetterにまとめられていましたね。

艦これユーザーさん、SMBCのソースコードを世界に無償公開してしまう

艦これ云々はあくまでアイキャッチであって、問題の本質とは関係ないと思います。

色々と問題点があると思いますが、当人だけが悪いともいえないような気がします。いつものようになんとなくコメントしてみようと思います。

問題点

個人的に問題だと思うことをリストアップします。

  1. 機密情報を含むであろうコードが全世界に公開されてしまった
  2. 公開した当人の発言から、危機意識が見受けられない
  3. そもそも個人がコードを公開できる状態にあった
  4. この件を受けて、またテレワークまずいかも的な雰囲気になるかも

そもそもGithubとは?

馴染みのない方もいらっしゃると思うので簡単にですが書いておきます。

Githubとは、書いたコードをオンラインで管理・共有するためのサービスです。その他、wikiを書いたりタスク管理をしたりと、開発作業をするうえで便利な機能が豊富に揃っており世界中で使われています。

大企業でも使用されているようなサービスであり、Githubを利用すること自体は別に悪いことでもありません。各社の内部コードなども、このサービスを利用して社内で共有されていたりします。

問題点1

Github上にコードをアップロードするのは大企業でもやっていると書きました。

ではなぜ今回問題になっているのか。

それは、このコードが限られたメンバーにのみ公開されるのではなく、全世界に公開されていたからです。

Githubでコードを公開する場合、限られたメンバー(社内のメンバーやサービスに関わる一部の人のみ)に公開するprivate設定と、誰でも自由に内容を見れるpublic設定があります。

一般的に、社内のサービスや機密情報に関わるようなコードはprivate設定になり、OSSと呼ばれるようなサービスやソフトウェアのコードなどはpublic設定となっています。

なぜpublic設定にするかというと、多くの人が自由に参照できればその分バグも発見されやすくなり、よりコードが安全で便利なものになるからです。また、これらのコードを読むことは自分が知らなかったコードの書き方やライブラリ(プログラムの部品)を勉強する良い機会にもなります。

一方、社内の機密情報などは当然全世界に公開するわけにはいかないので、privateの設定にして限られたメンバー内だけで共有する訳です。

「限られたメンバーだけで共有するのであれば社内のファイルサーバーなどで公開した方が安全なのでは?」と思われるかもしれませんが、Github上の便利なサービスや他のサービスとの連携が強力なので、Githubを利用しているという訳です。もちろん、Githubなどの外部のサービスに頼らずにコードを共有しているような企業もあります。

話を戻しますが、今回のケースは「publicにすべきでない機密情報が全世界に公開されてしまったこと」が問題です。いってみれば情報漏洩ですね。

ちなみに、既に非公開設定に(あるいは削除)されており現在は参照できない状態です。

公開されていたコードもどの程度の内容のものがあったかは分かりませんが、仮にセキュリティに関わる部分があれば、悪意のあるユーザーは悪用してしまうでしょう。

これは、家にしっかり鍵をかけたけど、その鍵をどこかに置いて、鍵の在処を紙に書いて玄関のドアに貼っているようなものです。

問題点2

冒頭のTogetterに公開したとされる当人の発言がまとめられていますが、これはちょっとドン引きするレベルですね…。

許可された方法以外で引用したくないのでしませんが、我関せずというか、ある意味達観しておられます。

まぁ確かにもはやどうしようもない状態にあるとは思いますが、なんかこう開き直ったような姿勢がめちゃくちゃ不安になりますね…。

この方はどうやら、Github上のコードを元に年収を推定するというサービスを利用するために、手元のソースコードをGithubで公開してしまったそうです。

普通そういうのって業務とは別に趣味で書いているコードを登録すると思いますが…。なんか人格批判みたいになるのも嫌なので書き方が難しいですが、公開する前に公開していいかくらいは判断できると思うんですけどね…。

問題点3

個人がコードを公開できる状態にあったのが問題です。と書こうと思ったのですが、これは割とどうしようもないと思いますね…。ソースコードは結構ローカル(ネットワーク上ではなく自分のPCの中)で作成したり保存したりします。

社内規約的にたとえば「情報漏洩に繋がるのでUSBメモリは使用禁止」みたいにしている企業もありますが、でも別にそういう記録媒体を用いなくてもファイルストレージのサービスなんていくらでもあるので本質的には意味がないと思うんですよね。1

ある程度ルールで縛ることはできても、結局「やろうと思えばできる」ような状態では個々人のコンプライアンス意識によっては簡単に漏洩してしまいます。

ガチガチに対策するために「スマホも持ち込み禁止、PC持ち出し禁止、ネットワークも社内ネットワークにしか繋がりません」みたいなところもありますが、ちょっとしたこともググれないと却ってエンジニアからしたら非効率ですし、ファイルストレージなども全てアクセスできないようにするのは管理する意味でも手間がかかりますね。

なのでここでの問題点は言ってしまえば、コンプライアンス教育とか、社員ではない外部の人間にしても契約時の認識共有とかになるのかな…。

ちなみに経験的には、「大企業だからしっかりしてる」ということはあまりないです(小声)

もちろんそういうところもあるでしょうが、大企業でも案外内部の管理が緩かったりなんでこんなことやってんの?みたいな開発の仕方をしていたりしてるところが結構あります(小声)

問題点4

これ、直接この件が悪いところではないんですけども、関連しそうなので言及します。

ITエンジニアは他の業種と比べて、就業場所の縛りも緩く、最悪電源とネット環境があれば仕事はできるような場合がほとんどです。なので、COIVD-19の流行も受けて、以前よりもテレワークが推奨されるようになっていると思います。弊社は違いますが。

そこで、情報共有をどうするかとか、情報漏洩をどう対策するかなどといったことをアレコレとやりながら試しているようなところが多いです。

弊社も実は、情報漏洩したらヤバいじゃんというところでテレワークに踏み切れていないという事情もあります。COVID-19も東京や大阪ほどは流行していないというのもありますが…。

そこで今回のような件があれば、「やっぱり情報漏洩のリスクがあるからテレワークって難しいよね」となりかねません。個人的にはテレワークをしたいので、こういうマイナスな評価になりそうなことは嫌なんですよね…。というのが一番言いたい事でした。


  1. USBメモリの場合は物理的な紛失や破損の恐れもあるかと思います。