鼠と竜のゲーム(5) 消えたソース
その日ぼくは、帰宅してからも、寝る前に何度かT市立図書館事件についての情報をネットで検索してみた。相変わらず、Twitterや2chにはさまざまな意見や憶測や非難の書き込みが続いていたものの、大手メディアや、ネットセキュリティ関連サイトなどによる公式発表としての続報は、今のところ出ていないようだった。たぶん、エンジニアではない一般市民が、それほど関心を持てるニュースではないと判断されたのだろう。
ネットユーザによる書き込みのほとんどは、この事件の進展に寄与するものではなかったが、T署に電話で問い合わせてみた、というツイートが目に留まった。
わざわざ警察に電話をかけるとはヒマな人もいるものだ、と思ったものの、プロフィールを見ると、産業技術総合研究所の情報セキュリティ研究センターに所属する、高村ミスズ研究員だとわかった。自身のブログでセキュリティ問題を取り上げていることで有名な人だ。ぼくもたまに目を通している。過去に読んだブログの内容から判断した限りでは、きちんと時間をかけてしつこいぐらいの調査をし、的確な指摘を行っていたはずだ。この人が警察に電話をかけたのは、それなりの危機感によるものらしい。
もし、この程度の問題で逮捕されてしまうなら、一般的なクローラや、スクレイピングプログラムの作成などは、ほとんど違法ということになってしまう。たとえば、ぼくが以前に下請けで携わった配送管理システムの機能の1つとして、郵送物の追跡機能を作成したことがある。郵便のお問い合わせ番号で、日本郵便の郵便物個別番号検索ページにアクセスして、配送結果や配送完了日などを取得するものだ。処理は数分間で4000~5000件を連続して取得する性能を求められていたから、10個ぐらいのスレッドで並行してリクエストを投げざるを得なかった。これだって業務妨害罪になってしまうだろう。おそらく、高村ミスズ研究員は、この手のソフトウェアの作成が萎縮してしまうことを恐れたのではないだろうか。
とはいえ、ぼく自身がそのような心配をしたわけではなかった。小さなベンチャー企業に勤める一プログラマが、何をどうできる問題もない。それに警察がきちんと事実関係を調べれば、逮捕されてしまった倉敷さんが罪に問われるようなことはないに違いない、との思いもあった。
ところが、その翌日、この事件の一端が、直接ぼくに伸びてくることになった。
ぼくはこの会社ではまだ新人なので、毎朝、一番に出社していた。日経新聞と朝日新聞を郵便受けから回収し、セコムのロックを解除、ポットを洗ってお湯を沸かし、ゴミ箱が一杯になっていたら空にする、というのが毎朝の儀式だった。
その日もいつもの手順で一日を開始すべく、ぼくは腕まくりしながらキッチンに向かった。電気ポットの蓋を開けた途端、電話が鳴り響いた。ぼくはポットを丁寧にシンクに置くとキッチンから飛び出し、手近の受話器を取った。
「はい。サードアイシステムでございます」
『お世話になっております。五堂テクノロジーサービスの城之内と申します』聞き覚えのない若い男性の声だった。『井上様はいらっしゃいますか』
「はい、井上ですが」
答えながら、ぼくは驚きを隠せなかった。五堂テクノロジーサービス――通称、五堂テクノといえば、例の図書館システムパッケージ、<LIBPACK-IV>の開発元だ。
『失礼しました。お世話になっております。五堂テクノロジーソリューションデベロップメントDivisionで、LIBPACKシリーズの開発主任をやっている城之内と申します』
「お世話になっております」
『突然のお電話で恐縮ですが、以前、弊社のパッケージのカスタマイズをサードアイ様にお願いしたとき、井上様がご担当だったと伺っておりますが、間違いございませんでしょうか?』
資本金が数10倍以上違う企業の社員から、様づけで呼ばれるのは、何とも居心地が悪いものだった。とはいえ、わざわざ訂正するのもおかしな話なので、ぼくは素直に答えるにとどめた。
「ああ、はい」何となく用件の予想がついた。「確かに私が担当しましたが」
『その節は大変、お世話になりました』言葉遣いは丁重だったのだが、受話器の向こうで城之内氏が頭を下げている光景は、なぜか浮かんでこなかった。『それでですね、先日、T市立図書館へ大量の不正アクセスを行ったということで、ある人物が逮捕されたと報道がありましたが、井上様はご存じでしょうか』
――やっぱりその件か……
「はい、ネットで見ましたが」
『その件で、私どもも警察の捜査に協力するように要請があったのですが』
「はあ、なるほど」
『ところが、弊社のソース管理に少々問題があり、T市立図書館に納品したバージョンのソースが失われていることが判明しまして』
「それは……大変ですね」
『はい。全くお恥ずかしい限りです。それで、もしかしたら、御社にそのときのソースが残っていないかと思い、お電話差し上げた次第でして』
「ああ、なるほど。そういうことですか」
ぼくにも経験があるが、原因が何であれ、ソースを失うというのは、プログラマにとっては人生そのものを喪失するのに等しい。ただ、うちのようにバックアップ装置が揃っていない弱小ベンチャー企業ならともかく、五堂テクノのような大手SIerでもそんなことがあるとは驚きだ。
力になりたいのは山々だったが、それはできない相談だった。
「えーと、ご存じだとは思いますが、私がお手伝いさせていただいたときは、御社の開発室の中だけで実装していて、ソースはもちろん、仕様書など一切持ち出し不可だったんですよ」
確か契約書にも、一切のドキュメント・ソース類を開発室の外へ持ち出すべからず、という一項があったはずで、ぼく自身、機密保持誓約書のたぐいに、何枚も署名捺印させられた記憶がある。開発に使用するデスクトップPCはネットへの接続は不可、FDやCDなどのドライブは一切なく、USBデバイスは全て殺されていた。キーボードとマウスも、今どきPS/2だったほどだ。携帯電話は開発室の外のロッカーに入れておくことを強制されていた。
その気になれば、何らかの方法はあったのだと思うが、そこまでする気にはなれなかった。どうせ、ぼくが実装を担当していたのは、<LIBPACK-IV>のコア部分どころか、末端機能ですらなく、T市立図書館向けのカスタマイズの、さらにその一部にすぎなかったのだから。
今、城之内氏は「機密保持誓約に違反してソースを持ち出しませんでしたか?」と訊いているわけだ。たとえ持ち出しに成功していて、手元にソース一式があったとしても、素直に「はい、ありますよ」と言うわけがないことぐらい、わかりそうなものなのに。
『はい、それは承知しております』城之内氏の声に、切迫感が加わった。『通常であれば、パートナー会社様を信頼しておりますので、このようなことをお訊きすることはございませんし、仮にソースが社外に出ていたとすれば損害賠償を請求しなければならないところです』
「そうでしょうね」
『しかし、今回は、そのような規則には一切こだわっておりませんし、仮にソースをお持ちだったとしても、非難するようなことは全くございません。それどころか、前回の開発と同額程度の謝礼を考えているぐらいです』
驚きのあまり今度こそ声を上げそうになった。前回の開発と同額程度の謝礼?ソースを提供するだけで、うちの2人月分の工数に該当する金額を支払おうとは、尋常な事態ではない。
――そんなに切羽詰まっているのか
社長や営業の黒野さんが聞いたら、目の色を変えて、社内の全てのPCのHDDの棚卸しをやりかねない話だ。ぼく自身、本当にソースが手元にあったなら、迷わず差し出していたことだろう。
「あいにくですが」残念ながら、ぼくに言えるのは否定的な言葉だけだった。「本当にソースなどは持っていないんです」
『失礼を承知で申し上げますが、本当にお持ちではないということでしょうか』
「はい。持っていません」
『間違いないでしょうか』
「間違いありません」ぼくは、ふと思いついた。「同時期に御社で開発をしていた会社が、何社かあったと思うのですが、それらの担当者に訊いてみてはいかがでしょう?」
『ありがとうございます。すでに確認を取っておりまして、御社と同じお返事をいただいております』
「それでは、もう、どうしようもないですね」
『……そうですか』失望のためか、城之内氏の声が沈んだ。『わかりました。どうも、お忙しいところ、お手間を取らせて申しわけございませんでした』
「いえ、お役に立てずに申しわけありません」
『失礼いたします』
「失礼します」
電話が丁寧に切られた。
昼休みに、東海林さんとランチに出たとき、ぼくはその電話のことを話してみた。
「はー、たかがソースに金を出すとはな、大企業は気前がいいもんだな」東海林さんは呆れているようにも、感心しているようにも見えた。「しかしソースを消すとはドジな話だな」
「ですよね、あんな大きな会社なのに」
「ソース管理は何を使ってたんだ?」
「gitだったと思います。五堂テクノ仕様に独自のGUIでラップしてあったんですけどね」
「gitってEclipseのプラグインあるだろ。あれだと、何かダメなことでもあったのか?」
「いえ、それもEclipseのプラグインなんですよ。五堂テクノの社内ルールに基づいたシリアル番号を付加する機能とか、あとは職位によるアクセス権限が追加されてたりしてましたけど」
「ふーん」東海林さんは首を傾げた。「VSSはたまに聞くけど、gitでファイルが消えたなんてきいたことないけどな。そのプラグインが何か悪さしたのかな」
それはあり得るかもしれない。
「でも、もし、T市立図書館のシステムで、機能追加案件とか出てきたら、どうするつもりだったんですかね」
「<LIBPACK>は、バージョン5がリリースされてるらしいから、そっちへのバージョンアップに持ち込むんじゃないのか」
「ああ、なるほど」
その話題は、そこで終わり、会社に戻った頃には、ぼくは五堂テクノからの電話のことを忘れてしまっていた。それでなくても、やるべき仕事は山のようにあり、1円にもならない電話のことを、いつまでも蓄積しておけるほど、心の空き容量に余裕はない。
結果論で言うなら、ぼくはこのとき抱いたいくつかの疑問を、もっと追求しておくべきだったのかもしれない。あいにく、予知能力を持たない一介のプログラマであるぼくが、そのことに思い至ったのは、数ヶ月先のことだった。
(続く)
この物語は事実を基にしたフィクションです。実在する団体、個人とは一切関係ありません。また司法当局の捜査方法などが、現実のそれと異なっている可能性があります。
コメント
dai
高○ミ○さんも出てきましたか。
horde
女性・・・なのか・・?
とりすが
みしゅじゅせんせいw
oh...
続きが気になるーー
techniczna
みしゅじゅ閣下ワロタw
とりあえず東海林さん=閣下の図式ではないようですね
てら
ソースがなくなったことにしてソースを持ち出しているところがあればそこに
なすりつける寸法?
なか
ソースが外部にないことを確認して、バグを修正したものを警察に提出なんだろう。
組織的なバグ隠し
プログラマー
IT時代の「記憶に御座いません」ですかね。
プログラムを抹消すれば、過失がMDISにあった物的証拠はなくなる。状況証拠では真っ黒なんだけど。
物的証拠さえなければ大企業であるMDISは安泰。
Librahack氏の個人的な犯罪の捏造など、警察の思うがままと。
exinu
城之内クンはT市図書館のソースコードまでタカシが
書き換えたってことにしたいんだな。
kyou
>プログラマーさん
一応フィクションの話ですから、ここでMDISの名前を出しちゃうのはまずいのではないかと。あとでいろいろ面倒そう。
ほまらら
>物的証拠さえなければ大企業であるMDISは安泰。
実環境という物的証拠がある状態では、ソースコード隠しても誤魔化せない気がしますね。
逆に、誤魔化しきれてシステムに脆弱性がないという話になれば、今度は1秒1回のアクセスが落ちる原因になるわけがない、と彼の無実を証明してしまうはずですし。
警察がまともならですが・・・
まあ、大企業が証拠隠しするなら、もっとシンプルな伝統的方法があるでしょう。
名前がヒントですね。
デュエルスタンバイ
通りががり
なるほど、この話ですか。
会社のインフォのページにありましたね。
実情とのギャップが楽しみです。