安全帐户管理器 (SAM) 有何功能?
安全帐户管理器 (SAM) 是运行 Windows Server 2003 的服务器上的一个数据库,用于存储本地计算机上用户的用户帐户和安全描述符。
此功能适用于哪些用户?
此功能适用于需要进行疑难解答或了解 SAM 组件在部署中行为的 IT 专业人员。进行疑难解答可能还需要下载其他工具。本主题还适用于授权 SAMR 和 LSAR 协议的开发人员以及使用来自 MSDN 的 LSA 信任应用程序编程接口 (API) 的开发人员。
Windows Server 2003 Service Pack 1 为此功能添加了哪种新功能?
SAM WPP 记录
详细说明
安 全帐户管理器 (SAM) 调试日志可以在部署期间由 Windows 软件跟踪预处理器 (WPP) 进行收集。当 Windows 系统的运行达不到预期效果时,可以使用 WPP 来收集有关 SAM 组件的操作的信息。Microsoft 产品支持服务人员可以使用这些信息来帮助您解决部署中的问题。
为什么说此项更改是重要的?它将缓解哪些威胁?
如果从日志信息中可以确定发生了什么问题,则此功能可以减少活动的调试会话的数量。
它的工作方式有何不同?
没有什么不同。启用了一项新功能来生成记录。下面列出了可以用来启用记录的 Logman 命令:
logman create trace samlog -p "{f2969c49-b484-4485-b3b0-b908da73cebb}" 3
logman start samlog
rem repeat action that is interesting and that should be captured in log
logman stop samlog
此操作将生成扩展事务日志 (ETL),您的产品支持工程师将使用调试符号集来分析该日志。
Windows Server 2003 Service Pack 1 添加或更改了哪些设置?
增加了一个新的 Windows 事件跟踪 (ETW) 项 f2969c49-b484-4485-b3b0-b908da73cebb 。此项反映是否已为 SAM 组件启用了记录。以下来自 tracelog –enumguid
的示例输出包含该新项。
Guid Enabled LoggerId Level Flags
-----------------------------------------------------------
1046d4b1-fce5-48bc-8def-fd33196af19a FALSE 0 0 0
5007c7b1-1444-4303-bdbe-359c79fc032a FALSE 0 0 0
7e4b70ee-8296-4f0f-a3ba-f58ef7bb4e96 FALSE 0 0 0
77db410c-561e-4358-8b0e-af866e91bb89 FALSE 0 0 0
dd5ef90a-6398-47a4-ad34-4dcecdef795f FALSE 0 0 0
196e57d9-49c0-4b3b-ac3a-a8a93ada1938 FALSE 0 0 0
1540ff4c-3fd7-4bba-9938-1d1bf31573a7 FALSE 0 0 0
94a984ef-f525-4bf1-be3c-ef374056a592 FALSE 0 0 0
3121cf5d-c5e6-4f37-be86-57083590c333 FALSE 0 0 0
94335eb3-79ea-44d5-8ea9-306f49b3a04e FALSE 0 0 0
4a8aaa94-cfc4-46a7-8e4e-17bc45608f0a FALSE 0 0 0
f33959b4-dbec-11d2-895b-00c04f79ab69 FALSE 0 0 0
8e598056-8993-11d2-819e-0000f875a064 FALSE 0 0 0
f2969c49-b484-4485-b3b0-b908da73cebb FALSE 0 0 0
cc85922f-db41-11d2-9244-006008269001 FALSE 0 0 0
c92cf544-91b3-4dc0-8e11-c580339a0bf8 FALSE 0 0 0
bba3add2-c229-4cdb-ae2b-57eb6966b0c4 FALSE 0 0 0
8fc7e81a-f733-42e0-9708-cfdae07ed969 FALSE 0 0 0
cddc01e2-fdce-479a-b8ee-3c87053fb55e FALSE 0 0 0
6acd39eb-4cb0-486b-83fa-307aa23767b1 FALSE 0 0 0
65f67abd-ecd2-4501-9b10-d48db2300e6c FALSE 0 0 0
28cf047a-2437-4b24-b653-b9446a419a69 FALSE 0 0 0
fc4b0d39-e8be-4a83-a32f-c0c7c4f61ee4 FALSE 0 0 0
fc570986-5967-4641-a6f9-05291bce66c5 FALSE 0 0 0
39a7b5e0-be85-47fc-b9f5-593a659abac1 FALSE 0 0 0
dab01d4d-2d48-477d-b1c3-daad0ce6f06b FALSE 0 0 0
58db8e03-0537-45cb-b29b-597f6cbebbfe FALSE 0 0 0
58db8e03-0537-45cb-b29b-597f6cbebbfd FALSE 0 0 0
防止 SAM 和 LSA 句柄劫持
详细说明
现在 SAMR 和 LSAR 协议的服务器端实现可以实现安全检查,以确保当前调用程序与分别从 SamConnect
和 LsaOpenPolicy
返回的打开的第一个句柄的调用程序相同。
安全帐户管理器远程过程调用 (RPC) 协议 (SAMR) 是一个完整的子系统,用于执行远程服务帐户管理器操作,例如用户帐户管理和操作。SAMR 接口定义客户端调用的远程安全帐户管理器 (SAM) 方法。SamConnect
是用于连接到 SAM 数据库的功能。
为什么说此项更改是重要的?
此更改与 RPC 更改有关,RPC 更改有助于防止您的系统受到权限提升攻击。默认情况下,在 Active Directory 接口中执行此更改可以使您的系统更安全。
它的工作方式有何不同?
如 果您的应用程序使用 SAMR 或 LSAR 协议,将针对每个收到的调用执行访问检查,并验证打开上下文句柄的客户端标识与进行调用的客户端标识是否相同。如果您的应用程序不使用该约定,则在安装 Windows Server 2003 Service Pack 1 (SP1) 之后,应用程序将不再工作。
我如何修正这些问题?
对 SAMR 和 LSAR 方法的所有调用都必须在与生成调用中所使用的上下文句柄的调用相同的安全上下文中进行。如果不同,则必须将您的应用程序修改为符合此要求。
我是否需要更改我的代码以使用 Windows Server 2003 Service Pack 1?
大多数应用程序都不需要更改。但是,如果应用程序的代码在使用从 SAMR 和 LSAR 接口获得的上下文句柄时切换了安全上下文,则需要修改代码。如果应用程序使用以下任何一个 API,则请向应用程序开发人员验证:在 LsaOpenPolicy
调用和使用从 LsaOpenPolicy
返回的句柄的任何后续 Lsa API 调用之间的调用安全上下文没有更改。
LsaOpenPolicy
LsaQueryInformationPolicy
LsaSetInformationPolicy
LsaQueryDomainInformationPolicy
LsaSetDomainInformationPolicy
LsaEnumerateTrustedDomains
LsaLookupNames
LsaLookupNames2
LsaLookupSids
LsaEnumerateAccountsWithUserRight
LsaEnumerateAccountRights
LsaAddAccountRights
LsaRemoveAccountRights
LsaOpenTrustedDomainByName
LsaQueryTrustedDomainInfo
LsaSetTrustedDomainInformation
LsaDeleteTrustedDomain
LsaQueryTrustedDomainInfoByName
LsaSetTrustedDomainInfoByName
LsaEnumerateTrustedDomainsEx
LsaCreateTrustedDomainEx
LsaQueryForestTrustInformation
LsaSetForestTrustInformation
LsaForestTrustFindMatch
LsaStorePrivateData
LsaRetrievePrivateData