试论安全漏洞检测技术在软件工程中的应用
2018-12-23王蕊
王蕊
试论安全漏洞检测技术在软件工程中的应用
王蕊
云南工程职业学院,云南 昆明 650304
随着科学技术的发展和人们安全意识的加强,计算机软件的安全状况受到广泛关注。在此基础上,对安全漏洞检测技术进行了分析,主要分析其在软件工程中的应用,首先阐述了安全漏洞检测技术的应用对象,可以用于防范多种类型的漏洞,保障了软件系统的安全,然后阐述了安全漏洞检测技术的应用方式,包括静态检测技术和动态检测技术这两种,以期为相关研究提供参考。
安全漏洞检测技术;软件工程;静态检测技术
软件工程在设计之初就会受到开发人员的技术水平等因素的影响,导致软件系统存在一定的问题和缺陷。这为不法分子提供了可乘之机。不法分子会利用软件系统中存在的安全漏洞,盗取软件系统的信息和数据。安全漏洞检测技术应运而生。此技术可以有效检测并完善软件系统的安全漏洞,还会防止不法分子利用安全漏洞攻击软件系统。因此,对于安全漏洞检测技术的分析具有一定的实践价值。
1 安全漏洞检测技术在软件工程中的应用对象
第一,竞争条件引发的安全漏洞。竞争条件会导致软件工程出现安全漏洞。在处理此类别安全漏洞时,安全漏洞检测技术主要通过原子化的方式,更改传统的竞争关系,从而降低竞争条件对软件系统正常运行造成的不利影响,保障软件系统的稳定运行。
第二,缓冲区存在安全漏洞。在安全漏洞检测技术的支持下,工作人员可以利用软件程序中带有的危险函数,检测缓冲区存在的安全漏洞,并根据软件系统的实际运行状况,应用安全性能较好的软件版本代替传统的安全系数低的版本。比如,使用externcharstrcat代替externcharstrncat。
第三,随机安全漏洞。在软件工程中,技术人员主要通过应用安全漏洞技术支持的随机设备来避免随机安全漏洞的出现。因为随机设备自身带有密码算法,可以提高设备的安全性,将其用于软件系统中,可以保障软件系统的安全性。但是不法分子在入侵软件系统时,能够获取系统的算法,对系统造成不利影响,而安全漏洞检测技术的应用可以在不法分子获取算法的情况下,阻止不法分子掌握软件系统的信息数据流。
第四,格式化字符串漏洞。一般情况下,软件工程在运行过程中,会受到不定参数的影响,导致软件工程出现格式化漏洞。因此,用户需要避免电脑系统出现不定参数,确保各个参数的平衡。安全漏洞检测技术可以进入电脑系统的编程,调节电脑系统的各个参数,实现其平衡性,避免电脑受到黑客或者不法分子的攻击[1]。
第五,数据安全漏洞。安全检测技术的应用就是在运行软件系统的过程中,分配内存区域的同时启动数据段。如果不法分子在软件系统内部输入恶意软件代码,此数据段就不会执行恶意软件代码。将此技术和非执行栈相结合,可以提高软件系统安全漏洞检测的全面性及软件系统的安全性。
第六,沙箱安全漏洞。此技术主要通过软件系统访问权限的设计避免软件工程受到恶意攻击。与沙箱安全技术类似的程序解释技术也能够实现安全漏洞的动态检测,而且漏洞检测的效果较为理想。此技术可以强制性进行软件系统的安全漏洞检测,为软件系统程序的运行提供相应的合理解释。
2 安全漏洞检测技术的应用方式
2.1 静态检测技术的应用
第一,静态分析。在软件工程中,静态分析技术会扫描软件系统的源代码,并在扫描的结果中找出关键句以及关键语法,以此解读软件系统程度的深层含义和行为,再根据系统的安全标准以及漏洞特性开展安全漏洞检测工作。具体而言,静态分析有两种方法:其一,技术人员要对关键词和关键语法进行分析,将系统分成若干个片段,并将这些片段和数据库进行对比,找出软件系统是否存在漏洞,这种方法能够检测的关键句和关键语法有限,还会重复检测已知的安全漏洞,检测的效率较低;其二,技术人员可以将软件系统正常运行的各项参数作为安全标准,并使用语法模式描述安全标准。安全标准主要应用规则处理器实现标准的运行,在运行的过程中将语言模式全部转变为内部程序,以此进行安全漏洞检测。
第二,程序检验。在软件工程中,程序检验技术主要通过内部程序明确程序以及模型的形式化处理,再通过形式化检测方式检测软件工程中存在的安全漏洞。技术人员首先要设计程序模型,再通过模型自动化检验或者符号化检验方式进行系统的检测。模型自动化检验在检测的过程中,首先要把程序转变成等级自动机,在众多自动机中,每两个就可以替换成一个新的自动机;然后,通过系统支持的语言分析自动机的转换状况,以此实现安全漏洞的检测。但是在实际的应用过程中,操作流程十分复杂,并不适用于所有软件工程;符号化检验方式主要是将程序模型转化为语法树,通过语法树进行数据内容的公式描述,应用数据内容判断公式的正确性,符号化检验方式智能检测软件系统现有的漏洞,并不能实现安全漏洞的防范。除此之外,所有静态检测技术都存在成本高昂的问题,导致安全漏洞检测的质量偏低。
2.2 动态检测技术的应用
第一,内存映射。通常来说,不法分子在攻击软件系统时,大都会应用“NULL”作为结尾的字符串。在软件工程中,此技术能够提高内存覆盖的难度,从而增加不法分子进入内存去的难度,防止不法分子应用“NULL”作为结尾的字符串。也就是说,一旦不法分子应用“NULL”字符串攻击软件系统,内存映射技术就会全面覆盖软件系统的内存,不法分子难以获取软件系统的相关信息[2]。
第二,非执行栈。栈代码可以被转变成不可执行的代码,这一代码即为非执行栈。在软件工程中,非执行栈可以保护系统免受不法分子的入侵。这是由于非执行栈能够将软件工程中固定的数组变量进行混乱处理。在这种处理方式下,不法分子难以使用恶意代码制定栈代码,有助于软件工程安全性的提升。
第三,安全共享库。对于软件系统而言,共享库的安全性会影响到整个软件的安全。在软件工程运行的过程中,安全共享库能够进行不安全函数的检测与拦截,以此实现软件工程的保护,防止其受到不法分子的入侵。
第四,词法分析技术。多项程序的安全漏洞检测需要根据软件系统的语法进行,通过不同的语法实现程序的划分,以此分段进行软件系统的检测。语法分析技术的这种应用流程可以有效检测出软件系统中存在的潜在安全漏洞。但是语法分析技术的安全漏洞漏报率相对较高,而且应用步骤较为复杂。
第五,类型推导技术。此技术的安全漏洞检测原理如下:通过对软件系统中变量和函数的访问状况观察,了解软件系统程序中变量和函数类型是否符合标准,从而明确软件系统中是否存在漏洞。一般来说,如果软件系统的程序和控制流不存在某些关联,就可以使用类型推导技术进行软件工程的安全漏洞检测[3]。
3 结论
综上所述,安全漏洞检测技术可以有效提高软件系统的安全性,保障用户的正常应用。通过本文的分析可知,技术人员需要全面了解软件工程中存在的各类漏洞,在现有静态检测技术和动态检测技术的基础上,研发出适用范围更广、具备安全漏洞预防功能的检测技术,促进软件系统的可持续发展。本文的分析仍旧不够全面,仅供参考。
[1]陈泽晰. 安全漏洞检测技术在计算机软件中的应用[J]. 鸡西大学学报,2017,17(2):34-36.
[2]谢剑. 计算机软件安全漏洞检测技术的应用分析[J]. 信息与电脑(理论版),2016,(3):201-202,205.
[3]王丹,赵文兵,丁治明. Web应用常见注入式安全漏洞检测关键技术综述[J]. 北京工业大学学报,2016,42(12):62-72.
Discussion on Application of Security Vulnerability Detection Technology in Software Engineering
Wang Rui
Yunnan Vocational College of Engineering,Yunnan Kunming 650304
With the development of science and technology and the strengthening of people’s security awareness, the security of computer software has
extensive attention. On this basis, the security vulnerability detection technology is analyzed, and its application in software engineering is mainly analyzed. The application object of the security vulnerability detection technology is first described, and it can be used to prevent multiple types of vulnerabilities and protect the software system security, and then expounded the application of security vulnerability detection technology, including static detection technology and dynamic detection technology, in order to provide reference for related research.
security vulnerability detection technology; software engineering; static detection technology
TP311.53;TP309
A
王蕊(1981—),女,回族,云南昆明人,本科学历,职称为中职,主要研究方向或所学专业为软件工程。