然而,Office 2010的开发团队并没有这样做,他们给出了一套新的安全战略,通过分析过去的漏洞来了解漏洞是如何被利用的,还要如何做才能防止今后出现类似的情况。Office 2010基于五个基本准则建立了新的多层次的安全模型,这是任何一个开发者都应该记住的:
1.在执行之前验证所有用户输入
任何一个好的程序员都知道输入验证是关键的步骤之一,未经验证的文本框可能会导致缓冲区溢出、代码注入攻击和其他软件缺陷。但往往程序员只考虑到验证表单字段、文本输入框和其他用户界面元素,而忽略了对文档进行验证。
Office 2010通过使用文档模式库来预先验证文档,避免了不必要的安全问题。新的Office将能够识别特定的文件类型,在开始解释代码之前实施积极的安全措施,比如在发现要打开的文档符合库中已知的宏病毒的特点时会提早禁用宏功能。编者按:宏病毒、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采取了积极主动的做法。文件验证过程会在后台进行,而不是继续使用对话框与用户对抗,在用户交互之前先进行基础并且理性的后台决策,增强了漏洞管理。
本文来源:51cto 作者:佚名