1漏洞产生的原因、形式及主要特点
1.1漏洞产生的主要原因及形式
漏洞在本质上可以理解为系统中存在的缺陷和弱点,其会对计算机系统造成一定的威胁,漏洞产生的主要原因是由于开发设计人员的失误造成的。通常情况下其有两种主要的表现形式,分别是功能性漏洞和安全性漏洞。功能性漏洞主要是系统软件使用过程中产生的运行错误及流程错误等,而安全性漏洞主要会对计算机软件及整个系统的运行造成较为严重的影响。
1.2漏洞的主要特点
首先,漏洞的产生主要是在程序编制过程中疏忽造成的,而数据处理与计算相比会更有可能出现逻辑性错误。其次,漏洞与具体的系统环境之间是存在着相互联系的。第三,系统漏洞与时间之间存在着紧密的关联,随着时间的推移在旧的漏洞基础上可能会产生新的漏洞问题,其具有长期性。
2静态检测技术
最初期的计算机安全静态检测在本上指的就是静态分析,但是由于其验证方法的不同所以又可以分为静态分析和程序验证两个主要形式。首先对于静态分析而言,其主要是通过系统中各程序代码的扫描,并在语法和语义等层面对其进行全面理解,随后对程序自身的特性进行直接分析,从而找出存在的漏洞问题。而程序验证主要是采用验证技术对系统程度能否存在安全漏洞进行检验,重点关注的是安全方面的要求。
2.1漏洞分类检测
在静态检测中,其关注点主要集中在系统程序内部的具体特征上,其进行检测的漏洞特征是与其技术特点有着较为紧密的联系,并且对安全漏洞的分类方法较多。对于大多数的检测技术而言,其能够有效覆盖的漏洞都具有一定的零散性,所以较难找出其在漏洞类型上的共同点。为了方便对其比较,我们可以将其分为安全漏洞和内存漏洞。安全漏洞主要是指数据流的错误和偏差状况,而内存漏洞主要是指数据的储存与类型是否正确等。
2.2静态检测技术
2.2.1静态分析
静态分析中最为常用的技术方法是词法分析,其也是应用最早的静态分析技术,其将系统程序分解为若干个小片段,随后将其与嫌疑数据库进行对比,从而发现漏洞问题并进行评估和判断。但其只停留在语法检查上,还应在安全规则基础上通过特定语法形式对其加以描述,并利于规则处理进行相应的接收处理,随后将其装换成分析器可以进行接收的相关表达内容,并对系统程序的行为进行检测和对比分析。
2.2.2程序验证
程序验证的主要方法通常有符号化法和模型检测两种,其中符号化法主要是采用将抽象模型状态转化为语法树描述公式,并对其公式的有效性进行判定。模型检测一般情况下需要将实践中可能出现的状态一一列举出来,但是由于系统软件自身的复杂性,其程序模型的规模较为庞大,因此主要是对其部分程序及属性进行抽象模型的构造,并通过内存建模来实现对时序漏洞的有效检测。
3动态检测技术分析
3.1内存映射技术
在攻击者常用的攻击当中,有一种以NULL界位字符串来进行内存覆盖,通过对于映射代码页的应用,我们可以将NULL界位的字符串跳转到低内存中的难度增大,换言之就是说将代码页随机映射到不同的内存地址上,从而在一定程度上防止对页面的攻击。
3.2安全共享库技术
安全共享库技术主要是通过采用动态链接技术,从而使程序运行过程中拦截就有不安全性因子的函数的使用,并随时对函数的参数进行检测,该种当时在Windows以及UNIX上得到了较为广的应用。
3.3非执行栈技术
当前基于栈而进行的软件攻击事故相对较多,其主要是采用想栈中写入恶性代码的方式来进行软件攻击,因此最为直接的防范方式就是拒绝栈执行代码,由此才能使得攻击者在栈中写入的恶性代码不被执行。
3.4非执行堆和数据技术
一般情况下,堆是在程序运行过程中动态分配内存的区域,而数据段是在程序编译时已经初始化,因此如果数据段与堆都不执行代码操作,那么攻击者在其中写入的代码就不会执行,如果将其与非执行占技术相结合,会使写入的恶性代码彻底丧失执行的机会。
4结语
在信息时代环境下,计算机软件安全已经成为了计算机通信安全的重要基础保障,通过静态检测技术以及动态检测技术的综合应用,必定能有效的消除计算机软件方面存在的漏洞,大大降低计算机运行风险,提升其软件安全性。
作者:章立 单位:江西旅游商贸职业学院