恐るべし JWord
Kaspersky Internet Security 2011 を導入してから、Windows Time サービスがうまく機能しなくなっていることに気づいた。Windows Time サービスというのは、SNTP プロトコルを用いて時計合わせを行う機能なのだが、時計が常に正確でないと、セキュリティ上好ましくない状態になってしまうので、この時計合わせはどうにかして行う必要がある。
たかが時計くらい……などと思われる方がいるのかもしれないが、セキュリティ上、この時計情報というのは実に重要である。何らかのアタックを受けたとき、対外的にアタックを受けたことを主張し、他のコンピュータのログなどと付きあわせて事実を証明するときに、時計情報が狂っていたら、相互検証ができなくなってしまう。OS の時計情報は、人間が現在時刻を知るためだけにあるものではないのだ。
Windows Time が使えない原因として、Kaspersky が、NTP/SNTP の通信に用いている UDP 123番ポートを塞いでいる可能性も考えられた…… NTP のセキュリティホールを突くアタックの例が、過去に報告されていることを考えると、まるっきり可能性のない話でもない。しかし、少なくとも、Kaspersky Internet Security 2010 が動いていたときには Windows Time が正常に稼働していたことを考えると、どうもこれが原因ではなさそうな気もする。とりあえず、あまり頭のよくない方法だけど、他の NTP/SNTP を利用したアプリケーションで時間情報の取得ができないかどうか試してみればいいだろう、ということで、Windows Vista 上でも動作する NTP/SNTP クライアントを探した。昔の NT の時代だったら「桜時計」というシンプルなアプリが存在したのだが、現在使えるものでは……と探すと、「i ネッ時計」なるアプリケーション(後述するが、このソフトはある理由から導入をお薦めできないので、これをお読みの方は導入されないよう)を発見した。とりあえずこれを使ってみることにして、アーカイブをダウンロードした。
普段は、このようなフリーソフトをインストールする際には、それなりに注意して作業を行っているのだけど、たまたま他にしていたことがあって、そちらに気をとられながらインストール作業を行っていた。で、本体のインストール時に「JWord プラグインをインストールしますか?」という問にうっかり「はい」と入力してしまったのだった。あー、しまったなあ、と思いつつも、まずは「i ネッ時計」の動作を確認する。
「i ネッ時計」は、ネット上の document には NTP サーバとしても動作すると書かれているのだけど、親サーバからの時刻取得には SNTP プロトコルを用いているようだ。しかも、現時点での日本の public な NTP サーバのリストが入っていて、1回ごとに親サーバを換えながら時刻取得を行うようになっている。福岡大の GPS を用いた NTP サーバが過負荷で問題になっていた頃ならばともかく、「インターネットマルチフィード(MFEED) 時刻情報提供サービス for Public」や「NICT 公開 NTP サービス」がある現在、このような機能はあまり意味がない。そんなことよりも、ネットワーク伝送で発生する誤差を統計的に推定・除去してくれる pure な NTP を実装してくれる方が余程有り難いのだけど……まあ、とりあえず、ntp.jst.mfeed.ad.jp からも ntp.nict.jp からも時刻情報を問題なく取得することができた。つまり、Windows Time の不調の原因は Kaspersky ではない、ということである。
さて、では……さっき入ってしまった JWord を除去しよう……と、アンインストールを試みるが、うまくアンインストールできない。おかしいなあ、と思いつつアンインストール時に実行されるファイルをチェックしてみると、system32 内のバイナリに変な要求を出すようになっている。こんなのあまり見かけないんだけど……何だ、これぁ?とりあえず JWord の配布元である www.jword.jp にアクセスしようとするが……ん?アクセスできないぞ。どういうこと?
Wikipedia における JWord の解説を読んでみて、ここまでタチの悪いシロモノだということを初めて知ったのだった。そもそも僕は、今まで JWord をインストールしたことが一度もない。こういううざったいシロモノは常に排除するのが僕の流儀だからだけど、うっかりで入れてしまったただ一度が、今回のこのときだったのである。これは、参った……
とりあえず、JWord プラグインが一部だけインストールされた状態になっていることは分かった。こうなると、もう一度 JWord プラグインを完全インストールしてからアンインストールを行わなければならないのだけど、そのインストーラーの配布元である JWord のサイトにアクセスしようとしてもできないのだ。チェックを注意深く行った結果明らかになったのは、
- Google Chrome は jword.jp へのアクセスを禁止する仕様になっている
- Kaspersky Internet Security 2011 は jword.jp へのアクセスを禁止している
- JWord プラグインのインストーラ(上書きインストール可能)の URL を確認
- Internet Explorer を起動
- Kaspersky Internet Security 2011 を落とす
- JWord プラグインをダウンロード
- Kaspersky Internet Security 2011 を再起動、ウイルスチェックを行う
かくして Jword プラグインはアンインストールできた。妙な DLL が残っている可能性が高いので、後でそれらを除去しておかなければならないが、まあ山は越せたわけだ。しかし……それにしても忌々しいのが「i ネッ時計」である。この手のソフトのインストーラに JWord プラグインのインストーラが忍ばせてあるのは、どうやらアフィリエイト目当てらしいのだけど、そんなものを紛れ込ませているようなソフトなんか、使い続ける気にはとてもじゃないけどなれやしない。
「i ネッ時計」は、かくしてアンインストールしてしまった。勿論、このままでは時計の問題がそのままになってしまうので、コマンドラインから、
net time /setsntp:ntp.nict.jpと入力して、明示的に Windows Time の SNTP サーバを指定してやる。サービスの一覧をチェックして、Windows Time が起動していることを確認してから、時計のプロパティで手動の時刻更新をしてみると……うん、ちゃんと時刻情報を取得できるようになった。
……と思っていたのだが、よくよくチェックしてみると、Windows Time サービスは、ドメインユーザでない場合には、なんとデフォルトの更新周期が1週間!ということに気づく。おいおい、そりゃあんまりだろう……ということで、@IT の解説ページを参考にしてレジストリを編集。しかしなあ……勘弁してくれよ。これが Mac OS X だったら、普通ーに ntpd が走ってて、/etc/ntp.conf を編集するだけでどうとでもできるのにさ。カトラーには悪いけれど、本当に Windows はクソだぜ。
それにしても、JWord がこれほどまでに忌み嫌われているとは思わなかった。ソフトベンダーがアホな販促活動をするとこうなる、ということなのだろうか……いやはや。