-
-
[旧帖]
[求助]关于应用软件的代码安全分析技术
0.00雪花
-
发表于:
2009-11-3 16:24
1133
-
[旧帖] [求助]关于应用软件的代码安全分析技术
0.00雪花
目前收集到资料,对应用软件的代码安全分析,主要有以下几种技术,但对这几种技术我理解起来比较困难,因为我基本上不编程。各位大虾有没有研究?
特别是后三类。
---------------------------------------------------------------------
2.1词汇语法分析类工具
词汇语法分析类工具是安全测试工具中最简单的工具,通过程序的词法和语法分析,对源代码进行静态分析,通过模式匹配找出特定的函数中可能导致安全问题的缺陷。
词汇语法分析类工具使用简单、快速,易于实现,通常嵌入到程序编译器中,在软件开发的过程中发挥重要作用。但其局限性比较大,很难检测出比较复杂的安全问题,同时此类工具的误报率比较高。
2.2 约束分析类工具
约束分析类工具通常利用解析树产生的约束(也可以利用代码中添加注释),对源代码进行分析,检查出可能导致安全问题的缺陷。
相比于词汇语法类的分析工具,此类工具能够更好地分析函数的安全性,可以更全面地检查特定的一些安全漏洞,通过对解析树的分析,确定缺陷的位置。但因其对安全问题检查是根据约束完成的,所以检查缺陷范围比较有限。
2.3 扩展编译类工具
扩展编译类工具是通过程序员根据对安全规则的理解,把规则和注释写入到源程序中传播。同时对编译器进行扩展,并对编译后的程序进行分析。
扩展编译类的工具把特殊域合并到编译过程中,使应用的编写者不需要懂得内部的编译方式,减少了程序员对于编译的了解,可以进行系统级的规则检查;隐藏执行过程中不容易理解的规则;降低了误报率和测试的开销。但是这类工具不能检测多线程类的错误。
2.4 基于模型测试的工具
基于模型测试类工具一般是对程序构造出有限状态模型,再检查其是否存在违反特定安全规则的问题。
不同于前面工具的是,模型检查会为程序建模,检查的对象变成抽象化的模型。首先构建程序的有限状态模型,使用形式化方法表示需要检查的安全属性,设计分析算法检测模型中存在的缺陷。但是现存的模型检测工具一般针对有限状态模型进行分析,对于模型构建复杂的系统,测试增加了难度。模型的统一形式化表示也是这方面研究的重点。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课