web-dev-qa-db-ja.com

ルートキットを持っているかどうかはどのようにしてわかりますか?

それらを検出することは不可能ですか?攻撃者が管理者権限を持ち、ルートキットを検出または回避するために使用される可能性のあるウイルス対策ソフトウェアを変更する可能性があることを確認します。ルートキットを指す特定の赤旗はありますか?彼らはあなたがするすべてを見ることができますか?

24
DBroncos1558

「ルートキット」は通常、検出されないように真剣に試みます。ただし、ルートキットの目的は攻撃者のエントリパスを維持することであるため、理論的には完全に検出できなくなることはありません。少なくとも攻撃者は、ルートキットが配置されているかどうかを知ることができます。

これまで多くの方法が使用されてきました。たとえば、一部のルートキットはカーネルメモリに自分自身をインストールし、ハードディスクに痕跡を残さないため、検出が非常に困難ですが、次の再起動時に消えます。より一般的には、ルートキットは再起動に抵抗するために一部のファイルまたはディスクの一部を変更しますが、マシンのプロセスから変更が見えないようにカーネルを変更する必要があります。

つまり、基本的に、ルートキットが適切に機能する場合、マシン自体からルートキットを検出することはできません。ライブCDまたはUSBキーでマシンを再起動すると、可能性がある可能性があり、それからOS(クリーンだと推定される) )、ハードディスクを検査します。同じファイルがまったく同じに見えない場合、外部(ライブCDで起動したOS)と内部から検査すると、これは不正なプレーのかなり明確な兆候です。

これはすべて、ルートキットが意図したとおりに機能することを前提としています。痕跡を残す多数の未熟なルートキット(または未熟な攻撃者)がいます。たとえば、ルート(または管理者)のホームディレクトリにある奇妙なファイル。


A rootkit は、攻撃者がマシンを完全に制御できる状況で意味をなします。ルートキットの役割は、このレベルの制御を維持することです。その後、攻撃者はマシン上で実行するすべてを確認でき、ルートキットがアクティブである限り、マシン上で実行するすべてを継続的に確認できます。

(「ルートキット」という用語は、エスカレーションツール、つまりローカルの脆弱性を悪用してマシン上のユーザーレベルのアクセスを完全なadinレベルのアクセスに変換するツールにも適用されています。同じ結果:マシンはもはやyourマシンではありません。)

24
Thomas Pornin

ルートキットを指す特定の赤旗はありますか?彼らはあなたがするすべてを見ることができますか?私はセキュリティの初心者なので、簡単にしてください。

一般的にルートキットでは確実です。ただし、Thomasがすでに述べたように、ルートキットは攻撃者のためのエントリトレイルを残さなければなりません。つまり、攻撃者のユーザーモードコードは、なんとかしてルートキットと通信できる必要があります。

これを実現する方法の例をいくつか示します。

  • /procのように、重要な外観の名前でカスタム/proc/gpuinfoデバイスを実装します。さて、それは少し明白ですが、あなたはアイデアを得ます-通信エンドポイントで/proc(procfsはLinuxの1つのメタファイルシステムであり、ユーザーランドと通信できます)または/sysまたは/dev通常は存在しませんが、システム管理者はthinkが正常です。

    Rkhunterログを確認すると、これらを探しているのがわかります。

  • 上記の項目のいずれかのエントリを変更して、通常は反応しないことに応答します。ほとんどのデバイスエントリは、さまざまなcodesに応答して、何かをするように指示します。これは、/devで特に当てはまります。これに不明瞭なコードを通信メカニズムとして追加します。

    Windowsシステムでは、フィルタードライバーを使用して同じことを達成できます。または、ターゲットのドライバーオブジェクトにパッチを適用して選択します(ただし、フィルタードライバーの方が安定しています)。

    検出メカニズムは、(通常)これらに応答しないデバイスで偽のデバイスコードを試すことです。システムに関連する「実装されていない」エラーコード以外のエラーが発生した場合は、何か奇妙なことが起こっています。

  • システムドライブを別のPCにマウントすると、予想とは異なるファイルシステムサイズ、または以前は見ることができなかったファイルが表示されます。一部のWindowsエディションはまだディスクジオメトリを使用しているので、ファイルシステムのサイズが異なること自体がルートキットの症状ではないことに注意してください。 NTFSボリュームの最後に作成された暗号化されたファイルシステムの名前を覚えておいてください。簡単にディスクが圧縮されます。同様に、ルートキットの一般的な動作は、ライブシステムのFS)に表示されないようにファイルエントリを削除することです(それらを非表示にするため)。

残念ながら、ルートキットの一般的な赤旗はありません-戦いはより猫とマウスです。ルートキットの作成者は、スキャナーが1種類の通信チャネルまたはフックを検出できることを理解するとすぐに、戦略を変更します。

彼らはあなたがするすべてを見ることができますか?

ルートキットは、私がそれを考える傾向にあります。つまり、システムへの侵入を維持することを目的とするカーネルレベルの攻撃は、カーネルがシステム全体を管理し、ルートキットは同じであるため、一般的には可能です特権。いくつかの防御があります。最新のWindowsおよび一部のLinuxディストリビューションは、署名されたカーネルドライバー/モジュールを適用し、これを適用する場合があります。これにより、攻撃ベクトルがブートシーケンス(カーネルが何かを強制する前に)に移動します。これは、UEFIセキュアブートが対処するように設計されています。

あなたはこれを尋ねませんでしたが、とにかく私は要点を述べます。通常、システムポリシーが少し狂っていない限り、カーネルモジュール/ドライバーを挿入するには管理者権限が必要です。したがって、ルートキットをインストールするには、攻撃者は最初に特権昇格攻撃を行う必要があります。これが起こらないように最善を尽くすことは、ルートキットから身を守る方法です。

補足1:ルートキットはカーネルランドにある必要はなく、傍受のようなマルウェアも必要ありません。カーネルドライバーなしでこれを達成することは可能です。問題のユーザーが管理者でない場合、被害は通常より限定されます。

11
user2213