Windows 主机安全基线 2024-10-04 08:13:58 Steven Xeldax [TOC] ## Windows 主机安全基线 ### 系统账号策略 #### 密码策略 '强制密码历史记录' 设置为'5 ‘ 确保“密码最长使用期限”设置为“90 天或更少,但不是 0” 确保“密码最短使用期限”设置为“1 天或更多天” 确保“最小密码长度”设置为“10个或更多字符” 确保“密码必须满足复杂性要求”设置为“启用” 确保“使用可逆加密存储密码”设置为“已禁用” #### 账号锁定策略 “帐户锁定持续时间”设置为“30 分钟或更长时间” 确保“帐户锁定阈值”设置为“6” 确保“重置帐户锁定计数器”设置为“15 分钟或更长时间” #### 账号权限管理 作为受信任的呼叫者访问凭据管理器”设置为“no one” 从网络访问此计算机”设置为“管理员、远程桌面用户 作为操作系统的一部分”设置为“no one” 调整进程的内存配额”设置为“管理员、本地服务、网络服务” 允许本地登录”设置为“管理员、用户” 允许通过远程桌面服务登录”设置为“管理员、远程桌面用户” 备份文件和目录”设置为“管理员” 更改系统时间”设置为“管理员,本地服务” 更改时区”设置为“管理员、本地服务、用户” 创建页面文件”设置为“管理员” 创建令牌对象”设置为“No one“ 创建全局对象”设置为“管理员” 确保“创建永久共享对象”设置为“No one” 配置“创建符号链接”设置为管理员。 调试程序”设置为“管理员” 设置“拒绝从网络访问此计算机”以包括“来宾,本地帐户” 拒绝作为服务登录”设置为来宾账号。 拒绝来宾账号本地登录 拒绝通过远程桌面服务登录”的账号包括“访客、本地帐户 将“启用计算机和用户帐户以进行委派信任”设置为“no one” 从远程系统强制关闭”设置为“管理员 确保“生成安全审计”设置为“本地服务,网络服务” 确保“身份验证后模拟客户端”设置为“管理员、本地服务、网络服务、服务” 确保“增加调度优先级”设置为“管理员、窗口管理器\窗口管理器组 确保“加载和卸载设备驱动程序”设置为“管理员” 确保“锁定内存中的页面”设置为“no one” 确保“管理审核和安全日志”设置为“管理员” 确保“修改对象标签”设置为“no one” 确保“修改固件环境值”设置为“管理员” 确保“执行卷维护任务”设置为“管理员” 确保“配置文件单一进程”设置为“管理员” 确保“配置文件系统性能”设置为“管理员,NT SERVICE\WdiServiceHost” 确保“替换进程级别令牌”设置为“本地服务,网络服务” 确保“恢复文件和目录”设置为“管理员” 确保“关闭系统”设置为“管理员、用户” 确保“取得文件或其他对象的所有权”设置为“管理员” #### 安全选项 确保“帐户:管理员帐户状态”设置为“已禁用” 确保“帐户:阻止 Microsoft 帐户”设置为“用户无法添加或使用 Microsoft 帐户登录” 确保“帐户:访客帐户状态”设置为“已禁用” 确保“帐户:将本地帐户使用空白密码限制为仅控制台登录”设置为“已启用” 配置“帐户:重命名管理员帐户” 配置“帐户:重命名访客帐户” 确保“审核:强制审核策略子类别设置(Windows Vista 或更高版本)覆盖审核策略类别设置”设置为“启用” 确保“审核:如果无法记录安全审核,请立即关闭系统”设置为“已禁用” 确保“设备:允许格式化和弹出可移动媒体”设置为“管理员和交互式用户” 确保“设备:阻止用户安装打印机驱动程序”设置为“启用” 确保“交互式登录:不需要 CTRL+ALT+DEL”设置为“禁用” 确保“交互式登录:不显示上次登录”设置为“启用” 确保“交互式登录:计算机帐户锁定阈值”设置为“6 次或更少的无效登录尝试,但不是 0” 确保“交互式登录:机器不活动限制”设置为“900 秒或更少,但不是 0” 配置“交互式登录:尝试登录的用户的消息文本” 配置“交互式登录:尝试登录的用户的消息标题” ### 系统服务 确保“蓝牙音频网关服务 (BTAGService)”设置为“已禁用” 确保“蓝牙支持服务 (bthserv)”设置为“禁用” 确保“计算机浏览器(浏览器)”设置为“已禁用”或“未安装” 确保“已下载的地图管理器 (MapsBroker)”设置为“已禁用” 确保“地理位置服务 (lfsvc)”设置为“已禁用” 确保“IIS Admin Service (IISADMIN)”设置为“已禁用”或“未安装” 确保“红外监控服务 (irmon)”设置为“禁用” 确保“Internet 连接共享 (ICS) (SharedAccess)”设置为“已禁用” 确保“链路层拓扑发现映射器 (lltdsvc)”设置为“已禁用” 确保“LxssManager (LxssManager)”设置为“已禁用”或“未安装” 确保“Microsoft FTP 服务 (FTPSVC)”设置为“已禁用”或“未安装” 确保“Microsoft iSCSI 发起程序服务 (MSiSCSI)”设置为“已禁用” 确保“Microsoft Store 安装服务 (InstallService)”设置为“已禁用” 确保“OpenSSH SSH 服务器 (sshd)”设置为“已禁用”或“未安装” 确保“对等名称解析协议 (PNRPsvc)”设置为“已禁用” 确保“对等网络分组 (p2psvc)”设置为“已禁用” 确保“对等网络身份管理器 (p2pimsvc)”设置为“已禁用” 确保“PNRP 机器名称发布服务 (PNRPAutoReg)”设置为“已禁用” 确保“问题报告和解决方案控制面板支持 (wercplsupport)”设置为“已禁用” 确保“远程访问自动连接管理器 (RasAuto)”设置为“已禁用” 确保“远程桌面配置 (SessionEnv)”设置为“已禁用”(AAD主机设置为启用) 确保“远程桌面服务(TermService)”设置为“禁用”(AAD主机设置为启用) 确保“远程桌面服务用户模式端口重定向器 (UmRdpService)”设置为“已禁用” 确保“远程过程调用 (RPC) 定位器 (RpcLocator)”设置为“已禁用” 确保“远程注册表 (RemoteRegistry)”设置为“已禁用” 确保“路由和远程访问 (RemoteAccess)”设置为“已禁用” 确保“服务器(LanmanServer)”设置为“禁用” 确保“简单 TCP/IP 服务 (simptcp)”设置为“已禁用”或“未安装” 确保“SNMP 服务 (SNMP)”设置为“已禁用”或“未安装” 确保“SSDP 发现 (SSDPSRV)”设置为“已禁用” 确保“UPnP 设备主机 (upnphost)”设置为“已禁用” 确保“Web 管理服务 (WMSvc)”设置为“已禁用”或“未安装” 确保“Windows 错误报告服务 (WerSvc)”设置为“已禁用” 确保“Windows 事件收集器 (Wecsvc)”设置为“已禁用” 确保“Windows Media Player 网络共享服务 (WMPNetworkSvc)”设置为“已禁用”或“未安装” 确保“Windows 移动热点服务 (icssvc)”设置为“已禁用” 确保“Windows 推送通知系统服务 (WpnService)”设置为“已禁用” 确保“Windows PushToInstall 服务 (PushToInstall)”设置为“已禁用” 确保“Windows 远程管理 (WS-Management) (WinRM)”设置为“已禁用” 确保“WWW发布服务 (W3SVC)”设置为“已禁用”或“未安装” 确保“Xbox 配件管理服务 (XboxGipSvc)”设置为“已禁用” 确保“Xbox Live 身份验证管理器 (XblAuthManager)”设置为“已禁用” 确保“Xbox Live 游戏保存 (XblGameSave)”设置为“禁用” 确保“Xbox Live 网络服务 (XboxNetApiSvc)”设置为“已禁用” ### Windows 防火墙 确保“Windows 防火墙:域:防火墙状态”设置为“开启(推荐)” 确保“Windows 防火墙:域:入站连接”设置为“阻止(默认)” 确保“Windows 防火墙:域:出站连接”设置为“允许(默认)” 确保“Windows 防火墙:域:设置:显示通知”设置为“否” 确保“Windows 防火墙:域:日志记录:名称”设置为“%SystemRoot%\System32\logfiles\firewall\domainfw.log 确保“Windows 防火墙:域:日志记录:大小限制 (KB)”设置为“16,384 KB 或更大” 确保“Windows 防火墙:域:日志记录:记录丢弃的数据包”设置为“是” 确保“Windows 防火墙:域:日志记录:记录成功连接”设置为“是” ### 安全软件 安装EDR,DLP 安装统一桌面管控(只针对终端而言,服务器使用AD管理) ### 安全补丁 安装主机当前最新的安全补丁 ### 文件系统 文件系统使用NTFS ### 审核策略 审核帐号登录事件 审核帐号管理 审核目录服务访问 审核登录事件 审核策略更改 审核特权使用 审核对象访问 审核系统事件 ### 关闭windows自动播放功能 必须设置“关闭windows自动播放功能”项为已启用 ### 网络服务 关闭默认共享 ### 安全选项设置 交互式登陆:不显示最后的用户名:Enabled 交互式登陆:试图登陆的用户的消息标题 交互式登陆:试图登陆的用户的消息文本 交互式登陆:提示用户在过期之前更改密码:14Days 网络访问:不允许SAM帐号的匿名枚举:Enabled 网络访问:允许匿名SID/名称转换:Disabled 网络访问:不允许SAM帐号和共享的匿名枚举:Enabled 网络访问:将Everyone权限应用于匿名用户:Disabled 网络访问:限制对命名管道和共享的匿名访问:Enabled 关机:清除虚拟内存页面:Enabled 恢复控制台:允许自动管理登陆:Disabled Microsoft网络服务器:暂停会话前所需的空闲时间数量:15min 帐号:来宾帐号状态:Disabled Microsoft网络客户端:将未加密的密码发送到第三方SMB服务器:Disabled ### 用户权限分配 Change the system time: Administrators和Local Service Create a pagefile: Administrators Load and unload device drivers: Administrators Access this computer from the network: 设置“从网络访问此计算机”的账户都为授权账户 Log on locally: 设置“允许本地登录”的账户都为授权账户 Take ownership of files or other objects: Administrators Shut down the system: Administrators Force shutdown from a remote system: Administrators ## 其他版本基线 ### CIS windows benchmarks windows 10 enterprise benchmark ``` https://download.xeldax.top/CIS/CIS_Microsoft_Windows_10_Enterprise_Benchmark_v3.0.0.pdf ``` windows 11 enterprise benchmark ``` http://download.xeldax.top/CIS/CIS_Microsoft_Windows_11_Enterprise_Benchmark_v3.0.0.pdf ``` windows server 2019 benchmark ``` https://download.xeldax.top/CIS/CIS_Microsoft_Windows_Server_2019_Benchmark_v3.0.1.pdf ``` ### 微软自己官方的基线 https://techcommunity.microsoft.com/t5/microsoft-security-baselines/bg-p/Microsoft-Security-Baselines  https://learn.microsoft.com/zh-tw/windows/security/operating-system-security/device-management/windows-security-configuration-framework/get-support-for-security-baselines  https://www.microsoft.com/en-us/download/details.aspx?id=55319  下载微软的官方基线,以win11举例需要进入到```Windows 11 Security Baseline\Windows11-Security-Baseline-FINAL\Documentation``` 下加载MSFT-Win11-FINAL.PolicyRules  点击后可以对比当前系统的配置和基线的差异  结果如下所示:  ## 一键检测工具 ### github audit test automation https://github.com/fbprogmbh/Audit-Test-Automation?tab=readme-ov-file#microsoft-os 安装ATAAuditor ``` Install-Module -Name ATAPAuditor ```  ``` Import-Module -Name ATAPAuditor Save-ATAPHtmlReport -ReportName "Microsoft Windows 11 Stand-alone" ```   针对每个CIS harden选项的加固结果的测试,如下图所示:  ### Microsoft Security Compliance Toolkit 文档地址 https://techcommunity.microsoft.com/t5/microsoft-security-baselines/new-amp-updated-security-tools/ba-p/1631613 下载地址 https://www.microsoft.com/en-us/download/details.aspx?id=55319 > 策略分析器 v4.0 “与有效状态比较”按钮取代了策略分析器主窗口中以前的“比较本地注册表”和“本地策略”复选框。按下该按钮可将选定的基线与当前系统状态进行比较。如果选定的基线包含任何用户配置设置,则将其与当前用户的设置进行比较。如果选定的基线包含任何安全模板设置或高级审核设置,“与有效状态比较”需要管理权限。与选定的基线设置相对应的有效状态将保存到新的策略规则集中。  ### CIS-CAT https://www.cisecurity.org/cybersecurity-tools/cis-cat-pro cis cat现在只有商业的版本,可以选择现在CIS-CAT Lite进行试用,如下所示:   ``` Assessor-CLI.bat -i ``` 需要使用管理员运行CIS-CAT  重新使用管理员运行```Assessor-CLI.bat -i```,如下:    有关CIS-CAT的其他命令可以参考 ``` https://ciscat-assessor.docs.cisecurity.org/en/latest/User%20Guide%20-%20Assessor/#basic-options ``` CIS-CAT 一键运行 ``` Assessor-CLI.bat -b benchmarks\CIS_Microsoft_Windows_11_Enterprise_Benchmark_v3.0.0-xccdf.xml ``` ## 一键部署工具 ### Microsoft Security Compliance Toolkit SCP中有自带的组策略模板可以直接应用配置策略,但是在一键配置之前一定要注意策略的影响。 1.登录到需要加固的 Microsoft Windows Server 或工作站操作系统。 2.从 Microsoft 网站下载适当的安全基线。(https://www.microsoft.com/en-us/download/details.aspx?id=55319) 2.下载 LGPO 工具。 3.将安全基线解压到工作目录。 4.浏览到安全基线文件夹,然后到 Scripts,再到 Tools 文件夹。 5.从之前下载的文件中将 LGPO.exe 文件复制到 Tools 文件夹中。  6.以管理员身份打开 PowerShell。 7.浏览到安全基线工作目录,然后到“Scripts”文件夹。  8.如果这是服务器操作系统:使用适当的开关运行以下命令:PowerShell.exe -ExecutionPolicy RemoteSigned -File .\Baseline-LocalInstall.ps1 -WSMember 注意:用适当的开关替换 -WSMember: ``` -WSMember - Windows Server,域加入的成员服务器 -WSNonDomainJoined - Windows Server,非域加入 -WSDomainController - Windows Server,域控制器 ``` 重新启动。 如果这是桌面操作系统:使用适当的开关运行以下命令: ``` PowerShell.exe -ExecutionPolicy RemoteSigned -File .\Baseline-LocalInstall.ps1 -Win10DomainJoined ``` 注意:用适当的开关替换 -Win10DomainJoined: ``` -Win10DomainJoined - Windows 10,域加入 -Win10NonDomainJoined - Windows 10,非域加入 ``` 重新启动。 Example: ``` PowerShell.exe -ExecutionPolicy RemoteSigned -File .\Baseline-LocalInstall.ps1 -WSNonDomainJoined ```   ## 参考资料 https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/windows-security-configuration-framework/windows-security-baselines https://learn.microsoft.com/en-us/windows/security/operating-system-security/device-management/windows-security-configuration-framework/security-compliance-toolkit-10 https://learn.microsoft.com/zh-cn/compliance/regulatory/offering-cis-benchmark https://infohub.delltechnologies.com/en-us/l/stig-and-microsoft-security-baseline-based-hardening-of-a-vmware-horizon-on-vxrail-based-vdi-environment/applying-microsoft-security-baselines/ **最后需要注意的是基线虽好但不能乱用,需要每一条目都去确认基线中的配置带来的影响,盲目的参照CIS基线会导致有些软件都打不开。**