web-dev-qa-db-ja.com

ウイルス対策製品は「カナリアファイル」を使用してルートキットを検出しますか?

最近、いくつかのルートキットが特定のファイルやサービスなどをカーネルモードまたはユーザーモードのプログラムから隠す方法を学びました。

これは私に不思議に思いました:通常、これらを検出するためにルートキットによって隠されているファイル名に共通の文字列を含む「カナリアファイル」を使用するアンチウイルスプログラムまたは他の侵入検知システムはありますか?

つまり:

1.)MyRootkit.virは、ファイル名に文字列 ".vir"を含むファイルを非表示にすることが知られています。
2。)インストール(または署名の更新)時にMyAVはC:\ Program Files\MyAV\Canary Files \にMyRootkitcanary.virを配置します
3。)スキャン中にMyAVが実行されますcmd -c dir "C:\Program Files\MyAV\Canary Files\"
4。)MyRootkitcanary.virがシステムの応答に含まれていない場合、MyAVはシステムがMyRootkit.virに感染している可能性があることを警告します。

9
Iszi

これを行うエンドユーザー向けの一般的なウイルス対策製品については知りません。

ただし、多くのルートキットは、絶対パスを使用するか、ファイルを既知のオペレーティングシステムフォルダーに配置します。したがって、カナリアファイルを任意のフォルダーに配置するアプローチは、多くのルートキットをキャッチする可能性は低いです。

しかし、カナリアファイルをアンチウイルスフォルダーの外に置くと、実際の感染に対する疑いが高まる可能性があります。これにより、追加のサポートリクエストが作成され、最悪の場合、報道が不利になる可能性があるため、アンチウイルスベンダーの活動は非常に困難になります。

専用のルートキット検出ツールがこのアプローチを試す可能性があります。一見すると chkrootkit は、主に不整合の検出に基づいています。たとえば、プロセス(chkproc)とフォルダー(checkdirs)を一覧表示する方法はさまざまです。

5

より堅牢な検出手法は、ディスクからファイルシステムカタログを直接読み取り、そこに報告される内容と、オペレーティングシステムにどのファイルが存在するかを尋ねた結果を比較することです。結果が予期しない方法で異なる場合は、ルートキットがある可能性があります。他の人々が報告したように、あなたが提案するメカニズムはルートキットが自分のファイルを隠すだけでは不十分であることに依存しています。

出力にexpectedの違いがあることに注意してください。たとえば、HFS +ファイルシステムのカタログファイルには、適切な実装ではOSに公開されない内部ハウスキーピング用のファイルのコレクションがあります。

4
user185

良いアイデア。一部のルートキットハンターは、あなたが説明するように、同様のカナリアテストを実装しています。コンセプトを少し正式化しましょう。ルートキットの存在によって変更されるリソースを作成します。

多くのLinuxルートキットは、uidまたはgidに基づいてプロセスなどを非表示にします。ユーザー/グループごとにカナリアを作成できます。

for uid in {0..65535}; do
 touch /root/tmp/canary_$uid
 chown $uid:$gid /root/tmp/canary_$uid
done

次に、lsによって表示されたファイルを数えます

if (( $(ls -la | head -n +1 | grep total | cut -d\  -f 2) -ne 65536 )); do
 echo "missing canary file, possible RK detected"
done

また、一部のルートキットハンターは、どのリソースを使用可能にする必要があるかをチェックしますが、使用不可です。つまり、ソケットとプロセスIDです。利用可能なすべてのtcp/udpポートにバインドしようとするプログラムを簡単に作成できます。プログラムが失敗した場合は、すでにそのポートにバインドされている「何かが隠されている」ことを示します。

しかし、それはこれらのテクニックがどれだけ進んでいるかについてであり、簡単に覆すことができます。ルートキットは他のプロセス内で(スレッドとして)実行でき、通信用の共有リソースの割り当てを回避できます(バインドではなくスニッフィング)。

また、チェックアウトすることもできます: http://www.rootkit.nl/projects/rootkit_hunter.html

1