web-dev-qa-db-ja.com

Windowsタスクマネージャは、すべてのプロセスを許可なしに非管理者として表示できます

標準ユーザーとして動作しているWindows Server 2008 R2で、タスクマネージャーを開くと、システム上のさまざまなユーザーのすべてのプロセスを確認できます。昇格が必要な[すべてのプロセスを表示]をクリックするオプションがあります。これにより、実際にすべてのプロセスが表示されます。

昇格せずに他のユーザー(他の標準ユーザーまたは管理者ユーザーを含む)からのプロセスを表示できるのはなぜですか?

4
Sonny Ordell

Windowsシステムコールの観点から、プロセス情報の取得は、パラメーターとして_SYSTEM_PROCESS_INFORMATION_を指定した NtQuerySystemInformation() を介して実行できます。

ただし、この動作の真の手掛かりは GetProcessMemoryInfo() にあり、これは プロセスのセキュリティとアクセス権 で説明されている_PROCESS_QUERY_LIMITED_INFORMATION_と呼ばれる権限について言及しています。具体的には:

[Windows Vistaの場合] PROCESS_QUERY_INFORMATIONを通じて利用可能な情報のサブセットへのアクセスを提供するために、PROCESS_QUERY_LIMITED_INFORMATION権限が導入されました。

これは、そのページを読み続けると、Vistaの一部のプロセス、特にDRMを使用するプロセスで_PROCESS_QUERY_INFORMATION_が拒否されるために発生します。したがって、実行中のプロセスに関する情報を提供するために、この簡略版を入手します。

私はまだこれを確認するWindowsボックスではありませんが、すべてのユーザーが特定のプロセスに少なくとも_PROCESS_QUERY_LIMITED_INFORMATION_を持っているため、自分に属していないプロセスでも限られた情報をクエリできると信じています。それらの存在はそのような特性の1つですが、SteveSがコメントで指摘しているように、詳細は限られています。

4
user2213