Winny脆弱性速報と解説
正直今すこぶる接続時間が短くどの程度自分が情報を仕入れているのか微妙なんですが需要ありそうな感なのでWinny脆弱性について。
米eEye Digital Security(以下,eEye)は現地時間4月21日,ファイル共有ソフト「Winny(ウィニー)」に見つかったセキュリティ・ホールの概要を公表した。
(中略)
セキュリティ・ホールを突いて任意のプログラムを実行することは容易であるという。
と、いうことで、これまで言われていた(僕も言っていた)「Winnyにはセキュリティホールはない」「ページを開いただけでウイルスに感染するブラウザ、みたいな脆弱性がない以上、Winnyを使うことそれ自体に危険性はない」という話が崩れるか?という感じなんですが、さて、という記事です。
先に書いておくと、「Winny Remote Buffer Overflow Vulnerability」を読む限り、正直僕には「任意のプログラムを実行することは容易」というのが分からないんだよなぁ・・・。公表されている&僕が入手している「情報」からのみ、いわゆるハッククラック周辺の知識がない方向けにかなり噛み砕いて書きます。
□1:確定している点
- 外部からWinnyに対し特殊なデータ(パケット)を送りつけることで、Winnyに対して「バッファオーバーフロー」という現象を起こさせることが可能です。
- 全てのデータは「ルーター→PC→PC上で動作しているツール」という経路でツール(Winny)に届けられます。「ルーター」や「PC(Winnyなどのツールに届く以前にパーソナルファイアーウォールなどで、という意味)」でこれを止めることができる可能性はあります
- 「バッファオーバーフロー」とは、噛み砕いて言うと以下のような現象です。
- 通常、ツール(Winny)は一度に受け取れる命令の文字数が決まっています。たとえて言うなら、原稿用紙一枚分しか処理できません。複雑な命令は「原稿用紙一枚目、二枚目」みたいに何度かに分けて受け取っている。
- では、原稿用紙の余白に文字が書かれていたら?
- ツールは、この余白文字を無視しなければならない。Winnyも通常は無視する。
- しかし特殊な状況において、余白文字が無視されない。簡単に言うと、その部分に書かれている命令を問答無用で実行してしまう(例えば破壊活動なりトロイなりの埋め込みといった命令でも守ってしまう)(と一度書いておきますがまだ結論ではない)
- 正確に言うと、「そのツールと同じ権限で」です。例えばXPには「管理者ユーザー」「制限付きユーザー」という二種類のユーザーが存在します。ツールは「そのツールを起動したユーザーと同じ権限で」動いているので、つまるところ、「管理者/制限ユーザーが起動したWinnyにバッファオーバーフローを起こさせれば管理者/制限ユーザーができる全ての行動を外部から行わせることが可能」ということになります
- また、Winnyは「バッファオーバーフロー」という現象が起きたとき、自身を強制終了させる仕組みです
- 故に、「バッファオーバーフローが起きる→強制終了される」です。この「→」は100%確定
- Winny起動監視ツールみたいなのは存在しますから、強制終了される度に再起動させることは可能っちゃ可能です
- 逆に言うと「バッファオーバーフローさせたら終わり」でもあります。一度バッファオーバーフローを起こさせたら、それ以上の攻撃はできない
□2:現在の注目点
- 「バッファオーバーフローを起こさせることができる=何でもできる」ではありません
- 乱暴に言うと、余白のスペースが決まってる。つまり、そこに書き込める文字数は決まっている
- そして、今回のケースでは余白のスペースが非常に小さい。このスペースで何ができるのか?
- 金子氏が開発した全てのバージョン(最終版がb7.1)が脆弱性を抱えていることは確定的ですが、2004年にlark氏が開発した改造版Winnyではどうなのか?
- 公開されている通りの方法では一切問題が生じません
- 同質の脆弱性(例えば「この脆弱性を自分で発見した際と同じ考え方で簡単に具現化できる、同じ結果を招く脆弱性」)が存在する可能性はある
- 改造版Winnyには脆弱性は一切存在しない
□3:今後の可能性
まず、この「脆弱性(=バグ)」の今後に関してですが
- 金子氏が脆弱性修正を行えない以上、脆弱性を修正した公式新バージョンが登場する可能性はありません
- 第三者が「勝手に」脆弱性を修正した新バージョンを開発できるかどうか、なんですが、正直僕には何とも言えません
次に脆弱性そのものに関してですが
- 「小さいスペース」を使って致命的な破壊活動/乗っ取り活動を行う「テク」が開発される
- 致命的です。こうなった場合は「Winnyが攻撃データを受け取る=破壊活動を行われる」になります
- というか既に開発されている
- 「任意のプログラムを実行することは容易である」という文章を素直に受け取ればこういうことになるんですかね・・・
- 結局そんな「テク」は開発されない
- 微妙です。強制終了はされるけど、それ以上の被害は生じない
そして、そもそもWinnyが問題のデータを受け取ることになるかどうか、ですが
- 「ルーター→PC→PC上で動作しているツール」という経路上、ルーターで遮断されればそもそもWinnyに届きません(問題は一切生じません)。ただ基本的にルーターで止めるのは不可能(だと思われます)(※4/23にご指摘いただき編集済)
- 同様に、PCに届いてからWinnyに届くまでに何らかのツールがデータを横取りして遮断すれば問題は一切生じません。パーソナルファイアーウォールとかNEGiESとかみたいな動作原理です。こうした動作を行う専用フィルタリングツールが登場する可能性はあります。この場合、そのツールさえ起動していれば問題は一切生じません。
・・・正直どの程度合ってるか何とも言えないんですが、僕が入手している情報からは以上です。結論を一文で言えば「机上の論理としては問題だし実際の被害に通じる糸口となる可能性が十分あり得るがまだ確定的なことは何とも言えない」という感じです。
うーん、時間ができたら月末とか来月あたりに再度書くかもしれませんが、その頃には他の方も書いてるような気もします。

TrackBack
この記事へのトラックバック