安全专家们创造了“攻击平面”这个词来形容指定电脑可能受到恶意实体攻击的方法数量。攻击实体既可能是恶意软件,也可能是一个恶意用户。你可以这样理解它:攻击平面越大,电脑受攻击的可能就越大;攻击平面越小,攻击者能够获得的立足点也就越少。
微软在上几个版本的产品中一直在强调,要减少Windows Server的攻击平面。它们的想法是通过默认就能减小攻击平面,从而让新安装的Windows Server也能轻松地避免攻击。但是,减少攻击平面的概念适用于所有版本的Windows产品,包括桌面和服务器等版本。
微软关于减少攻击平面的工作主要集中于改进应用在Windows上的工程设计,如操作系统的默认设置等。但是第三方的应用程序(从不会造成损害的独立程序到相对复杂的、添加了设备驱动的程序)也可能会增加Windows的攻击平面。有时用户或者程序员并没有意识到这一点,尤其是在应用程序改变了系统功能的底层元素时,如防火墙或杀毒软件。
直到最近,程序员们也仍然没有一个真正实用的方法可以检查他们的程序是否会增加系统的攻击平面,往往只有等到被攻击后问题才会暴露。然而,在今年早些时候的Black Hat技术安全会议上,微软发布了一款beta版工具。该工具让IT人士(不仅只是程序员)可以确定某一指定应用程序是否会显著增加Windows Server的整体攻击平面。这个工具就是攻击平面分析器(Attack Surface Analyzer),有32位和64位版可以使用,目前还处于测试阶段,正在征求用户的反馈意见。
攻击平面分析器的工作方式是在Windows系统中进行两次扫描。第一次是基线扫描,即在未安装问题程序的系统上进行扫描。当然为了完成基线扫描,你需要安装相应的支持库(.NET框架或SQL服务器)。该扫描涵盖了系统内可能会影响攻击平面的方方面面,包括注册表项、安全标识符(SID)、开放端口等。扫描结果保存在当前用户目录的一个.CAB文件中,文件名由当前的主机名和扫描的时间日期自动产生。
图1:攻击平面分析器的基线扫描
第二次扫描应在你安装了受测程序之后再进行。在攻击平面分析器中,这被称为“非产品扫描(aproduct scan)”,受测程序造成的任何改变都会被详细地记录下来。扫描结果保存在一份HTML格式的报告中,描述了扫描过程中发现的明显的安全问题,以及可能的攻击平面的详细信息。请注意,一个给定的攻击平面并不一定总是危险的,但如果在扫描中被察觉,那么就值得引起注意了。
微软撰写了一篇关于衡量攻击平面的文章,对Windows各版本已暴露的攻击平面做了比较。文中提出的一些概念指导了攻击平面分析器的诞生——具体地,就是以受攻击的机会大小作为衡量指标,考虑什么会最先、最快地受到攻击。
图2:攻击平面分析器扫描已安装程序的漏洞
【编辑推荐】