「NT AUTHORITY \ SYSTEM」はユーザーまたはグループですか?


17

Windowsでは、ユーザーSystemはグループ記号:で表示されます ここに画像の説明を入力してください(内部Win32 API LookupAccountSidを使用すると、グループSidTypeGroupのように見えることも明らかになります。)

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

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

(または、それはヴェルナー・ハイゼンベルグが興味を持っていただろうか?)


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


これはおそらくあなたに答えますか?ここの質問:superuser.com/questions/471769/…–
XsiSec

あなたは私の悪い謝罪です
-XsiSec

SIDはこれらのいずれかである必要はありませんか?
user1686

回答:


13

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

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

一部の有名なWindows SIDには、Windowsによって報告される名前がありますが、実際にはどのアカウントにも属していません。

A セキュリティ識別子は、 ウィキペディアでのように定義されます。

ユーザー、ユーザーグループ、またはその他のセキュリティプリンシパルの一意の不変の識別子 。

SIDは、ユーザーアカウントまたはグループを定義する必要もありません。一連の許可を定義するだけです。上記のウィキペディアの記事には以下が追加されています。

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

のSIDはNT-AUTHORITY\SYSTEM他のアカウントに追加できます。たとえば、これはLocalSystemアカウントについて言われてい ます

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

上記のテキストでは、Microsoftのドキュメントでさえ、システムSIDに関して支配している混乱を既に見ることができます。システムSIDは、アカウントでもグループでもありません-単なるアクセス許可のセットです。この混乱は他のユーティリティや記事にも及ぶため、返された情報は慎重に検討する必要があります。

Microsoftの記事「 Windowsオペレーティングシステムの既知のセキュリティ識別子」に は、すべてのシステムSIDの詳細が記載されています。そのうちのいくつかを以下に示します。

画像

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


1
あなたは私の友人に私を打ちました。あなたの答えが入ったとき、私は同様の答えを書く途中でした。これは適切な説明です。これは権限の集合であり、グループとして表示されるかユーザーとして表示されるかはどちらも間違っています。。ほとんどのツールは、いずれか一方のみ、「ユーザーまたは『グループ』を表示することができ、それらはただ一つのWin32 APIセットSidTypeGroup応じなどの他の通常のグループを選択し、それはほとんどのアプリケーションからその情報を取得している。
Tonny

うわー!既存の回答に報いるために賞金を開始しますが、どうなりますか?より良い答えが表示されます。:-)ただし、LocalSystemアカウントには独自の( "アカウント")SIDがありますか、それともNT-AUTHORTY \ SYSTEM SIDを主要なSIDとして使用していますか?
ハインジ

1
@Heinzi:LocalSystemはもう1つの「疑似アカウント」です。「このアカウントはセキュリティサブシステムによって認識されないため、LookupAccountName関数の呼び出しでその名前を指定することはできません」というリンクでこれを確認できます。
harrymc

- which are just a set of permissionsシステムIDまたはアカウントまたはグループ参照しますか
ルネニフェネガー

@RenéNyffenegger:両方。
-harrymc

7

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

特別グループ

[...]

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

LocalSystemというアカウントもあります。

[...] NT AUTHORITY \ SYSTEMを含む[...]

したがって、これをSYSTEMグループのメンバーであるシステムユーザーと呼ぶことができます。

SysInternals PsGetSidは、SYSTEMのグループ理論をサポートしています。

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の記事が実装に役立つでしょう

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.