ウイルス対策ソフトは本当に必要なのか?
いまどき、ウイルス対策ソフトは本当に必要なのか? 情報流出で社会問題にまで発展したWinnyウイルス(通称キンタマ)を例にあげて考えてみよう。 Winnyウイルスについては免疫をもつコンピュータ―生命に倣うネットワークセキュリティ (岩波科学ライブラリー)に詳しい。この本のタイトルは、電波系に思えるが、そうではない。免疫システムでウイルスが防げないのかという真面目な研究のようで、それなりに成果も出ているようだ。 この本のなかには「免疫をもつコンピュータ」のその詳しい仕組みまでは書かれていないが、私の推測によると、おそらくファイルコピーやプロセス生成などのAPIをhookしておいて、怪しい挙動をするものを検出して、二度目からは即座にシャットアウトするというもののようだ。まだ、その怪しい挙動をしたプログラムによって行なわれた変更をロールバックする機能を持っているようだ。 |
この本によるとWinnyウイルスの仕組みは次のようになっている。
1.「新しいフォルダ(2)」を実行するとその子プロセスとしてsvchost.exeおよびfile.exeが生成する。
2.file.exeは「(値の設定なし).exe」というファイルを実行し、その次にmjet.exeファイルを実行している。(このファイル名は変わりうるので、このファイル名をキーワードにして免疫システムで排除を行なうだけでは不十分。)
3.svchost.exeは、元のウイルスである「新しいフォルダ(2)」と同一のファイルであり、特定のフォルダ(C:\WINDOWS\system32\drivers)にコピーされた後に名前の変更が行なわれているだけ。また、このとき、コピーされたsvchostは、次回Windows起動時に自動的に実行するように設定。
4.「新しいフォルダ(2)」は実行を終了する。(タスクマネージャで見たときにユーザーが不審に思うのを回避するためか?) svchost.exeは動き続ける。
5.「(値の設定なし).exe」は、file.exeが自分自身を特定のフォルダ内にコピーして再実行し、さらにmjet.exeをまた別のフォルダに作成して実行を行なう。
(以下略)
結局、何故こんな単純な動作をするウイルスを防げないかというと、Windowsに
・あるプログラムによって変更されたファイルを調査する機能が無い。
・ユーザー権限で実行ファイルを作れてしまう。(ファイルの拡張子が".exe"のものは作れなくていいのに…。ファイルを解凍したときに困る気もするが、それなら実行権限が付与されるまでexeファイルを実行できなくていいような)
・ユーザー権限で実行ファイルを書き換えることが出来る。(あるプログラムが他の実行ファイルを書き換えたいという動機はあまり無いと思う)
・アイコン表示だと、実行ファイルなのかフォルダなのか、わかりにくい。
など、何かちょっとした機能があればもっと被害は減りそうな気はする。
ただ、ユーザー権限で実行してても、何かの脆弱性を利用して管理者権限に昇格できてしまうので、結局、
・ユーザー権限でプログラムを実行できてしまう。(ユーザーは、管理者が許可した以外のプログラムは実行できなくていいのに…)
・あるプロクラムによって変更されたファイルをまとめてロールバックする機能
などがあるといいのかも知れない。
・スタートアップが書き換えられた場合、いつ、どのプログラムによって書き換えられたか追跡する機能。
・それぞれのプロセスが何をしているのかタスクマネージャで確認する機能(通信とかファイルの書き換えとかに関して)
・プログラムが特定のフォルダにアクセスしようとしたときに警告を出す機能。
・プログラムはすべて仮想化環境で実行し、実行が終わればその仮想化環境を消滅させる。ファイルだけは(仮想化環境の外にある)ストレージに書き込むが、その書き込みはすべて監視されていて、どのファイルを書き換えたかが追跡でき、いつでも元の状態にロールバックできる。
うーん。これだけやれば被害は1/100ぐらいにはなるんだろうけども、ウイルスは100%防げるのかと言うと…そうでもない気もする。何か脆弱性を利用して管理者権限に昇格して、BIOSあたりにコピーされればそれまでだしなぁ…と思ったり。
そんなわけでコメント欄で「ぼくのかんがえたせきゅりてぃたいさく」の作文を募集。