01软件代码安全发展历程
年
美国信息技术咨询委员会关于信息安全的年度报告提出政府和军队的软件产品需要代码安全检测。
年
CWE(CommonWeaknessEnumeration)成立。
年
美国加州大选软件由于未通过代码安全审查而被取消。
美国食品药品管理局器械和辐射健康中心开始使用代码检测工具对发生问题和事故的医疗设备进行检测。
年
Gartner提出DevSecOps(安全开发周期)概念。
年
GB/T和C/C++/Java语言源代码漏洞测试规范制定并发布。
WuKong软件代码安全检测修复系统开始研发。
年
YD/T-联网软件源代码安全审计规范发布实施。
等保2.0发布实施。
02漏洞扫描工具分类
SAST、SCA、IAST、DAST、RASP五种工具相结合,可形成一个静动结合,黑白结合的较完整漏洞解决方案。静态检测更多从代码本身去发现漏洞,动态测试则从客户应用的角度,分析哪些漏洞更容易被利用。静态测试在开发早期进行部署,对代码的检测覆盖率较高,不产生脏数据。
03静态检测技术发展历史
SAST技术的发展共经历了如下4个阶段:数据流和模式匹配静态检测技术;基于符号执行的静态检测技术;基于抽象解释的静态检测技术;基于值依赖的静态检测技术。国内静态代码分析工具虽然起步研发较晚,也因此使用的技术相对而言更先进。
04静态测试类工具对比常用的技术指标
以下列出一些静态测试类工具对比常用的关键性技术指标,大家可以根据自身需求进行评价及选择。
1、支持检测语言
可支持更多种语言(C\C++、Java、Android、PHP、JS、Python、HTML、C#、Object-C等)以及混合语言检测。
2、加载被检测代码方式
如本地Zip包、Git/SVN下载等。
3、编译器支持
对编译性语言可支持多种编译。
4、框架支持
如Spring、Hibernate、Mybatis等十四种内置框架。
5、支持标准
包括国内标准、国外标准、以及行业标准等。
6、检测标准支持
如可支持安全编码规范、运行时缺陷、安全漏洞、个人隐私检测等。
7、实现定制化功能
可根据要求进行定执行开发。
8、黑白名单支持
通过配置文件,实现黑白名单。
9、是否支持多种IDE插件、构建工具集成、与CI(持续集成平台集成)、扩展接口等。
10、检测效率、误报率、漏报率。