想像下这个场景:你运行着Exchange、SQL Server、Active Directory和其它类似产品的关键Windows服务器完全暴露在运行Metasploit的内部人员面前,而恶意软件为外来攻击者提供了远程访问。
你大叫道:"不,这不可能在我的环境中发生,因为我一直都有给Windows服务器打补丁。"可是,事情没有这么绝对。
除了运行在工作站的固态完全磁盘加密和智能手机上的零控制外,Windows服务器上的缺少的补丁也是可预测的漏洞。由于某种原因,从Server 2008 R2一直往回到Windows NT的基于Windows的服务器都没有恰当地得到修补。追溯到2001年,在我的内部网络漏洞测试中,Windows补丁(不是服务包)可能在任意给定数的服务器中漏掉。这不只是Windows服务器中的问题。工作站几乎总是在更新。
首先,我会怀疑问题很常见,"我们不能修补服务器,因为如果我们这么做了,厂商可能就不支持该应用了。"但是我进一步深入就发现,通过Windows Server Update Services(WSUS)和其它第三方系统,这些Windows服务器都在修补范围内。也许偶然漏掉的补丁与网络管理员卸载某些补丁来解决问题有关?也许补丁管理过程中有些事情出错了,比如责任方的疏忽?
因为某些原因,WSUS和第三方补丁管理工具都不会报告这些遗漏补丁。似乎是补丁越老,它被忽视和暴光的机会越大。你会希望在这里或那里找到一个遗漏补丁,但这在很多项目中是一个持续性问题。
不管潜在的起因是什么,你网络中现在在Windows服务器上遗漏补丁数量的比率很大,明白这一点很重要,这些补丁都在等着流氓软件和内部盗窃的利用。
解决方法是什么?最好的做法是返回并确保所有的Windows服务器补丁都显示安装了。接着,信任但要查证。你可以通过运行任意数的漏洞扫描器来完成,如运行Qualys、Guard、NeXpose、Retina或LanGuard来确定忽视了什么。即使你只是使用扫描器的试用版或免费版,你将有可能看到我所谈到的东西。
你无须认证就可以运行这个漏洞扫描器,也许从进入你网络的人的角度,但并不通过Windows域或任何特定Windows主机的认证。如果扫描器足够好,它只会找到你需要的东西。最近,我在这方面更进一步,我用常规的域用户凭证运行认证的扫描。这类扫描会找到相同或者可能更多的遗漏补丁并提供在你网络中可以看到和利用事物的更精准代表。
关键的事情是要明白你可能得不到Windows服务器的精确补丁信息。不好的信息等于不必要的风险。假设每件事情都很好,这可能产生安全上严重的错误感觉,尤其是考虑到内部人员运用Metasploit攻击你有多容易时。如果你没有执行周期性的内部漏洞扫描,那么现在就是开始的绝佳时机。