3.1 Windows主机安全
虽然越来越多的互联网公司选择Linux操作系统,但是用Windows作为服务器操作系统提供服务的公司也不在少数,本节介绍Windows主机安全的相关内容,包括Windows主机补丁、补丁管理工具Windows Server Update Services、加固建议等,最后回顾一下笔者认为比较经典的Windows漏洞。
3.1.1 Windows主机补丁
几乎所有使用Windows的用户都知道需要打补丁,因为补丁对于Windows Server来说极为重要,比如著名的MS-08067、MS12-20、CVE-2019-0708等漏洞,对服务器、普通系统都有着极大威胁。微软每个月的第二个星期会定期发布系统更新补丁,除此之外,微软还会根据具体情况不定期发布紧急补丁。
查看Windows补丁有两种办法。
方法1:单击“开始→控制面板→Windows Update→查看更新历史记录”(见图3-1),可以查看补丁更新情况。
方法2:可以使用命令systeminfo查看补丁安装情况,如下所示。
图3-1 Windows Update
给单台Windows机器打补丁不是很难,此处就不再赘述。但是在一般的企业中,都有几十台甚至上百台Windows服务器,这就需要有能批量打补丁的工具。
3.1.2 补丁管理工具WSUS
WSUS(Windows Server Update Service)就是微软提供的补丁管理工具,WSUS支持微软公司全部产品的更新,包括Office、SQL Server、MSDE和Exchange Server等内容。通过WSUS这个内部网络中的Windows升级服务,所有Windows更新都集中下载到内部网的WSUS服务器中,而网络中的客户机通过WSUS服务器来得到更新。这在很大程度上节省了网络资源,避免了外部网络流量的浪费,并且提高了内部网络中计算机更新的效率。关于安装WSUS服务,在网上已经有很多资料可供查找,不再详述,这里主要说明两点:
1)安装WSUS的服务器需要有足够大的硬盘,保证可以下载所有的补丁,避免磁盘空间不够的情况发生。
2)客户端可以通过修改注册表或组策略两种方式将更新服务指向WSUS服务器。
1.修改注册表方式
修改注册表的方法是,设置如下两个表键:
·HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate\AU(自动更新功能相关配置)
·HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate(WSUS环境的相关配置)
并设置相应键值,例如:
·AUOptions:32位DWORD值,配置自动更新策略。
·WUServer:字符串值,设置WSUS服务器地址。
·ElevateNonAdmins:32位DWORD值,设置是否允许普通用户审批更新等。
2.组策略方式
如果是在域环境下,更建议使用组策略方式进行控制,方法如下:
1)单击“开始→管理工具→组策略管理”,在Default Domain Policy中设置全域计算机的自动更新策略,如图3-2所示。
图3-2 组策略
2)单击“计算机配置→策略→管理模板→Windows组件→Windows Update→配置自动更新”,如图3-3所示。
图3-3 配置自动更新
根据实际情况进行配置,这里需要说明一点,即在更新服务位置处,填写http://WSUS服务器IP,或http://WSUS服务器的名字(必须可解析),如图3-4所示。
图3-4 配置自动更新服务器
对于配有基于域的组策略对象的客户端计算机,组策略将花费大约20分钟才能将新的策略设置应用于客户端计算机。默认情况下,组策略会在后台每隔90分钟更新一次,并将时间做0~30分钟的随机调整。如果希望更快地更新组策略,可在客户端计算机上打开“命令提示符”窗口,并输入gpupdate/force强制客户端进行组策略更新。配置成功后,即可在WSUS服务器上看到客户端信息,如图3-5所示。
图3-5 在WSUS服务器上看到客户端信息
3.1.3 Windows系统加固建议
笔者认为,一个操作系统只要补丁更新及时,除非有0day漏洞,否则不会出现太大的安全问题,多数问题往往是上层的应用服务配置不当影响到操作系统本身。不过还是需要对操作系统进行一定的调整,关闭一些不必要的账号与服务,使其可以减少安全隐患,或能在出现安全问题的时候更加方便地进行排查。以下仅以Windows 2008为例,介绍如何对系统进行安全配置及加固。
1.账号检查
检查账户与账户组,确定管理员组内账户均为正常账户,无无用账户或共用账户,创建的账户应符合最小要求原则。
2.禁用来宾账户
要确定来宾账户为已禁用状态。
3.密码及复杂度相关设置
在组策略中设置密码策略(见图3-6):
·计算机配置\Windows设置\安全设置\账户策略\密码策略\密码必须符合复杂性要求:已启用。
·计算机配置\Windows设置\安全设置\账户策略\密码策略\密码长度最小值:8个字符。
·计算机配置\Windows设置\安全设置\账户策略\密码策略\密码最长使用期限:90天。
·计算机配置\Windows设置\安全设置\账户策略\密码策略\强制密码历史:3个记住的密码。
图3-6 密码策略
4.账户锁定策略
在组策略中,单击“计算机配置→Windows设置→安全设置→账户策略→账户锁定策略”,设定锁定时间为30分钟,锁定阈值5次无效登录(注意:这样设置虽然可以避免被暴力破解,但也有可能被恶意程序或在进行弱口令扫描时被DOS造成所有账号均被锁死),重置账户锁定计数器为30分钟之后,如图3-7所示。
图3-7 账户锁定策略
5.审核策略
在组策略中,“计算机配置\Windows设置\安全设置\本地策略\审核策略”中,除将审核策略更改为“成功”外,其余均设置为“成功,失败”,如图3-8所示。
图3-8 审核策略
6.日志大小
在“计算机管理\系统工具\事件查看器\Windows日志”中,将应用程序、安全、系统日志至少设置为32MB以上,设置当达到最大的日志尺寸时,按需要改写事件。
7.其他设置
其他设置包括补丁、远程超时设置、默认共享、文件权限指派、相关系统服务、匿名权限限制、防火墙、防病毒软件、SNMP默认口令等,可以根据实际需要进行配置。
3.1.4 Windows经典漏洞简介
任何一个系统都会有漏洞,Windows这种庞大的操作系统也不例外,因此,我们来简单回顾一下近年来Windows的一些经典漏洞。读者也要时刻关注这些漏洞是否存在于自己管理的系统内。
·空口令/弱口令:这虽然不是系统级的漏洞,却是十分常见而且杀伤力很大的人为漏洞,而123456这个“超级”密码,几乎是任何弱口令排行榜中位列榜首的密码。
·MS08-067:Windows Server服务RPC请求缓冲区溢出漏洞,该漏洞将会影响除Windows Server 2008 Core以外的所有Windows系统,包括Windows 2000/XP/Server 2003/Vista/Server 2008的各个版本,攻击者可能未经身份验证即可利用此漏洞运行任意代码。此漏洞可能用于进行蠕虫攻击。解决方案是为系统打KB958644补丁。
·MS12-020:Microsoft Windows远程桌面协议RDP远程代码执行漏洞,漏洞影响范围从Windows XP到Windows Server 2008 R2,攻击者向受影响的系统发送一系列特制的RDP数据包,则这些漏洞中较严重的漏洞可能允许远程执行代码,虽然市面上至今只有可以使系统蓝屏的POC(Proof of Concept)程序,并没有真正可以执行命令的EXP(exploit),但造成了DOS服务也会对业务造成不小的影响。
·MS17-010:Windows SMB远程代码执行漏洞,该漏洞的影响范围从Windows Vista到Windows Server 2016,几乎“通杀”所有Windows系统,著名的“永恒之蓝”便利用了此漏洞,此漏洞也为成为众多勒索软件标配的攻击对象。
·CVE-2019-0708:微软远程桌面服务远程代码执行漏洞(Remote Desktop Services Remote Code Execution Vulnerability),该漏洞类似于MS12-20,影响范围从Windows XP到Windows Server 2008 R2,但对Windows 10和Windows 8无影响,2019年9月7日释放了该漏洞代码。