1

バックグラウンド: バックグラウンドで (明らかに) 動作する Windows サービスがあり、ユーティリティ プログラムを使用して特定の対話型タスクを実行し、名前付きパイプを介してデータをサービスに送り返します。ユーティリティ プログラムは、サービスが適切と判断したときに実行され、数秒間しか存続しません。

この問題は、プログラムが名前付きパイプを書き込みアクセス用に自由に開くことができなくなった Vista で始まります ( Windows Service Hardeningを参照)。

プログラムが開始されたコンテキストで現在ログインしているユーザーに書き込みアクセスを許可するようなセキュリティ属性を持つ名前付きパイプを作成することで問題を解決する予定ですが、疑問が頭に浮かびました:その名前付きへのアクセスを許可できますかその(またはそのスレッドの)ハンドルを使用してプロセスのみにパイプしますか?

または、別の言い方をすれば、Windows (Vista/7/以降) のセキュリティ メカニズムはプロセス レベルの粒度まで下げることができますか?

私はその分野の初心者であり、セキュリティに関するドキュメントは私にかなりの頭痛の種を与えているので、どんな啓発も歓迎します.

前もって感謝します。

4

1 に答える 1

1

プロセス ID を介してオブジェクトを保護することはできません (プロセスはセキュリティ プリンシパルではないため) がGetNamedPipeClientProcessId、接続が確立された後に使用でき、プロセス ID が好みのものでない場合はすべての要求を失敗させます。

于 2011-09-12T13:18:33.207 に答える