web-dev-qa-db-ja.com

どのルートキットをいつ使用するのですか?

これまでの私の理解によると:

  • カーネル空間のルートキットはring0で実行され、syscallsなどの手法を使用します

  • ユーザースペースのルートキットはring3で実行され、ライブラリインジェクションなどの手法を使用します

  • ルートキットはすべて管理者権限で実行されます。したがって、攻撃者はルートキットを実行するために必要な情報を入手する可能性があります。

ただし、カーネルスペースのルートキットまたはユーザースペースのルートキットのどちらを使用したいのか混乱しています。カーネルスペースルートキットにはより高い特権があるので、なぜカーネルスペースルートキットを毎回実行するだけではないのですか?

3
meoware

対象のシステムに対する高い権限がない可能性があります。リング0またはカーネルを変更できる同等の権限がない場合(サポートされている場合にカスタムの署名されていないカーネルモジュールをロードするなど)、ユーザー空間のルートキットに制限する必要がある場合があります。ルートを持っているからといって、リング0を取得できるわけではありません。多くの安全な構成によって、ルートがカーネルを変更できなくなります。

ユーザー空間のルートキットを好むかもしれないもう1つの理由は、クラッシュまたは誤動作する可能性が低いためです。カーネルルートキットは通常、1つの特定のカーネルバージョンでのみ機能し、カーネルの更新にはルートキットの調整が必要です。さらに、カーネルルートキットは不安定性を引き起こし、システム全体をダウンさせる可能性が高くなります。カーネルルートキットがsyscallフッキングのような強力な機能を必要としない場合は、より安定しており、さまざまなシステムで機能するオプションを選択できます。

適切に設計されたユーザースペースルートキットは、Debian LinuxでもSolaris(Linuxシステムと共通のコードがないUNIX)と同じように機能しますが、カーネル4.18.6でDebian用に設計されたカーネルルートキットは、loadカーネルのバージョンがまったく同じであっても、CentOSで実行しようとした場合。

5
forest