2006年5月20日土曜日

RealVNCに超やばいセキュリティホール

ネットワーク経由で、遠く離れたパソコンを操作できるようになる「VNC」には、毎日、とってもお世話になっています。VNCには、さまざまな派生ソフトがあるようですが、その中でも本家?の「RealVNC」で、超やばいセキュリティホールがみつかったそうです。

http://internet.watch.impress.co.jp/cda/news/2006/05/18/12017.html
遠隔操作ソフト「RealVNC」に認証回避が可能な脆弱性





どれくらいやばいかっていうと・・・ちょっと細工をした改造版のクライアント(vncviewer)を使うと、

VNCサーバーのパスワードを知らなくても、パソコンを自由にあやつれるようになってしまう

っていうものです。しかも、すでに、それをやってしまう改造版ソフトが存在しているらしいです。



詳しい情報をさがしてみたところ、どうやら、サーバとクライアントの間で、どの認証方法を使うかのネゴシエーションをするときに、サーバが提示した方法を無視して、クライアントのほうが強引にパスワードなしで、接続に成功してしまうらしいです(なんじゃそりゃ???)。



もっとも、これまで、直接インターネットからVNCサーバにアクセスできるようにはしていませんでしたが、やはりそれで安心とは言い切れません。さっそく、これまでRealVNCをインストールしたすべてのマシンを、最新バージョンの4.1.2へアップデートしました。



FreeBSDのportsになっている、ports/net/vncは、すでに4.1.2に更新されていました。



☆ ☆ ☆ ☆ ☆ 



仕事場では、x2vncというソフトを使っています。FreeBSDでは、ports/x11-servers/x2vnc/にあります。



x2vncは、「画面描画を行わないVNCクライアント」です。



  • Windowsパソコンのほうでは、VNCサーバを実行しておく


  • FreeBSDパソコンのほうでは、x2vncを実行して、WindowsのVNCサーバに接続する


  • FreeBSDのほうで、マウスポインタを画面の外へはみ出すまで動かしていくと・・・あら不思議!Windowsのほうの画面にマウスポインタが現れる!!


X2vnc





というわけで、2つのパソコンの画面があたかもつながったような雰囲気になり、FreeBSDパソコンにつながっているキーボードとマウスを使って、Windowsパソコンも操作できるようになります。



キーボードとマウスは、1セットだけ。同じキーボード&マウスを使って、複数台のパソコンを同時に操作できるのです。



でも、Windowsの画面はFreeBSD側には一切表示されません。画面は、Windowsパソコンのほうの画面を見るのです。画面描画を行わない分だけ、処理が軽くなるので、非常に快適に2台のパソコンを同時に使うことができます。



☆ ☆ ☆ ☆ ☆ 



なんですが・・・、RealVNC 4.1.2へアップデートしたら(これまで使ってたのは3.3.7とかいうバージョンだったらしい・・・笑)、x2vncで接続したとき、ときどき、VNCサーバ(winvnc4.exe)が異常な動作をするようになりました。なんと、winvnc4.exeがメモリを500メガバイトも占有して、Windowsパソコンがやたらと重くなって、非常に操作しづらくなってしまいます。



Winvnc1



今日一日だけで、2,3回、この症状が発生しました。う~ん、RealVNCを使うのやめようかなぁ・・・



9 件のコメント:

  1. 通りすがり2006年6月2日 21:30

    こんんちは、
    昨日、VNCの脆弱性でPC乗っ取られた被害者です。
    PCを見たら丁度、マイドキュのファイルをデリしているところでした。
    慌てて、LANケーブルを外しました。
    どうやら、数日前から覗かれていた様子です。
    大した個人情報など入っていないPCではありますが、ちょっと気持ちが悪いです。
    しばらくは、VNCは怖くて使えませんね。

    返信削除
  2. 同じく通りすがり2006年6月5日 22:46

    昨日帰宅すると、嫁さんが「なんで遊びに行った先からわざわざ2時間もリモートしてたん?」と言われて、
    ��Cを調べるとワクチンソフトなどが一切消された上に、インストールした覚えのないサービスが複数・・。
    即効でLANケーブル引っこ抜き、VNCをアンインストールしてルータのフォワード設定も消しました。
    どこでパスを抜かれたのかと不思議に思っていましたが、こういうことだったのですね。
    ほんと、しばらくVNCはやめておこうと思います。

    返信削除
  3. うわ、怖いです・・・
    ところで、一応、今回のセキュリティホールは、RealVNCだけに見られるもの、ってことらしいです。たしかに、認証方法が複数選べる機能は、RealVNCで新規に追加された機能だったと思うし、たぶん、その情報は正しそう。
    でも、ネットワークを盗聴されたり(packet sniffer)、キー入力の内容が調べられたり(key logger)されちゃうと、やっぱりダメ。
    Windows Vistaになって安全になるといいな(だめかな)

    返信削除
  4. いや、ここの書き込み見て改めて怖さを実感しました・・・。
    大量の個人情報をPCで扱うので、
    ルーターかませてインターネットから
    直接アクセスできない環境にしてるのですが、
    それでも躊躇してしまいますね。
    せっかくの便利ソフトなのに・・・。

    返信削除
  5. ちょっと不真面目な話。
    雑誌イブニングに掲載されている漫画「交渉人 勇午」の前回の話で、勇午が、他人のパソコンに侵入して、名刺データベースを覗き見する様子が描かれています。侵入先のパソコンの画面が、手元のパソコンに表示されて、相手のパソコンを自在に操作していました。
    VNCの脆弱性を利用したのでしょうか???(笑)
    でもWinXPには「招待」という機能があるので、そっちかな。

    返信削除
  6. 多摩川の生半可2006年8月27日 2:43

    はじめまして
    私も今夏はガリガリ君マンゴーに狂喜乱舞しましたが、RealVNCの怖さを伺い一気に納涼モードになりました
    --;
    私は技術的なことは全然わからない素人なんですが、
    掲示板や雑誌の読みかじりでポート番号を勝手に自分だけの空き番号に変えてしまえば平気云々…
    という手を結構常套的に信じて実施してました。
    一気に500MBの消費はアップデートをためらってしまうんですが、
    この手の、とんちんかんポート番号設定作戦、って簡単に見破られてしまうものなんでしょうか…
    ホントに便利で恩恵にあずかってますので、できれば低消費な旧版で工夫しながらしのぎたいです…

    返信削除
  7. ポート番号をデフォルトとは別の番号にすることは、簡単にできるわりには、そこそこ効果があると思います。
    しかし、です。優等生的な意見をあえて述べさせてもらえば、
    ・ 危険なセキュリティホールがあると判明していて、
    ・ その解決手段が提供されているのに、
    ・ 危険を承知の上で未対策のまま使い続ける
    のは、かなりの度胸というか・・・万が一、突破された時のリスクを考えると、まったくお勧めできません。
    ところで、500MBメモリ馬鹿喰い問題は、x2vncと組み合わせたときだけの問題かもしれません(原因究明しないまま、TightVNCに変更することで問題解決させてしまったのので、なんともいえません)。とにかく、RealVNCのバージョンアップをする以外でも、別のVNC、TightVNC、UltraVNCなどを試すとか・・・したほうがいいと思います。
    手当たり次第にポート番号を探す行為は、プログラムで自動実行できてしまうことです。悪意のある人が、そういうプログラムを作成したら、あとは待っているだけで、攻撃完了、ということになります。
    ポート番号は数万通りしかないので、簡単にすべてが尽くされてしまうわけでして、非常に攻撃に弱いです。
    悪意のある人の目的が、「どんなコンピュータでもいいから、乗っ取れるコンピュータをたくさんかき集めたい」だとしたら、(a)セキュリティホールのあるRealVNCサーバが動いていて、(b)VNCサーバポート番号を探りあてて、(c)VNCで侵入成功後にOSを自在に操れる方法がある、(d)以上をプログラムで自動処理できる・・・などなど、多くの条件がそろわなければいけないわけで、全部の条件が成立する確率は、かなり低くなります。
    そのため、「乗っ取りの効率」を重視するならば、当然、「そんなに確率が低くてメンドクサイ方法を選ぶよりは、(今現在の状況では)もっと楽ちんに乗っ取れるPCが他にゴロゴロしているから、そっちに行く!」ということになるかもしれません。
    最初に「そこそこ効果がある」と言ったのは、そういうことを加味しての意見です。
    でも、中にはへそ曲がりな人もいるでしょうから、パズルでも解くかのように、気長にアタックしつづけるかもしれません・・・
    またさらに言えば、VNCの場合、たとえ今回のセキュリティホールが無いにしても、パスワードが「敵」に推測されてしまうと、コンピュータが乗っ取られる危険性があることを、十分に知っておく必要があります。
    だから、私自身は、VNCのポートをインターネット側には開けていません。sshのポートフォワーディングを利用するか、vtundでVPN接続するかして、1段かましてから、VNCを利用しています。

    返信削除
  8. ソフトのバージョンアップをしたときに新たにバグをつくりこむ、というのはよくあることですので、4.0なら大丈夫、ということはありえなくはないと思います(新機能を実装したけど、それがバグってた、とか)。まあ、普通は、最新バージョンを使うのが正しい選択だと思いますけど。
    うちのマックはMacOS8.6なんで、ステルスモードなんてないのですが・・・(笑)
    開いていないポートに対するアクセスがあっても、何の返事も返さない、という機能のことなんですね。
    ということは、1つでも開いているポートがあれば、何万分の1の確率で、見破られてしまうので、いたしかたないのではないかと思います。
    ネットワーク側からのすべてのアクセスに対して無反応にしてしまえば、見つからないでしょうが、それは、なんのサービスも提供しない、ってことですからねぇ。。。
    アクセス元のIPアドレスでアクセス制限するとか、簡単に利用できるセキュリティ向上策もあります。
    より積極的な(?)防衛策としては、「開いているポート番号を探ろうとしている行為を発見したら、そのアクセス元からのすべてのアクセスを遮断する」、といった機能を提供するソフトもあります(具体的な名前はすぐにでてこないのですが)。
    ただ、巧妙に細工したパケットを送信されたときに、許可されるべきアクセスまで遮断させるような、いやがらせをされてしまう危険性もあったりします・・・ (そういう嫌がらせが可能かは、ソフトの機能や設定にもよると思いますが、私はそういうソフトを使ったことがないですし、あんまりくわしくないので・・・)

    返信削除
  9. 多摩川の生半可2006年8月29日 12:21

    即レス大変感激しております!!!
    実は私もOSXは持っていなくてMacは9どまりで仕方なくDTP業界に合わせておつきあいしている状態にとどまっております。
    >開いていないポートに対するアクセスがあっても、何の返事も返さない、という機能のことなんですね。
    なるほどステルスモード、といってもその実体はパケットフィルタリングと同じ、と思ってよさそうですね…
    くだんのOSXユーザーさんは、MacOSXは素人が放置していても鉄壁セキュリティが自動的に構築される大前提で信頼をおかれてましたので、たいそう狼狽されていたのを思い出しました。
    ��私も、Macは素人に優しい何でもかんたん、かつ最高の安全、というセールスポイントにはかねてから疑問がありました)
    VNCの件もそうですが、なんでもMac用の掲示板だと「他のルーチンが違うからVNC等単独の脆弱性があってもマシンの制御を奪うことは”絶対に”不可能!」と無条件に押し切られてしまうのが個人的には狂信的宗教的不信感を増してしまいます…。
    >(具体的な名前はすぐにでてこないのですが)
    これはうれしいソフトですね!
    パーソナルファイヤーウォールだと一度うっかり自分が間違えて許可すると大仇になるので神経質かつ、自信が無い時の将来の不安感といったらそれはもう…です。
    スニッファーの巧妙さも年々長足の進歩でしょうから気が抜けないですが、これでは「パーソナル」なコンピュータとして普及したはずなのにセキュリティが邪魔して、もう今や「パーソナル気分」では使っては行けない時代になってしまったことに隔世の感が身にしみます。
    さきほど、grinさんのブログに問い合わせをしてみました。
    エクスプロイトコードについては私も生半可な自分で実行することに恐怖感がありますが、脆弱性検査ツールが3種類ほど出回っているとのことでした。
    これらを教えて頂くか、またはバージョンダウンの4.0でgrinさんに検証していただけるか、お願いしてきました。
    またご報告いたしますので、どうぞよろしくおねがいします。

    返信削除