3

セキュリティ上の理由から、プロセス権限を削除する方法を探しています。特権を持つユーザーとして開始し、制限付きユーザーとして終了したい。

たとえば、ポート 80 でリッスンしたいので、Web サーバーを制限付きユーザーで実行したいとします。

Windowsでそのようなことを行うにはどうすればよいですか。Unixのものに似たもの:

bind_to_80();
chroot("/some/limited/dir");
setuid(limited_user_id);
setgid(limited_group_id);
chroot("/some/limited/dir");
// drop some more rights
fork(); // now I can't come back

Windowsで同様のことを行うにはどうすればよいですか?

編集: もちろん、Windows には fork や chroot がないことは理解していますが、さまざまな権限、特にユーザーのベスト プラクティスを削除する方法を探しています。

4

1 に答える 1

3

およびを使用して Windows で権限を剥奪する方法についてのMark Russinovich の説明をご覧ください。彼が説明するように、プロセスが実行されているアカウントはまだその権限を保持しているため、これは防弾ではありません。CreateRestrictedTokenCreateProcessAsUser

そしてもちろん、彼のPsExecAdministrator sysinternals ユーティリティは、コーディングを必要とせずに、少なくとも特権を取り除くのに役立ちます。

既存のプロセスでは、操作AdjustTokenAdjustTokenGroup許可しているように見えますが (前者は明らかに XPSP2 以上が必要です)、特権自体が必要です... この方法で特権切腹をコミットすることは可能かもしれませんが、私はそれらを試していません: 彼らは吠えるかもしれません現在のプロセスの権限を操作しています。

于 2010-10-19T09:19:30.443 に答える