プロジェクトオーガナイザの吉田聖書です。
今日は、GitHubに機密情報をコミットすると警告を発するツール「Deadshot」を取り上げます。
公式サイトはこちらです。
Deadshot: Keep Sensitive Data Out of Code
まず、今回の話と直接関係はないのですが、今年の1月に、あるエンジニアが仕事で作成した(つまり自分のものではない)ソースコードを、GitHubにアップロードした事件がありました。機密情報の漏洩ということで騒ぎになりましたが、覚えていらっしゃるでしょうか。
何でも、漏洩させた本人はソースコードから年収を査定するサービスを利用するために、つまり転職活動に備えるためにそのようなことをしたということなのですが、GitHubのソースコードから年収を査定してくれるサービスなんてあったのかと衝撃でしたね。
個人的には、ソースコードだけ見ても年収なんてはじき出せないと思います。システム開発は共同作業が基本なので、第一本当にその本人が書いたコードか分からないではないですか。どういうロジックで判定しているのか興味があるところです。
本題に戻る前にGitHubについて簡単に説明すると、その前にGitというソフトウェアがありまして、それは主にソースコードを管理するためのデータベースのです。基本的には共同作業する時に誰がどんなコードを書いたかを履歴を含めて管理するというものです。複数の人が同じソースコードを編集して競合してしまった時、相手が編集していたコードが古い状態に戻ってしまう、いわゆる先祖返りを防止する機能なども提供しています。GitHubはGitの機能を提供するクラウドサービスです。
※ この記事は、先日公開した以下の音声コンテンツを基に編集したものです。
本題に戻ります。
通信プラットフォームを手掛けているTwilioというアメリカの会社があるのですが、ご存じでしょうか。システムから自動で電話を架けたり、受けたり、また、ショートメッセージを送る機能をサービスとして提供しています。私は以前携わった案件で利用していましたので知っていますが、多くの方はサービスを利用していたとしても会社名までは馴染みがないかもしれません。
そのTwilioが、「Deadshot」というツールを開発してオープンソースソフトウェアとして公開しているという話です。どのようなツールかというと、GitHubにインストールして使うアプリで、開発者がGitHubにコミットすると、機密情報が含まれていないかチェックを行い、もし機密情報が含まれていたら警告メッセージがSlackに通知されるという機能を提供しています。ソースコードをGitHubに送信した時に、機密情報が入っていないかチェックするというのはアイデアとしてはいいと思います。
ただ、これ、ちょっと運用が難しいかなと思ったのは、冒頭取り上げた事件のように、個人のアカウントにアップされた場合というのはそういうチェックは走りませんので、漏洩は防げないという点です。それと、機密情報かどうかという判定は、正規表現、つまり文字列のパターンで判定するそうなんですよ。それはつまり「何が機密情報か」という定義は、事前に定義しておかなければいけないということなんですよね。それは実際問題として難しくないでしょうか。
「うちはこういう機能入れてるからね」とアナウンスすれば、ある程度の抑止力にはなるようには思いますが、技術者の中には「どこまでチェックできるのかな」って試す人も出てくるんじゃないかなと思いますし、抜け道を見つけようとする人は普通に出てくるのではないかと思いますね。
自動的に検知して通知するという発想はとても良いと思うのですが、うまく機能しないのではないかというのが個人的な感想です。まあ、このツールはまだリリースされたばかりですので、成功事例・失敗事例がフィードバックされてより良い機能に成長することを期待したいところです。
関連記事
プロマネの右腕
プロジェクトマネジメントの支援を行っています。
新サービスの企画を任されたけど どう進めていいか悩んでいる担当者、
部下に新しい企画を任せたけど このままで大丈夫か不安な管理職の方、
以下のサイトをご参照ください。
https://www.crossidea.co.jp/services/right-hand-pmo.html
YouTubeにて動画配信中!
プロジェクトマネジメントのノウハウをYouTubeで配信しています。
ブログと併せてご活用ください。