Office 2010带给我们的五个安全教训

然而,Office 2010的开发团队并没有这样做,他们给出了一套新的安全战略,通过分析过去的漏洞来了解漏洞是如何被利用的,还要如何做才能防止今后出现类似的情况。Office 2010基于五个基本准则建立了新的多层次的安全模型,这是任何一个开发者都应该记住的:

1.在执行之前验证所有用户输入

任何一个好的程序员都知道输入验证是关键的步骤之一,未经验证的文本框可能会导致缓冲区溢出、代码注入攻击和其他软件缺陷。但往往程序员只考虑到验证表单字段、文本输入框和其他用户界面元素,而忽略了对文档进行验证。

2.查找随机缺陷和不典型使用案例

精心设计的Use cases在软件测试时至关重要,但即使是最好的质量工程师也不能想到一切,错误可能来自意想不到的地方,有时一些字节也会触发这些bug。

Office团队使用一种叫做“模糊文件(file fuzzing)”的技术来查找意外的使用情况。例如通过交换参数和改变字段内容把文件模糊化处理,或者把随机垃圾数据引入文件中。

理想情况下Office应用应该能够顺利处理文件。但在最坏的情况打开一个模糊文件会导致应用崩溃,这时可能会检测出安全漏洞。据微软说Office 2010处理模糊文件的能力超过Office 2007十倍。

3.不要相信第三方库

和其他应用一样,现实中的Office文档不仅仅包含简单的ASCII数据,它们可能还包含着图片、音频、视频等等从其他应用嵌入的数据。经过多年对Office 2007的测试,微软的工程师得出了出人意料的结论:他们发现严重的安全漏洞大多不是Office代码本身的错,而是那些用来渲染JPEG、GIF和其他图形的核心第三方代码库出现了问题。

因此在Office 2010中微软转向了自己的图像处理库Windows Imaging Component。对于其他应用的开发者,这个教训再明白不过:绝不要认为广泛使用的第三方类库是完美无缺的。

4.不要把安全措施推给用户

非常多的桌面应用喜欢使用对话框式的安全模型,在碰到问题时询问用户:“你的操作可能带来安全风险,是否要继续进行(Y/N)?”这种做法不仅懒惰而且危险,因为在缺乏任何有意义的指导下,普通用户都会选择“Yes”,即使是更详细的警告信息也不会有什么帮助。

Office 2010采取了积极主动的做法。文件验证过程会在后台进行,而不是继续使用对话框与用户对抗,在用户交互之前先进行基础并且理性的后台决策,增强了漏洞管理。

5.选择降一级的用户体验,而不是全盘否定

从前的Office遇到安全风险时用户真正只有两个选择:无视威胁照常打开文档;或者再也不打开文档,这两个都不是理想的选择。

相关推荐