首页  ·  知识 ·  测试
如何评测软件系统的安全性
godwar  http://www.cnblogs.com/godwar/  综合  编辑:dezai  图片来源:网络
我们不是有专门的软件安全评测标准和机构吗?没错,我们有专门的国际标准Common Criteria, ISO/IEC 15408,国家标准GB 18336。有专门的评测中心,如Common Cri
我们不是有专门的软件安全评测标准和机构吗?没错,我们有专门的国际标准Common Criteria, ISO/IEC 15408,国家标准GB 18336。有专门的评测中心,如Common Criteria Lab,和中国信息安全产品测评认证中心。
 
似乎我们只要按照标准提供相应文档,把软件交给评测机构,不就行了?但是,事实上真的这么简单吗?举个例子,微软的Windows 2000系统得到了Common Criteria的EAL4+认证,但是还是有这么多软件安全补丁发布。问题到底出在什么地方?
 
我们先看一下Common Criteria是如何评估软件系统的安全的。首先要确定产品对应的Protection Profile (PP)。一个PP定义了一类产品的安全特性模板。例如数据库的PP,防火墙的PP等等。然后,根据PP再提出具体的安全功能需求(security functional requirement),如用户的身份认证是如何实现的。接下来,确定产品的安全对象(secure target),以及它是如何满足对应的安全功能需求的。
 
也就是说,Common Criteria主要集中在大方向上的软件设计上的安全。但是,对于具体的编码实现,和部署则没有涉及。而SD3,也就是安全设计(secure designed),安全开发(secure development)和安全部署(secure deployment)的三个环节,哪个出问题都不行。
 
另一方面,最终的用户关心的核心问题就是“这个软件安全吗”。一个由于设计导致的安全漏洞,和一个由于实现导致的安全漏洞,对用户的最终影响没有区别。Common Criteria在针对软件实现和部署上的评估上的不足,可以是说是CC面对的最大挑战。另外,Common Criteria要求的文档之多,评估的周期之长,也极大影响了它在评估面向企业和个人用户的软件安全性的有效程度。例如,一个产品的评估周期有时长达2-3年:等评测结果出来,老产品也要被新产品替代了。
评估(并提高)一个软件系统的安全程度,需要从设计,实现和部署三个环节同时着手。目前,微软的安全软件开发周期(SDL)提供了一个基于微软开发模型的参考解决方案。它并不是一个类似CC的评估测试标准。但是在如何有效的评估软件实现和部署环节的安全性上(例如FUZZ测试),大家可以借鉴一下。
本文作者:godwar 来源:http://www.cnblogs.com/godwar/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读