一般情况下,安全扫描器具备三项功能(néng),下面上海观初带大家一起看看吧:
● 发现Internet上的一个网络或者一台主机;
● 一旦发现一台主机,能(néng)发现其上所运行的服務(wù)类型;
● 通过对这些服務(wù)的测试,可(kě)以发现存在的已知漏洞,并给出修补建议。
源代码扫描
源代码扫描主要针对开放源代码的程序,通过检查程序中不符合安全规则的文(wén)件结构、命名规则、函数、堆栈指针等,进而发现程序中可(kě)能(néng)隐含的安全缺陷。这种漏洞分(fēn)析技术需要熟练掌握编程语言,并预先定义出不安全代码的审查规则,通过表达式匹配的方法检查源程序代码。
由于程序运行时是动态变化的,如果不考虑函数调用(yòng)的参数和调用(yòng)环境,不对源代码进行词法分(fēn)析和语法分(fēn)析,就没有(yǒu)办法准确地把握程序的语义,因此这种方法不能(néng)发现程序动态运行过程中的安全漏洞。
反汇编扫描
反汇编扫描对于不公开源代码的程序来说往往是很(hěn)有(yǒu)效的发现安全漏洞的办法。分(fēn)析反汇编代码需要有(yǒu)丰富的经验,也可(kě)以使用(yòng)辅助工具来帮助简化这个过程,但不可(kě)能(néng)有(yǒu)一种完全自动的工具来完成这个过程。例如,利用(yòng)一种的反汇编程序IDA(www.datarescue.com)就可(kě)以得到目标程序的汇编脚本语言,再对汇编出来的脚本语言进行扫描,进而识别一些可(kě)疑的汇编代码序列。
通过反汇编来寻找系统漏洞的好处是,从理(lǐ)论上讲,不论多(duō)么复杂的问题总是可(kě)以通过反汇编来解决。它的缺点也是显然的,这种方法费时费力,对人员的技术水平要求很(hěn)高,同样不能(néng)检测到程序动态运行过程中产生的安全漏洞。
环境错误注入
由程序执行是一个动态过程这个特点,不难看出静态的代码扫描是不完备的。环境错误注入是一种比较成熟的软件测试方法,这种方法在协议安全测试等领域中都已经得到了很(hěn)好的应用(yòng)。
系统通常由“应用(yòng)程序”和“运行环境”组成。由于各种原因,程序员总是假定认為(wèi)他(tā)们的程序会在正常环境中正常地运行。当这些假设成立时,他(tā)们的程序当然是正确运行的。但是,由于作為(wèi)共享资源的环境,常常被其他(tā)主體(tǐ)所影响,尤其是恶意的用(yòng)户,这样,程序员的假设就可(kě)能(néng)是不正确的。程序是否能(néng)够容忍环境中的错误是影响程序健壮性的一个关键问题。
错误注入,即在软件运行的环境中故意注入人為(wèi)的错误,并验证反应——这是验证计算机和软件系统的容错性、可(kě)靠性的一种有(yǒu)效方法。在测试过程中,错误被注入到环境中,所以产生了干扰。换句话,在测试过程中干扰软件运行的环境,观察在这种干扰情况下程序如何反应,是否会产生安全事件,如果没有(yǒu),就可(kě)以认為(wèi)系统是安全的。概言之,错误注入方法就是通过选择一个适当的错误模型试图触发程序中包含的安全漏洞。
在真实情况下,触发某些不正常的环境是很(hěn)困难的,知道如何触发依赖于测试者的有(yǒu)关“环境”方面的知识。所以,在异常的环境下测试软件安全变得困难。错误注入技术提供了一种模仿异常环境的方法,而不必关心实际中这些错误如何发生。
软件环境错误注入分(fēn)析还依赖于操作系统中已知的安全缺陷,也就是说,对一个软件进行错误注入分(fēn)析时,要充分(fēn)考虑到操作系统本身所存在的漏洞,这些操作系统中的安全缺陷可(kě)能(néng)会影响到软件本身的安全。所以选择一个适当的错误模型来触发程序中所隐含的安全漏洞是非常重要的。我们需要选择一个适当的错误模型,能(néng)够高水平地模拟真实的软件系统,然后分(fēn)析漏洞数据库记录的攻击者利用(yòng)漏洞的方法,把这些利用(yòng)变為(wèi)环境错误注入,从而缩小(xiǎo)在测试过程中错误注入和真实发生的错误之间的差异。
总结
这里介绍的几种漏洞检测的方法,其中安全扫描技术主要是针对已知漏洞的检测,后面三种主要是针对未知漏洞的检测。对于未知漏洞的检测,源代码扫描(包括反汇编扫描)属于静态检测技术,而环境错误注入法属于动态检测技术。
另外,换个视角来看,源代码扫描(包括反汇编扫描)类似于白盒测试,它检测软件系统源码中可(kě)能(néng)存在的问题;环境错误注入方法类似于黑盒测试,它不关注代码的问题,而是通过对程序运行环境的干扰,关注运行程序对于注入错误的反应,以便从程序外围发现问题。
漏洞检测的目的在于发现漏洞,修补漏洞,进而从根本上提高信息系统的安全性,以致从根本上减少安全事件的发生。
以上就是上海观初和大家分(fēn)享的内容,希望能(néng)够帮助到大家。还有(yǒu)想了解的持续关注我们!