web-dev-qa-db-ja.com

AVソフトウェアは、隔離されたファイルが実行されないようにする方法を教えてください。

このスーパーユーザーの質問 から質問がありました。ファイルがまだ何であるかわからない場合は、ファイルを隔離することをお勧めしますか?私が知っていることについては、システムの「制御を失う」ために実行する必要がある多かれ少なかれ2つのステップがあります。まず、システムに挿入する悪意のあるコードがいくつかあり、次にそれを実行する方法が必要です。それでは、AVソフトウェアはこれを回避するために「検疫中」のファイルに対してどのような措置をとりますか?ユーザーがファイルを実行しているだけの場合は問題ではないと私は思います。つまりバグがオーバーフローを引き起こしてコードが実行されていないことを確認するにはどうすればよいですか?

言い換えると、隔離されたファイルの実行を防止するためにAVソフトウェアは何をしますか?とにかく実行されないようにそれらに依存できますか?

注:AVが検疫機能を実行する方法については質問していません。投稿の中心は次のとおりです。「検疫機能がそれ自体を保護する方法/隔離されたファイルがだまされたり、デコードされたり、実行されたりするのを防ぐ方法は何ですか。また、これが発生する可能性はどのくらいありますか?」

17
Zaibis

ウイルス対策プログラムが隔離されたファイルの実行を阻止する方法はいくつかあります。

  • 排他的にアクセスするために開いたままにします。通常の CreateFile APIを使用してdwShareModeにゼロを渡すだけで、他のすべての種類のファイルへのアクセスを防止できます。実行可能ファイルを読み取ることができない場合は、実行できません。通常、ウイルス対策プログラムは最初に起動するものの1つであるため、システムを再起動すると、そのようなファイルをすべて再び開くことができます。
  • ソフトウェア制限ポリシー を使用します。ウイルス対策プログラムがインストールされると、検疫ディレクトリ内のプログラムの実行をブロックするSRPが作成される可能性があります。
  • プロセスの作成に重要な関数をフックします。プロセスの開始には常にNtCreateSectionが含まれるため、ウイルス対策プログラムのカーネルモードドライバーは フックする になり、問題のファイルが実行可能ファイルかどうかを判断し、PAGE_EXECUTEが要求されています。

これらのうち、最初のものだけが非プログラム(たとえば、エクスプロイトを含む可能性のあるドキュメント)に役立ちます。すべてのファイルロードを監視するために、アンチウイルスプログラムは NtCreateFile をフックすることができます。これを呼び出さないとファイルを読み取ることができないためです。あるいは、ページが実行可能であるとマークするのを監視するために、 NtProtectVirtualMemory をフックすることもできます。どちらの方法でも、カーネルモードドライバーは、操作を続行する前に、ユーザー空間で何が行われているかを少し見回すことができます。

ただし、最も簡単な解決策は、隔離されたファイルをディスクに保存されていないキーで暗号化することです。このようなシステムでは、ユーザーはファイルを復号化して隔離解除するためにパスワードを入力する必要があります。これは、非対称キー暗号化を使用するとかなり簡単に実現できます。

17
Ben N

前に返信に記載されている隔離AV機能は、隔離中にファイルを実行またはアクセスできないことを確認します。そのため、アンチウイルスが機能している限り、ウイルスが検疫を逃れる危険はありません。実際には、別の実行不可能な形式でファイルを保存するものや、ファイルの名前を変更して、それらへの読み取り/書き込み。実行アクセスを拒否するものもあります。

簡単な例:ASCII .exeコンテンツを含む標準ファイルを取得し、そのコンテンツをバイナリに変換して、ゼロと1としてテキストファイルに書き直します。そこから問題が発生することはありません。ファイルはテキストとして保存されたバイナリコンテンツであるため、エスケープするものは何もありません。

-編集-

したがって、質問した要素はR/W/Xアクセスを拒否し、ファイルを元の形式以外にエンコードします。

6
Overmind

アンチウイルスによって「悪意のある」というフラグが付けられた重要なファイル(たとえば、プレゼンテーション)があるとします。あなたはそれを削除したくはありませんが(悪意があるとしても結局それは重要です!)、あなたのマシンも感染させたくありません。

それで、あなたにはどんなオプションがありますか?ウイルス対策製品はそれをquarantineできます。悪意のあるファイルがマシンに脅威を与えないように、ディスク上の隔離された環境にファイルを保持します。

これらのファイルの処理方法にはさまざまなアプローチがあります。1)ファイルを別の場所に移動する2)ファイルの名前を変更する、ファイルの形式を変更する3)ファイルのアクセス許可を変更する、非表示にする4)暗号化するまたはファイルをエンコードして、ファイルにアクセスしたとしても悪意のあるコードを役に立たなくする

さて、ファイルが大混乱をもたらすかもしれない、または単に誤検知であるかもしれないことを理解した後でも、ファイルを取り戻したい場合はどうでしょうか?ウイルス対策製品には、隔離されたファイルを元の形式で隔離から元の場所に移動するオプションが用意されているため、再び使用できます(もちろん、自己責任で!)。

ファイルが無害であると強く疑っている場合は、他のアンチウイルス(たとえば、 Virustotal )でスキャンしてみてください。ウイルス対策製品のベンダーに、悪意のある動作がないかファイルを再確認するよう依頼することもできます。無害であることが確認できたら、安全にファイルを隔離から復元できます。

はい、定評のあるウイルス対策製品の検疫機能を利用できます。

2
pri

ユーザーがその許可を与えていなくても、ファイルが実行されることはまずありません。そのユーザーは、ファクトリー・イメージを作成した人か、別のプログラムを実行したときのあなたかもしれません。

(悪意のある)コンテンツへのアクセスを防ぐには、完全に別のマシンを使用して、コンテンツと同じ長さのワンタイムパッドを使用して暗号化し、暗号化されたコンテンツとパッドを分離するまで、コンテンツにアクセスします。ストレイ実行ポインタは、安定したコードではまれであるため、デコードされた場合でも悪意のあるコンテンツを実行するべきではありません。もちろん、デコーダーが安全でない言語で書かれていて、コンテンツが悪用することがわかっているバグが含まれている場合を除きます。 (JPGエクスプロイトを参照してください。)

コンテンツを回収したくない場合は、オービットからコンテンツをシュレッド(安全な読み取り専用メディアから起動)して、コンテンツが返されないようにします... HDDを使用している場合。 SSDは、それらのセルに含まれるデータが失われたことを保証しない方法で、独自のストレージセルを管理することが知られています。 HDDでさえ、軍の仕様に従って複数の上書きが必要であり、多くの企業が経済的なデータ回復を保証しないようにドライブを物理的に細断します。

0
Cees Timmerman