ผู้ใช้หรือกลุ่ม“ 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 ใด ๆ ในโทเค็นการเข้าถึงที่มีสิทธิ์นั้น

SID ของ Windows ที่รู้จักกันดีบางตัวจะมีชื่อที่ Windows รายงานแม้ว่าจะไม่ได้เป็นของบัญชีใด ๆ

การรักษาความปลอดภัยตัวบ่งชี้ จะถูกกำหนดโดยวิกิพีเดีย:

ที่ไม่ซ้ำกันระบุไม่เปลี่ยนรูปของผู้ใช้กลุ่มผู้ใช้หรือ การรักษาความปลอดภัยอื่น

SID ไม่จำเป็นต้องกำหนดบัญชีผู้ใช้หรือกลุ่ม มันเพียงกำหนดชุดของสิทธิ์ บทความ Wikipedia ข้างต้นเพิ่ม:

Windows ให้หรือปฏิเสธการเข้าถึงและสิทธิพิเศษในการใช้ทรัพยากรตามรายการควบคุมการเข้าถึง (ACLs) ซึ่งใช้ SID เพื่อระบุผู้ใช้และสมาชิกกลุ่มของพวกเขาโดยไม่ซ้ำกัน เมื่อผู้ใช้ล็อกอินเข้าสู่คอมพิวเตอร์โทเค็นการเข้าถึงจะถูกสร้างขึ้นที่มีผู้ใช้และกลุ่ม SID และระดับสิทธิ์ของผู้ใช้ เมื่อผู้ใช้ร้องขอการเข้าถึงทรัพยากรโทเค็นการเข้าถึงจะถูกตรวจสอบกับ ACL เพื่ออนุญาตหรือปฏิเสธการกระทำบางอย่างบนวัตถุเฉพาะ

NT-AUTHORITY\SYSTEMสามารถเพิ่มSID ของไปยังบัญชีอื่น ๆ ตัวอย่างเช่นมีการกล่าวถึง บัญชี LocalSystem :

บัญชี LocalSystem เป็นบัญชีท้องถิ่นที่กำหนดไว้ล่วงหน้าที่ใช้โดยผู้จัดการควบคุมบริการ [... ] โทเค็นประกอบด้วย SIDs NT AUTHORITY \ SYSTEM และ BUILTIN \ Administrators บัญชีเหล่านี้มีการเข้าถึงวัตถุระบบส่วนใหญ่

ใคร ๆ ก็สามารถดูข้อความข้างต้นถึงความสับสนที่ครอบงำแม้ในเอกสารของ Microsoft เกี่ยวกับ SID ของระบบซึ่งไม่ใช่บัญชีหรือกลุ่ม - ซึ่งเป็นเพียงชุดของการอนุญาต ความสับสนนี้เพิ่มเติมรวมถึงโปรแกรมอรรถประโยชน์และบทความอื่น ๆ ดังนั้นข้อมูลใด ๆ ที่ส่งคืนควรตรวจสอบอย่างรอบคอบ

บทความของ Microsoft ตัวระบุความปลอดภัยที่รู้จักกันดีในระบบปฏิบัติการ Windows มี รายละเอียด SID ของระบบทั้งหมดซึ่งฉันได้รวมไว้ด้านล่าง:

ภาพ

สรุป : NT-AUTHORITY \ SYSTEM คือชื่อของรหัสความปลอดภัยซึ่งไม่ใช่ทั้งกลุ่มหรือบัญชี มันจะแสดงในตัวจัดการงานเป็นระบบเมื่อมันเป็น SID หลักของโปรแกรม ฉันจะเรียกมันว่า "บัญชีหลอก"


1
คุณชนะฉันไปที่เพื่อนของฉัน ฉันครึ่งทางผ่านการเขียนคำตอบที่คล้ายกันเมื่อคำตอบของคุณมานี่คือคำอธิบายที่เหมาะสม มันเป็นเพียงแค่ชุดของการอนุญาตและไม่ว่าจะแสดงเป็นกลุ่มหรือผู้ใช้ผิดทั้งคู่ ในฐานะที่เป็นเครื่องมือส่วนใหญ่เท่านั้นที่สามารถแสดงทั้ง "ผู้ใช้หรือ 'กลุ่ม' พวกเขาเพียงแค่เลือกหนึ่งหรืออื่น ๆ มักจะเป็นกลุ่ม Win32 API ชุด SidTypeGroup ทราบและที่อยู่ถูกใช้งานมากที่สุดได้รับข้อมูลของพวกเขาจาก..
Tonny

ว้าว! ฉันเริ่มเงินรางวัลเพื่อให้รางวัลคำตอบที่มีอยู่แล้วจะเกิดอะไรขึ้น คำตอบที่ดีกว่าปรากฏขึ้น :-) คำถามหนึ่งข้อ: บัญชี LocalSystem มี SID ของตนเอง ("บัญชี") หรือไม่หรือเพียงแค่ใช้ NT-AUTHORTY \ SYSTEM SID เป็น SID หลัก
Heinzi

1
@Heinzi: LocalSystem เป็นอีกหนึ่ง "บัญชีหลอก" หนึ่งสามารถเห็นสิ่งนี้ได้ในลิงก์ที่ระบุว่า: "บัญชีนี้ไม่ได้รับการยอมรับจากระบบย่อยความปลอดภัยดังนั้นคุณจึงไม่สามารถระบุชื่อในการเรียกไปยังฟังก์ชัน LookupAccountName"
harrymc

- which are just a set of permissions: ไม่ซึ่งหมายถึงรหัสระบบหรือไปยังบัญชีหรือกลุ่ม ?
René Nyffenegger

@ RenéNyffenegger: ทั้งสอง
harrymc

7

IMHO การสังเกตของคุณถูกต้อง 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.