SMBCソースコード公開案件

戯言

GitHubでソースコード公開

既に話題に乗り遅れた感があるのだけれど、先日GitHubに銀行等で使用されているツールのソースコードが委託先から公開されてしまうという、なんとも残念な事件がありました。

公開の意思があったわけではなくて、ソースコードで年収を測定するといういわば診断メーカーみたいなお遊びサイトに渡すために、自身のJavaフォルダの内容をGitHubにアップロードしたというものでした。

本人はGitHubの仕様を知らなかったために公開されてしまったのですが、不幸な事に業務で開発した顧客向けのソースコードが入っていたので一気に炎上大騒ぎになったものです。幸いにも私は全く関係しないものの、これはヤバいことが起きたとワクワクしてしまいましたよ。

Twitterでの様子を伺う限り、本人はしれっとしたもので何が問題なのかよくわかっていないようでしたが、周囲は天地がひっくりがえるような大騒ぎでした。ツイートだけでは詳細が分からない点も多いのですが、ようやくすると次のような感じです。

  • 数年前の案件のソースコードである
  • 契約には著作権について触れていなかったと思う
  • NDA(守秘義務契約)はあったが時効と思う。
  • 内部のツールで重要な事は扱っていない
  • 当時の会社は既に倒産もしくは解散している

時間帯が夜間だった事もあってか営業には翌日連絡するとかツイートしていて、「いや、今すぐ叩き起こしてでも連絡しろよ」ってそっと感じたものです。

IT業界の一面

公開されてしまったソースコードを調査した方によると確かに重要な部分は含まれておらず、そのまま利用可能な形でもないようなので実際の被害は発生しないようです。

ただ、今回の一件はIT業界のヤバい一面を浮き彫りにしてしまった感があり、これをきっかけに少しでも改善されれば良いなと思います。

多重下請け構造

企業がITシステムを開発するときには大手のSIerと呼ばれるシステム開発会社に委託することが多いのですが、システム開発会社がある程度システムの仕様を決めた後、実際の開発には下請け開発会社に依頼してしまいます。そしてさらに下請けにと多重の下請け構造ができています。この構造には委託であったり派遣であったりするのですが、いわゆるピンハネ的な行為が行われる元ですし、必要な契約内容が抜けてしまうなど責任の範囲が曖昧になってしまう事もあります。

発注企業が契約内に請負の禁止等を盛り込む事もできますが、そうすると受注できるシステム開発会社が限られてしまったり、金額が跳ね上がる事も考えられます。安く発注できるということは下請け会社にはより少額しか渡らないという事にもつながるのですが。

ソースコードの持ち出し

一般にソースコードは持ち出し厳禁です。たとえ公開しても全く無害なツール類であったとしても、コメントなどに組織名が書かれていたりします。それが外部に流出すれば「○○社のソースコード流出」というセンセーショナルな見出しになります。

元々流出しないように管理されていたのですから、組織の管理者からすれば他にも流出したソースコードが存在するのかどうかは気にかかるところでしょう。

流出したのは数年前のソースコードですから、昨今のようにテレワークといった体制ではなく、客先常駐だったと思われ、USBメモリ等を用いて持ち出したのだと考えられます。しかし、セキュリティが厳しいところではUSBポートを監視しているのが通例だと思うのですが、無かったのでしょうか。まさか本人のPC持ち込みで開発していたとかは無いとは思いますが。

会社が倒産もしくは解散

既に開発した会社は無くなっているので契約云々で責任をどうこうということはできなくなっています。依頼した側としては己の管理不足を責められるのみという悲しい事態になっていてホノボノしてきますね。

で、どうするのか

開発関係者の身元

システム開発を委託するにあたって、請負(下請け)を禁止することは現実的ではありません。今のIT業界がそのようになってしまっているので。なので下請けを使うのであれば身元をはっきりさせれば良いように思えますが、実はそんなに簡単では無いのです。

元請け会社が下請けに出していたとしても、所属は元請け会社として名乗ることが普通に行われていますので簡単にはわかりません。それは委託だったり派遣だったり出向だったりその契約形態は様々です。そして実はエンジニア全員が下請け会社だったりすることもありえます。もしそうなら元請けにシステム開発を依頼したりせず、直接下請けだった会社に発注すれば良くなります。ただ今までの取引実績から関係が難しくなる一面も出てきます。もちろん取引をするにあたっての与信といった話もあります。

ソースコードの管理

システムの開発には大量の資料が作成されます。それはソースコードだけではないのですが、今ではどれも電子的な文書として作成されますのでとりあえずソースコードの管理としてみます。

今回流出したのはGitHubからですが、GitHubであってもきちんと設定すれば関係者のみでの共有とできます。しかしそもそもクラウドにデータを置くことを禁止している場合も少なくないのです。ではてソースコードの管理をシステム部門で開発環境用に用意できるのかと言えば少々疑問です。そもそもその開発環境を誰の責任で開発運用するのかと言う鶏と卵のような問題ができてしまうからです。

一朝一夕には解決しない問題のように思えますが、システム部門は外部にシステム開発委託するだけでなく、それなりの開発体制と管理体制が求められていくのではないでしょうか。

いっその事、システム部門丸ごと外部にしてしまうって事も……無理かな。

コメント

タイトルとURLをコピーしました