【51CTO.com快译自12月7日外电头条】虽然仍然是测试版,但Office 2010不断的给我惊喜。除了用户界面更加适合于现实世界中的数据之外,微软在安全性上也做出了另一个重大改进。最新版的Office结构复杂,功能丰富,也成为了恶意软件和其他安全隐患的目标。由于巨大和多样化的用户群,微软必须把安全考虑放在首位,因此即使是牺牲一些现有功能来换取安全性也无可厚非。今年9月份曾经有一个Office的0day,造成了一股挂马风。
然而,Office 2010的开发团队并没有这样做,他们给出了一套新的安全战略,通过分析过去的漏洞来了解漏洞是如何被利用的,还要如何做才能防止今后出现类似的情况。Office 2010基于五个基本准则建立了新的多层次的安全模型,这是任何一个开发者都应该记住的:
1.在执行之前验证所有用户输入
任何一个好的程序员都知道输入验证是关键的步骤之一,未经验证的文本框可能会导致缓冲区溢出、代码注入攻击和其他软件缺陷。但往往程序员只考虑到验证表单字段、文本输入框和其他用户界面元素,而忽略了对文档进行验证。
Office 2010通过使用文档模式库来预先验证文档,避免了不必要的安全问题。新的Office将能够识别特定的文件类型,在开始解释代码之前实施积极的安全措施,比如在发现要打开的文档符合库中已知的宏病毒的特点时会提早禁用宏功能。51CTO.com编者按:宏病毒、CIH病毒、蠕虫病毒和木马病毒四大类曾经是计算机用户的噩梦,但到目前为止,除了CIH之外,另外三个依然在威胁网民的计算机安全。
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遇到安全风险时用户真正只有两个选择:无视威胁照常打开文档;或者再也不打开文档,这两个都不是理想的选择。
Office 2010试图通过为用户提供一种中立的立场。例如,如果Word 2010碰到文档中包含有风险的宏,它会在打开文件时停用宏。用户仍然会得到一个警告消息,但无论如何文档被打开了,这时文本是可见的,但想要使用宏需要额外的确认步骤。
这种“一半满足用户”的哲学是新Office的安全模型中最重要的理念之一,在用户和软件的拉锯战之间建立一个折中的局面。通过新的渐进的多层次安全模式,Office 2010试着与用户建立起安全性的伙伴关系,这个教训任何应用开发者都应该牢记在心。——51CTO.com编者按:在文末顺便再多说一句,虽然大部分人都认为Office没有OpenOffice之类的免费产品安全,但是法国军方却认为OpenOffice不比Office更安全,而持这种意见的人还有很多。
原文:Five security lessons learned from Office 2010 作者:Neil McAllister
【51CTO.COM 独家翻译,转载请注明出处及作者!】
【编辑推荐】