三井住友銀行(SMBC)などのシステムに関連するソースコードが無断公開された問題がニュースで流れました。
ニュース記事には、「GitHub」という言葉がならんでます。
IT業界の人には馴染みがある言葉だと思いますが、そうでない人にはちょっと何にかわからんといったところでしょう。
なので、「GitHub=危険」といった間違った認識をしている人もいる・・・
今回の件は「GitHubには何の問題もないし悪くもない」これだけはちゃんと認識しておいてほしい。
ここでは、GitHubとは、ソースコードの流出経緯などを紹介したいと思います。
GitHubとは何するもの?
今回のニュースで初めて「GitHub」という言葉を聞いた人もいるでしょう。
IT業界の人でないとなかなか触れる機会がないと思いますので超雑に説明します。
GitHubはソースコードをネット上で管理するためのサービスになります。ソースコードを公開したり、非公開(プライベートリポジトリ)を作成することができます。
※今回のニュースで問題になったのは全世界に公開してたことが発端。
運営はGitHub社が行っており、2018年にはMicrosoftの傘下になりました。
無料でも利用できる。有料プランになれば使える機能が増えます。
今や必ず必要と言われるぐらいGitHubは普及し世界中で利用されてます。
基本的に企業でGitHubを使った開発を行う場合には非公開で行われます。まぁ当たり前ですけどね。
ソースコードの管理って何するの?
IT業界でない人にとっては、ソースコードを管理って何するのと思われるので、また雑に説明
システム開発など、1人で行っているわけではありません。
複数人で行うことが多い、そのため1つのファイルを2人同時に編集してしまったや、間違って上書きして、先の編集内容が消えてしまったというようなことが起こります。
※サルでもわかるGitより拝借
更新履歴を保存しておいて、ファイルを過去の状態に戻したり、編集箇所の差分を表示させたりと多岐にわたって管理します。
ことの発端は?
先にも記載しましたが、GitHubはソースコードを管理し公開したり非公開にすることができます。
なぜ、ソースコードを公開する必要があったのか。
発端はソシャゲ・・・
「艦隊これくしょん」通称:艦これ、でのいざこざが発端になります。
艦これの配信者と流出させたS氏がTwitter上で口論になりました。配信者はS氏の過去のツイートを手繰り、S氏のGitHubアカウントを発見これを見た配信者のリスナーN氏がGitHub上に上がっているコードを見たところ「smbc」の文字を発見する。
88本ものソースコードやその断片がありSMBCやNTTデータの名前また警察関連のデータベース変数定義と思われるものがあったそうです。内20本ほどは自作の練習用と思われるものだったそうです。
※N氏による解析
本物なのか真偽が不明でしたが、29日14時30分にSMBC・三井住友銀行は日経クロステックのインタビューで以下のよう回答
なぜソースコードを公開したのか
SMBCがソースコードが本物と認めたわけですが、内容は6年以上前のもので、基幹系などの重要なものではなかったわけですが、SMBCが開発を委託した先経由でソースコードが流出していることが明らかなわけで、大問題になった。
なぜS氏はソースコードを公開したのか
S氏は自身のTwitterで「年収診断サービスにアップするためにGitHubに登録した」とツイート
※現在は削除されている。
年収診断サービスって何?となりますが、どうやら、「Findy」というエンジニア向け転職支援サイトにGitHubにアップしたコードを読み込み、そのコードを分析しスキル診断を行い推定年収を出すというサービスがあるようです。
しかしこのS氏、現在Twitterは非公開になってますが、それまでに、いろいろやらかしてそうです。
話題のSMBCのコードをGitHubにpushしてしまった年収300万の人、まだ発言残ってるな。
GitHubが何かもご理解されていないと思われる。 pic.twitter.com/lpxvC071jt— かと卯 / NAGOYA WITH MEIKO (@hiro32kato) January 28, 2021
魚拓から見る限り、GitHubを理解してない上に守秘義務とか分かってなさそうです・・・
GitHubが悪いのではなくモラル欠如が問題
システム開発で作られたソースコード群は基本的に納品する物です。ほとんど場合は納品するソースの知的財産権は納品先にある。
また、開発を受諾する際には機密保持契約書などの契約を交わします。
基本的に外部に持ちだすや第三者へ公開するなどは禁止されているはずです。
なので、完全にソースコードを漏らした人のモラルの欠如が招いた結果です。
会社経営者は今頃、青くなってるでしょうね。なんせ、「たまたま酷い従業員がいまして」なんて言い訳は通用しないだろうからね。
もう会社全体の信用がガタ落ちだろうし、業界内ではあの会社かぁとなってるでしょうからね。
知財や契約の知識は従業員教育でしっかり教えるべき
IT業界の構造にも問題はあるんですけどね・・・
多重下請けによる構造の問題
IT業界だけではないが、多重下請け構造がIT業界のエンジニアを苦しめている。
2次請け、3次請けと下に行けばいくほど、取り分は少なくなる。ようは中抜きされるわけです。
中抜きはまで行かないが、元請けが要件定義、基本設計、2次請けが詳細設計といった感じで分担されることは多々ある。
客先常駐スタイルの開発現場で、元請け企業の人に話を聞こうとしたら、その人も別の会社から派遣され常駐しいている人だったなんてことよくある。
自分も過去に経験したことがあるのが、所属会社を偽って現場に入ることもある。
大きなプロジェクトになると多くの企業と人が関わります。多重下請けがすべて悪いとは言わないが「どこの誰かもわからない人間」いるのは確かです。
過去にもベネッセの顧客情報最大で3500万件が流出した事件は派遣社員のエンジニアが行ったものでした。
どうすれば防げるのか
システム開発では顧客情報を扱うことや機密情報を取り扱うことも多々あります。プログラムそのものが機密情報となることが普通です。
発注企業も元請け企業もプロジェクトメンバーの本当の所属すべてをだれも把握してないことが問題だと思ってます。
プロジェクトメンバーの身元を把握し、知財や契約の知識へのコストをかけ教育し、エンジニアの待遇を改善することが重要なんではないでしょうか。
「GitHubを禁止」発言は無能
今回のニュースでTwitter上で私が幾つか目にしたのが、「ついにわが社も上層部がGitHubは大丈夫なのかと聞いてきた」などのツイートを見かけた、ネタなのか真偽不明ですけども。
正直、GitHubはもうインフラと言っていいほどIT業界には浸透していると思います。禁止なんかされた日には仕事にならないと思います。
会社側としても、GitHubを利用していたら、うちは大丈夫だろうか?と思ってしまうのもわかる。
しかし、悲しいことに安易に「GitHubは危険だから禁止」や「うちのソースを点検しろ」など行ってくる可能性があると思います。
はっきり言って、これを言い出す人は「無能」です。
こういう発言をする上司や上層部がいる会社に勤めているエンジニアの方、転職したほうがいいです。あなたの仕事たぶん、ちゃんと理解できてないと思いますよ。なので社内評価も低いかもしれませんよ。
とはいえ中々、反論できないという人もいるでしょう。
そんな人は下記のページを見せつけてあげてください。
GitHubに関する対応とお願い | CSAJ 一般社団法人コンピュータソフトウェア協会
GitHubの設定やリポジトリの権限など、今回の件に対する対策方法などを紹介してくれています。