网络安全爱好者
Toggle navigation
主页
归档
标签
关于我
Windows基线
安全加固
2024-04-29 17:12:04
86
admin
安全加固
<p style="text-indent:2em">Windows基线是一种安全配置模板,旨在帮助组织确保其Windows操作系统的安全性。基线是由Microsoft提供的一组推荐的安全设置,它们可以减少系统面临的潜在安全威胁。这些基线通常涵盖各种方面,包括用户账户控制、网络安全、密码策略、应用程序控制等等。组织可以根据自己的安全需求和环境对这些基线进行定制。</p> ### 一.账户与认证 #### 1.1 对登录操作系统的用户进行身份标识和鉴别 - 测试内容:检查系统登录是否需要密码 - 操作步骤:开机检测是否需要密码 - 预期结果:不能存在空密码帐户 #### 1.2 管理缺省账户 - 测试内容:对于管理员帐号,应使用非缺省Administrator帐户名称,即重命名管理员帐户,禁用 guest(来宾)帐户。 - 操作步骤: ``` 确认除Administrator之外还存在重命名管理员账户 net localgroup administratros 如果没有,添加用户并添加到管理员组 net user test 1qazWSX /add && net localgroup administrators test /add 禁用administrator和guest账户 net user administrator /active:no net user guest /active:no ``` - 预期结果:禁用Administrator与Guest账户 #### 1.3 口令复杂度,定期更换 - 测试内容:口令复杂度 与 口令定期更换 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-账户策略-密码策略 密码必须符合复杂性要求->已启用 密码最长使用期限->90 ``` - 预期结果:最短密码长度 8个字符,启用本机组策略中密码必须符合复杂性要求的策略;“密码最长 存留期”设置不大于“90天” #### 1.4 启用登录失败处理功能,限制非法登录次数 - 测试内容:检查当用户连续认证失败次数的限制 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-账户策略-账户锁定策略 账户锁定阈值->6 账户锁定时间->30 ``` - 预期结果:“账户锁定阀值”设置为小于或等于 6次,“账户锁定时间”设置为大于5分钟 #### 1.5 限制非管理员账户关闭计算机 - 测试内容:检查是否仅有管理员账户授权本地关机、远程关机 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-用户权限分配 从远程强制关机->Administrators 关闭系统->Administrators ``` - 预期结果:除Administrators组外用户均无关机权限 ### 二、日志 #### 2.1 审核登录事件 - 基本要求:应配置日志功能,对用户登录进行记录,记录内容包括用户登 录使用的账号,登录是否成 功,登录时间,以及远程登录时, 用户使用的 IP 地址。 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-审核策略 审核登录事件->成功,失败 ``` - 预期结果:查看本地安全策略,审核登录事件,应设置为成功和失败都审核 #### 2.2 审核账户管理 - 启用Windows系统的审核帐户管理,成功和失败都要审核 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-审核策略 审核账户管理->成功,失败 ``` #### 2.3 其他审核项 | 基本要求 | 测试内容 | 预期结果 | | ----------- | ----------- |----------- | |审核对象访问|启用Windows系统的审核对象访问|"审核对象访问"设置为"成功" 和"失败"都要审核| |审核目录服务器访问|启用组Windows系统的审核目录服务访问|"审核目录服务器访问"设置为"成功" 和"失败"都要审核| |审核进程追踪|启用Windows系统的审核进程追踪|"审核进程追踪"设置为"失败"要审核| |审核系统事件|启用Windows系统的审核系统事件|"审核特权使用"设置为"成功" 和"失败"都要审核| |审核特权使用|启用Windows系统的审核特权使用|"审核系统事件"设置为"成功" 和"失败"都要审核| #### 2.4 配置日志文件大小 - 测试内容:设置日志文件大小至少为8192KB - 操作步骤: ``` eventver-windows日志-日志-属性-8192 ``` - 预期结果:"应用日志""系统日志""安全日志"属性中的日志大小设置不小于"8192KB" ### 三、入侵防范与访问控制 #### 3.1 共享文件夹权限控制 - 测试内容:共享文件夹限制 - 操作步骤: ``` 计算机管理(compmgmt.msc)->系统工具->共享文件夹->共享 查看每个自定义共享文件夹的共享权限,若其中包含“Everyone(任何人)”,则将其删除。 ``` - 预期结果:共享分区、文件夹或文件应设置访问权限,用户里不应包含Everyone(任何人)。 #### 3.2 修改远程桌面服务默认端口 - 测试内容:远程桌面服务端口管理 - 操作步骤: ``` Regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\Wds\rdpwd\Tds\tcp 找到“PortNumber”子项,默认值 00000D3D,是 3389 的十六 进制表示形式。切换到十进制,修改成除 3389 外的其他任何值,并保存新值,重新启动系统。 ``` #### 3.3 禁止远程访问操作系统注册表路径和子路径 - 测试内容:注册表远程管理 - 操作步骤: ``` gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-安全选项-网络访问:可远程访问的注册表路径和子路径-删除全部 ``` - 预期结果:禁止远程连接注册表 #### 3.4 安装终端防护软件 - 测试内容:恶意代码防范 - 操作步骤:使用正版授权的计算机病毒防护软件,可安全有效地查杀各类计算机病毒,防范恶意代码执行,自动更新病毒特征库 - 预期结果:采购并安装正版授权计算机病毒防护软件 ### 四、系统服务 - 基本要求:关闭不必要的系统服务 - 操作步骤: ``` services.msc 关闭一下服务: Error Reporting Service、错误报告服务 Computer browser 浏览局域网计算机列表 Print Spooler 打印队列服务 Remote Registry 远程注册表操作 Routing and Remote Access 路由与远程访问 Shell Hardware Detection 为自动播放硬件事件提供通知 Telnet 远程管理 TCP/IP NetBIOS Helper 允许客户端共享文件,打印机和登录到网络 ``` - 预期结果:关闭不必要的服务,提高系统安全性 ### 五、系统更新 - 基本要求:系统自动更新安全补丁 - 操作步骤: ``` 控制面板-Windows Update,启用 Windows Update 设置 - windows更新,检查更新 ``` - 预期结果:应安装关键和重要系统补丁,开启系统自动更新功能 ### 六、基线排查脚本 windows下的基线检查就是基于注册表表项进行检查,如果windows组策略有些不存在于注册表中,就要用到组策略命令行工具secedit inf脚本security.inf ``` [Unicode] Unicode=yes ;gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-审核策略 [Event Audit] AuditPolicyChange = 3 ;审核策略更改 AuditLogonEvents = 3 ;#审核登录事件 AuditObjectAccess = 3 ;#审核对象访问 AuditProcessTracking = 2 ;#审核进程跟踪 AuditDSAccess = 3 ;#审核目录服务访问 AuditPrivilegeUse = 3 ;#审核权使用 AuditSystemEvents = 3 ;#审核系统事件 AuditAccountManage = 3 ;#审核帐户管理 ;gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-安全选项 [Registry Values] MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymous=4,1 ;#网络访问:不允许SAM账户和共享的匿名枚举值为Enabled MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM=4,1 ;#网络访问:不允许SAM账户的匿名枚举值为Enabled MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\DontDisplayLastUserName=4,1 ;交互式登录:不显示上次登录用户名值为Enabled MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\EnableForcedLogOff=4,1 ;Microsoft 网络服务器:登录时间过期后端口与客户端的连接 MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\ClearPageFileAtShutdown=4,1 ;#关机:允许系统在未登录前关机值为Disabled ;gpedit.msc-计算机配置-Windows设置-安全设置-账户策略 [System Access] EnableGuestAccount = 0 ;#禁用Guest账户 NewAdministratorName = "Administrator" ;#指定了新管理员账户的名称为 "Administrator" MinimumPasswordLength = 8 ;#密码长度最小值 PasswordComplexity = 1 ;#密码必须符合复杂性要求 PasswordHistorySize = 60 ;#强制密码历史 LockoutBadCount = 5 ;#账户锁定阈值 LockoutDuration = 30 ;#账户锁定时间 ;gpedit.msc-计算机配置-Windows设置-安全设置-本地策略-用户权限分配 [Privilege Rights] SeRemoteShutdownPrivilege = *S-1-5-32-544 ;#从远程系统强制关机, S-1-5-32-544 代表本地管理员组 SeTakeOwnershipPrivilege = *S-1-5-32-544 ;#取得文件或其他对象的所有权 SeNetworkLogonRight = *S-1-5-32-544,*S-1-5-32-545,*S-1-5-32-551,*S-1-5-32-547 ;#从网络访问此计算机 S-1-5-32-544 代表本地管理员组,S-1-5-32-545 代表 Users 组,S-1-5-32-551 代表 Backup Operators 组,S-1-5-32-547 代表 Guests 组 [Version] signature="$CHICAGO$" Revision=1 ``` bat脚本build_security_Strategy.bat ``` @echo off echo. echo _ .-. echo :_; : : echo ,-.,-.,-. .--. .-. .--. : `-. .-..-. .--. ,-.,-. .--. echo : ,. ,. :' '_.': :' ..': .. :: :; :' .; ; : ,. :' .; : echo :_;:_;:_;`.__.':_;`.__.':_;:_;`.__.'`.__,_;:_;:_;`._. ; echo .-. : echo 一键执行,配置windows安全策略 echo 正在配置中...... secedit /configure /db gp.sdb /cfg security.inf ::检查系统中是否存在默认的 Administrator 和 Guest 账户,如果存在则提示管理员修改。 ::管理缺失账户 for /f "skip=4 tokens=1-3" %%i in ('net user') do ( if "%%i"=="Administrator" echo 请修改默认管理员账号:%%i if "%%i"=="Guest" echo 请禁用用户:%%i if "%%j"=="Administrator" echo 请修改默认管理员账号:%%j if "%%j"=="Guest" echo 请禁用用户:%%j if "%%k"=="Administrator" echo 请修改默认管理员账号:%%k if "%%k"=="Guest" echo 请禁用用户:%%k ) ::检查注册表中是否启用了 SNMP 攻击保护,如果未启用则修改注册表并显示成功提示。 ::启用SNMP攻击保护 set EnableDeadGWDetect=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters') do if "%%i"=="EnableDeadGWDetect" if "%%k"=="0x0" set EnableDeadGWDetect=True if %EnableDeadGWDetect%==False ( REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v EnableDeadGWDetect /t REG_DWORD /d 0 echo 启用SNMP攻击保护成功 rem echo 请添加EnableDeadGWDetect=0x0 ) ::检查注册表中是否启用了 ICMP 攻击保护,如果未启用则修改注册表并显示成功提示。 ::启用ICMP攻击保护 set EnableICMPRedirect=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters') do ( if "%%i"=="EnableICMPRedirect" if "%%k"=="0x0" set EnableICMPRedirect=True ) if %EnableICMPRedirect%==False ( REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v EnableICMPRedirect /t REG_DWORD /d 0 echo 启用ICMP攻击保护成功 rem echo 请添加EnableICMPRedirect=0x0 ) ::检查注册表中是否启用了 SYN 攻击保护,如果未启用则修改注册表并显示成功提示。 ::启用SYN攻击保护 set SynAttackProtect=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters') do ( if "%%i"=="SynAttackProtect" if "%%k"=="0x2" set SynAttackProtect=True ) if %SynAttackProtect%==False ( REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v SynAttackProtect /t REG_DWORD /d 2 REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v TcpMaxPortsExhausted /t REG_DWORD /d 5 REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v TcpMaxHalfOpen /t REG_DWORD /d 500 REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v TcpMaxHalfOpenRetried /t REG_DWORD /d 400 ) ::检查注册表中是否禁用了 IP 源路由,如果未禁用则修改注册表并显示成功提示。 ::禁用IP源路由 set DisableIPSourceRouting=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters') do ( if "%%i"=="DisableIPSourceRouting" if "%%k"=="0x1" set DisableIPSourceRouting=True ) if %DisableIPSourceRouting%==False ( REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v DisableIPSourceRouting /t REG_DWORD /d 1 echo 禁用IP源路由成功 rem echo 请添加DisableIPSourceRouting=0x1 ) ::检查注册表中是否启用了碎片攻击保护,如果未启用则修改注册表并显示成功提示。 ::启用碎片攻击保护 set EnablePMTUDiscovery=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters') do ( if "%%i"=="EnablePMTUDiscovery" if "%%k"=="0x0" set EnablePMTUDiscovery=True ) if %EnablePMTUDiscovery%==False ( REG ADD HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters /f /v EnablePMTUDiscovery /t REG_DWORD /d 0 echo 启用碎片攻击保护成功 rem echo 请添加EnablePMTUDiscovery=0x0 ) ::检查远程桌面服务端口是否为默认端口 3389,如果是则提示管理员修改。 ::远程桌面服务端口管理 set tcp_PortNumber=False set rdp-tcp_PortNumber=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal" "Server\Wds\rdpwd\Tds\tcp') do ( if "%%i"=="PortNumber" if "%%k"=="0xd3d" set tcp_PortNumber=True ) for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal" "Server\WinStations\RDP-Tcp') do ( if "%%i"=="PortNumber" if "%%k"=="0xd3d" set rdp-tcp_PortNumber=True ) if %tcp_PortNumber%==True if %rdp-tcp_PortNumber%==True ( echo 请修改远程桌面端口不为默认端口3389 ) ::检查是否禁止显示上次登录用户名,如果未禁止则修改注册表并显示成功提示。 ::终端服务登录管理 set DontDisplayLastUserName=False for /f "skip=2 tokens=1-3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon') do ( if "%%i"=="DontDisplayLastUserName" if "%%k"=="0x1" set DontDisplayLastUserName=True ) if %DontDisplayLastUserName% == False ( REG ADD HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows" "NT\CurrentVersion\Winlogon /f /v DontDisplayLastUserName /t REG_DWORD /d 1 rem echo 请禁止显示上次登录名 DontDisplayLastUserName=0x1 ) ::检查注册表中是否禁止了 Windows 自动登录,如果未禁止则修改注册表并显示成功提示。 ::禁止windows自动登录 set AutoAdminLogon=False for /f "skip=2 tokens=1,3" %%i in ('REG QUERY HKEY_LOCAL_MACHINE\Software\Microsoft\Windows" "NT\CurrentVersion\Winlogon\ /v AutoAdminLogon') do ( if "%%j"=="0" set AutoAdminLogon=True ) if %AutoAdminLogon%==False ( REG ADD HKEY_LOCAL_MACHINE\Software\Microsoft\Windows" "NT\CurrentVersion\Winlogon\ /f /v AutoAdminLogon /t REG_SZ /d 0 echo 禁止windows自动登录成功 rem echo 请添加EnableDeadGWDetect=0 ) ::操作系统补丁更新 ::net start wuauserv echo 配置完成 pause ```
上一篇:
Linux基线
下一篇: 无
导航窗格