导语:保护Windows工作站免受现代的网络攻击威胁是一件非常具有挑战性的事情。 似乎每个星期攻击者们总有一些新的方法用来入侵系统并获取用户凭据。
保护Windows工作站免受现代的网络攻击威胁是一件非常具有挑战性的事情。 似乎每个星期攻击者们总有一些新的方法用来入侵系统并获取用户凭据。
本文涵盖了许多此类以及其他一些很不错的安全实践和配置。
保护Windows工作站:
1. 部署免费/几乎免费的Microsoft工具以提高Windows安全性:
部署Microsoft AppLocker以锁定可以在系统上运行的文件。 使用推荐的软件设置部署当前Windows版本的EMET。 部署LAPS对本地管理员(RID 500)的密码进行管理。 强制组策略在“刷新”期间重新应用设置。
2. 禁用Windows旧版本中通常不会使用到的功能:
禁用Net会话枚举(NetCease) 禁用WPAD 禁用LLMNR 禁用Windows浏览器协议 禁用NetBIOS 禁用Windows脚本宿主(WSH)并且控制脚本文件扩展名 部署禁用Pass-The-Hash的安全补丁(KB2871997)。 阻止本地管理员(RID 500)帐户通过网络进行身份验证 确保WDigest已禁用 从Windows 8.1和Windows Server 2012 R2中移除SMB v1
3. Windows 10和Windows 2016的安全配置:
Windows 10&2016系统映像配置 阻止不受信任的字体 启用凭据保护 配置设备保护
4. 应用程序安全设置:
禁用Microsoft Office宏 禁用Microsoft Office OLE组件
5. 其他组策略安全设置
将Lanman验证配置为安全设置 配置未认证的RPC客户端的限制设置 配置NTLM会话安全
阻止不受信任的字体
为了帮助保护你的公司免受可能来自不受信任或攻击者控制的字体文件的攻击,我创建了阻止不受信任的字体的功能。使用此功能,可以打开全局设置,阻止员工将使用图形设备接口(GDI)处理的不受信任字体并加载到公司的网络上。不受信任的字体是在%windir%/ Fonts目录之外安装的任何字体。阻止不受信任的字体有助于防止在字体文件解析过程中发生的远程(基于Web或基于电子邮件)和本地EOP攻击。
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Session Manager Kernel
如果MitigationOptions键不存在,右键单击并添加一个新的QWORD(64位)值,将其重命名为MitigationOptions。
MitigationOptions键值选项:
打开此功能。输入1000000000000。 要关闭此功能。输入2000000000000。 使用此功能审核。输入3000000000000。
强烈建议在审核模式下启用此功能一到两个星期,并检查相关事件。之后,再将其设置打开。
查看审核事件:
打开事件查看器并转到应用程序和服务日志/ Microsoft / Windows / Win32k / Operational。 查看事件ID 260事件。
事件示例1 – MS Word
WINWORD.EXE尝试加载被字体加载策略限制的字体。
FontType:内存 FontPath: Blocked:true
注意:因为FontType是Memory,所以没有相关的FontPath。
事件示例2 – Winlogon
Winlogon.exe尝试加载被字体加载策略限制的字体。
FontType:文件
FontPath: ?? C: PROGRAM FILES(X86) COMMON FILES MICROSOFT SHARED EQUATION MTEXTRA.TTF Blocked:true
注意:因为FontType是File,所有还有一个相关的FontPath。
事件示例3 – 在审核模式下运行的Internet Explorer
Iexplore.exe尝试加载被字体加载策略限制的字体。 FontType:内存 FontPath: 已阻止:false
注意:在审核模式下,会记录问题,但字体加载过程不会被阻止。
通过组策略阻止不受信任的字体:
在参考工作站上配置注册表设置:
HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Session Manager Kernel MitigationOptions Type = 1000000000000
打开组策略管理控制台。右键单击应包含新首选项条目的组策略对象(GPO),然后单击编辑。 在计算机配置下的控制台树中,展开首选项文件夹,然后展开Windows设置文件夹。 右键单击注册表节点,指向“新建”,然后选择“注册表向导”。 选择存在所需注册表设置的参考工作站,然后单击下一步。 浏览到HKEY_LOCAL_MACHINE SYSTEM CurrentControlSet Control Session Manager Kernel 并选中要从中创建注册表首选项条目的“MitigationOptions”复选框。仅当您要为键而不是键中的值创建注册表项时,才选中键的复选框。 单击“完成”。你所选择的设置会在注册表向导值集合中显示为首选项。
此方案预计的努力水平:低到中等
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测试
阻止已验证的用户枚举Windows 10工作站上的本地组
幸亏Microsoft ATA的工作人员的告知,我才知道Windows 10周年更新(v1607)里把远程SAMR调用(默认)限制为只有本地管理员。
当使用Power View以Windows 10 v1607作为域用户枚举本地组成员身份时,会收到以下错误:
启用凭据保护
https://blogs.technet.microsoft.com/ash/2016/03/02/windows-10-device-guard-and-credential-guard-demystified/
配置设备保护
Device Guard部署指南
Matt Graeber的Device Guard规则可以有效的阻止一部分绕过
应用程序设置
禁用Office宏
“Office宏”这个术语听起来像是Office文档中的一个不错的帮助器。 现实情况是,宏是在计算机上运行的代码。 此代码是用Visual Basic(VBA)编写的,可用于帮助或恶意使用。
根据Microsoft的说法,“在企业中,我们的Office 365高级威胁防护服务的最新数据表明98%的Office针对性威胁使用宏。”
默认情况下,在当前版本的Office中已经禁用了宏(在Office 2010中已启用VBA),但是 企业组织中有一些需要宏功能的用户。 这使管理“宏”变得复杂。在Office 2007中,有几个选项来控制宏:
停用所有宏,而不通知 使用通知停用所有宏 禁用除数字签名的宏之外的所有宏 启用所有宏(不推荐,可能会运行潜在的危险代码)
一些组织配置Office通过通知阻止宏,但用户能够启用宏 – 下图是网络钓鱼者利用的事实。
Microsoft Office 2013引入了遥测仪表板,可用于确定宏使用情况,但默认情况下已禁用。
可以通过使用组策略,注册表设置或在遥测日志中选择启用日志记录按钮来启用:
https://technet.microsoft.com/en-us/library/jj863580.aspx https://blogs.technet.microsoft.com/office_resource_kit/2012/08/08/using-office-telemetry-dashboard-to-see-how-well-your-office-solutions-perform-in-office-2013/
假设你正在使用Office 2007及更高版本,请阻止所有宏,而不需要通知所有用户。
如果你有一部分用户需要宏,则可以将限制范围缩小到这些用户,以便他们可以使用数字签名的宏。
Office 2016引入了一个新设置,此新功能也单独放在了Office 2013 的KB3177451补丁程序中,(通过GPO配置获取Office 2016组策略管理模板)此功能提供了“阻止从来自Internet的Office文件中加载运行宏”的能力。
此策略设置允许你阻止从来自Internet的Office文件中加载运行宏。如果启用此策略设置,即使在信任中心的“宏设置”部分中选择了“启用所有宏”,宏也将被阻止运行。此外,用户不会选择“启用内容”,而是会收到一条宏被阻止运行的通知。如果Office文件保存到受信任位置或用户以前信任的位置,则将允许运行宏。如果禁用或不配置此策略设置,则在信任中心的宏设置部分中配置设置来确定宏是否在来自Internet的Office文件中运行。
此选项为企业组织提供了另一个粒度级别的设置,这些企业组织的用户必须在企业组织内的文件中使用宏,但是在对这些宏签名时会遇到问题。
此功能可以通过组策略进行控制,并根据应用程序进行配置。这个配置使企业管理员能够阻止宏在来自Internet的Word,Excel和PowerPoint文档中运行。这包括以下场景:
从Internet网站或客户存储提供商(如OneDrive,Google云端硬盘和Dropbox)下载的文档。 附加到从企业组织外部发送的电子邮件的文档(企业组织使用Outlook客户端和Exchange服务器发送电子邮件) 从因特网上托管的公用共享中(例如从文件共享站点下载的文件)打开的文档。
组策略:
1.打开组策略管理控制台,右键单击要配置的组策略对象,然后单击编辑。 2.在组策略管理编辑器中,转到用户配置。 3.单击管理模板> Microsoft Word 2016> Word选项>安全>信任中心。 4.打开阻止从来自Internet的 Office文件中加载运行宏,并配置和启用它。
此方案预计的努力水平:低到中等
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测
禁用Office OLE
你已经禁用了你所在组织中的所有Office宏,因此,你认为这样就安全了吗?
不完全是。 有一种嵌入技术来自古老的Windows中,叫 OLE包(packager.dll)的文件,它为攻击者提供了攻击能力,诱使用户在他们的系统上运行代码且只需打开附件。
事实上,Will Harmjoy(Harmj0y.net)&我演示了如何嵌入OLE可以绕过大多数组织的基本安全防护措施并执行攻击者代码,即使Office宏已被禁用:
根据Kevin Beaumont所述,这会影响Outlook 2003- Outlook 2016。
Kevin为这个安全问题提供了几个缓解措施:
应用白名单。但是,请注意在嵌入参数中指定的已被签名的可执行文件。例如。有许多Microsoft数字签名的工具可以给恶意程序进行签名。 为你的Office版本部署注册表项ShowOLEPackageObj以静默禁用Outlook中的OLE包功能。但是,无法在更广泛的Office中禁用,所以攻击者仍然可以嵌入Word,Excel和PowerPoint。 HKEY_CURRENT_USER SOFTWARE Microsoft Office 15.0 Outlook Security ShowOLEPackageObj =“0”(已禁用) EMET。如果运行Microsoft EMET(或类似产品,如Palo-Alto TRAPS),请为Outlook.exe添加此缓解规则: <Mitigation Name =“ASR”Enabled =“true”> <asr_module> packager.dll </ asr_modules </ Mitigation>
通过停止packager.dll,你就可以防止该安全问题的发生。
组策略:
部署缓解措施的最简单的方法是创建组策略并链接到包含用户的OU中:
1. 在参考工作站上设置此注册表项:
HKEY_CURRENT_USER SOFTWARE Microsoft Office ### Outlook Security
添加新的Ddword(32位)值:ShowOLEPackageObj =“0”(disabled)其中“###”是当前安装的Office版本:
2. 打开组策略管理控制台。右键单击应包含新首选项条目的组策略对象(GPO),然后单击编辑。
3. 在计算机配置下的控制台树中,展开首选项文件夹,然后展开Windows设置文件夹。
4. 右键单击注册表节点,指向“新建”,然后选择“注册表向导”。
5. 选择存在所需注册表设置的参考工作站,然后单击下一步。
6. 浏览到HKEY_CURRENT_USER SOFTWARE Microsoft Office ### Outlook Security 并选中“ShowOLEPackageObj”复选框以创建注册表首选项。仅当你要为键而不是键中的值创建注册表项时,才选中键的复选框。
7. 单击“完成”。你所选择的设置在注册表向导值集合中显示为首选项。
如果您的组织已部署EMET(它应该被部署),请使用以下内容更新EMET配置文件:
<Mitigation Name =“ASR”Enabled =“true”> <asr_modules> packager.dll </ asr_modules> </ Mitigation>
通过组策略进行配置:
https://technet.microsoft.com/en-us/itpro/windows/keep-secure/override-mitigation-options-for-app-related-security-policies
此方案预计的努力水平:低到中等
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测
Windows组策略设置
将Lanman验证配置为安全设置
将Lanman验证配置为“仅发送NTLMv2响应”以强制实施验证安全性。
为了更好的安全性,请将此设置配置为“仅发送NTLMv2响应。 拒绝LM&NTLM”
组策略配置:
计算机配置 Windows设置安全设置本地策略安全选项
在Windows Vista,Windows Server 2008,Windows 7和Windows Server 2008 R2中,默认值为仅发送NTLMv2响应。 检查一下,看看你是否用另一个GPO覆盖了此设置。
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测
配置限制未认证的RPC客户端
此策略设置配置RPC服务器上的RPC运行时,以限制未经身份验证的RPC客户端连接到RPC服务器。如果客户端使用命名管道与服务器通信或者使用RPC安全性,则客户端将被视为已认证的客户端。如果已特别要求可由未经身份验证的客户端访问RPC接口则可以解除此限制,具体取决于此策略的所选值。
如果启用此策略设置,可使用以下值:
无。允许所有RPC客户端连接到运行了应用策略的RPC服务器。 已认证。仅允许经过身份验证的RPC客户端连接到运行了应用策略的RPC服务器。已要求解除此限制的例外接口将没有限制。 已验证,没有例外。仅允许经过身份验证的RPC客户端连接到运行了应用策略的RPC服务器。不允许任何例外。
组策略:
计算机配置管理模板系统远程过程调用“已启用”
应用RPC运行时未认证的客户端限制:已认证
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测
配置NTLM会话安全性
你可以启用此策略设置的所有选项,以帮助使用NTLM安全支持提供程序(NTLM SSP)保护的网络流量不会暴露给能够访问同一网络的攻击者或被篡改。换句话说,这些选项有助于防止中间人攻击。
此策略设置将会确定允许使用NTLM安全支持提供程序(SSP)的应用程序使用哪些行为。 SSP接口(SSPI)由需要身份验证服务的应用程序使用。该设置不会修改身份验证序列的工作方式,而是修改在使用SSPI的应用程序中需要的某些行为。
网络安全性的可能值:基于NTLM SSP(包括安全RPC)客户端的最小会话安全性设置值为:
要求消息机密性。此选项仅在Windows XP和Windows Server 2003中可用,如果未协商加密,连接将失败。加密将数据转换为在解密之前不可读的形式。 要求消息完整性。此选项仅在Windows XP和Windows Server 2003中可用,如果未协商消息完整性,则连接将失败。可以通过消息签名来评估消息的完整性。消息签名证明消息未被篡改;它会附加标识发送者的加密签名,并且是消息内容的数字表示。 需要128位加密。如果未协商强加密(128位),连接将失败。 需要NTLMv2会话安全性。如果未协商NTLMv2协议,连接将失败。 未定义的。
组策略:
计算机配置 Windows设置安全设置本地策略安全选项
网络安全:基于NTLM SSP(包括安全RPC)客户端的最小会话安全性
此方案预计的影响:这很可能会影响企业的一些事情,最好在部署前先进行测
非常重要注意事项:这些方案都只是建议。你需要负责在部署之前进行测试和识别问题。
如果你影响到了企业工作环境,我不负任何责任,。配置任何这些设置可能会对您的环境产生负面影响 ,最好在应用前进行测试。尽管配置可能有点多,但确实能提高你的系统的安全性。