在观看文章之前,各位小伙伴可以关注我的公众号,搜索 “等保不好做啊”,在下方菜单栏内找到“能力验证环境”,回复对应关键字即可免费获取2022能力验证作业指导书以及Linux(免费)、Windows、Mysql系统的VMware虚拟环境,配合文章复现食用更佳。
好,咱们废话不多说直接进入正题。
测评开始前,咱们先确定该服务器的重要程度,以及账号口令
一、 身份鉴别
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
第一条条款中它并没有很明显的坑留着,我们只需要按照测评流程来即可,查看
控制面板-管理工具-本地安全策略-帐户策略-密码策略
接着对照关键资产相应的口令安全策略,发现密码长度最小值、密码最长使用期限这两个参数不满足要求
第一题还是比较简单的,没有什么疑义
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
我们先看第一点,登录失败处理功能,控制面板-管理工具-本地安全策略-帐户策略-账户锁定策略
接着去对比安全策略中关键资产要求的内容,发现要求锁定时间为30分钟,所以违反了安全策略要求
接着我们再看操作超时自动退出功能,控制面板 →所有控制面板项 →管理工具 →本地安全策略 →本地策略 →安全选项 →交互式登录: 计算机不活动限制
在这里配置对应的时间后,会直接反馈到屏幕保护程序上,即使未勾选“再恢复时显示登录屏幕”,到时间后也会要求重新输入口令进行身份鉴别。
同时安全策略要求关键资产配置超时登录机制时间为15分钟,所以违反安全策略
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
这题就有点意思了,和我们以往的查看方式不相同,我们以往可能查看的都是这里,运行gpedit.msc→Windows组件→远程桌面服务→远程桌面会话主机→安全一看,均未配置,可能就直接下了不符合的结论了。
这边呢,我也是根据发的答案后面测试才发现端倪,我们使用sslscan 工具对目标3389端口采用的协议进行探测,命令:sslscan.exe ip:端口
发现Windows Server 2008 默认仅支持TLS 1.0
而Windows Server 2016,默认情况下Windows Server 2016是支持TLS1.0、TLS1.1和TLS1.2,需要修改注册表强制使用TLS1.2 进行通信,我们使用 sslscan.exe 172.17.200.45:3389
发现TLS1.1、1.2、1.3均为enabled。并且配置这里 gpedit.msc→Windows组件→远程桌面服务→远程桌面会话主机→安全 内容,探测结果也未发生改变,只能另寻良药。网上资料也比较杂,后续发现一个在注册表的配置证实了可以将目标设置为强制使用TLS1.2。在 Windows Server 2016 上禁用TLS 1.0和TLS 1.1可以通过修改注册表来实现。请按照以下步骤进行操作:
- 打开“注册表编辑器”。可以通过在开始菜单中搜索“注册表编辑器”并打开它。
- 注册表编辑器窗口中,依次展开以下路径:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols
- 在“协议”文件夹下,查找名为“TLS 1.0”和“TLS 1.1”的文件夹。如果找不到这些文件夹,则需要手动创建它们。
- 在“TLS 1.0”和“TLS 1.1”文件夹下,分别创建名为“Client”和“Server”的文件夹。
- 在“Client”和“Server”文件夹下,创建名为“DisabledByDefault”的DWORD值,并将数值数据设置为1。
- 在“Client”和“Server”文件夹下,创建名为“Enabled”的DWORD值,并将数值数据设置为0。
配置好后关闭重启,再用SSL 工具进行探测,发现已经成功仅允许TLS1.2协议进行远程通信了