メインメニューをとばして、このページの本文エリアへ

news letter
RSS

突然、ある技術者が逮捕された:記者が掘り下げた岡崎市立図書館事件

神田大介(かんだ・だいすけ)記者 朝日新聞名古屋本社 報道センター 社会グループ

 5月25日夜、男性は岡崎署の留置場でひとり、なぜこんなことになってしまったのかを自問した。逮捕前の取り調べでは気が動転していたし、身重の妻の元へ早く戻りたい一心で言葉を飲み込んでいた。寝付けないまま、これまでの経緯やプログラムの仕様を思い出し、問題点を整理した。

 岡崎市立図書館の利用を始めたのは2009年2月。同市は知立市からごく近いが、蔵書数は約60万冊と知立市図書館の3倍近い。1年あまりの間に100冊近くを予約して借り、すっかり常連の利用者となっていた。借りる本を選ぶ際に参考にしていたのが図書館ホームページの新着図書情報だったが、これが実に使いにくかった。2カ月分をいちどに表示するうえ、書名の五十音順に並んでいるため、どれが最も新しく入荷した本なのかがわからない。そこで、新着図書ページに掲載されている本のデータを毎日集め、差分を抜き出すことでその日入荷した本を調べるプログラムをつくることにした。

 それに加え、ネット通販最大手のアマゾンなどから読者が書いた感想を取り込み、新着図書のデータとともに表示させる仕組みを作成。将来的には、図書館の予約者数が少なければ借り、多ければアマゾンから購入するところまでを自動化すれば便利だろうと考えた。こうした手法は、別々のサイトから必要な情報だけを集めてスクラップする「マッシュアップ」と呼ばれ、ネットでは近年広く使われている。プログラムはおよそ2時間ほどでできあがった。以前、アマゾンから興味のある本を買う前にオークションサイトなどの情報を集め、同じ本がより安値で売られていないか比較するプログラムを作った経験があったからだ。

 こうしたプログラムを使う場合のマナーとして、相手方のサーバーに迷惑をかけないようにしなければいけない。そこで、「シリアルアクセス」と呼ばれる仕組みを実装した。相手に対して同時に複数の要求を送ることはせず、一つの要求に対して応答があったことを確認したら、次の要求を送るという方式のことだ。このやり方なら人間がホームページにアクセスしたときと同じ程度の負荷しかかけない。念には念を入れて、アクセス数は1秒につき1回になるように調節をした。たとえば相手からの応答が得られるまでに0・5秒かかった場合、0・5秒を待ってから次の要求を出す。0・1秒で応答が返ってきても、0・9秒は待つ。十分な相手方への配慮になると考えた。

 3月14日、男性は完成したプログラムを、「さくらインターネット」のレンタルサーバー上にセットし、データの収集を始めた。図書館で新着図書配架の作業が一通り終わるであろう時刻を午後6時と想定し、その時間になると自動実行するように設定した。プログラムは順調に動いているように見えた。

 ところが、3月25日になって、データが全く取れていない日があることに気づいた。原因を調べてみると、たとえば「201.asp」だったはずのアドレス名が、「201u.asp」のように末尾にアルファベットが付けられている。そこでプログラムを修正、目次のページに張られているリンクを毎回読み込み、そのページへ直接飛ぶようにした。相手の仕様が公開されていないので、仕様を予測しながらプログラムをつくらなければならない。そういう運用パターンだったことに自分が気づいていなかっただけだろう、と解釈した。

 プログラムは再びデータを読み込むようになったが、4月1日になって、またしてもデータがうまく取れていないことに気づく。今度はプログラムを置いたレンタルサーバーの問題ではないかと疑った。さくらインターネットは一つのサーバーコンピューターを複数の顧客へ同時に貸し出すことで、レンタル料金を安く抑えている。誰かが突出した動きをすれば他の人に迷惑がかかってしまうため、ホームページには注意事項として「実行頻度が1時間以内に連続する場合や、CPU処理時間が60秒以上連続で利用される場合、予告なく設定解除される場合があります」と明記されている。男性はそれまでにも、別の自作プログラムを動かして利用制限をされた経験があった。

 ホームページから取得してきたデータは、それぞれのページによって書き方が微妙に異なる。プログラムはその中から特徴を捜し当て、データとすべき部分を抽出する。この処理は「パターンマッチング」と呼ばれ、コンピューターにかなりの負荷をかける。

 そこで、プログラムを自分のノートパソコンから動かすことにし、4月2日、自宅の回線を通してプログラムの実行を始めた。さくらインターネットのシステムに依存して行っていた自動実行はできなくなったが、再びデータは問題なく取れるようになった。やはりレンタルサーバー側の問題だったと確信、その後もほぼ毎日、逮捕される前日の5月24日までデータの収集を続けた。動作はまったく順調で、男性からみて、図書館のコンピューターに過大な負荷がかかっていることを疑わせるような兆候はなかった。

 何と言っても、このプログラムはシリアルアクセスだ。サーバーが同時に相手をできる利用者の数には上限があり、このプログラム以外にも新着図書ホームページを利用する人は当然いただろうが、どんなに性能の低いサーバーでも1秒に数十回程度のアクセスならさばく。自分のプログラムは数十回のうちの1回を使うだけで、常識的に考えてサーバーが落ちるわけがない。警察が調書に書いていたDoS攻撃とは、この上限を超えるために、一度に数千、数万というアクセスを集中してかける。このプログラムとは明らかに性質が異なる。

 男性は意を強くした。警察の言っていることはおかしい。

◇ツイッターの議論に希望を持った◇

 翌26日の正午ごろ、身柄を送られた名古屋地検岡崎支部での調べに対し、男性は攻撃の意図をはっきりと否定した。DoS攻撃ではないこと、プログラムには図書館側への配慮がしてあることを説明。業務に支障が生じたのだとすれば図書館システムの方に問題があるのではないか、と指摘した。

27日から本格的な取り調べが始まった。言葉を交わす中で、警察、検察ともに技術的なことに詳しい人はほとんどいないとわかった。時間の多くはプログラムや専門用語の説明に費やされた。この問題を正確に理解できている人間は、自分以外には誰一人としていないのではないか。男性は絶望的な気分に襲われた。

 転機になったのは逮捕から3日後、父母が接見にきたときのことだ。それまで家族には一切連絡を取ることができていなかった。「心配していないので、頑張りなさい」と話す母の顔を見て、少し安心した。一方、父は「ツイッター見たよ」と何気なく話した。「えっ、もう(情報が)広がってるの?」と聞き返すと、母は小さくうなずいた。ツイッターでは非難されているのだろうと思いこんだ。ネットではこの種の事件が起きると、逮捕者をはやし立てることを過去に見ていたからだ。何を言われているのか気になったが、接見では事件に関連のあることは聞けず、もちろん留置場からネットを見ることはできない。

そこで後日、取り調べの間の雑談で「ツイッターで話題になっているそうですね」と水を向けてみると、県警の取調官からはこんな返事が返ってきた。それぐらいのアクセスでダウンする方がおかしいという意見や、私も同じように困っているのでよく逮捕してくれたという両方の意見がある。警察や図書館に問い合わせの電話もきている。

 「おかしい」と思う人が1人でもいるという事実を知り、希望を持った。ネットにはITに詳しい人が多い。しかも、警察はツイッターを読んでいたし、電話も受けていた。考え方のズレに気づくかもしれない。

 さらに、接見した当番弁護士からは「普通に利用して問題が起きたなら図書館に問題がある。不起訴の可能性があるから、きちんとした利用目的があったことを主張し、納得できないことにサインをしてはいけない」と励まされた。弁護を依頼しようとすると、「君ひとりで頑張って、どうしても駄目なら呼んで。弁護士費用は35万円かかるからね」と止められた。大金をつぎ込む必要はないという趣旨だと理解した。

 その後は、調書に自分の納得できない文言を使わせないように努めた。結果的に図書館に迷惑がかかったとしたら、それについては反省する。しかし、悪意はないし、異常なアクセスとは言えない。むしろ図書館のシステムに問題があった可能性が高いのではないか。そんな主張を繰り返し、プログラムについて丁寧に説明した。

 次第に、警察の態度に変化が表れるのを感じた。

 押収したパソコンから「Librahack」(リブラハック)と題したロゴ画像が見つかり、やはり悪意があったのではないかと、一部の捜査員が色めき立ったことがあった。Libra(りぶら)とは図書館が入っている岡崎市の総合施設の愛称だ。それをハックするというのか――。しかし、取調官はウィキペディアで「ハッカー」と「クラッカー」の違いを調べていた。前者はコンピューターに関する技術に熟達した人、後者は悪意のある者を指す。男性が「ライフハックという言葉があるように、良い意味のハックです」と説明すると、取調官は「わかった。検察官に突っ込まれるかもしれないから、ちゃんと説明の用意をしておいて」と笑いながらアドバイスをしたという。

 最後の取り調べがあったのは6月10日。結局、検察による取り調べは、逮捕翌日の送検時も含めて3回のみだった。相手の検察官は主張を理解しながらも、プロの技術者がなぜ図書館サーバーで起きていた事態に気づかなかったのか、どうしても納得がいかない様子だったという。それでも、男性によると、調書には逮捕当初と比べて主張が大幅に採り入れられ、最終的には以下のような文章になった。

「私は岡崎市立中央図書館のホームページにアクセスするプログラムを使って、新着図書のデータベースを作成した。ウェブサーバーからの応答を受信した後、次のリクエストを送信していたので、負荷は高々1リクエスト分であった。ウェブサーバはデータベースサーバとの接続を解放していないため、新たにリクエストを受け付けた時、データベースサーバとの接続が不可能になりエラーを発生した」

 一方で男性は、自分の行為が結果的に業務妨害罪となったことについては否定せず、調書上もそのように表現されたという。週末をまたぎ、月曜日の6月14日、男性は不起訴処分で釈放となった。その内容は、犯罪の成立を認めるだけの証拠がない場合の「嫌疑不十分」ではなく、犯罪は成立するが処罰の必要はないと検察官が判断した場合の「起訴猶予」だった。

 男性は、起訴されて裁判になることを最も恐れていた。そうなれば少なくとも3カ月は妻の元へ戻れないに違いない。仮に無罪を勝ち取ることができたとしても、出産に立ち会うことはできなくなってしまうだろう。それだけは何としても避けたかった。自分に罪がまったくないと突っぱねることはせず、図書館に迷惑を掛けていたとすればそれは自分の責任で、申し訳ない、と頭を下げた。

 この日、不起訴となった理由を検事に尋ねると、「反省しているから」と説明されたという。

◇ホームページ公開、取材が始まった◇

 緊張と不安に心をすり減らした21日間は終わった。ビジネスでは、契約中の顧客に適切な対応ができなくなって料金を請求できなくなるなどした影響で、月収の7割近くに当たる約55万円の損失を被った。

 幸い、妻をはじめとする家族の体調に変化はなく、それが唯一の救いだった。

 しかし、ネットには実名で自分の逮捕を報じる各社の記事がそのまま残っていた。短い記事からはいったいどんな事件だったのか、厳密なことはわからない。不正確な記述も散見される上、まるで自分が図書館に恨みでも抱いていたかのように読める記述もある。自分で説明しなければ全てがうやむやのまま終わってしまうと思い、「librahack」のドメイン名でホームページを立ち上げることにした。

 男性はホームページ制作にあたり、弁護士に相談をした。起訴猶予になったことで事件としては終わったと解釈して良いのではないか、事実を公表することは問題ない、と提言されたという。この際、捜査当局や、図書館システムを制作、管理している三菱電機インフォメーションシステムズ(MDIS)を訴えることについても相談したが、この場合は訴えるとすれば国が相手になり、やっても見返りはたかが知れていると言われて断念した、と男性は話す。

 6月20日にこのページが公開されると、たちまちネットで大きな関心を集めた。逮捕された「元容疑者」が自分の行為について説明することの珍しさもあるが、そこに書かれていることが事実だとすれば、多少なりともITに関する知識のある人にとって、なぜ業務妨害容疑に問われたのかが全く理解できないような内容だったからだ。男性と同じようなプログラムを自作している人も少なくなく、自分の身にも起こり得る事態としてとらえられた。ツイッターやブログでは、今回の逮捕の問題点が技術、法律の両面から盛んに論じられた。逮捕直後と比べ、明らかに男性を支持し、同情する声が強くなっていた。

 記者もツイッターを通じてこのページに気づき、すぐに取材を始めた。とは言え、一般的な取材と手法に違いがあったわけではない。まず手を付けたのはすべての当事者から話を聞くことで、男性のほか、図書館、警察、検察、MDISなどを回った。さらに背景を掘り下げて調べるため、他の図書館や自治体、図書館システム業者、技術者、法律家などから幅広く取材した。

 大変だったのは、男性による図書館ホームページへのアクセスには本当に落ち度はなかったのか、仮にそうだとすれば閲覧障害はなぜ起きたのかを技術的に検証する作業だ。そのためにはIT分野に関する詳しい知識が必要不可欠になる。記者は全くの門外漢だが、一からウェブプログラミングについて勉強するわけにもいかない。そこで、信頼できる技術者や専門家を頼り、問題を理解する通訳の役目を担ってもらった。この人脈作りに絶大な威力を発揮したのがツイッターだ。ハッシュタグ「#librahack」周辺にはこの分野に精通し、かつ今回の問題を発生当初からつぶさに見ている人が多数集まっていた。当方が意図を説明すると、誰もが労を惜しまず協力してくれた。その一人が産業技術総合研究所・情報セキュリティ研究センター主任研究員の高木浩光さんだ。プログラマーの前田勝之(@keikuma)さんと、情報セキュリティに詳しい杉谷智宏(@Vipper_The_NEET)さんにも多大なご協力をいただいた。他にも名前を挙げれば切りがなく、また、表立って名前を出せない方もいるが、こうした方々の存在がなければ、真相に近づくことは決してできなかっただろう。

 こうして取材を始めてから約2カ月が過ぎた8月21日、調査報道の結果として、男性のプログラムに問題はなく、MDISのソフトが閲覧障害を引き起こす原因になっていたことを朝刊で報じた。この報道がきっかけとなって、9月下旬には図書館利用者の個人情報が流出していた問題も発覚。MDISは11月末に門脇三雄社長が会見を開き、システムの能力が不十分だったうえに障害の原因究明を怠ったことを認め、「対応が早ければ不快な思いをさせることはなかった」と男性に対する謝罪の意を示した。

◇図書館側からはどう見えたのか◇

 なぜ男性は逮捕されなければならなかったのか。

全ジャンルパックなら本の記事が読み放題。