« [MEMO] エンタープライズアジャイル開発宣言 | トップページ | [岡崎図書館サイバー冤罪事件] 10月2日(土) ESD21 によるパネル討論会 @名古屋 »

2010年9月13日 (月)

[岡崎図書館サイバー冤罪事件] 大量アクセスするヤツが悪い!? 法を守ってないのはどっち?

◆ 事件のあらまし

この事件は、 逮捕された人がその後公開した Web サイト の名前を取って、 Librahack 事件とも呼ばれます。 最初に報道された頃には、 「岡崎図書館 HP 大量アクセス事件」 と呼ばれていたこともあります。

今年 (2010年) 5月に逮捕され、 報道されました。

・ asahi.com: 図書館HPにアクセス3万3千回 業務妨害容疑で男逮捕 2010年5月26日 ( 魚拓 )

しかし、 この警察発表に疑問を持った朝日新聞の神田記者 ( @kanda_daisuke ) は、 その後も事件を追い続け、 8月に何本かの記事を発表します。 この事件に興味のある方は、 必ず読んでおくべき記事です。

・ asahi.com: 図書館HP閲覧不能、サイバー攻撃の容疑者逮捕、だが… 2010年8月21日8時0分 ( 魚拓1/2 , 魚拓2/2 )

・ asahi.com: なぜ逮捕?ネット・専門家が疑問も 図書館アクセス問題 2010年8月21日11時54分 ( 魚拓1/2 , 魚拓2/2 )

・ asahi.com: ソフト会社、図書館側に不具合伝えず アクセス障害問題 2010年8月21日 ( 魚拓 )

・ asahi.com: 図書館長「了解求めないアクセスが問題」 HP閲覧不能 2010年8月22日 ( 魚拓 ) ※未署名記事。神田記者の筆ではないと思われるが不明。

神田記者 によって明らかにされたこと。 それは、
大量アクセスで Web サーバーが落ちた
というより、
Web サーバー側のプログラムのバグで落ちた

のではないかということです。

Web サーバー側のプログラムのバグについては、 産業技術総合研究所情報セキュリティ研究センターの高木浩光氏のブログに詳しいです。

Anonymous FTPで公開されていたGlobal.asaが示すもの 岡崎図書館事件(6)

三菱図書館システムMELIL旧型の欠陥、アニメ化 - 岡崎図書館事件(7)

データベースを使う Web アプリの開発者には、 おそらく一言で通じるでしょう。
DB コネクションをセッションオブジェクトに入れていた
という致命的な設計ミスです。

※ ちなみに、 これではサーバーは落ちません。 セッションタイムアウトまで新規リクエストを受け付けなくなるだけです。 実際にも、 時間が経つと復旧していたようです。 そもそも、 その間も DB を使わない画面は表示されていたし、 DB を使う画面でもステータスコード 500 を返していたそうですから、 Web サーバーはちゃんと仕事をし続けていたわけです。
 

 

◆ 大量アクセス?

ちなみに、 DB アクセスをともなう Web アプリケーションというのは、 どのくらいの処理をさばけるものなんでしょう?
岡崎図書館のシステムが導入されたのは 2005年だそうですので、 2005年の資料があるといいですね。 岡崎と似た構成、 IIS と Oracle でのベンチマークがないかと探してみたところ、 ハードウェアスペックはかなり上でしょうが、 ひとつ見つけました。

・ Microsoft: .NET 2.0 および IBM Websphere 6.0: Web アプリケーション サーバーのパフォーマンスの比較 (November 2005)

これによると、 1000TPS (毎秒1000回) といった桁の性能が出ています。 図書館のコンピューターの方が性能は低かったでしょうが、 数倍とかせいぜい10倍違うとかいう性能差でありましょう。 (搭載メモリーが少なすぎて HDD とのスワップが大量発生している、 などという事態でない限り)

この事件では、 最初の報道で 「1秒に1回程度」 とされ、 Librahack のページ でも「約1リクエスト/秒」と書いています。 上の例とは 3桁も違います。
※ 事件でアクセスしたのは、 新着図書のページからリンクされている詳細情報ページだったそうです。そこは、 時間の掛かるデータベース処理 (例えば LIKE 検索など) ではなく、主キー TosCode (おそらく「図書コード」) のみによる単純な検索だと推測されます。

ところがこの毎秒1回程度のアクセスに対して、 図書館側は 9月 1日に公表した声明では、 次のように言っています。

岡崎市立中央図書館のホームページへの大量アクセスによる障害について

短時間に大量のアクセスが行われていることがわかりました。 これによって、 それまでは問題なく閲覧できていた図書館のホームページが閲覧できない現象がたびたび発生していた

平成17年に導入しましたが、その時点で自動プログラムを用いて短時間に大量の図書データ情報を入手できるような事態は、 想定していませんでした。 今回の事例により、 そのような情報入手の方法があることを認識

また、 8月 22日の報道 では、 岡崎図書館の大羽館長は
『(男性の自作プログラムに)違法性がないことは知っていた
が、
『「図書館側のソフトに不具合はなく、図書館側に責任はない」との認識を示した』
とあり、 上の声明と合わせると、 次のように主張していることになります。

  • (1回の) アクセス方法に違法性は無い
  • 図書館側のソフトに不具合は無い
  • 大量のアクセスだけが問題だ (それによって 「図書館のホームページが閲覧できない現象が」 発生した)

さて、 毎秒 1回が「大量アクセス」 なんでしょうか?
その「大量アクセス」を処理できないことに問題は無いのでしょうか?
 

◆ 法的には、 毎秒 1回の処理が出来ないといけない

国立国会図書館法 が変更され、 今年の 4月から適用されています。
その中で、 第十一章の二「国、地方公共団体、独立行政法人等のインターネット資料の記録」として、 地方公共団体の図書館が公開している情報も国会図書館が収集することが定められました。

その収集方法は、「国立国会図書館法によるインターネット資料の記録に関する規程」(PDF) に「インターネット資料の記録に関し必要な事項は、館長が定める」とあり、 具体的には、 昨年 9月付けで公開された 「改正国立国会図書館法によるインターネット資料の収集について」 (PDF) に 「自動収集プログラム収集ロボットといいます)を使用して、ウェブサイトの自動収集を行います」・「ダウンロードの間隔を1秒以上あけます」(p.6) とあります。
※ p.7 には、robots.txt でアクセス制限するな、 とも書いてあります。

つまり、 この 4月には、 国立国会図書館法に基き、 地方自治体の図書館の Web は、 クローラーによる毎秒 1回程度のアクセスを処理できないといけなかったのです。
4月からということは、 その直前である 3月には、 当然準備を始めていなければならなかったはず。 ところが、 Librahack 氏が毎秒 1回程度のアクセスを始めた 3月には、 岡崎図書館は警察に相談しに行き、 4月に被害届を出しています。
まぁひょっとすると、 国会図書館からの通達をうっかり見逃していたのかもしれませんね。 上に引用した 9月 1日の声明でも、 毎秒1回程度のアクセスを 「想定していなかった」 と表現しています。 しかし…

岡崎市議会 9月定例会にて、 9月 6日に やなせ太 議員が一般質問に立ちました。

「サーバ管理者日誌」の記事 によれば、 教育委員会図書館交流プラザ総合館長を前にして、 やなせ議員は質問する中で次のように言ったそうです。 ちょっと長いですが、 引用しておきます。 (強調筆者)

国立国会図書館法の改正により、 国、 地方公共団体等の公共機関がインターネット上で公開している資料を、 国立国会図書館が収集できることとなりましたといっております。
で、 この文章の3ページ目なんですけれども、 ここでは収集方法といたしまして、 自動収集プログラムを使用してウェッブサイト単位で自動収集を行いますといっております。
ここでいっておりますのは、 まさにこれ、 自動収集プログラム、 つまりクローラーのことでございます。
で、 この文章では、 この後、 各地の図書館に対して、 4月1日から自動収集するので、 対応できるようにしておいて下さいよと、 ということが、 この文書で書かれているわけであります。
さらに、 この文書のですね14ページ目。 こちらの方ではですね、 自動収集の仕組みということで、 収集対象機関のウェッブサーバの負担を軽減するためにダウンロードの間隔を1秒以上空けますと、 いうふうにいっているわけであります。
つまり、 今年の4月には、 1秒に1回程度のクローラーによる自動アクセスというのは、 図書館のデータベースサーバが対応できるようにしておいてくださいよということ、 これは法律でこの4月から決まりましたよということをいっておるわけであります。
はい。 そうなりますと、 今回のリブラハックにおけますこのアクセスについても、 現在ではですね想定を超える大量のアクセスというようなものではなく、 常識的な範囲のアクセスであったというふうに思われるわけであります。

   
これでもまだ 「大量アクセスが悪い」 と言い続けられるのだろうか…!?

|

« [MEMO] エンタープライズアジャイル開発宣言 | トップページ | [岡崎図書館サイバー冤罪事件] 10月2日(土) ESD21 によるパネル討論会 @名古屋 »

PC・インターネット」カテゴリの記事

岡崎図書館サイバー冤罪事件」カテゴリの記事

日記・コラム・つぶやき」カテゴリの記事

コメント

サーバスペック関係の情報はこちらを。
http://gutei.cocolog-nifty.com/hibikore/2010/09/de-0add.html

投稿: kozawa | 2010年9月14日 (火) 01時42分

kozawa さん、 ありがとうございます。

このスペックの Web サーバーと DB サーバーなら、 あの新着書籍詳細画面は毎秒数百ページくらい表示できそうなもんです。 まぁ、 DB の設計が分からないので、 性能を推定するのはムリなんですけど。

投稿: biac | 2010年9月14日 (火) 07時35分

この記事へのコメントは終了しました。

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/209349/49432006

この記事へのトラックバック一覧です: [岡崎図書館サイバー冤罪事件] 大量アクセスするヤツが悪い!? 法を守ってないのはどっち?:

» 岡崎市立中央図書館で起きたことの説明を試みてみる [日々是・・・]
Twitterで連続投稿したのを殆どそのままコピペ(手抜き) まぁ大目に見てくだ [続きを読む]

受信: 2010年9月13日 (月) 04時50分

» 岡崎市立中央図書館webシステムの期待性能を考えてみる [日々是・・・]
岡崎市立中央図書館で起きたシステム障害を図書館の業務を妨害する意図があるとして図 [続きを読む]

受信: 2010年9月13日 (月) 04時51分

» 私は何度もサーバにアクセスしない。被疑者はアクセスし過ぎで逮捕されても当然と考えてる方へ [日々是・・・]
私は何度もサーバにアクセスしない被疑者はアクセスし過ぎで逮捕されても当然と考えて [続きを読む]

受信: 2010年9月17日 (金) 20時34分

» 大阪市立図書館、現在大変込み合っているか、定期メンテナンス期間中です。 [プライベートブログなのっと!]
ご迷惑をお掛けしています。 現在大変込み合っているか、定期メンテナンス期間中です。しばらく経ってから、アクセスしてください。 おい... [続きを読む]

受信: 2010年9月18日 (土) 21時19分

« [MEMO] エンタープライズアジャイル開発宣言 | トップページ | [岡崎図書館サイバー冤罪事件] 10月2日(土) ESD21 によるパネル討論会 @名古屋 »