趣味Web 小説 2010-09-23

Librahack事件の恐怖

1.

愛知県岡崎市立図書館の公式サイトはLibrahackさんにとって新着図書リストの使い勝手が悪かったため、1秒に1回の間隔で1日2000回の問い合わせを行い、手許に自分にとって便利な新着図書情報データベースを構築・自動更新するプログラムを作成し、実行した。結果、図書館のシステムがたびたびダウンし、図書館の相談を受けて警察が捜査を開始。Librahackさんは逮捕された。その後、Librahackさんは不起訴となった。

個人的には、図書館側の言い分を理解できる事件だった。「刑事罰は不当」という意見には賛成だが、自粛要請はあって当然だろうと思うし、現実的にそれが個人情報の壁に阻まれて不可能だったので警察に相談することになったのは、致し方なかったのではないか。追記:通常はJPCERT/CCに相談すれば連絡が取れるそうです。

ネットでの反応は、「1秒1回のペースで1日2000回の問い合わせを行ったくらいでダウンするシステムの方がおかしい」というものだった。実際、システムには「不具合」があって、プログラムを「直し」たら、システムはダウンしなくなったのだそうだ。

図書館が問題視したのは「大量のアクセス」ではなく「システムの停止」であって、たとえLibrahackさんが岡崎市民37万人のうちたった1人の特異な利用者だったとしても、「不具合」のないシステムだったなら停止しなかったのであるから、「悪い」のはシステムを作った業者だ、ということだろう。

2.

私は違う感想を持った。

私は機械系の技術者で、構造設計をやっている。その仕事の仕方を考えてみるに、客先の仕様を満足しているのに不具合といわれるのは怖い。素朴にそう思う。三流エンジニアの考え方かもしれないが、「業界標準の設計法を採用していれば100℃でも壊れなかった」としても、「仕様では、使用条件は-20℃~+40℃でしたよね。±20℃の余裕を見込んで設計して、実際に試験もクリアしているのに、事故の責任を取れ? そんな殺生な」と思う。

Librahackさんのような利用法は図書館の想定外だったはずで、実際、37万人も市民がいて、同じようなことをした人は他に1人もいなかったのだ。命がかかっているなら、それでも無視はできまいが、これはそうした問題ではない。

「図書館はポンコツを売りつけられた被害者なのにどうして業者の肩を持つのだ」という意見が私の観測範囲内では圧倒的だった。ネットで声を出す人々というのは、優秀な人ばっかりなんだろうな……と思った。私は正直、そのような水準では仕事をできない。「教科書に書いてあるくらいの手法だぞ、まともな技術者ならこれを知らないはずがない」と責められても俯くしかない。同じ条件で働いてくれる、もっと有能なエンジニアが見つかるなら、クビになっても仕方ないな……。

日本中探せば、実際いると思う。ただ、その人を見つけるコストというのもある。それに、私みたいなエンジニアだって、失業させたら公費で生かすしかない(ですよね?)。だったら働いてもらった方がマシではないか。ちゃんと仕様を満たす仕事はするのだから。

業者は図書館の提示した仕様を満足するシステムを納入したのでしょう。そして実際、何年も問題は起きなかった。ならば、「不具合」として業者がプログラムを追加費用なしで改修するのはおかしくて、図書館システムの利用規約に「問い合わせは1日100回、週300回まで」と書き加える方が自然なのではないか。

3.

私の家の近所の図書館では、夜間帯は利用者が少ないため、少ない人数で業務を行っている。私が書庫の本をリクエストすると、貸出カウンターから人が消えてしまい、列ができたりすることもある。私の次の人がまた書庫の本を頼むと、ますます列は伸びていく。

が、3組以上が列をなすのは、夜間帯(2時間)のうち1回程度でしかない。そして半分以上の時間は、誰も貸出カウンターを利用していない。私はカウンター前のソファが好きで、よく座って本を読んでいるので、そのことを知っている。だから、列が伸びてイラ立った人が、一緒に並んでいる家族や友人に「もっと人を増やせばいいのに」と話すのが聞こえるたび、「費用対効果がなぁ……」と思う。

さて、もし次第に夜間帯の利用者が増えていき、書庫の本のリクエストがもっと大勢から寄せられるようになったなら、人手を増やすのは自然なことだろうと思う。しかし、10万人に1人くらいの珍しいタイプの人が転入してきて、5分に1回のペースでリクエストをはじめたらどうだろうか。

図書館のような公共施設は、そもそも全市民の一斉利用に耐えるようにはできていない。私の住む町では本の貸出上限は1人10冊だが、図書館の蔵書は人口×3しかない。図書館は乏しい予算でささやかに運営されているのだから、「お互い様」の精神が必要だ。

たまたま人員配置術の達人が図書館にいれば問題は解消されるのかもしれないが、対応すべきはまず10万人に1人の特異な人の方だと思う。これは想像力の問題だ。優秀な人の「標準」を基準として、天下り式に「最低限」のハードルを上げられては困る。小学校のクラスメートを思い出してほしい。その誰もが、ほんの少し頑張ったくらいでうまく回るような、そんな社会がいい。

4.

「ダメ業者の淘汰」は、市場が行うべきこと。優秀な人々の基準で取引に介入し、「不具合」「欠陥」といって生産者に仕様(消費者の実際の要求)を超える成果を強要すべきではない。「うちの方が安くて堅牢なシステムを提供できますよ」という業者があるなら、いずれ状況は改善されるだろう。議会も予算を検証している。

あるいは、「品質の追求より(凡人を雇って)価格を下げる方が重要」というのが市場の声かもしれない。サーバーとしてこの程度の性能がないのは「不具合」だ、なんて批判には、絶対に与したくない。優秀な人々からみて「改善の余地がある」ことをみな「不具合」といわれたのではたまらない。

Librahackさんの反省の弁は、私には納得のいくもの。これを残念がる人がネットにはたくさんいるけれど、私は大いにホッとした。Librahackさんのような感覚が常識でなければ、私は困る。

5.追記(2010-11-02,03)

多くの人の関心は「こんなことで逮捕!?」にあるが、私は私の関心事について書いている。逮捕の是非と業者叩きとは切り離せる話だ。「逮捕は不適切」と「欠陥製品に非ず」は両立する。また「刑事罰は不当」と「合法だが迷惑。自粛すべき」も両立する。一部の人の「私が主張していないこと」への批判には困惑する。

また私は優秀な人の足を引っ張るつもりも毛頭ない。みなさんどうぞ高い給料を貰ってください。私が脅えているのは、足切り的な発想だ。「消費者がどんな選択をしても大丈夫なように、全ての業者を一定水準以上に底上げすべし。ついてこれない業者は廃業しろ」という世界には、私の居場所がなさそうだ。ある消費者が真に求めるのは「サポートのフレンドリーさ」で、性能は二の次かもしれない。自由な市場で競争して討ち死にするなら納得もできる。だが、頭のいい人の作った規制に殺されるのは嫌だ。

事件について、他に思うことは三つ。 1)警察に相談しなくとも図書館がLibrahackさんと連絡を取れる仕組みがあれば事件は起きなかった。追記:仕組みはあったが図書館はその存在を知らなかった。 2)「違法ではないが迷惑」への対処コストが全面的に「社会」持ちなのは不都合。「自由のコスト」を一定割合(上限あり)で個人に繰り戻す市場の整備を望む。 3)IT分野でも「ルールで対処する」領域を広げるべき。多くのサービスは国内からの利用が大半。……いずれも他の話題で記事にしたこと。再論しない。

関連:

いずれも興味深く読みました。SPAM送信や過剰アクセスなどについては、JPCERTがトラブルの解決に大いに活躍しているとのこと。2chでは、たった一人の荒らしを規制するために数万人を巻き込んでプロバイダごとアクセスを規制したりしていますが、問題の種類が違えば解決状況も全く違ってくるのですね……。

twitterでのやり取りを経て(2010-11-04)

pmakinoさんとmitiyonさんに粘り強く対応していただいた結果、かなり説得されました。

「チャチな商品はチャチな商品だと認識された上で、それでも消費者がそれを選ぶのは自由だよ」という状態が理想です。業界標準に満たない商品を「欠陥」「不具合」として排除するのは、多様な消費者と生産者のみなが幸せに共存できる方法ではありません。

しかし現実には、公共システムの市場整備は不十分で、ことに保守契約には市場原理がほとんど働いていません。また全体として優れたシステムの中の劣った部分が放置されるという問題の解決には工夫が要ります。長期的に理想の実現を目指す方法とは別に、今そこにある問題を解消する方法も考えねばなりません。

その前提において、Librahack事件で図書館システムのウェブ機能を「欠陥があった」と批判するのは業者にインセンティブを与える数少ない有効な手段であり、必要悪ではないか。

将来に向けては、性能に関する等級基準を設け、素人でも大きな性能差を判別し商品を選択できるようにすることが、市場を機能させるために有効だと思う。

ご意見はtwitterで承っております。

Information

注意書き