こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

締切り済みの質問

ウィルス発見方法について

コンピュータ・ウィルスの検索や駆除をするシステムは、どうやってウィルスを発見するのでしょうか?
ウィルスは何らかの言語で書かれた「プログラム」(広い意味で)だと思いますが、OSや各種アプリケーションも同じプログラムのはず。何故「ウィルス」と正しいプログラムの識別ができるのでしょうか?
既存の(既に発見されている)「悪い動作をするプログラム」と全く同じ「プログラム・コーディング」を見つけているだけなのでしょうか? であれば、非常に成功確率が低く、非効率的で、泥縄的ですね。

投稿日時 - 2009-04-04 17:03:19

QNo.4852275

暇なときに回答ください

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.2

私は対策ソフトやセキュリティーツールなどをいろいろ試したりしています。

専門家さんと重複してしまいますが、ひとつは特徴的なバイトパターンをシグネチャとして登録していくやり方です。で、おっしゃるようにあくまでも後追いですよね。

で、もうひとつ一般的なのがヒューリスティックスキャンです。スタティックとダイナミックがあります。ダイナミックに関しては対策ソフト側で専用に確保した隔離領域で動かして判断します。

私がお勧めしているカスペルスキーでは上記に加えてHIPSの考え方を取り入れたアクセスコントロールという方式も加えてます。かなり有効に働きます。

また、監視ネットワークなどによって早期に捕らえられるようにしてたりします。

まあ、最近ではアンチウィルスの検知回避を可能にするツールなども氾濫してますし、rootkitもあります。また、機能妨害をしかけてくることもあります。さらには、FWをバイパスする手法も珍しくなくなってます。

ここの他の質問者でAV-Testなどの機関系オンデマンドテストの結果ばかり気にしてる方も見受けますが、回避技術が進んできた現在では一筋縄ではいかなくなってます。

投稿日時 - 2009-04-04 22:57:20

お礼

お二人の方、早速ご丁寧な回答ありがとうございました。少し難しかったですが、雰囲気はよく分かりました。
私は、昔からある「ウィルスを作っているのはウィルス対策ソフトを売っている会社の人だ」という当該会社の方には申し訳ない噂をどうしても否定しきれない素人なのですが、今回いただいたお二人の回答を読ませていただくと、ウィルス対策を行っている方々が(お二人がウィルス対策に関わっているエンジニアの方かどうかはわかりませんが)日々大変一生懸命戦っている様子が伺われました。
世の中のウィルス対策のエキスパートの方々、頑張ってこれからもよろしくお願い致します。
(それにしても、ウィルス対策ソフトが有料なのはあまり納得ができません。パソコンメーカーやOSメーカーが、自社販売製品のメンテナンスの一環として無料で配付すべきだと思うのですが?)

投稿日時 - 2009-04-05 21:58:26

ANo.1

Q/何故「ウィルス」と正しいプログラムの識別ができるのでしょうか?

A/既知のものに関しては、定義ファイルに格納されているパターンに基づいて処理されます。ウィルスとして識別できる不正なファイルを逆コンパイルするなどして情報を精査し、それに基づきワクチンファイルを作成します。バイトチェックなどを行うため検出精度は極めて高くなります。

亜種・新種に関しては、ヒューリスティックスキャン(振る舞い検知)を使うのが一般的で、2通りがあります。シマンテックが開発した隔離された領域(仮想マシン/VM)でプログラムを予め実行し、ウィルスまたはそれに相当する振る舞いをするかどうかをチェックする方法。これに後述のチェック方法を組み合わせることで検出精度が高くなります。(可能性がある場合は、メーカーに隔離後送付します)

もう一つが、定義ファイルに基づいて動きの実績情報を元にウィルスらしい行動を伴うコードを使っていれば、ウィルスとして識別する手法を使うもの。WindowsXP SP2で搭載されたハードやソフトによるEnhanced Virus Protectionのバッファオーバーフロー防止技術などのようなもので、ウィルスに多用される条件を危険度の順にランク付けし、その中で何項目を使っているかなどを識別します。一定以上のランクで満たしていれば、可能性があると判断し隔離します。
こちらは、誤検出や見逃しが発生する確率が若干高い傾向にありますので、上記の手法と組み合わせるのが現在は一般的。

どちらも効率的とは言えませんが、人間の病気診断などにも似ています。
コンピュータウィルスも同じで、悪意のパターンを元にウィルスらしい行動を識別するしかありません。それに該当しない別の動きで悪意を及ぼす場合は、対策ソフトでの検出は難しくなります。

それでも検出が難しいものもありますから、セキュリティベンダーは他の企業などの保守サポートと組み合わせるなどして、最新の振る舞いや脆弱性情報を常に解析収集しています。

尚、スパイウェア(マルウェア・アドウェア)は上記には含みません。スパイウェアに関しては元々アドウェアとして生まれ、利用者同意の上で悪意がないものもあります。必ずしもウィルスと同じパターンで検出できる物ではないですから、上記に比べてパターンファイルで網羅している情報に依存しています。そのため、定義ファイルにあるかどうかがウィルスより重視される傾向にあると言えるでしょう。
また、これらは外部に情報を流出させることもあるため、パケット監視機能やファイアウォール機能を用いて総合的に検出を高める手法も取り入れることで、検出精度を引き上げています。これらの検出に関しては、総合セキュリティスイートの方が検出力が高くなります。

投稿日時 - 2009-04-04 17:40:15

あなたにオススメの質問