首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室软件测试频道
Google
首页 资讯动态 测试技术 测试工具 行业软件测试 测试管理 测试下载 经验分享 软件质量 其他技术 RSS订阅 博客 论坛
您现在的位置: 中国IT实验室 >> 软件测试 >> 测试技术 >> 安全测试 >> 正文

如何评测一个软件系统到底有多安全

  常常被问到这么一个问题:如何评测一个软件系统到底有多安全
 
  一个回答是:我们不是有专门的软件安全评测标准和机构吗?没错,我们有专门的国际标准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测试),大家可以借鉴一下。
 
【责编:michael】

中国IT教育

相关产品和培训
文章评论
 专题推荐

 ·建立可全面监控Squid代理服务器
 ·华为认证题库、模拟器下载专题
 ·嵌入式操作系统Linux资料下载(A)
 ·JAVA的应用编程接口——JAVA API详解…
 ·Linux Shell学习技术专题[上]…
 ·windows Server 2008专区…
 ·WEB开发ASP.NET和PHP、JSP究竟学哪个
 ·五步带你入门XML
 ·零距离接触OCP_Oracle认证体系全攻略
 ·揭秘:网络工程师职业发展路线图
 最近更新
 博客论点
 频道精选
 软件测试频道导航