STATEMENT
声明
由于传播、利用此文所提供的信息而造成的任何直接或者间接的后果及损失,均由使用者本人负责,雷神众测及文章作者不为此承担任何责任。
雷神众测拥有对此文章的修改和解释权。如欲转载或传播此文章,必须保证此文章的完整性,包括版权声明等全部内容。未经雷神众测允许,不得任意修改或者增减此文章内容,不得以任何方式将其用于商业目的。
分子实验室 https://molecule-labs.com/
前言
原文由于没有中文版,因此这里手工整理翻译了一下全文方便大佬们后续参考。
原文:[MS-GPSB] 组策略安全扩展协议
https://docs.microsoft.com/zh-cn/openspecs/windows_protocols/ms-gpsb/6a07a06b-e628-4765-9d91-0d63ba47fdc0
组策略:安全
NO.1 介绍
本文档指定组策略:核心协议的组策略:安全协议扩展,如[MS-GPOL]中所指定。
1.1 词汇表
Active directory
通用目录服务的Windows实现,它使用LDAP作为其主要访问协议。Active Directory存储有关网络中各种对象的信息,如用户帐户、计算机帐户、组以及Kerberos[MS-KILE]使用的所有相关凭据信息。Active Directory可以作为Active Directory域服务(AD DS)或Active Directory轻量级目录服务(AD LDS)部署,这两种服务在[MS-ADOD]:Active Directory协议概述中都有描述。
Active Directory object
在[MS-ADTS]第3.1.1节中定义的Active Directory中使用的一组目录对象。Active Directory对象可以通过DSName标识。另请参见目录对象。
attribute
某些对象或实体的特征,通常编码为名称/值对。
class
与键关联的用户定义的二进制数据。
client
客户端,也称为客户端计算机,是接收并应用[MS-GPOL]中指定的组策略对象(GPO)设置的计算机。
CSE GUID
client-side extension 客户端扩展GUID(CSE GUID):一种GUID,它使组策略客户端上的特定客户端扩展能够与存储在组策略服务器上的组策略对象(GPO)的逻辑和物理组件中的策略数据相关联。
DACL
自主访问控制列表(DACL):由对象所有者控制的访问控制列表(ACL),它指定特定用户或组可以对该对象进行的访问。
Domain
域:共享公共名称空间和管理基础结构的一组用户和计算机。该组中至少有一个计算机成员必须充当域控制器(DC)并承载标识域所有成员的成员列表,还必须可选地承载Active Directory服务。域控制器提供成员身份验证,为其成员创建信任单元。每个域都有一个在其成员之间共享的标识符。有关更多信息,请参见[MS-AUTHSOD]节1.1.1.5和[MS-ADTS]。
DC
域控制器(DC):在实现Active Directory的服务器上运行的服务,或承载此服务的服务器。该服务托管对象的数据存储,并与其他DC进行互操作,以确保对对象的本地更改在所有DC之间正确复制。当Active Directory作为Active Directory域服务(AD DS)运行时,DC包含其林中的配置命名上下文(配置NC)、架构命名上下文(架构NC)和一个域NC的完整NC副本。如果AD DS DC是全局编录服务器(GC服务器),则它包含其林中剩余域NC的部分NC副本。有关更多信息,请参见[MS-AUTHSOD]节1.1.1.5.2和[MS-ADTS]。当Active Directory作为Active Directory轻型目录服务(AD LDS)运行时,多个AD LDS DC可以在一台服务器上运行。当Active Directory作为AD DS运行时,一台服务器上只能运行一个AD DS DC。但是,多个AD LDS DC可以与一个AD DS DC共存在一台服务器上。AD LDS DC在其林中包含配置NC和架构NC的完整NC副本。域控制器是身份验证协议域支持[MS-APDS]的服务器端。
GUID
全局唯一标识符(GUID):在Microsoft协议技术文档(TDs)中与通用唯一标识符(UUID)互换使用的术语。交换这些术语的用法并不意味着或要求特定的算法或机制来生成值。具体来说,使用这个术语并不意味着或要求必须使用[RFC4122]或[C706]中描述的算法来生成GUID。另请参见通用唯一标识符(UUID)。
Group Policy
组策略:允许实现者为Active Directory服务环境中的用户和计算机指定托管配置的机制。
Group Policy Object
组策略对象(GPO):管理员定义的策略设置规范的集合,可以应用于域中的计算机组。每个GPO包括两个元素:驻留在域的Active Directory中的对象,以及驻留在域的组策略服务器的sysvol DFS共享中的相应文件系统子目录。
Lightweight Directory Access Protocol
轻量级目录访问协议(LDAP):Active Directory的主要访问协议。轻量级目录访问协议(LDAP)是由Internet工程任务组(IETF)建立的行业标准协议,它允许用户查询和更新目录服务(DS)中的信息,如[MS-ADTS]所述。轻量级目录访问协议可以是版本2[RFC1777]或版本3[RFC3377]。
relative identifier
相对标识符(RID):安全标识符(SID)[SIDD]中子权限值系列中的最后一项。它将一个帐户或组与域中的所有其他帐户和组区分开来。任何域中没有两个帐户或组共享同一个RID。
security identifier
安全标识符(SID):用于标识帐户或组的安全主体的标识符。概念上,SID由帐户授权部分(通常是域)和一个较小的整数组成,该整数表示相对于帐户授权的标识,称为相对标识符(RID)。SID格式在[MS-DTYP]第2.4.2节中指定;SIDs的字符串表示在[MS-DTYP]节2.4.2和[MS-AZOD]节1.1.1.2中指定。
security policy
安全策略:以安全策略设置集合的形式,策略本身表达了关于如何保护网络上的计算机和资源的管理意图。
security policy settings
安全策略设置:包含在安全策略中,策略设置是如何配置计算机上各种安全相关参数的实际表达。
Server Message Block (SMB)
服务器消息块(SMB):一种协议,用于通过网络从服务器系统请求文件和打印服务。SMB协议通过附加的安全性、文件和磁盘管理支持扩展了CIFS协议。有关更多信息,请参见[CIFS]和[MS-SMB]。
share
共享:由公共Internet文件系统(CIFS)服务器提供的供CIFS客户端通过网络访问的资源。共享通常表示目录树及其包含的文件(通常称为“磁盘共享”或“文件共享”)或打印机(“打印共享”)。如果有关共享的信息保存在持久存储区(例如,Windows注册表)中,并在重新启动文件服务器时重新加载,则该共享称为“粘性共享”。有些共享名是为特定功能保留的,被称为特殊共享:IPC$(为进程间通信保留)、ADMIN$(为远程管理保留)和a$、B$、C$(以及后面跟着美元符号的其他本地磁盘名),分配给本地磁盘设备。
system access control list
系统访问控制列表(SACL):一个访问控制列表(ACL),它控制对试图访问安全对象的审计消息的生成。获取或设置对象的SACL的能力由通常仅由系统管理员拥有的特权控制。
MAY, SHOULD, MUST, SHOULD NOT,
MUST NOT
可以、应该、必须、不应该、不得:这些术语(在所有上限中)按照[RFC2119]中的定义使用。所有可选行为的语句都使用可能、应该或不应该。
1.2 参考文献
1.2.1 规范性参考文献
我们经常对规范性参考文献进行调查,以确保它们的持续可用性。如果您在寻找规范引用方面有任何问题,请联系[email protected]。我们将协助您查找相关信息。
[MS-ADTS] Microsoft Corporation, "[Active Directory Technical Specification]([MS-ADTS].pdf# Section_d243592709994c628c6d13ba31a52e1a)".
[MS-DTYP] Microsoft Corporation, "[Windows Data Types]([MS-DTYP].pdf# Section_cca2742956894a16b2b49325d93e4ba2)".
[MS-EVEN] Microsoft Corporation, "[EventLog Remoting Protocol]([MS-EVEN].pdf# Section_55b13664f7394e4ebd8d04eeda59d09f)".
[MS-GPOL] Microsoft Corporation, "[Group Policy: Core Protocol]([MS-GPOL].pdf# Section_62d1292462524052996f161d2b9019f4)".
[MS-LSAD] Microsoft Corporation, "[Local Security Authority (Domain Policy) Remote Protocol]([MS-LSAD].pdf# Section_1b5471ef4c334a91b079dfcbb82f05cc)".
[MS-RRP] Microsoft Corporation, "[Windows Remote Registry Protocol]([MS-RRP].pdf# Section_0fa3191dbb79490a81bd54c2601b7a78)".
[MS-SAMR] Microsoft Corporation, "[Security Account Manager (SAM) Remote Protocol (Client-to-Server)]([MS-SAMR].pdf# Section_4df07fab1bbc452f8e927853a3c7e380)".
[MS-SCMR] Microsoft Corporation, "[Service Control Manager Remote Protocol]([MS-SCMR].pdf# Section_705b624a13de43ccb8a299573da3635f)".
[MS-SMB2] Microsoft Corporation, "[Server Message Block (SMB) Protocol Versions 2 and 3]([MS-SMB2].pdf# Section_5606ad475ee0437a817e70c366052962)".
[MS-SMB] Microsoft Corporation, "[Server Message Block (SMB) Protocol]([MS-SMB].pdf# Section_f210069c70864dc2885e861d837df688)".
[RFC1510] Kohl, J., and Neuman, C., "The Kerberos Network Authentication Service (V5)", RFC 1510, September 1993, http://www.ietf.org/rfc/rfc1510.txt
(https://go.microsoft.com/fwlink/?LinkId=90279)
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997, http://www.rfc-editor.org/rfc/rfc2119.txt
(https://go.microsoft.com/fwlink/?LinkId=90317)
[RFC2251] Wahl, M., Howes, T., and Kille, S., "Lightweight Directory Access Protocol (v3)", RFC 2251, December 1997, http://www.ietf.org/rfc/rfc2251.txt
(https://go.microsoft.com/fwlink/?LinkId=90325)
[RFC4234] Crocker, D., Ed., and Overell, P., "Augmented BNF for Syntax Specifications: ABNF", RFC 4234, October 2005, http://www.rfc-editor.org/rfc/rfc4234.txt
(https://go.microsoft.com/fwlink/?LinkId=90462)
1.2.2 信息量大的参考文献
[MSDN-INF] Microsoft Corporation, "About INF Files", http://msdn.microsoft.com/en-us/library/aa376858.aspx
(https://go.microsoft.com/fwlink/?LinkId=90025)
[MSDN-PRIVS] Microsoft Corporation, "Authorization Constants", http://msdn.microsoft.com/en-us/library/aa375728.aspx
(https://go.microsoft.com/fwlink/?LinkId=90065)
1.3 概述
1.3.1 背景
[MS-GPOL]中指定的组策略:核心协议使客户端能够发现和检索域管理员创建的策略设置。这些设置在分配给Active Directory中的策略目标帐户的组策略对象中传播。策略目标帐户是Active Directory中的计算机帐户或用户帐户。每个客户端使用轻量级目录访问协议(LDAP)通过查阅与每个客户端的计算机帐户对应的Active Directory对象和登录到客户端计算机的任何用户的用户帐户来确定适用于它的GPO。
在每个客户端上,每个GPO都由称为客户端插件的软件组件解释和作用。负责给定GPO的客户端插件是通过使用GPO上的属性指定的。此属性指定全局唯一标识符(GUID)对的列表。每对的第一个GUID称为客户端扩展GUID(CSE GUID)。每对的第二个GUID称为工具扩展GUID。
对于适用于客户端的每个GPO,客户端都会参考GPO中列出的CSE GUID,以确定客户端上的哪些客户端插件将处理GPO。然后,客户端调用客户端插件来处理GPO。
客户端插件使用GPO的内容以特定于其类的方式检索特定于其类的设置。检索到其特定于类的设置后,客户端插件使用这些设置执行特定于类的处理。
1.3.2 安全扩展概述
安全策略包含设置(协议配置),这些设置使基础安全组件能够强制执行以下内容:
§ 密码、帐户锁定和Kerberos策略。
§ 系统审核设置。
§ 特权和权利分配。
§ 应用程序安全配置数据值和安全描述符。
§ 事件日志设置。
§ 安全组成员资格。
§ 长时间运行的进程和程序的配置信息,以及它们上的安全描述符。
§ 文件和文件夹安全描述符。
以下主要步骤用于安全配置:
§ 安全策略编写。
§ 安全策略分配。
§ 安全策略分发。
安全策略创作是通过组策略:核心协议的管理工具启用的,该管理工具具有特定于该协议的行为的管理插件。该插件允许管理员在用户界面中编写安全策略。然后,插件将安全策略保存到标准格式的。inf文件中,并将它们存储在可以使用服务器消息块(SMB)协议访问的网络位置上,如[MS-SMB]中指定的那样。
安全策略分配由组策略:核心协议管理工具执行,该工具构造GPO,如[MS-GPOL]第2.2.8.1节所述。每个GPO都包含一个对网络位置的引用,其中包含由管理工具插件生成的安全策略文件。
安全策略分发涉及客户端计算机上相应的特定于协议的组策略插件,调用该插件来处理引用安全策略设置的任何GPO。安全协议客户端插件提取GPO中指定的网络位置,使用SMB协议传输安全策略文件,然后使用安全策略文件配置客户端的安全设置。
1.4 与其他议定书的关系
此协议依赖于[MS-GPOL]中指定的组策略:核心协议。它还依赖于[MS-SMB]中指定的SMB协议,用于在客户端和GP服务器之间传输组策略设置和指令。
1.5 先决条件
组策略:安全协议扩展的先决条件与组策略:核心协议的先决条件相同。
1.6 适用性声明
组策略:安全协议扩展仅适用于组策略框架。
1.7 版本控制和能力协商
组策略:安全协议扩展不对收到的安全策略执行任何显式版本检查
1.8 供应商-可扩展字段
组策略:安全协议扩展不定义任何供应商可扩展字段。
1.9 标准作业
组策略:Security Protocol Extension定义CSE GUID和工具扩展GUID,如[MS-GPOL]第1.8节所述。下表显示了工作分配。
NO.2 信息
2.1 运输
组策略:安全协议扩展应<1>根据[MS-SMB2]中指定的服务器消息块(SMB)版本2和3协议通过组策略协议传输消息(文件形式)。客户端插件必须使用该协议的CSE GUID(如[MS-DTYP]第2.3.4节中指定的那样),管理工具插件必须使用工具扩展GUID。
组策略:核心协议使用该协议的CSE GUID和工具扩展GUID值(参见1.9节)来调用该协议,仅用于访问需要由该协议处理的GPO。
2.2 消息语法
组策略:安全协议扩展中交换的消息对应于使用SMB协议传输的安全策略文件。协议是通过这些消息的交换来驱动的,如第3节所述。
组策略:安全协议扩展处理的所有安全策略文件必须使用UTF-16LE编码,并带有字节顺序标记(0xFFFE)。inf文件语法如下所示。
InfFile = UnicodePreamble VersionPreamble Sections
UnicodePreamble = *("[Unicode]" LineBreak "Unicode=yes"
LineBreak)
VersionPreamble = "[Version]" LineBreak "signature="
DQUOTE "$CHICAGO$" DQUOTE LineBreak "Revision=1" LineBreak
Sections = Section / Section Sections
Section = Header Settings
Header = "[" HeaderValue "]" LineBreak
HeaderValue = StringWithSpaces
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp ValueList LineBreak /
Name "," Mode "," AclString LineBreak
Name = String / QuotedString
Mode = [0-9]+
AclString = SDDL / DQUOTE SDDL DQUOTE
ValueList = Value / Value Wsp "," Wsp ValueList
Key = String
Value = String / QuotedString
前面的语法是以增强的Backus-Naur形式(ABNF)语法给出的,如[RFC4234]中所规定的,并由以下规则增强。
LineBreak = CRLF
String = *(ALPHANUM / %d47 / %d45 / %d58 / %d59)
StringWithSpaces = String / String Wsp StringWithSpaces
QuotedString = DQUOTE *(%x20-21 / %x23-7E) DQUOTE
Wsp = *WSP
ALPHANUM = ALPHA / DIGIT
有关.inf文件及其用途的详细信息,请参阅[MSDN-INF]。
协议进一步限制可以分配给HeaderValue的值。必须为HeaderValue分配下表中列出的值之一。
注实现这里所述协议客户端的插件不理解它所处理的任何(名称、值)对的语义。它的操作是在由HeaderValue指示的客户端存储区中设置那些命名值。当客户端存储是注册表时,插件不需要知道(name,value)对的可能名称列表。这意味着GP可以创建和填充存储在注册表项中的新安全设置。对于其他存储,该插件维护从设置名称到应用程序编程接口(API)的预编译映射列表。
2.2.1 系统接入
下列主题指定各种类型的系统访问设置。本节的ABNF必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "System Access"
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp Value LineBreak
Key = String
Value = 1*DIGIT
2.2.1.1 密码策略
本节定义指定各种支持的密码策略的设置。表示此类策略的有效密钥的ABNF必须如下所示。
Key = "MinimumPasswordAge" / "MaximumPasswordAge" /
"MinimumPasswordLength" / "PasswordComplexity" /
"PasswordHistorySize" / "ClearTextPassword" /
"RequireLogonToChangePassword"
Value = 1*10DIGIT
下表提供了对每个有效键值的解释:
2.2.1.2 帐户锁定策略
本节定义指定帐户锁定持续时间配置的设置。表示此类策略的有效密钥的ABNF必须如下所示。
Key = "LockoutBadCount" / "ResetLockoutCount" /
"LockoutDuration" / "ForceLogoffWhenHourExpire"
Value = 1*10DIGIT
下表提供了对每个有效键值的解释。
注:所有数值都是十进制的,除非另有明确规定或前面有0x。
2.2.2 Kerberos策略
本节定义允许管理员配置[RFC1510]中指定的用户登录限制的设置。
本节的ABNF必须如下所示
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Kerberos Policy"
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp Value LineBreak
Key = "MaxTicketAge" / "MaxRenewAge" / "MaxServiceAge" /
"MaxClockSkew" / "TicketValidateClient"
Value = 1*5DIGIT
下表提供了对每个有效键值的解释。
注:所有数值都是十进制的,除非另有明确规定或前面有0x。
组策略:安全协议扩展实现应使用指定的默认值。
2.2.3 事件日志策略
事件日志策略有三种类型:
§ 系统日志
§ 安全日志
§ 应用程序日志
它们各自的ABNF必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "System Log" / "Security Log" / "Application Log"
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp Value LineBreak
Key = "MaximumLogSize" / "AuditLogRetentionPeriod"
/ "RetentionDays" / "RestrictGuestAccess"
Value = 1*8DIGIT
下表提供了对每个有效键值的解释。
注:所有数值都是十进制的,除非另有明确规定,或者前面有0x。
2.2.4 事件审核策略
本节定义使管理员能够强制审核帐户登录事件的设置。此类别中条目的语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Event Audit"
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp Value Linebreak
Key = "AuditSystemEvents" / "AuditLogonEvents" / "AuditPrivilegeUse" /
"AuditPolicyChange" / "AuditAccountManage" / "AuditProcessTracking" /
"AuditDSAccess" / "AuditObjectAccess" / "AuditAccountLogon"
Value = 1*DIGIT
下表提供了[MS-LSAD]第2.2.4.20节中指定的有效密钥的解释。
注:所有数值都是十进制的,除非另有明确规定,或者前面有0x。
下表提供了有效值的摘要。有关有效值的更多细节,请参见[MS-LSAD]第2.2.4.4节。
2.2.5 注册表值
本节定义使管理员能够设置注册表项的设置。此类别中条目的语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Registry Values"
Settings = Setting / Setting Settings
Setting = RegistryValueName "=" RegistryValueType "," RegistryValue
RegistryValueType = 1*DIGIT
RegistryValueName = KeyName / DQUOTE KeyName DQUOTE
KeyName = Key / KeyName "\" Key
Key = 1*IdCharacter
IdCharacter = %x0020-0021 / %x0023-005B / %x005D-007E
RegistryValue = String / QuotedString
下表为列出的每个参数提供了解释,并指定了有效值集。
注:所有数值都是十进制的,除非另有明确规定或前面有0x。
2.2.6 特权权利
本节定义使管理员能够控制哪些帐户具有哪些特权的设置。此类别中条目的语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Privilege Rights"
Settings = Setting / Setting Settings
Setting = RightName Wsp "=" Wsp SidList LineBreak
SidList = SidEnt / SidEnt Wsp "," Wsp SidList
RightName = "SeNetworkLogonRight" / "SeTcbPrivilege"
/ "SeMachineAccountPrivilege" / "SeIncreaseQuotaPrivilege"
/ "SeRemoteInteractiveLogonRight" / "SeBackupPrivilege"
/ "SeChangeNotifyPrivilege" / "SeCreatePagefilePrivilege"
/ "SeSystemtimePrivilege" / "SeCreateTokenPrivilege"
/ "SeCreateGlobalPrivilege" / "SeCreatePermanentPrivilege"
/ "SeDebugPrivilege" / "SeDenyNetworkLogonRight"
/ "SeDenyBatchLogonRight" / "SeDenyServiceLogonRight"
/ "SeDenyInteractiveLogonRight"
/ "SeDenyRemoteInteractiveLogonRight"
/ "SeEnableDelegationPrivilege"
/ "SeRemoteShutdownPrivilege" / "SeAuditPrivilege"
/ "SeImpersonatePrivilege"
/ "SeIncreaseBasePriorityPrivilege"
/ "SeLoadDriverPrivilege" / "SeLockMemoryPrivilege"
/ "SeBatchLogonRight" / "SeServiceLogonRight"
/ "SeInteractiveLogonRight" / "SeSecurityPrivilege"
/ "SeSystemEnvironmentPrivilege"
/ "SeManageVolumePrivilege"
/ "SeProfileSingleProcessPrivilege"
/ "SeSystemProfilePrivilege" / "SeUndockPrivilege"
/ "SeAssignPrimaryTokenPrivilege" / "SeRestorePrivilege"
/ "SeShutdownPrivilege" / "SeSyncAgentPrivilege"
/ "SeTakeOwnershipPrivilege" / "SeTrustedCredManAccessPrivilege"
/ "SeTimeZonePrivilege" / "SeCreateSymbolicLinkPrivilege"
/ "SeIncreaseWorkingSetPrivilege" / "SeRelabelPrivilege"
SidEnt = %d42 SID / PRINCIPALNAMESTRING
; SID is defined in MS-DTYP section 2.4.2.1
PRINCIPALNAMESTRING = 1*20(ALPHANUM / %d32-33 / %d35-41 / %d45 / %d64 / %d94-96 / %d123 / %d125 / %d126)
有关每个权限设置的信息,请参见[MSDN-PRIVS]。
前面语法中的SID元素是帐户或组的安全标识符的字符串表示,必须符合[MS-DTYP]节2.4.2.1中指定的语法。
2.2.7 注册表项
本节定义使管理员能够指定如何保护客户端上的注册表项的设置。此类别中条目的ABNF语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Registry Keys"
Settings = Setting / Setting Settings
Setting = RegistryKeyName "," PermPropagationMode ","
AclString LineBreak
RegistryKeyName = KeyPath / DQUOTE KeyPath DQUOTE
KeyPath = Key / KeyPath "\" Key
Key = 1*IdCharacter
IdCharacter = %x0020-0021 / %x0023-005B / %x005D-007E
PermPropagationMode = DIGIT
AclString = SDDL/ DQUOTE SDDL DQUOTE
上面SDDL元素的ABNF规范可以在[MS-DTYP]第2.5.1.1节中找到。
下表提供了列出的每个参数的解释。
注:所有数值都是十进制的,除非另有明确规定,或者前面有0x。
2.2.8 服务常规设置
本节定义启用在客户端计算机上运行的服务上的启动类型和自主访问控制列表配置的设置。此类别中条目的语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Service General Setting"
Settings = Setting / Setting Settings
Setting = ServiceName "," StartupMode "," AclString LineBreak
ServiceName = 1*256IdCharacter / DQUOTE 1*256IdCharacter DQUOTE
IdCharacter = ALPHANUM/ %d33 / %d35-43 / %d45-46 / %d58-64 / %d91 / %d93-96 / %d123-126
StartupMode = DIGIT
AclString = SDDL / DQUOTE SDDL DQUOTE
上面SDDL元素的ABNF规范可以在[MS-DTYP]第2.5.1.1节中找到。
下表解释了ServiceName、StartupMode和AclString字段。
注:所有数值都是十进制的,除非另有明确规定,或者前面有0x。
2.2.9 文件安全
本节定义如何使管理员能够指定如何保护客户端上的文件和目录。此类别中条目的ABNF语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "File Security"
Settings = Setting / Setting Settings
Setting = FileOrDirectoryPath "," PermPropagationMode
"," AclString LineBreak
FileOrDirectoryPath = String / QuotedString
PermPropagationMode = DIGIT
AclString = SDDL / DQUOTE SDDL DQUOTE
上面SDDL元素的ABNF规范可以在[MS-DTYP]第2.5.1.1节中找到。
下表解释了列出的每个设置。
注:所有数值都是十进制的,除非另有明确规定,或者前面有0x。
2.2.10 组成员资格
本节定义使管理员能够控制各种组的成员资格的设置。此类别中条目的ABNF语法必须如下所示。
Header = "[" HeaderValue "]" LineBreak
HeaderValue = "Group Membership"
Settings = Setting / Setting Settings
Setting = Key Wsp "=" Wsp ValueList LineBreak
Key = GroupNameMembers / GroupNameMemberof
GroupNameMembers = (GroupName / (%d42 SID)) "__Members"
GroupNameMemberof = (GroupName / (%d42 SID)) "__Memberof"
GroupName = GROUPNAMESTRING
ValueList = Value / Value Wsp "," Wsp ValueList
Value = %d42 SID / GROUPNAMESTRING
GROUPNAMESTRING = 1*256(ALPHANUM / %d32-33 / %d35-41 / %d45 / %d64 / %d94-96 / %d123 / %d125 / %d126)
前面语法中的SID元素在[MS-DTYP]第2.4.2.1节中有其ABNF规范。
请注意,在实际的安全策略中,前面的“GroupName”设置必须替换为必须配置其他组中成员或成员资格的组的实际名称。有关更多信息,请参见4.3节中的示例。
下表解释了列出的每个设置。
2.2.11 用户帐户控制
本节定义使管理员能够配置用户帐户控制功能的行为的设置。有关如何定义<6>中列出的设置的详细信息,请参阅第2.2.5和2.2.7节。
2.2.11.1 过滤管理员凭证
FilterAdministratorToken
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "FilterAdministratorToken"
Type: REG_DWORD
Data:这必须是下表中的值。
2.2.11.2 同意提示行为管理
ConsentPromptBehaviorAdmin
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "ConsentPromptBehaviorAdmin"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.3 同意提示行为用户
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "ConsentPromptBehaviorUser"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.4 启用安装程序检测
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "EnableInstallerDetection"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.5 验证管理代码签名
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "ValidateAdminCodeSignatures"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.6 启用LUA
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "EnableLUA"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.7 提示安全桌面
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "PromptOnSecureDesktop"
Type: REG_DWORD
Data: This MUST be a value in the following table.
2.2.11.8 支持虚拟化
Key: SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System
Value: "EnableVirtualization"
Type: REG_DWORD
Data: This MUST be a value in the following table.
NO.3 协议细节
3.1 管理端插件详情
管理端插件参与安全策略的创作和分配步骤,如第2节所述。安全策略必须使用.inf格式存储为文本文件,如第2.2节所述。安全策略必须存储在通过使用SMB可通过网络访问的位置(例如网络共享)中。
3.1.1 抽象数据模型
管理端插件不维护任何状态。如第2.2节所述,它将所有设置加载到内存中的pair中。
当使用管理UI时,管理端插件用于与组策略框架交互,如[MS-GPOL]中所指定的那样。它根据抽象数据模型确定所需安全策略的物理位置,根据需要创建新策略或打开现有策略,并将其显示给管理员。管理员修改策略后,更改会在所需位置传回策略。
3.1.2 定时器
一个都没有。
3.1.3 初始化
当管理端插件启动时,它必须从[MS-GPOL]第2.2.4节中指定的组策略:核心协议中获得一个限定范围的GPO路径,并执行第3.1.5.1节Load Policy中描述的处理。
3.1.4 高层触发事件
较高层触发事件发生在以下情况:
§ 管理员加载组策略:安全协议扩展GPO.inf文件。参见3.1.5.1节,加载策略。
§ 管理员更改任何组策略:安全协议扩展设置值。请参见第3.1.5.2节,更新策略。
§ 管理员删除任何组策略:安全协议扩展设置值。参见第3.1.5.3节,删除设置值。
3.1.5 消息处理事件和排序规则
管理端插件从远程存储位置读取特定于扩展的数据,如第3.2.5节步骤1-3所述。管理端插件将该信息传递给特定于实现的工具,该工具提供图形用户界面以向管理员显示当前设置。
如果管理员对现有配置做了任何更改,管理端插件会将特定于扩展的配置数据写入远程存储位置,如3.1.5.2Update Policy部分所述。
在每次创建、修改或删除影响SYSVOL上的gpttmpl.inf文件之后,管理工具必须调用组策略扩展更新任务([MS-GPOL]节3.3.4.4)。
3.1.5.1 加载策略
当管理员启动管理端插件时,将发生加载策略事件。当管理端插件启动时,它必须从[MS-GPOL]第2.2.4节中指定的组策略:核心协议中获得一个限定范围的GPO路径。插件必须尝试从“\machine\microsoft\Windows NT\secedit\”中检索任何现有的gpttmpl.inf文件,其中“”是GPO路径。必须执行文件读取,如第3.2.5节步骤1-3所述。如果读取文件的尝试失败,则必须记录错误并停止处理。
3.1.5.2 更新策略
若要使用管理工具插件更新GPO中的策略设置,必须使用更新策略消息更新组策略服务器上该GPO的状态。
这必须通过以下消息序列完成:
\1. 从客户端打开到服务器的SMB文件:
插件必须从组策略:核心协议中获得GPO路径,如[MS-GPOL]第2.2.4节中指定的,并尝试将gpttmpl.inf文件写入以下位置:“\machine\microsoft\Windows NT\secedit\”,其中“”是GPO路径。
打开的SMB文件必须请求写权限,如果该文件不存在,则请求创建该文件。
如果打开的请求返回失败状态,则必须终止组策略:安全协议扩展序列。
\2. SMB文件写入顺序:
管理外接程序必须执行一系列SMB文件写入操作,才能用新设置覆盖打开的文件的内容。这些写操作必须继续进行,直到整个文件被写入或遇到错误为止。
如果遇到错误,则必须终止协议序列。
\3. 文件关闭:
然后该工具必须发出SMB文件关闭操作。
\4. 管理工具调用组策略扩展更新任务([MS-GPOL]节3.3.4.4)。
文件名和路径应视为不区分大小写。如果写入失败,管理端插件必须向用户显示操作失败。
3.1.5.3 删除设置值
当管理员移除设置值时,将发生删除设置值事件。当删除设置值时,将从内存中删除该设置,并执行3.1.5.2节更新策略中描述的处理。
3.1.6 定时器事件
无
3.1.7 其他本地活动
无
3.2 客户端插件详细信息
客户端插件与组策略框架交互,如[MS-GPOL]第3.2节所述。此插件必须接收安全策略,并根据管理员的指示应用该策略。
3.2.1 抽象数据模型
本节定义了一个可能的数据组织的概念模型,实现维护该模型以参与该协议。提供所描述的组织是为了解释协议如何行为。只要实现的外部行为与本文档中描述的一致,本文档并没有强制要求实现遵守此模型。
该协议设置在其他协议文档中定义的共享抽象数据模型变量。每个共享变量的规范定义在相应的文档中给出,如下所示:
此协议设置从[MS-LSAD]共享的以下抽象数据变量:
§ MaxServiceTicketAge ([MS-LSAD] section 3.1.1.1)
§ MaxTicketAge ([MS-LSAD] section 3.1.1.1)
§ MaxRenewAge ([MS-LSAD] section 3.1.1.1)
§ MaxClockSkew ([MS-LSAD] section 3.1.1.1)
§ AuthenticationOptions ([MS-LSAD] section 3.1.1.1)
This protocol sets the following abstract data variables shared from [MS-EVEN]:
§ MaxSize ([MS-EVEN] section 3.1.1.2)
§ Retention ([MS-EVEN] section 3.1.1.2)
§ RestrictGuestAccess ([MS-EVEN] section 3.1.1.2)
3.2.2 定时器
无
3.2.3 初始化
当Group Policy framework使用一个或多个适用GPO的列表调用时,客户端插件必须执行以下操作:定位这些GPO中的所有物理安全策略,将策略复制到本地计算机,读取策略,并按照第3.2.5节中的规定应用它们。
查找物理安全策略文件必须使用组策略:核心协议(如[MS-GPOL]第3.2.5.1节所述)和LDAP搜索协议(如[RFC2251]第4.5节所述)。应该使用[MS-SMB2]中指定的服务器消息块(SMB)版本2和3协议中的标准复制和读取函数来复制和读取策略文件<9>。
3.2.4 高层触发事件
客户端插件实现一个更高层的触发事件:进程组策略。
3.2.4.1 进程组策略
客户端插件实现了[MS-GPOL]第3.2.4.1节中指定的进程组策略抽象事件接口。客户端插件不使用已删除的GPO列表、SessionFlags或UserToken参数。当事件被触发时,客户端插件必须采取3.2.5节中描述的操作。
3.2.5 消息处理事件和排序规则
当需要处理适用的GPO时,客户端插件GPO必须由组策略框架触发。当发生这样的事件时,客户端插件将采取适当的操作。
当触发时,客户端插件需要一个适用的GPO列表。然后,它必须遍历此列表,并为每个GPO查找和检索包含的安全策略。
检索到所有安全策略后,必须打开每个策略,并提取和应用包含的安全策略设置。
当策略应用程序步骤完成时,必须按照[MS-GPOL]中的规定,向组策略框架返回适当的错误代码,以指示操作的成功或失败。
组策略:核心协议必须为其标识为包含组策略:安全协议扩展协议设置的每个GPO调用客户端插件。对于每一个GPO,必须从组策略:核心协议服务器复制一个格式(如2.2节所述)的文件。如果任何文件无法读取,客户端插件必须忽略故障,并继续为其他GPO复制文件。
组策略:核心协议客户端必须按照[MS-GPOL]第3.2.5.1节的规定,确定必须对其执行本协议的GPO列表。
对于每个GPO,客户端插件必须执行以下操作:
\1. 在\machine\microsoft\windows nt\secedit\gpttmpl.inf指定的文件上执行SMB文件打开(其中是GPO中的GPO路径)。如果在打开文件时遇到错误,则必须向客户端计算机上的组策略系统(如[MS-GPOL]节2.2.7中所述)指示错误,并且必须停止处理。
\2. 执行一系列SMB文件读取,以读取打开的文件的全部内容,直到整个文件被读取或发生读取错误。如果在读取文件时遇到错误,则必须向客户端计算机上的组策略系统(如[MS-GPOL]中所指定)指示错误,并且必须中止处理。
\3. 执行SMB文件关闭以关闭该文件。
当按照前面的步骤使用SMB打开或读取文件时,客户端插件应该按照[MS-SMB]节2.2.2.4或[MS-SMB2]中的规定处理SMB协议返回的错误代码。
客户端插件必须按照2.2节中指定的格式解析文件。如果文件不符合该格式,则必须忽略整个配置操作。如果文件符合该格式,则必须将设置应用于系统上相应的安全参数。
在应用安全策略时,几个组策略:安全协议扩展设置名对应于抽象数据模型共享变量,其他文档中提供了该变量的规范定义(参见第3.2.1节)下表中提供了设置名称和相应的抽象数据模型共享变量。对于从GPO.inf文件读取的每个此类设置,客户端插件必须将表右侧列中的ADM变量的值设置为左侧列中设置的值。
3.2.5.1 密码策略
通过执行以下操作设置密码策略:
\1. 如果settings键的设置值超出2.2.1.1节中表中相应解释列中指定的有效值范围,则客户端应退出密码策略处理并记录错误。
\2. 执行与本地调用SamrQueryInformationDomain([MS-SAMR]节3.1.5.5.2)一致的外部行为,以获得现有的域密码信息。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainPasswordInformation。
§ PSAMPR_DOMAIN_INFO_BUFFER必须是指向PSAMPR_DOMAIN_INFO_BUFFER的指针,该指针包含足够包含DOMAIN_PASSWORD_INFORMATION结构的已分配内存。
\3. 调用SamrSetInformationDomain([MS-SAMR]节3.1.5.6.1)。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainPasswordInformation。
§ DomainInformation必须是包含DOMAIN_PASSWORD_INFORMATION结构的PSAMPR_DOMAIN_INFO_BUFFER。客户端插件必须根据以下规则中的映射,将GPO inf文件中指定的每个密码策略值设置为DOMAIN_PASSWORD_INFORMATION结构成员。
对于MinimumPasswordLength、PasswordComputition、ClearTextPassword和PasswordHistorySize设置,客户端管理单元必须将GPO inf文件中的设置名称映射到下表左侧列中的值之一,并将相应右侧列中标识的DOMAIN_PASSWORD_INFORMATION结构成员的值设置为该设置值。对于PasswordComplements和ClearTextPassword设置,如果GPO inf文件中的设置值为“true”,则客户端插件必须将右侧列中标识的DOMAIN_PASSWORD_INFORMATION结构成员的值设置为右侧列中提供的值。
对于MaximumPasswordAge设置,客户端管理单元必须将GPO inf文件中的设置值映射到下表左侧列中的值之一,并将DOMAIN_PASSWORD_INFORMATION结构MaxPasswordAge成员设置为下表相应右侧列中指定的转换所产生的值。
对于MinimumPasswordAge设置,客户端管理单元必须将DOMAIN_PASSWORD_INFORMATION结构MinPasswordAge成员设置为下表右侧列中指定的转换所产生的值。
3.2.5.2 帐户锁定策略
通过执行以下操作设置帐户锁定策略:
如果GPO inf文件中的密钥名称是“lockoutbadcount”、“resetlockoutcount”或“lockoutduration”:
\1. 执行与本地调用SamrQueryInformationDomain([MS-SAMR]节3.1.5.5.2)一致的外部行为,以获得现有的域帐户锁定信息。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainLockOutInformation。
§ PSAMPR_DOMAIN_INFO_BUFFER必须是指向PSAMPR_DOMAIN_INFO_BUFFER的指针,该指针包含足够包含SAMPR_DOMAIN_LOCKOUT_INFORMATION结构的已分配内存([MS-SAMR]节2.2.3.15)。
\2. 执行与本地调用SamrSetInformationDomain一致的外部行为([MS-SAMR]第3.1.5.6.1节)。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainLockOutInformation。
§ DomainInformation必须是包含sampr_domain_info_buffer结构的psampr_domain_lockout_information。客户端插件必须根据以下规则中的映射,将GPO inf文件中指定的每个帐户锁定策略值设置为SAMPR_DOMAIN_LOCKOUT_INFORMATION结构成员:
对于LockoutBadCount设置,客户端管理单元必须将SAMPR_DOMAIN_LOCKOUT_INFORMATION结构LockoutThreshold成员设置为设置值。
对于ResetLockCount设置,客户端管理单元必须将SAMPR_DOMAIN_LOCKOUT_INFORMATION结构LockoutObservationWindow成员设置为下表右侧列中指定的转换所产生的值。
对于LockoutDuration设置,客户端管理单元必须将GPO inf文件中的设置值映射到下表左侧列中的值之一,并将SAMPR_DOMAIN_LOCKOUT_INFORMATION结构LockoutDuration成员设置为下表相应右侧列中指定的转换所产生的值。
如果密钥名称为“forcelogoffwhenhourexpire”:
\1. 执行与本地调用SamrQueryInformationDomain([MS-SAMR]节3.1.5.5.2)一致的外部行为,以获得现有的域帐户注销信息。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainLogoFFInformation。
§ PSAMPR_DOMAIN_INFO_BUFFER必须是指向PSAMPR_DOMAIN_INFO_BUFFER的指针,该指针包含足够包含DOMAIN_LOGOFF_INFORMATION([MS-SAMR]节2.2.3.6)结构的已分配内存。
\2. 执行与本地调用SamrSetInformationDomain一致的外部行为([MS-SAMR]第3.1.5.6.1节)。
§ 必须将DomainHandle设置为通过执行与本地调用SamrOpenDomain一致的外部行为打开的域句柄([MS-SAMR]节3.1.5.1.5),以获得当前计算机的域句柄。
§ 必须将DomainInformationClass设置为DomainLogoFFInformation。
DomainInformation必须是包含DOMAIN_LOGOFF_INFORMATION结构的PSAMPR_DOMAIN_INFO_BUFFER。客户端插件必须将FORCELOGOFFWHOUREXPIRE设置值与下表左侧列中的值之一匹配,并将DOMAIN_LOGOFF_INFORMATION结构成员设置为下表右侧列中的相应值。
3.2.5.3 本地帐户策略
通过执行以下操作来设置本地帐户策略:
如果键值是2.2.1.3节中表中列出的有效值以外的任何值,则应记录错误,客户端应停止处理本地帐户策略并记录错误。
如果“value”元素的值对于2.2.1.3节中表中指定的相应键值无效,则应记录错误,客户端必须停止处理本地帐户策略。
如果密钥名称为“LSAAnonymousNameLookup”:
\1. 执行与本地调用LsarQuerySecurityObject一致的外部行为([MS-LSAD]第3.1.4.9.1节)。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy([MS-LSAD]节3.1.4.4.2)一致的外部行为打开的策略句柄,并且将DesiredAccess设置为maximum_alloved([MS-LSAD]节2.2.1.1.1)。
§ 必须将SecurityInformation设置为DACL_SECURITY_INFORMATION([MS-LSAD]section 2.2.1.3)。
§ 必须将SecurityDescriptor设置为PLSAR_SR_SECURITY_DESCRIPTOR变量的地址。
\2. 执行与本地调用LSarsetSecurityObject一致的外部行为。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy([MS-LSAD]节3.1.4.4.2)一致的外部行为打开的策略句柄,并且将DesiredAccess设置为maximum_alloved([MS-LSAD]节2.2.1.1.1)。
§ 必须将SecurityInformation设置为DACL_SECURITY_INFORMATION([MS-LSAD]section 2.2.1.3)。
§ SecurityDescriptor必须是一个指向LSAR_SR_SECURITY_DESCRIPTOR结构的指针,在该结构中,DACL([MS-DTYP]节2.4.5)必须被设置为步骤1中从LsarQuerySecurityObject方法接收的DACL,其中添加了一个ACCESS_ALLOWED_ACE([MS-DTYP]节2.4.4.2)授予匿名SID([MS-DTYP]节2.4.2.4)一个设置为POLICY_LOOKUP_NAMES([MS-LSAD]节2.2.1.1.2)的访问掩码。
如果密钥名称为“EnableAdminAccount”:
\1. 执行与本地调用SamrQueryInformationUser一致的外部行为([MS-SAMR]节3.1.5.5.6)。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser一致的外部行为([MS-SAMR]section 3.1.5.1.9)获得的用户句柄,使用以下参数:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_ADMIN的UserId参数([MS-SAMR]节2.2.1.14)。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserControlInformation([MS-SAMR]section 2.2.6.28)。
§ 缓冲区必须设置为足够大的内存缓冲区的地址,以包含SAMPR_USER_INFO_BUFFER结构([MS-SAMR]节2.2.6.29)。
\2. 执行与本地调用SamrSetInformationUser一致的外部行为([MS-SAMR]第3.1.5.6.5节)。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser一致的外部行为([MS-SAMR]section 3.1.5.1.9)获得的用户句柄,使用以下参数:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_ADMIN的UserId参数([MS-SAMR]节2.2.1.14)。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserControlInformation([MS-SAMR]section 2.2.6.28)。
缓冲区必须设置为SAMPR_USER_INFO_BUFFER结构的地址,该结构的控制成员变量根据下表设置
如果密钥名称为“EnableGuestAccount”:
\1. 执行与本地调用SamrQueryInformationUser一致的外部行为([MS-SAMR]节3.1.5.5.6)。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser一致的外部行为([MS-SAMR]section 3.1.5.1.9)获得的用户句柄,使用以下参数:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_GUEST([MS-SAMR]节2.2.1.14)的UserId参数。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserControlInformation([MS-SAMR]section 2.2.6.28)。
§ 缓冲区必须设置为足够大的内存缓冲区的地址,以包含SAMPR_USER_INFO_BUFFER结构([MS-SAMR]节2.2.6.29)。
\2. 执行与本地调用SamrSetInformationUser一致的外部行为([MS-SAMR]第3.1.5.6.5节)。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser一致的外部行为([MS-SAMR]section 3.1.5.1.9)获得的用户句柄,使用以下参数:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_GUEST([MS-SAMR]节2.2.1.14)的UserId参数。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserControlInformation([MS-SAMR]section 2.2.6.28)。
§ 缓冲区必须设置为SAMPR_USER_INFO_BUFFER结构的地址,该结构的控制成员变量根据下表设置。
如果密钥名称为“newadministratorname”:
执行与本地调用SamrSetInformationUser一致的外部行为([MS-SAMR]第3.1.5.6.5节)。如果SamrSetInformationUser返回错误,则组策略:安全协议扩展客户端必须停止处理本地帐户策略并记录错误。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser([MS-SAMR]section 3.1.5.1.9)一致的外部行为获得的用户句柄,参数值如下:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_ADMIN的UserId参数([MS-SAMR]节2.2.1.14)。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserNameInformation([MS-SAMR]section 2.2.6.28)。
§ 缓冲区必须设置为SAMPR_USER_NAME_INFORMATION结构的地址,该结构的UserName成员变量设置为NewAdministratorName设置的值。
如果密钥名称为“NewGuestName”:
执行与本地调用SamrSetInformationUser一致的外部行为([MS-SAMR]第3.1.5.6.5节)。如果SamrSetInformationUser返回错误,GPSB客户端必须停止处理本地帐户策略并记录错误。
§ UserHandle必须设置为通过执行与本地调用SamrOpenUser([MS-SAMR]section 3.1.5.1.9)一致的外部行为获得的用户句柄,参数值如下:
§ Maximum_Allowed的DesiredAccess参数。
§ DOMAIN_USER_RID_GUEST([MS-SAMR]节2.2.1.14)的UserId参数。
§ DomainHandle参数,设置为当前计算机的域的句柄,通过执行与本地调用SamrOpenDomain一致的外部行为([MS-SAMR]节3.1.5.1.5)获得。
§ 必须将UserInformationClass设置为UserNameInformation([MS-SAMR]section 2.2.6.28)。
§ 缓冲区必须设置为SAMPR_USER_NAME_INFORMATION结构的地址,该结构的UserName成员变量设置为NewGuestName设置的值。
3.2.5.4 Kerberos策略
如果键值是2.2.2节中表中列出的有效值以外的任何值,客户端必须停止处理Kerberos策略设置并记录错误。
必须通过执行与本地调用LsarQueryDomainInformationPolicy一致的外部行为来检索现有的Kerberos策略([MS-LSAD]节3.1.4.4.7)。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy([MS-LSAD]节3.1.4.4.2)一致的外部行为打开的策略句柄,并且将DesiredAccess设置为maximum_alloved([MS-LSAD]节2.2.1.1.1)。
§ InformationClass必须设置为PolicyDomainKerberosTicketInformation([MS-LSAD]section 2.2.4.15)。
接下来,必须通过执行与本地调用LsarSetDomainInformationPolicy一致的外部行为([MS-LSAD]第3.1.4.4.8)来使用Kerberos policy中的设置(第2.2.2)更新现有的Kerberos policy。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy([MS-LSAD]节3.1.4.4.2)一致的外部行为打开的策略句柄,并且将DesiredAccess设置为maximum_alloved([MS-LSAD]节2.2.1.1.1)。
§ InformationClass必须设置为PolicyDomainKerberosTicketInformation([MS-LSAD]section 2.2.4.15)。
§ 必须将PolicyDomainInformation设置为通过查询现有Kerberos策略返回的POLICY_DOMAIN_KERBEROS_TICKET_INFO结构,并使用以下映射表进行更新。右列中的POLICY_DOMAIN_KERBEROS_TICKET_INFO结构的每个元素与Kerberos策略中的设置一起被设置为分配给左列中相应键的值。如果TicketValidateClient设置设置为“true”,则必须设置AuthenticationOptions位POLICY_KERBEROS_VALIDATE_CLIENT。
3.2.5.5 事件日志策略
如果键值是2.2.3节中表中列出的有效值以外的任何值,客户端应停止处理事件日志策略设置并记录错误。
事件日志策略中的设置(第2.2.3)映射到[MS-EVEN]第3.1.1.2节中指定的抽象数据模型,使用日志名(与头值相同)(第2.2.3节)来确定要更新其值的注册表项:
下表右列中的注册表值被设置为事件日志策略(第2.2.3节)设置中指定的左列项的值。
3.2.5.6 事件审核策略
如果DWORD注册表值Machine\System\CurrentControlSet\Control\LSA\ScenoApplyLegacyAuditPolicy使用第2.2.5节中描述的机制设置为1,则客户端插件必须忽略事件审核策略部分中的任何设置,并且不得处理这些设置。如果此注册表值设置为1,则表示客户端上存在高级审核策略。<10>
关键元素的值必须是第2.2.4节中表中规定的值之一;否则,客户端必须记录错误并停止处理事件审核策略。值元素必须是整数;否则,客户端将记录错误并停止处理事件审核策略。
事件审核策略(第2.2.4)中的设置必须通过执行与本地调用LsarSetInformationPolicy(第3.1.4.4.6节)一致的外部行为来设置([MS-LSAD]第3.1.4.4.6节)。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy一致的外部行为打开的策略句柄(第3.1.4.4.2节)([MS-LSAD]第3.1.4.4.2节)。
§ InformationClass必须设置为PolicyAuditEventsInformation。
§ 缓冲区必须使用事件审核策略中的设置来设置,其中键映射到枚举([MS-LSAD]节2.2.4.20),如下表所示。
此外,根据下表,每个设置的值(节2.2.4)映射到EventAuditingOptions数组([MS-LSAD]节2.2.4.4)的值。如果值的两个低阶位中的任何一个被设置,则根据这些位表示的值映射该值。否则,这些值将映射到policy_audit_event_none。
3.2.5.7 注册表值
注册表值(第2.2.5节)中的设置必须通过添加注册表值来设置。
如果键值是2.2.5节中表中列出的有效值以外的任何值,则应记录错误,客户端必须停止处理注册表值设置。
注册表值必须通过执行与本地调用BaseRegSetValue(节3.1.5.22)([MS-RRP]节3.1.5.22)一致的外部行为来添加。
§ 必须将hKey设置为通过执行与本地调用BaseRegCreateKey(第3.1.5.7节)([MS-RRP]第3.1.5.7节)一致的外部行为打开的注册表项句柄,使用上次“\”之前设置的RegistryValueName部分。
§ lpValueName必须设置为设置的RegistryValueName的最后一部分,位于最后一个''之后。
§ 必须将dwType设置为该设置的RegistryValueType。
§ 必须将lpData设置为该设置的RegistryValue。
cbData必须设置为设置的RegistryValue的长度(以字节为单位)。
3.2.5.8 特权权利
特权权限(第2.2.6节)中的设置必须通过添加特权权限来设置。
如果一个设置或值不符合2.2.6节中规定的有效对应值,客户端应停止处理特权权限设置。
通过对RightName设置中的每个SidEnt执行与本地调用LsarAddAccountRights([MS-LSAD]节3.1.4.5.11)一致的外部行为来添加特权权限。
§ 必须将PolicyHandle设置为通过执行与本地调用LsarOpenPolicy一致的外部行为打开的策略句柄([MS-LSAD]节3.1.4.4.2)。
§ 对于该设置,AccountSid必须设置为SidEnt的值。
§ UserRights必须设置为LSAPR_USER_RIGHT_SET结构的地址值,其中UserRights成员必须设置为PRPC_UNICODE_STRING元素数组,其中包含一个设置为RightName值的元素(如[MS-LSAD]节2.2.5.3中所指定)。LSAPR_USER_RIGHT_SET条目成员必须设置为一。RightName字符串必须分别与[MS-LSAD]第3.1.1.2.1和3.1.1.2.2节中列出的有效特权或用户权限的名称相对应。
3.2.5.9 注册表项
写入注册表项和值的行为在[MS-RRP]第4.2节中指定。
如果RegistryKeyName、ACLString或PermPropagationMode值不是2.2.7节中指定的有效值,客户端应停止处理注册表项设置并记录错误。
注册表项中的设置(第2.2.7节)必须通过对每个设置的注册表项应用安全描述符来设置。
通过执行与本地调用BaseRegGetKeySecurity一致的外部行为(第3.1.5.13节)([MS-RRP]第3.1.5.13节)从注册表项读取安全描述符。
§ 必须将hKey设置为通过执行与使用注册表对象的RegistryKeyName本地调用BaseRegOpenKey(节3.1.5.15)([MS-RRP]节3.1.5.15)一致的外部行为打开的注册表项句柄。
§ SecurityInformation必须设置为OWNER_SECURITY_INFORMATION GROUP_SECURITY_INFORMATION DACL_SECURITY_INFORMATION SACL_SECURITY_INFORMATION([MS-RRP]节2.2.9)。
通过执行与本地调用BaseRegSetKeySecurity一致的外部行为(第3.1.5.21节)([MS-RRP]第3.1.5.21节),将安全描述符应用于注册表项。
§ 必须将hKey设置为通过执行与使用注册表对象的RegistryKeyName本地调用BaseRegOpenKey(节3.1.5.15)([MS-RRP]节3.1.5.15)一致的外部行为打开的注册表项句柄。
§ SecurityInformation必须设置为OWNER_SECURITY_INFORMATION GROUP_SECURITY_INFORMATION DACL_SECURITY_INFORMATION SACL_SECURITY_INFORMATION([MS-RRP]节2.2.9)。
§ pRpcSecurityDescriptor必须以RPC_SECURITY_DESCRIPTOR(节2.2.8)([MS-RRP]节2.2.8)的形式设置为“ACLString”设置中提供的安全描述符。
安全描述符应用于对应于每个设置的每个注册表对象的注册表项。
如果PermPropagationMode为“0”,则通过调用CreateSecurityDescriptor(第2.5.3.4.1节)([MS-DTYP]第2.5.3.4.1节)并将生成的安全描述符应用于注册表对象,递归更新每个子注册表对象的安全描述符,以允许可继承权限的传播。调用CreateSecurityDescriptor时使用以下参数:
§ ParentDescriptor**设置为注册表对象父级的安全描述符。
§ CreatorDescriptor设置为注册表对象的当前安全描述符。
§ IsContainerObject设置为true*。*
§ ObjectTypes设置为NULL*。*
§ AutoInheritFlags设置为dacl_auto_inheritage sacl_auto_inheritage DEFAULT_OWNER_FROM_PARENT default_group_fromparent*。*
§ 令牌是包含S-1-5-18(本地系统众所周知的SID)的令牌。
§ GenericMapping**是注册表对象的泛型映射。
如果PermPropagationMode为“1”,则通过调用CreateSecurityDescriptor(第2.5.3.4.1节)([MS-DTYP]第2.5.3.4.1节)并将生成的安全描述符应用于注册表对象,递归更新每个子注册表对象的安全描述符,以允许可继承权限的传播。调用CreateSecurityDescriptor时使用以下参数:
§ ParentDescriptor**设置为注册表对象父级的安全描述符。
§ CreatorDescriptor设置为NULL*。*
§ IsContainerObject设置为true*。*
§ ObjectTypes设置为NULL*。*
§ AutoInheritFlags设置为dacl_auto_inheritage sacl_auto_inheritage DEFAULT_OWNER_FROM_PARENT default_group_fromparent。
§ 令牌是包含S-1-5-18(本地系统众所周知的SID)的令牌。
§ GenericMapping**是注册表对象的泛型映射。
如果PermPropagationMode为“2”,则该设置的注册表对象上的安全描述符控制字段位PD([MS-DTYP]节2.4.6)将设置为0。
3.2.5.10 服务常规设置
服务常规设置(第2.2.8节)中的设置必须通过对每个设置应用服务的启动配置和安全描述符来设置。
如果ServiceName、StartupMode或AclString值不是2.2.8节中指定的有效值,客户端将停止处理服务常规设置并记录错误。
启动配置必须通过对每个设置执行与本地调用RChangeServiceConfigW([MS-SCMR]节3.1.4.11)一致的外部行为来应用于服务。
§ 必须使用设置的ServiceName执行与本地调用ROpenServiceW([MS-SCMR]节3.1.4.16)一致的外部行为,将hService设置为打开的服务句柄。
§ 必须将dwServiceType设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索的服务类型([MS-SCMR]节3.1.4.17)。
§ dwStartType必须设置为服务中设置的StartupMode常规设置,其中StartupMode映射到dwStartType([MS-SCMR]节2.2.15),如下表所示。
§ dwErrorControl必须设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索的错误控制([MS-SCMR]节3.1.4.17)。
§ 必须将lpBinaryPathName设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索的路径名([MS-SCMR]节3.1.4.17)。
§ lpLoadOrderGroup必须设置为服务组,以便通过执行与本地调用RQueryServiceConfigW一致的外部行为来检索加载顺序([MS-SCMR]节3.1.4.17)。
§ lpdwTagId必须设置为NULL。
§ 必须将lpDependencies设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索的依赖项([MS-SCMR]节3.1.4.17)。
§ 必须将dwDependSize设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索到的依赖项数([MS-SCMR]节3.1.4.17)。
§ 必须将lpServiceStartName设置为Null。
§ lpPassword必须设置为NULL。
§ dwPwSize必须设置为0。
§ 必须将lpDisplayName设置为通过执行与本地调用RQueryServiceConfigW一致的外部行为检索的显示名称([MS-SCMR]节3.1.4.17)。
必须通过对每个设置执行与本地调用RSetServiceObjectSecurity([MS-SCMR]节3.1.4.6)一致的外部行为,将安全描述符应用于服务。
§ 必须将hService设置为通过执行与使用设置的ServiceName本地调用ROpenServiceW([MS-SCMR]节3.1.4.16)一致的外部行为打开的服务句柄。
§ dwSecurityInformation必须设置为DACL_SECURITY_INFORMATION([MS-SCMR]节2.2.1。
§ lpSecurityDescriptor必须按照[MS-DTYP]第2.4.6节中指定的形式设置为设置的AclString中的安全描述符。
cbBufSize必须设置为lpSecurityDescriptor参数指向的缓冲区的大小(以字节为单位)。
3.2.5.11 文件安全
必须通过为每个设置应用安全描述符、传播模式和安全描述符(AclString)来设置每个文件安全设置。
如果FileOrDirectoryPath、PermPropagationMode或AclString值不是2.2.9节中指定的有效值,客户端应停止处理文件安全设置并记录错误。
文件或子目录上的安全描述符应通过执行与本地调用应用程序请求应用文件安全“任务([MS-SMB2]节3.2.4.13)一致的外部行为来应用,并使用以下参数:
§ 必须使用设置的FileOrDirectoryPath将Open设置为通过执行与本地调用“Application Requests Opening a File”任务([MS-SMB2]节3.2.4.3)一致的外部行为返回的Open。
§ 必须将安全信息设置为“ACLString”设置中提供的安全描述符。此安全描述符使用[MS-DTYP]节2.4.6中指定的自相关形式。
§ 安全属性必须设置为DACL_SECURITY_INFORMATION([MS-SMB2]section 2.2.39)。
应该通过执行与本地调用“Application Requests Quering file security”任务([MS-SMB2]节3.2.4.12)一致的外部行为来查询文件或子目录上的安全描述符,并使用以下参数:
§ 必须使用设置的FileOrDirectoryPath将Open设置为通过执行与本地调用“Application Requests Opening a File”任务([MS-SMB2]节3.2.4.3)一致的外部行为返回的Open。
§ 安全属性必须设置为DACL_SECURITY_INFORMATION([MS-SMB2]section 2.2.39)。
如果PermPropagationMode为“0”,则应通过调用CreateSecurityDescriptor([MS-DTYP]节2.5.3.4.1)并对每个相应的子文件对象应用结果安全描述符,递归更新每个子文件对象的安全描述符,以允许传播可继承的权限。调用CreateSecurityDescriptor时使用以下参数:
§ ParentDescriptor**设置为文件对象父级的安全描述符。
§ CreatorDescriptor**设置为文件对象的当前安全描述符。
§ IsContainerObject设置为true*。*
§ ObjectTypes设置为NULL*。*
§ AutoInheritFlags设置为DACL_AUTO_INHERIT Default_OWNER_FROM_PARTER Default_GROUP_FROMPARTER。
§ 令牌是包含S-1-5-18(本地系统众所周知的SID)的令牌。
§ GenericMapping**是文件对象的泛型映射。
如果PermPropagationMode为“1”,则应通过调用CreateSecurityDescriptor([MS-DTYP]节2.5.3.4.1)并对每个相应的子文件对象应用结果安全描述符,递归更新每个子文件对象的安全描述符,以允许传播可继承的权限。调用CreateSecurityDescriptor时使用以下参数:
§ ParentDescriptor**设置为文件对象父级的安全描述符。
§ CreatorDescriptor设置为NULL*。*
§ IsContainerObject设置为true*。*
§ ObjectTypes设置为NULL*。*
§ AutoInheritFlags设置为DACL_AUTO_INHERIT Default_OWNER_FROM_PARTER Default_GROUP_FROMPARTER。
§ 令牌是包含S-1-5-18(本地系统众所周知的SID)的令牌。
§ GenericMapping**是文件对象的泛型映射。
如果PermPropagationMode为“2”,则该设置的file对象上的安全描述符控制字段位PD设置为零。
3.2.5.12 组成员资格
组成员资格中的设置必须通过为每个设置在组上应用成员和成员资格来设置。
如果GroupNameMembers、GroupNameMemberOf或Value元素值如第2.2.10节所述无效,客户端必须停止处理组成员资格设置并记录错误。
如果设置的键(第2.2.10节)指定的组是域本地、全局或通用组,则:
§ 对于设置的值(节2.2.10)中的域本地、全局和通用组,成员和成员资格必须通过执行与本地调用“在ADConnection上执行LDAP操作”任务([MS-ADTS]节7.6.1.6)一致的外部行为来应用,并为设置中的值(节2.2.10)中的每个SID或名称使用以下参数:
§ TASKINPUTADConnection:一个基于客户机域名的ADConnection句柄([MS-DTYP]section 2.2.2)。
§ TaskinPutreQuestMessage:LDAP修改请求([RFC2251]section 4.6),如下所示:
§ 对象:由设置的键(第2.2.10节)指定的组的可分辨名称。
§ 修改序列有一个条目,如下所示:
§ 操作:添加。
§ 修改:
§ 类型:member或MemberOf。
§ vals:由设置的值(第2.2.10节)中的SID或名称指定的对象的可分辨名称。
§ 对于设置的值(节2.2.10)中的本地组,必须通过执行与本地调用SamrAddMemberToGroup([MS-SAMR]节3.1.5.8.1)一致的外部行为来应用成员资格,该行为适用于设置中的值(节2.2.10)中的每个SID或名称:
§ GroupHandle必须通过执行与本地调用SamroPengGroup([MS-SAMR]节3.1.5.1.7)一致的外部行为来设置为GroupHandle,使用由设置的值(节2.2.10)指定的组的相对标识符(RID)。
§ 必须将MemberId设置为该设置的键(第2.2.10节)中的SID或名称指定的对象的RID。
§ 属性必须设置为零。
如果设置的键(节2.2.10)指定的组是本地组,则必须通过执行与本地调用SamrAddMemberToGroup([MS-SAMR]节3.1.5.8.1)一致的外部行为来应用成员,该行为针对设置中的值(节2.2.10)中的每个SID或名称:
§ 必须将GroupHandle设置为通过执行与本地调用SamroPengGroup([MS-SAMR]节3.1.5.1.7)一致的外部行为打开的组句柄,使用设置的键(节2.2.10)指定的组的RID。
§ 必须将MemberId设置为该设置的值(第2.2.10节)中的SID或名称指定的对象的RID。
属性必须设置为零。
3.2.5.13 用户帐户控制
用户帐户控制(第2.2.11节)中的设置必须通过为每个设置值元组(键、值、类型、数据)添加注册表值来设置。如果键、值、类型和数据值不符合2.2.11节中指定的有效用户帐户控制设置值元组之一,客户端应退出处理用户帐户控制设置并记录错误。
用户帐户控制设置按第3.2.5.6节的规定处理,其中:
§ RegistryValueName是带有反斜杠的指定键值,并附加了指定的value元素值。
§ RegistryValueType是类型值。
RegistryValue是数据值。
3.2.6 定时器事件
3.2.7 其他本地活动
NO.4 协议示例
4.1 涉及密码策略的示例
在下面的示例中,管理员指定,对于应用特定GPO的计算机,将强制执行指定的密码策略:
§ 密码长度最小为8个字符。
§ 打开密码复杂性检查。
§ 10个密码的密码历史是要记住和强制执行的。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[System Access]
MinimumPasswordLength = 8
PasswordComplexity = 1
PasswordHistorySize = 10
4.2 涉及审核设置的示例
在下面的示例中,管理员指定为应用特定GPO的计算机应用指定的审核设置:
\1. 审核成功尝试登录帐户。
\2. 审核帐户管理失败的尝试。
\3. 对对象访问进行了成功和失败的审核尝试。
\4. 审核成功和失败的过程跟踪尝试。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Event Audit]
AuditObjectAccess = 3
AuditAccountManage = 2
AuditProcessTracking = 3
AuditAccountLogon = 1
4.3 配置组成员身份的示例
在下面的示例中,管理员指定,对于应用特定GPO的计算机,组成员资格配置为已分配:
\1. Group1包含以下成员:member1、member2和Member3。
\2. Group2包含以下成员:member1和member3。
\3. Group3包含以下成员:Member4。
\4. Group1是Group3的一部分。
\5. Group2是Group1的一部分。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[Group Membership]
Group1__Memberof = Group3
Group1__Members = member3,member2,member1
Group2__Memberof = Group3
Group2__Members = member3,member1
Group3__Memberof =
Group3__Members = member4
4.4 配置多种类型设置的示例
在下面的示例中,管理员指定,对于应用特定GPO的计算机,前面各节中指定的所有设置都按指定配置。
[Unicode]
Unicode=yes
[Version]
signature="$CHICAGO$"
Revision=1
[System Access]
MinimumPasswordLength = 8
PasswordComplexity = 1
PasswordHistorySize = 10
[Event Audit]
AuditObjectAccess = 3
AuditAccountManage = 2
AuditProcessTracking = 3
AuditAccountLogon = 1
[Group Membership]
Group1__Memberof = Group3
Group1__Members = member3,member2,member1
Group2__Memberof = Group3
Group2__Members = member3,member1
Group3__Memberof =
Group3__Members = member4
NO.5 安全
5.1 实现者的安全注意事项
ClearTextPassword标志,如2.2.1.1节所述,指示密码是否使用可逆加密来存储。此策略为使用要求了解用户密码以进行身份验证的协议的应用程序提供支持。通过使用可逆加密存储密码本质上与存储密码的纯文本版本相同。因此,除非应用程序要求超过保护密码信息的需要,否则不建议使用此策略。
5.2 安全参数索引
5.2.1 影响协议行为的安全参数
5.2.2 协议承载的系统安全参数
NO.6 附录A:产品行为
本规范中的信息适用于下列Microsoft产品或补充软件。对产品版本的引用包括对这些产品的更新。
§ Windows2000Server操作系统
§ Windows XP操作系统
§ Windows Server 2003操作系统
§ Windows Vista操作系统
§ Windows Server 2008操作系统
§ Windows 7操作系统
§ Windows Server 2008 R2操作系统
§ Windows 8操作系统
§ Windows Server 2012操作系统
§ Windows 8.1操作系统
§ Windows Server 2012 R2操作系统
§ Windows 10操作系统
§ Windows Server 2016操作系统
§ Windows Server操作系统
§ Windows Server 2019操作系统
§ Windows Server 2022操作系统
§ Windows 11操作系统
如果有例外,在本节中注明。如果出现带有产品名称的更新版本、service pack或知识库(KB)编号,则该更新中的行为已更改。除非另有规定,否则新行为也适用于后续更新。如果产品版本与产品版本一起出现,则在该产品版本中的行为是不同的。
除非另有说明,本规范中使用“应该”或“不应该”等术语规定的任择行为的任何声明意味着产品行为符合“应该”或“不应该”的规定。除非另有说明,“可能”一词暗示产品不遵循处方。
<1>第2.1节:Windows 2000Server、Windows XP和Windows Server 2003不支持服务器消息块(SMB)版本2和3协议。这些版本的Windows使用SMB,如[MS-SMB]第1.3节所述。
<2>第2.2.1.1节:Windows忽略RequireLogonToChangepassword设置。
<3>第2.2.3节:在Windows 2000操作系统、Windows XP、Windows Server 2003、Windows Vista、Windows Server 2008、Windows 7和Windows Server 2008 R2操作系统中,忽略RestrictGuestAccess设置。
<4>第2.2.4:Windows不会为策略更改失败生成安全审核事件记录。
<5>第2.2.4节:Windows不会为进程跟踪失败生成安全审核事件记录。
<6>第2.2.11节:Windows 2000、Windows XP和Windows Server 2003不支持这些设置。
<7>第2.2.11.1节:在Windows上,这也称为Windows XP本机模式。
<8>第2.2.11.2节:将允许Windows二进制文件在没有同意或凭据的情况下执行需要提升的操作。
<9>第3.2.3节:Windows 2000 Server、Windows XP和Windows Server 2003不支持服务器消息块(SMB)版本2和3协议。这些版本的Windows使用SMB,如[MS-SMB]第1.3节所述。
<10>第3.2.5.6节:Windows 2000 Server、Windows XP和Windows Server 2003忽略此注册表设置,并处理和应用事件审核策略部分下的设置。
NO.7 变更跟踪
本节标识了自上次发布以来对此文档所做的更改。更改分为主要、次要或无更改。
修改类专业是指文件中的技术内容被重大修改。重大更改会影响协议互操作性或实现。主要变化的例子有:
§ 合并了对互操作性要求的更改的文档修订。
§ 捕获协议功能更改的文档修订。
辅修课的意思是阐明了技术内容的含义。微小的更改不会影响协议互操作性或实现。小变化的例子是更新,以澄清句子、段落或表级别的歧义。
修订类None意味着没有引入新的技术更改。编辑和格式可能做了一些小的修改,但相关的技术内容与上次发布的版本相同。
下表列出了对此文档所做的更改。欲了解更多信息,请联系[email protected]。
RECRUITMENT
招聘启事
安恒雷神众测SRC运营(实习生) 【任职要求】
————————
【职责描述】
1. 负责SRC的微博、微信公众号等线上新媒体的运营工作,保持用户活跃度,提高站点访问量;
2. 负责白帽子提交漏洞的漏洞审核、Rank评级、漏洞修复处理等相关沟通工作,促进审核人员与白帽子之间友好协作沟通;
3. 参与策划、组织和落实针对白帽子的线下活动,如沙龙、发布会、技术交流论坛等;
4. 积极参与雷神众测的品牌推广工作,协助技术人员输出优质的技术文章;
5. 积极参与公司媒体、行业内相关媒体及其他市场资源的工作沟通工作。
1. 责任心强,性格活泼,具备良好的人际交往能力;
2. 对网络安全感兴趣,对行业有基本了解;
3. 良好的文案写作能力和活动组织协调能力。
简历投递至
设计师(实习生)
————————
【职位描述】
负责设计公司日常宣传图片、软文等与设计相关工作,负责产品品牌设计。
【职位要求】
1、从事平面设计相关工作1年以上,熟悉印刷工艺;具有敏锐的观察力及审美能力,及优异的创意设计能力;有 VI 设计、广告设计、画册设计等专长;
2、有良好的美术功底,审美能力和创意,色彩感强;
3、精通photoshop/illustrator/coreldrew/等设计制作软件;
4、有品牌传播、产品设计或新媒体视觉工作经历;
【关于岗位的其他信息】
企业名称:杭州安恒信息技术股份有限公司
办公地点:杭州市滨江区安恒大厦19楼
学历要求:本科及以上
工作年限:1年及以上,条件优秀者可放宽
简历投递至
安全招聘
————————
公司:安恒信息
岗位:Web安全 安全研究员
部门:战略支援部
薪资:13-30K
工作年限:1年+
工作地点:杭州(总部)、广州、成都、上海、北京
工作环境:一座大厦,健身场所,医师,帅哥,美女,高级食堂…
【岗位职责】
1.定期面向部门、全公司技术分享;
2.前沿攻防技术研究、跟踪国内外安全领域的安全动态、漏洞披露并落地沉淀;
3.负责完成部门渗透测试、红蓝对抗业务;
4.负责自动化平台建设
5.负责针对常见WAF产品规则进行测试并落地bypass方案
【岗位要求】
1.至少1年安全领域工作经验;
2.熟悉HTTP协议相关技术
3.拥有大型产品、CMS、厂商漏洞挖掘案例;
4.熟练掌握php、java、asp.net代码审计基础(一种或多种)
5.精通Web Fuzz模糊测试漏洞挖掘技术
6.精通OWASP TOP 10安全漏洞原理并熟悉漏洞利用方法
7.有过独立分析漏洞的经验,熟悉各种Web调试技巧
8.熟悉常见编程语言中的至少一种(Asp.net、Python、php、java)
【加分项】
1.具备良好的英语文档阅读能力;
2.曾参加过技术沙龙担任嘉宾进行技术分享;
3.具有CISSP、CISA、CSSLP、ISO27001、ITIL、PMP、COBIT、Security+、CISP、OSCP等安全相关资质者;
4.具有大型SRC漏洞提交经验、获得年度表彰、大型CTF夺得名次者;
5.开发过安全相关的开源项目;
6.具备良好的人际沟通、协调能力、分析和解决问题的能力者优先;
7.个人技术博客;
8.在优质社区投稿过文章;
岗位:安全红队武器自动化工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.熟练使用Python、java、c/c++等至少一门语言作为主要开发语言;
2.熟练使用Django、flask 等常用web开发框架、以及熟练使用mysql、mongoDB、redis等数据存储方案;
3:熟悉域安全以及内网横向渗透、常见web等漏洞原理;
4.对安全技术有浓厚的兴趣及热情,有主观研究和学习的动力;
5.具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
岗位:红队武器化Golang开发工程师
薪资:13-30K
工作年限:2年+
工作地点:杭州(总部)
【岗位职责】
1.负责红蓝对抗中的武器化落地与研究;
2.平台化建设;
3.安全研究落地。
【岗位要求】
1.掌握C/C++/Java/Go/Python/JavaScript等至少一门语言作为主要开发语言;
2.熟练使用Gin、Beego、Echo等常用web开发框架、熟悉MySQL、Redis、MongoDB等主流数据库结构的设计,有独立部署调优经验;
3.了解docker,能进行简单的项目部署;
3.熟悉常见web漏洞原理,并能写出对应的利用工具;
4.熟悉TCP/IP协议的基本运作原理;
5.对安全技术与开发技术有浓厚的兴趣及热情,有主观研究和学习的动力,具备正向价值观、良好的团队协作能力和较强的问题解决能力,善于沟通、乐于分享。
【加分项】
1.有高并发tcp服务、分布式、消息队列等相关经验者优先;
2.在github上有开源安全产品优先;
3:有过安全开发经验、独自分析过相关开源安全工具、以及参与开发过相关后渗透框架等优先;
4.在freebuf、安全客、先知等安全平台分享过相关技术文章优先;
5.具备良好的英语文档阅读能力。
简历投递至
END
长按识别二维码关注我们