web-dev-qa-db-ja.com

リング3ルートキットはどのようにして/ etcや/ usr内のファイルを変更しますか?

A 最近の記事 好奇心が急上昇しました。私と裸にしてください。私はセキュリティの専門家ではなく、Linux管理者です。

これは、ルートキットがユーザースペースから実行されることを示していますが、/etc/so.preloadを変更し、/usr/shareの下にファイルを作成します。これはどのメカニズムで可能ですか?私の知る限り、記事には触れられていませんでした。

5
tink

ユーザーモードのプログラムがファイルを書き込む方法を尋ねているだけですか?ユーザーモード(リング3)は特権がないことを意味しませんが、カーネルモード(リング0、ユーザーモードの反対)は特権があることを意味します。コマンドをSudoするたびに、任意のファイルを変更できるリング3コードを実行しています。 「root」ユーザーのプログラムは、他のユーザーとまったく同じようにリング3で実行されます。

このようなルートキットをインストールするには、インストールするために特権(ルートなど)が必要です。ユーザー空間コードで実行できるユーザーの作成などを行います(カーネルへの呼び出しはいくつかありますが、実行するためにカーネルモジュールをインストールする必要はありません)。ただし、特権のないユーザーは実行できません。

補足として、ユーザーモードのルートキットはカーネルモードのルートキットよりも脆弱です。実際問題として、システムコールは「通常の」関数のようなものではなく、詳細はプラットフォーム固有および実装固有であり、変更される可能性があるため、サードパーティのコードは基本的にシステムコール直接カーネルのメジャーリビジョン。コードから直接syscallを作成すると、移植性が失われ、失敗する可能性が高くなります。ただし、それは可能であり、これを行うと、ユーザーモードのルートキットがシステムコールを改ざんするように設定したシムがバイパスされます。

2
CBHacking