« [Web][Ajax]ケータイ+Ajaxでどんな世界が広がっているのだろうか? | トップページ | [P2P][DHT]第2回DHT勉強会のご案内 »

2006.04.22

[Winny][P2P]Winny事件で露呈したP2Pソフト開発の難しさ

やはり起きてしまったかといった感である。昨日例のWinnyのバグ発見報道である。

Winnyにバッファオーバーフローの脆弱性、回避策は「利用の中止」のみ

このバグ報道は起こるべきして起こったというしかない。それはP2P開発の難しさにある。それは何だろうか?

□ソフトウェア開発中止 ほぼイコール 利用すべきでないソフト

簡単に説明するために有償のソフトを購入した場合を考えてみる。基本的にはソフトにはサポート期間が決まっており、その範囲であればバグの修正、あるいは別途サポート費用を積むと障害時の切り分けをすることできる。
フリーソフトの場合、サポートの範囲はあいまいだ。

しかしながら、[一般的な暗黙の了解だと]ユーザサービスに影響に大きな影響が出た場合には開発者はバグ修正などに動くことだろう。もしそれができなければ、[その件についてはサポートできない]と宣言することになる。後者の場合、ユーザ側がリスクを取ることになる。当然ユーザはそのソフトを使うか他のソフトを使うか選択することになる。

私が言いたいのは、基本的にサポートされていないソフトで重大なリスクが発生した場合には、すぐにソフトの使用を中止すべきであることだ。例え重大なリスクが発生しない場合でも速やかに開発サポートがあるソフトに乗り換えるのが望ましい。

□Winnyならではの特殊事情

情報漏えい事件は金子氏の逮捕によりWinnyのサポートができなかったのが大きな要因であった。その時点で本来であればソフトの使用の中止または他のソフトの乗り換えをユーザ自身が判断すべきだった。
しかし、ユーザはそうしなかった。それはなぜか?大きく分けて2点考えられる。

[事情1]日本人がソフト、特にサポートに対する考えが甘い
[事情2]Winnyシステムとしてのの脆弱性(情報漏えい)を敢て楽しんでいた

事情1は日本人が今だソフトというのは、何にせよ誰かがサポートしてくれるという[淡い期待]をどこかで持っていることだ。例え深刻な事象が発生してもウィルス会社や有志、あるいは国がなんとかしてくれるのだろうと。
しかしながら、それは本質的な解ではない。サポートが切れた時点でそのソフトを本来使うべきでないという基本的な意識が、ユーザにはあまりないのではないだろうか?ITリテラシーに対する教育が広まっているが、ソフトのサポートについてもきっちりとした教育を受けさせるべきだと思う。

事情2はいうまでもないかもしれない。Antinnyによる情報漏えいを楽しむ初心者ユーザが被害者になる、いわゆるミイラ取りがミイラになる悪循環だ。

このようなソフトサポート切れによる重大なリスク発生は、今後も起こることだろう。
皆様はどのようなことをしたら、今回のような事件を防げると思うだろうか?私は本質的にはユーザのセキュリティ教育をきっちりと行うしかないと考えている。

□P2Pソフト開発はなぜ難しいのか?

これからが本題である。
P2Pソフトの開発は特にセキュリティ分野に比べて通常のソフトの開発とは比べ物にならないほど大変だ。
それはなぜか?
P2Pソフトを使ったことのある多くの人は次のようなことを意識したことがないかもしれない。

「P2Pソフトは時に応じてクライアントにもなるし、サーバにもなる!」

つまりP2Pソフトは基本的にサーバとほぼ同じようなセキュリティ対策をする必要があるのだ。

□P2Pソフトはサーバである!

P2Pソフトはサーバである、この意味について補足しよう。
通常のソフトは特定のサイトに対してアクセスを許可する。そのサイトというのは基本的にセキュリティ対策をしているので、通信をしてもそれほど被害が出るものでない。ソフト側でも対策ができる。
しかしP2Pソフトについては次のことを忘れてはならない。

「P2Pソフトは不特定多数から複数種類の通信を受け付けるサービスである。」

複数種類の通信とは例えばVoIPであったりIMであったり内容が違う通信を受けるということである。
つまり、複数の通信があれば、一つのP2Pソフトの中に複数のサーバが入っているのものとほぼ同様である。
P2Pソフトは一つの機能だけにセキュリティ対策をするのではなく、全機能にセキュリティ対策をすべきだ。

□Winnyのバグ発見が遅れた理由

さて今回のWinny事件に振り返ってみよう。どうしてバグ発見がこんなにも遅れたのか?
理由は主に2つあるだろう。

[理由1]仕様が完全にクローズドだった
[理由2]通信が暗号化されていた

暗号のメカニズムがわかった今、仕様についても解明が続くだろう。その際にはより大きなバグが報告されるに違いない。もしかするとそのバグをついた深刻な攻撃が行われる可能性がある。

このようなことを考えるといつも一つのことを頭に浮かぶ。仮にWinnyがオープンソースならどのような進化を遂げていたのだろか?

Winnyは技術的に興味深いシステムであった。もしWinnyがオープンソースであったら日本のP2P技術は格段に進歩していただろう。オープンソースであったらAntinny対策も誰かが行っていて、深刻な事態にはならなかったかもしれない。しかし逆により大きなバグがすぐに発見されていて、それを悪用された攻撃が行われたかもしれない。どちらに世界は動いていたのだろうか。

|

« [Web][Ajax]ケータイ+Ajaxでどんな世界が広がっているのだろうか? | トップページ | [P2P][DHT]第2回DHT勉強会のご案内 »

P2P」カテゴリの記事

コメント

>しかし、ユーザはそうしなかった。それは
>なぜか?大きく分けて2点考えられる。

>[事情1]日本人がソフト、特にサポートに対>する考えが甘い
>[事情2]Winnyシステムとしてのの脆弱性>(情報漏えい)を敢て楽しんでいた

うーん、これらの2つよりは、サポートがななかろうが、危なかろうが別にいい。便利だから使っちゃえー。と、誘惑にまけるユーザーが多かったということじゃないでしょうか。
(これは事情1に含まれるのかも)

言い換えれば、リスクを知ってはいながらも、そのリスクをしょうがなく背負うことをユーザーは選んだとも言えるかも。

投稿: ryo | 2006.04.23 22:17

速報性よりも、専門家としての見解を期待して読んでいます。
もっと文章を推敲してから書いて欲しいです。

> その時点で本来であればソフトの使用の中止または
> 他のソフトの乗り換えをユーザ自身が判断すべきだった。
・情報漏洩の直接の原因は偽装されたプログラムを実行してしまったことで、
 その対策は例えば「WinnyのDownフォルダをインターネットゾーンにする」です。
 http://takagi-hiromitsu.jp/diary/20060302.html#p01
 ZIPを解凍するフォルダもインターネットゾーンにしておくともっといいでしょう。
・何か別のソフトに乗り換えたとしても、偽装ファイル問題は解決しないでしょう。
 現時点で偽装ファイルを見破る機能を内蔵したP2Pファイル共有ソフトがありますか?
・Winnyネットワークを利用できる、Winny以外のソフトはほとんどありません。
 Winnyネットワークに接続するという目的では、選択肢がかなり限られます。

> 日本人が今だソフトというのは、
> 何にせよ誰かがサポートしてくれるという[淡い期待]をどこかで持っていることだ。
作者がサポートしなくなっても、有志などに[淡い期待]を持つとされていますが、
フリーソフトの作者がサポートを続けている場合であっても
バグ修正をするかどうかは[一般的な暗黙の了解]だとあります。
暗黙の了解に従うかどうかは作者の勝手です。
誰がサポートするにしても、[淡い期待]なのは同じです。

> 通常のソフトは特定のサイトに対してアクセスを許可する。
> そのサイトというのは基本的にセキュリティ対策をしているので、
> 通信をしてもそれほど被害が出るものでない。ソフト側でも対策ができる。
この文章は何を意味しているのでしょうか。

> 「P2Pソフトは不特定多数から複数種類の通信を受け付けるサービスである。」
複数種類かどうかは、個々のP2Pソフトによって異なります。

> どうしてバグ発見がこんなにも遅れたのか?
遅れなかったとしたら、いつ発見されるべきだったのでしょうか。
WindowsにしろLinuxディストリビューションにしろ、
毎月のようにセキュリティ勧告がなされます。
たぶん今月にもバグが見付かるでしょう。
そのバグについても「こんなにも遅れた」と表現されるのでしょうか。

> 仕様が完全にクローズドだった
仕様の一部は「Winnyの技術」に書いてあり、完全にクローズドではありません。

> 暗号のメカニズムがわかった今、仕様についても解明が続くだろう。
仕様はほぼ完全に解明されています。
Poenyをご覧ください。

投稿: Fuktommy | 2006.04.22 17:18

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



トラックバック

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

この記事へのトラックバック一覧です: [Winny][P2P]Winny事件で露呈したP2Pソフト開発の難しさ:

« [Web][Ajax]ケータイ+Ajaxでどんな世界が広がっているのだろうか? | トップページ | [P2P][DHT]第2回DHT勉強会のご案内 »