安全测试和源代码审计

出自sebug security vulnerability(SSV) DB
跳转到: 导航, 搜索

从SDL的角度来看,整个安全的过程包括:安全需求分析,安全设计,安全编程和安全测试。


安全编码阶段是靠代码审计来完成的,安全测试则是检验安全是否实现的手段,代码审计实现的是规约开发者良好的开发习惯,减少因开发者不良习惯导致的安全问题的可能,而并非发现和定性的安全问题,并最终保证安全。其实这部分是依靠安全测试来完成的,说简单点,从功能角度上,代码审计类同于开发中的编码规范的作用,安全测试类同于开发中的测试的作用。双方并非取代的功能。


从SDL实践上看,安全做的越早效果越好(但开发模式改动的成本也相对比较大),安全测试作为保证安全的最低低线,是不可取代的,即使是主推SDL 的微软,内部的安全测试团队的工作人数与量也是远远大于代码审计的。好的代码审计,也需要安全测试的支撑,没有安全测试的保障,代码审计则作用很低,也难以被接受。但从开发引入安全基因的操作和接受程度来看,反倒是一个逆向的过程:从安全测试到代码审计再到安全设计与需求分析,因为一个企业实施SDL,需要开发团队具备很高的安全能力,改造自己的开发模式,而对于国内开发模式尚且达不到软件工程标准的大多数开发企业和用户,希望他们一下到位实施SDL,无疑增加了很多风险,而且不可达。


从国内实际情况来看,现在很多安全公司都在行业用户中推代码审计,但实际效果很差,原因正在这里,因为还没有达到这个阶段,而又不加强企业的安全测试环节,很多用户把代码审计理解为帮助用户找最需要解决的定性的安全问题的工具(这部分工作是安全测试来完成的,而目前用户的实际安全度和能力也只能先建设安全测试这个层面),而推动代码审计的企业为了推动自己的产品和服务也有意无意把用户往这方面诱导,最后实施时却发现,拿着几千页的报告需要大量人工分析定性安全问题的情况,使用户觉得根本难以解决安全问题,其实这个阶段,用户迫切需要的是安全测试,尽量找出定性的安全问题加以解决,还不到从编码层上去规约开发者良好的开发习惯,这些需要用户的安全度达到更高级别后才是用户关注解决的事情,而且既是开发者拥有良好的开发习惯,安全依然依靠安全测试来复核确认,毕竟人是可能出差错的,而想用代码审计来取代安全测试,其成本是非常高而且效果也不咋样。


忽略了安全测试环节的建设,代码审计只能是空中楼阁,难以真正去帮助用户改进自身的安全过程。即使是用户的程度达到了很高级别,安全测试依然是产品最终确认安全的保障手段。


所以国家安全政策的主管单位,应该认识到,安全测试在构造我国自主可控的信息安全体系中的重要位置,支持企业研究和发展相关的技术,打好基础,只有安全测试环节做好了,向前继续推动代码审计,安全编程,安全设计,把整个SDL贯穿起来,才有可能。


http://hi.baidu.com/fs_fx/blog/item/23efe932726ed9f51a4cffad.html
个人工具
名字空间
变换
导航
工具箱