岡崎図書館HP大量アクセス事件について

Twitter#librahackTogetterlibrahack高木浩光氏のブログなどをつまんで見れば把握できるんですが、時系列で並んでいなかったり、専門知識が必要だったりで朝日新聞の記事だけではちょっとつらい。まとめてみた。



登場人物

  • 中川氏
    ソフトウェア開発者。 本事件の犠牲者。図書館から新着図書データを自動で取得するプログラムを開発、実行した結果、図書館のシステムが脆弱だったためサービスが停止。図書館に被害届を出され、警察に20日間の勾留と取り調べを受ける。a.k.a. librahack
  • 岡崎市立中央図書館
    図書館のシステムがDOS攻撃を受けていると(勘違い? 虚偽?)、被害届を出してしまった
  • 三菱電機インフォメーションシステムズ株式会社(MDIS)
    図書館システムを開発。システムの脆弱性を知っていながらそれを通知、修正しなかった不作為が疑われている。
  • 愛知県警
    図書館からの被害届を受けて中川氏を20日間拘留。
  • 高木浩光
    ソフトウェアセキュリティ専門家。本事件のホームズと言ったら言い過ぎか? 有名人だから詳しくは検索してください。
  • 朝日新聞
    オールドメディアなどと揶揄される大新聞ですが、今回はマスコミとしての役割は果たしたんじゃない?



発端(〜2010年4月)
図書館の検索システムが使いにくいと感じていた中川氏は、自分専用のシステムを作るために図書館システムから自動的に新着図書データを取ってくるプログラムを開発していた。これは例えば、twitter2chから定期的にtweetやスレを読み込むbotのようなもの。アクセス頻度は「1アクセス毎に1秒のウェイト」なのでサーバー応答速度にもよるが、サーバーを落とすことが目的のDOS攻撃ではなかった。(DOS攻撃とはサーバーに故意に異常な頻度でアクセスして、サーバーを停止させる方法。)(ただし、図書館システムとしては、人間の手動による操作のみを想定して作られているので、1秒ウェイトで自動アクセスするのは想定されたものではないので、そこはtwitter botと少し違う。twitterAPIを公開しておりbotのようなアクセス方法を許容している。)

中川氏はプログラム開発中に図書館システムがエラーを返してくることに気づいたが、まさか自分のプログラムが頻繁にシステムを停止させるという深刻な事態を起こしているとは考えなかった。



被害届(4月15日)
システムが停止することについての市民からの苦情を憂慮し、図書館愛知県警に被害届を提出。



逮捕(5月25日)
中川氏偽計業務妨害罪の疑いで愛知県警に逮捕される。要するに、図書館システムにアクセスするプログラムがDOS攻撃をしているとみなされた。



不起訴処分(6月14日)
中川氏は、不起訴処分(起訴猶予処分)となる。中川氏は自身のブログ(librahack.jp)で事の顛末を公開し、この頃からTwitterを中心として議論される。氏本人は割と冷静に淡々とし、「警察や検察の方々には感謝」、「一応集結」と事件は終わりかと思われたが・・・



追跡(7月〜)
7月10日に自身のブログで本事件の見解を述べた後、ぷっつり更新が途絶えていたけど、高木氏は徐々に外堀を埋めていた模様。

そして、
http://twitter.com/hiromitsutakagi/status/20215404571


チェックメイト。しばらく黙ります。」(8月3日)



真相(8月21日)
朝日新聞が冒頭の記事を公表。朝日新聞の神田記者twitter上で取材の経緯を公表。同時に高木氏も調査結果を自身のブログに公開。

ちょっとこの記事はソースコードとか出てきて技術的に難しいんで、簡単に説明します。

  • 三菱電機IS(MDIS)の図書検索プログラム「WwKensaku.aspx」を、Googleで検索してみた。
  • 他の図書館のサイトが見つかった。(同じくMDISが開発したシステム)
  • 間抜けなことに、パスワードがかかっていない状態で中身が見えた。
  • ソースコードを追っていくと、まるでプロが書いたとは思えない直しやコメントが・・・ってそんなことはどうでも良い。ソースコードを読むと、2006年3月から2007年2月の間にシステムが停止してしまう本事件と同様の問題を修正していたことが分かった。つまり、本事件の原因が自分たちが作ったシステムにあると、MDISは把握していたはずだ!




あらすじはここまで。長くてすいません。



どうしてこうなった

図書館側のITに関する無知、無関心と危機管理の欠如から来る、開発保守会社へのオンブでダッコ的な依存が背景にありそう。多分、被害届けを出すまでにこういうやり取りがあったと思われる。


図書館:「なんだか、よく分からんけど、お前が作ったシステムしょっちゅう止まるんだけど?」
MDIS:「調べました。なんか頻繁にアクセスしている奴がいます。うちのせいじゃありません。」
図書館:「おk、被害届出そ。」

誇張じゃなくて、多分本当にこの程度だったのかもしれません。
こういった話もありますね。


図書館の責任者が非番の岡崎署警察官に「なんだろうねこれ」という感じで相談 → 翌月、愛知県警
のサイバー課が図書館に被害届を出すよう促す → 図書館に言われるがままに三菱電機ISがログを抽出
して提出(何も口を挟まずに) という流れのようです。



じゃあ、MDISは? 高木氏の調査の結果、システムの不備を認識していたはずなので、あり得るのは

  • 情報共有の不備で横展開していなかった。そのため、担当者が知らなかった。
  • 責任を逃れるため、中川氏に罪を押し付けた。

前者だったら、CMMIレベル5CMMIっていうのはソフトウェア業界の認証でレベル5は最高を意味し、NASAや軍の案件を受注できるレベル)が泣く、後者だったらもっと悪質。しかし、MDISともあろう企業がどうしてこのような対応をしたのか全く理解に苦しみます。本事件のアクセス頻度がDOS攻撃でないのはそれを専門としている彼らなら分かるはずでした。単純に「開発当初の要件を超えるアクセス率なのでバグではありません」って言えば良かっただけなのに。
被害届提出に関してMDISの意思が関係しているのか明らかではなく、前述の高木氏のtweetからすると愛知県警から促される形で図書館は被害届を出したとのこと(それだけでも十分浅はかですけど)。しかし、少なくとも20日間の間、被害届取り下げの動きは無く、ひっそりとシステムを改善して有耶無耶のうちに隠蔽化するつもりだったのでしょう。



ちなみに、図書館側はこの期に及んで、こんな頓珍漢なことを言っている。いまだにMDISの言うことを鵜呑みにしているんだな。


岡崎市立図書館長の発言の件ですが、館長は「(librahack氏のプログラムに)違法性がないことは
知っていたが、図書館に了解なく繰り返しアクセスしたことが問題」としているそうです。


図書館の大羽良館長は「通常の利用者とは違う方法で大量のアクセスがあり、想定していなかった。
図書館には非がなく、男性のプログラムの方法がまずい」と話している


大羽良・同館長は21日、同市役所で報道陣に対し、「(男性の自作プログラムに)違法性がないことは
知っていたが、図書館に了解を求めることなく、繰り返しアクセスしたことが問題だ」と説明した。
(中略)
ホームページが閲覧できなくなったことについて、大羽館長は「図書館側のソフトに不具合はなく、
図書館側に責任はない」との認識を示した。

本当はMDISにオンブダッコでわかりませ〜んなんだけど、そんなこと立場上言えないからこういう答えになるんですね。MDISのページには、こんなに誇らしげに紹介されちゃってるしねぇ。

正しい答え方は以下のいずれか、

  • 「お陰さまで図書館利用者が増えており、当初想定していた以上の利用数、利用方法のアクセスがあった。次期システムではシステム信頼性を改善し、より多くの利用者の期待の答えます。」
  • 「すべての責任はシステム設計者のMDISにあります。」
  • 「調査中です」で逃げつつ、MDISの責任とするために高木氏から情報提供を受ける

ちなみにこの図書館側の言動は専門的には「IT版ストックホルムシンドローム(笑)」と呼ばれるものです。



愛知県警もお粗末で誤認逮捕と呼ばれても仕方が無い。警視庁か京都府警ならIT犯罪にも精通しているだろう。
神田記者の取材によると、中川氏がDOS攻撃をしていたのではないことを警察は把握していたというがなぜ20日間も拘留する必要があったのか明らかになっていないように思う。


なお、捜査関係者の話では、警察・検察とも1勾留を過ぎた時点くらいでは、librahack氏がサイバー
攻撃を仕掛けていたわけではないということは認識していたそうです。



今後の展開ですが、企業間のシステムの受注ならばシステムに不備があった場合、発注者が受注者に対して請求をする(例えば、東証富士通を訴えたりする)ところですが、お役所ですから積極的には期待しにくいですね。上記の館長の発言からしても関係ズブズブっぽいですし。期待できるとすると、中川氏名誉毀損なりで図書館を訴えることです。さすがに訴えられれば図書館も責任の所在を明らかにしなければいけなくなります。

でも、氏のブログとか読んでも、告訴とかいう雰囲気じゃ無いんだな・・・。

このまま、有耶無耶にやってしまったらbotすらも気軽に作れなくなるよ。



最後に、高木△



追記: