「NT AUTHORITY\SYSTEM」はユーザーですか、それともグループですか?

「NT AUTHORITY\SYSTEM」はユーザーですか、それともグループですか?

Windows では、ユーザーはSystemグループ シンボルとともに表示されます。 ここに画像の説明を入力してください(内部Win32 APIの使用アカウント ID の検索また、グループであると思われるシドタイプグループ

一方、プロセスsystem contextは のように実行できますuser context。また、Microsoft のドキュメントでは、これを「システム グループ」ではなく、「システム ユーザー」または「システム アカウント」と説明しています。

従来の目的でグループとして表示されるユーザーですか?

(それとも何かヴェルナー・ハイゼンベルク興味があったでしょうか?


注記:NT AUTHORITY\SYSTEM ユーザーとは何ですか?似ていますが、なぜグループとして表示され、ユーザーのように動作するのかという疑問には答えていません。

答え1

初め、アクセストークン 以上のものが含まれていますセキュリティ識別子 (SID)プログラムを「管理者として実行」するだけで、タスク マネージャーでそのユーザーが管理者ではなく自分自身であることがわかります。この奇跡は、SID を置き換えるのではなく、アクセス トークンを変更するだけで実現されます。

2 番目に、NT-AUTHORITY と SYSTEM は、他のさまざまな情報源 (Microsoft 内部でも) の言うことにもかかわらず、アカウントでもグループでもありません。SID には通常、必要なときに表示される名前があります。ユーザー アカウントは、その SID をプリンシパル SID としてアクセス トークンに提供します。これにより、さまざまなユーティリティによって表示される名前も決まります。ただし、アクセス トークンには、たとえばそのユーザー アカウントが属するすべてのグループの SID など、追加の SID が含まれている場合があります。アクセス許可を確認するとき、Windows は、そのアクセス許可を持つアクセス トークン内の SID を検索します。

よく知られている Windows SID の中には、実際にはどのアカウントにも属していないにもかかわらず、Windows によって名前が報告されるものがあります。

セキュリティ識別子 Wikipediaでは次のように定義されています:

ユーザー、ユーザーグループ、または その他のセキュリティプリンシパル

SID では、ユーザー アカウントやグループを定義する必要すらありません。権限のセットを定義するだけです。上記の Wikipedia の記事には、次のように付け加えられています。

Windows は、SID を使用してユーザーとそのグループ メンバーシップを一意に識別するアクセス制御リスト (ACL) に基づいて、リソースへのアクセスと権限を許可または拒否します。ユーザーがコンピューターにログインすると、ユーザーとグループの SID およびユーザー権限レベルを含むアクセス トークンが生成されます。ユーザーがリソースへのアクセスを要求すると、アクセス トークンが ACL と照合され、特定のオブジェクトに対する特定のアクションが許可または拒否されます。

のSIDはNT-AUTHORITY\SYSTEM他のアカウントにも追加できます。例えば、 ローカルシステムアカウント:

LocalSystem アカウントは、サービス コントロール マネージャーによって使用される定義済みのローカル アカウントです。 [...]そのトークンにはNT AUTHORITY\SYSTEMとBUILTIN\Administrators SIDが含まれています。これらのアカウントほとんどのシステム オブジェクトにアクセスできます。

上記のテキストから、システム SID に関して Microsoft のドキュメントでも混乱が生じていることがすでにわかります。システム SID はアカウントでもグループでもなく、単なる権限のセットです。この混乱は他のユーティリティや記事にも及んでいるため、返される情報は注意深く調べる必要があります。

マイクロソフトの記事 Windows オペレーティング システムでよく知られているセキュリティ識別子 すべてのシステム SID の詳細を示します。そのうちのいくつかを以下に示します。

画像

結論: NT-AUTHORITY\SYSTEM は、グループでもアカウントでもないセキュリティ ID の名前です。プログラムのプリンシパル SID である場合、タスク マネージャーでは SYSTEM として表示されます。これを「疑似アカウント」と呼ぶのが最も適切でしょう。

答え2

私の意見では、あなたの観察は正しいです。NT-AUTHORITY\SYSTEMグループなので、システムと呼ぶことができますグループこのグループWindows NT 4以降に存在少なくともそこにはすでにグループが存在しています:

特別グループ

[...]

システム - オペレーティング システム。

というアカウントもありますローカルシステムどれの

[...] には NT AUTHORITY\SYSTEM [...] が含まれます

これをシステムと呼ぶこともできるユーザーSYSTEM グループのメンバーです。

システム内部PsGetSidSYSTEM のグループ理論をサポートします。

C:\>PsGetsid.exe S-1-5-18

PsGetSid v1.44 - Translates SIDs to names and vice versa
Copyright (C) 1999-2008 Mark Russinovich
Sysinternals - www.sysinternals.com

Account for YOURPCNAMEHERE\S-1-5-18:
Well Known Group: NT-AUTHORITY\SYSTEM

グループとしてのプロセスの開始について:

セキュリティを管理するために、プロセスはアクセストークンアクセストークンにはSIDのみが含まれています。ユーザーのSIDが本当にユーザーなのかグループなのかをチェックする機能があるかどうかはわかりません。原則的には問題ではありません。SIDはアクセスできるものを定義します。おそらくCodeProjectの記事実装を支援できる

関連情報