セキュリティ – ウイルス対策はどうやって行うのか?

anti-virus security

最近ウイルスについて考えていて、どうやってウイルス対策を維持しているのかと思っていた。数週間コーディングをしていた人なら誰でも何かをハックして誰かのPCに厄介なことをすることができると考えれば、その量だけで単純なハッシュのリストを作ることは不可能だろう。彼らはプロセスの活動を監視し、ウイルスのようなことをするための3つのストライクルールを持っていますか?もしそうなら、何が完全に無害なもの(私がファイルを動かしているようなもの)で起動するのを止めているのか?

ちょっとググってみたんですが、普通のところでは特に参考にならなかったし、ここでは替え玉が見つからなかったので、聞いてみるのもいいかなと思いました 🙂

  54  Phoshi  2009-10-20


ベストアンサー

この2002年の記事は、ウイルス対策エンジンの構築について語っています

この記事では、開発者/ソフトウェアエンジニアの視点から、ゼロからアンチウイルスプログラムを開発する際の基本的な考え方、コンセプト、コンポーネント、アプローチについて説明します。アンチウイルスエンジン(以下、AVエンジン)の主要な要素に焦点を当て、グラフィカルユーザーインターフェース、リアルタイムモニター、ファイルシステムドライバ、Microsoft ExchangeやMicrosoft Officeのような特定のアプリケーションソフトウェアのプラグインのような側面は除外します。シングルプラットフォーム(Palm OS や EPOC/Symbian OS など)向けの AV エンジンも同じように設計することができますが、この記事では、より複雑なマルチプラットフォームのスキャンエンジンの設計に焦点を当てていきます

また、感染を検出するためのヒューリスティック技術に関する記事もあります。これも興味深い読み物です

17  alex  2009-10-20


約一年前、エフセキュアの主要な研究者の一人である Mikko Hyyppönen 氏の講演会に出席しました。彼は、送られてきたサンプルごとに仮想マシンを作成し、その構造を分析し、実行させ、すべてをログに記録し、以前のサンプルとの相互参照を行い、後で人間が確認できるようにサマリーを生成するという自動化されたテストネットワークを見せてくれました。人間がウイルスだと結論付けた場合、システムは自動的に検出シグネチャを生成し、顧客にアップデートを送信します。他のベンダーも同様のシステムを持っていて、シグネチャデータベースを最新の状態に保っているのではないかと想像します

13  Hirvox  2009-10-20


アンチウイルスソフトはどのように動作するのか(AntivirusWorld)より

ウイルス対策ソフトとは、ファイルをスキャンして、コンピュータウイルスやその他の悪意のあるソフトウェア(マルウェア)を特定して排除するためのコンピュータプログラムのことです

アンチウイルスソフトウェアは、通常、これを達成するために2つの異なる技術を使用します

  • ウイルス辞書を使用して既知のウイルスを探すためにファイルを検査すること 感染を示す可能性のあるコンピュータプログラムから疑わしい動作を識別すること
  • ほとんどの市販のアンチウイルスソフトウェアは、ウイルス辞書のアプローチに重点を置いて、これらの両方のアプローチを使用しています

ウイルス辞書アプローチ ウイルス辞書アプローチでは、アンチウイルスソフトウェアがファイルを検査するときに、アンチウイルスソフトウェアの作成者によって識別された既知のウイルスの辞書を参照します。ファイル内のコードの一部が辞書で特定されたウイルスと一致した場合、アンチウイルスソフトウェアは、ファイルを削除するか、ファイルが他のプログラムからアクセスできずウイルスが拡散しないように隔離するか、またはファイルからウイルス自体を削除してファイルの修復を試みることができます

中長期的に成功するためには、ウイルス辞書のアプローチは、更新されたウイルス辞書エントリを定期的にオンラインでダウンロードする必要があります。新しいウイルスが「野生の中で」特定されると、市民的な心を持ち、技術的な関心を持つユーザーは、感染したファイルをアンチウイルスソフトウェアの作者に送ることができ、アンチウイルスソフトウェアの作者は、新しいウイルスに関する情報をその辞書に含めることができます

辞書ベースのアンチウイルスソフトウェアは、通常、コンピュータのオペレーティングシステムがファイルを作成、開き、閉じたとき、およびファイルが電子メールで送信されたときにファイルを検査します。このようにして、既知のウイルスを受信時に直ちに検出することができます。また、このソフトウェアは、典型的には、ユーザのハードディスク上のすべてのファイルを定期的に検査するようにスケジュールすることができる

辞書的なアプローチは有効と考えられていますが、ウイルスの作者は、辞書にあるウイルスの署名と一致しないように、自分自身の一部を暗号化したり、偽装の方法として自分自身を変更したりする「ポリモーフィック・ウイルス」を書くことで、このようなソフトウェアの一歩先を行こうとしてきました

疑わしい動作アプローチ 疑わしい動作アプローチは、既知のウイルスを特定しようとするのではなく、すべてのプログラムの動作を監視します。例えば、あるプログラムが実行可能なプログラムにデータを書き込もうとした場合、これは不審な動作としてフラグが立てられ、ユーザはこれを警告され、どうすればよいか尋ねられます

辞書的アプローチとは異なり、疑わしい行動アプローチは、したがって、どのウイルス辞書にもまだ存在しない真新しいウイルスからの保護を提供します。しかし、このアプローチは多数の偽陽性を鳴らし、ユーザはおそらくすべての警告に鈍感になってしまうでしょう。もしユーザがそのような警告のすべてに「同意する」をクリックしてしまったら、そのユーザにとってアンチウィルスソフトウェアは明らかに役に立たなくなってしまいます。この問題は、過去7年間で特に悪化しています。したがって、最新のアンチウイルスソフトウェアのほとんどは、このテクニックを使用することが少なくなっています

ウィルスを検出する他の方法 ウィルス対策ソフトの中には、実行可能ファイルに制御を移す前に、実行中の新しい実行可能ファイルのコードの先頭をエミュレートしようとするものがあります。プログラムが自己修正コードを使用しているように見えたり、そうでなければウイルスのように見える(すぐに他の実行ファイルを見つけようとする)場合、実行ファイルがウイルスに感染していると考えることができます。しかし、この方法では多くの誤検出が発生します

さらに別の検出方法として、サンドボックスを使用する方法もあります。サンドボックスはオペレーティングシステムをエミュレートし、このシミュレーションで実行ファイルを実行します。プログラムが終了した後、サンドボックスはウイルスを示す可能性のある変化を分析します。パフォーマンスの問題から、このタイプの検出は通常、オンデマンドスキャン時にのみ実行されます

懸念事項

マクロウイルスは、おそらく最も破壊的で広範囲に蔓延しているコンピュータウイルスですが、マイクロソフトがダウンロードしたコードの実行とドキュメントマクロの拡散と大惨事を引き起こす能力に関連したMicrosoft OutlookとMicrosoft Officeのセキュリティ上の欠陥を修正すれば、すべてのユーザーがアンチウイルスソフトウェアを購入しなくても、はるかに安価で効果的に防ぐことができます

インターネットから未知のプログラムをダウンロードしたり実行したりしないなど、安全なコンピューティング方法をユーザーに教えるだけで、ウイルス対策ソフトを使わなくてもウイルスの蔓延を遅らせることができます

コンピュータのユーザは、常に自分のマシンに管理者アクセスをして実行すべきではありません。もし、単にユーザーモードで実行していれば、ある種のウイルスは広がらないでしょう

ウィルスを検出するための辞書的なアプローチは、新しいウィルスが絶え間なく生成されるために不十分であることが多く、また、疑わしい行動のアプローチは偽陽性の問題のために効果的ではありません

悪意のあるソフトウェアを暗号化してパッキングする方法には様々な方法があり、よく知られたウイルスであってもアンチウイルスソフトでは検出できないようになっています。これらの「カモフラージュされた」ウイルスを検出するには、ファイルを調べる前にファイルを解読することができる強力な解凍エンジンが必要です。残念ながら、多くの一般的なアンチウイルス・プログラムにはこのエンジンがないため、暗号化されたウイルスを検出することができません

ウイルス対策ソフトを販売している企業は、ウイルスが書き込まれて拡散し、一般の人々がその脅威にパニックに陥るような金銭的なインセンティブを持っているようです

(この記事が気に入ったので、AntivirusWorldからコピペしただけです)

4  joe  2009-10-20


フォシさん、あなたの質問は非常に興味深いものですが、私はあなたのクエストを別のものから始めることをお勧めします。あなたの質問に対する答えが誤解を招く可能性があるので、私はこれを勧めているのです

ウィルスの定義を 考えることから始めることをお勧めします

エリートウイルスライターはセキュリティの研究者であり、スクリプトの子供ではありません。彼らのウイルスの定義は「ウイルスとは自分自身を増殖させることができるコードの一部である」というものです。それはそれです。ご覧のように、ここでは破壊的な機能は言及されていません。すべてのウイルスは悪であることを必須としています – それはあなたがプロプライエタリなウイルス対策メーカーから得たFUDであり、彼らは彼らのソフトウェアを販売することができました

IMHOは、外部の邪悪な “エイリアン “としてではなく、全体のソフトウェアエコシステムの一部としてウイルスを扱うのが賢明です

3  geek  2009-10-20


ウイルスを見る上で非常に重要なのは、その逆の方法です。ウイルスはどのようにしてシステムを侵害するのか。これは通常、ソフトウェアの脆弱性を介して行われます。アンチ・ウイルス・ソフトウェアは、これらの脆弱性を認識し、脆弱性に影響を与えるソフトウェアを探します。いずれにしても、ウイルスは常に何かをします。だから、彼らが最も得意とすることを何でもするためには、作業プロセスが必要なのです。これは既存のものの中にあることもあれば、自分で作ることもあります

しかし、ほとんどのウイルスは似たような働きをしており、ウイルススキャナが簡単に区別できるようになっています。同じ脆弱性を利用しているウイルスは数多く存在します

Comparison of computer viruses - Wikipedia

1  Pit  2009-10-20


タイトルとURLをコピーしました