一 、安全基线和漏洞的区别

1.1、相同点

同属于扫描类产品,同属主动安全范畴,主动安全核心是弱点管理,弱点有两类:

  • 漏洞:系统自身固有的安全问题,软硬件BUG
  • 配置缺陷:也叫暴露缺陷,一般是配置方面的错误并会被攻击者利用

1.2、不同点

  • 来源不同

​ 漏洞:是供应商的技术问题,用户是无法控制的,与生俱来的

​ 配置缺陷:配置是客户自身的管理问题,主要问题包括:账号、口令、授权、日志等方面内容

  • 检查方式不同

​ 漏洞:黑盒测试

​ 配置缺陷:白盒测试

二、账号和认证

2.1、账号检查

  • 测试内容:检查系统登录是否需要密码
  • 操作步骤:开机检测是否需要密码
  • 预期结果:不能存在空密码帐户

2.2、管理缺省账号

测试内容:对于管理员帐号,应使用非缺省Administrator帐户名称,即重命名管理员帐户,禁用guest(来宾)帐户。
操作步骤:
net localgroup administratros , 确认除Administrator之外还存在重命名管理员账户

net localgroup administrators

image-20240307093004516

如果没有user_01用户

net user user_01 1qaz@WSX /add && net localgroup administrators user_01 /add

image-20240307093114881

net user administrator /active:no
net user guest /active:no

禁用administrators与guest账户

2.3、口令检查

口令应该具有一定的复杂度,并要求定期更改

打开本地组策略编辑器

gpedit.msc

预期结果:最短密码长度 8个字符,启用本机组策略中密码必须符合复杂性要求的策略;“密码最长存留期”设置不大于“90天”

image-20240307093337835

image-20240307093457637

image-20240307093517689

2.4、登录处理功能

检查用户认证失败次数验证

账户锁定阀值”设置为小于或等于 6次,“账户锁定时间”设置为大于5分钟

image-20240307093810055

2.5、限制非管理员账号关闭计算机

进入“控制面板->管理工具->本地安全策略”,在“本地策略->用户权限分配”:进入“从远程系统强制关机”设置,只保留Administrators组。

image-20240307093909345

image-20240307093938830

image-20240307094052009

进入“控制面板 ->管理工具 ->本地安全策略”,在“本地策略 ->用户权限分配”:进入“关闭系统”设置,只保留 Administrtors 组。

image-20240307094153812

除Administrators组外用户均无关机权限

三、日志

3.1、日志记录

基本要求:应配置日志功能,对用户登录进行记录,记录内容包括用户登 录使用的账号,登录是否成功,登录时间,以及远程登录时, 用户使用的 IP 地址。

  • 测试内容:审核登录
  • 操作步骤:进入“控制面板->管理工具->本地安全策略”,在“本地策略->审核策略”中进入“审核登录事件”设置,勾选“成功”和“失败”。

image-20240307094248012

基本要求 测试内容 预期结果
审核对象访问 启用Windows系统的审核对象访问 “审核对象访问”设置为”成功” 和”失败”都要审核
审核目录服务器访问 启用组Windows系统的审核目录服务访问 “审核目录服务器访问”设置为”成功” 和”失败”都要审核
审核进程追踪 启用Windows系统的审核进程追踪 “审核进程追踪”设置为”失败”要审核
审核系统事件 启用Windows系统的审核系统事件 “审核特权使用”设置为”成功” 和”失败”都要审核
审核特权使用 启用Windows系统的审核特权使用 “审核系统事件”设置为”成功” 和”失败”都要审核

3.2、日志文件大小

eventvwr
  • 测试内容:设置日志文件大小至少为8192KB
  • 操作步骤:进入”控制面板->管理工具->事件查看器” ,在 “windows日志” 中:查看 “应用程序日志”、”系统日志”、 “安全日志” 属性中的日志大小,以及设置当达到最大的日志尺寸时的相应策略

image-20240307095242014

四、访问控制防范

4.1、共享文件夹权限设置

  • 测试内容:共享文件夹限制
  • 操作步骤:计算机管理(本地)->系统工具->共享文件夹->共享,查看每个自定义共享文件夹的共享权限,若其中包含“Everyone(任何人)”,则将其删除。

image-20240307095447033

4.2、远程桌面端口管理

  • 基本要求:修改远程桌面服务默认端口

  • 测试内容:远程桌面服务端口管理

  • 操作步骤:

  • 开始->运行->Regedit,查找注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\WinStations\RDP-TcpHKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\TerminalServer\Wds\rdpwd\Tds\tcp 找到“PortNumber”子项,默认值 00000D3D,是 3389 的十六 进制表示形式。切换到十进制,修改成除 3389 外的其他任何值,并保存新值,重新启动系统。

image-20240307100044240

4.3、远程访问策略检查

  • 基本要求:应禁止远程访问操作系统注册表路径和子路径,防止系统被入侵破坏
  • 测试内容:注册表远程管理
  • 操作步骤:开始->运行->输入“gpedit.msc”打开组策略编辑器,浏览到 路径“本地计算机策略->计算机配置->Windows 设置->安全设置->本地策略->安全选项”,在右边窗格中找到“网络访问: 可 远程访问的注册表路径和子路径”,配置为空。

image-20240307100338242

4.4、终端防护软件

  • 测试内容:恶意代码防范
  • 操作步骤:
  • 使用正版授权的计算机病毒防护软件,可安全有效地查杀各类计算机病毒,防范恶意代码执行,自动更新病毒特征库
  • 采购并安装正版授权计算机病毒防护软件

五、系统服务

关闭不必要的系统服务

  • 测试内容:系统服务管理
  • 操作步骤:
  • 进入“控制面板->管理工具->计算机管理”,进入“服务和应用程序”,查看所有服务,建议关闭以下服务:
    • Computer browser 浏览局域网计算机列表
    • Print Spooler 打印队列服务
    • Remote Registry 远程注册表操作
    • Routing and Remote Access 路由与远程访问
    • Shell Hardware Detection 为自动播放硬件事件提供通知
    • Error Reporting Service、错误报告服务
    • Telnet 远程管理
      TCP/IP NetBIOS Helper 允许客户端共享文件,打印机和登录到网络

六、系统更新

  • 基本要求:系统自动更新安全补丁
  • 测试内容:系统服务管理
  • 操作步骤:
  • 控制面板-Windows Update,启用 Windows Update
  • 设置 - windows更新,检查更新
  • 应安装关键和重要系统补丁,开启系统自动更新功能

七、排查脚本

windows下的基线检查就是基于注册表表项进行检查,如果windows组策略有些不存在于注册表中,就要用到组策略命令行工具secedit

  • inf脚本 security.inf
[Unicode]
Unicode=yes
[Event Audit]
AuditLogonEvents = 3
AuditPolicyChange = 3
AuditObjectAccess = 3
AuditDSAccess = 3
AuditPrivilegeUse = 3
AuditSystemEvents = 3
AuditAccountManage = 3
AuditProcessTracking = 2
[Registry Values]
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymous=4,1
MACHINE\System\CurrentControlSet\Control\Lsa\RestrictAnonymousSAM=4,1
MACHINE\Software\Microsoft\Windows\CurrentVersion\Policies\System\DontDisplayLastUserName=4,1
MACHINE\System\CurrentControlSet\Services\LanManServer\Parameters\EnableForcedLogOff=4,1
MACHINE\System\CurrentControlSet\Control\Session Manager\Memory Management\ClearPageFileAtShutdown=4,1
[System Access]
EnableGuestAccount = 0
NewAdministratorName = "Administrator"
MinimumPasswordLength = 8
PasswordComplexity = 1
PasswordHistorySize = 60
LockoutBadCount = 5
LockoutDuration = 30
[Privilege Rights]
SeRemoteShutdownPrivilege = *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
[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

::管理缺失账户
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攻击保护
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攻击保护
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攻击保护
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源路由
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
)

::远程桌面服务端口管理
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自动登录
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








使用方法:

将security.inf脚本和bat文件放在同一个文件夹内,使用管理员权限运行bat文件即可