① 漏洞检测的几种方法
漏洞检测可以分为对已知漏洞的检测和对未知漏洞的检测。
已知漏洞的检测主要是通过安全扫描技术,检测系统是否存在已公布的安全漏洞;而未知漏洞检测的目的在于发现软件系统中可能存在但尚未发现的漏洞。
现有的未知漏洞检测技术有源代码扫描、反汇编扫描、环境错误注入等。
1、源代码扫描
源代码扫描主要针对开放源代码的程序,通过检查程序中不符合安全规则的文件结构、命名规则、函数、堆栈指针等,进而发现程序中可能隐含的安全缺陷。
2、反汇编扫描
反汇编扫描对于不公开源代码的程序来说往往是最有效的发现安全漏洞的办法。分析反汇编代码需要有丰富的经验,也可以使用辅助工具来帮助简化这个过程,但不可能有一种完全自动的工具来完成这个过程。
3、环境错误注入
由程序执行是一个动态过程这个特点,不难看出静态的代码扫描是不完备的。环境错误注入是一种比较成熟的软件测试方法,这种方法在协议安全测试等领域中都已经得到了广泛的应用。
错误注入,即在软件运行的环境中故意注入人为的错误,并验证反应——这是验证计算机和软件系统的容错性、可靠性的一种有效方法。错误注入方法就是通过选择一个适当的错误模型试图触发程序中包含的安全漏洞。