陈伽 蔡映雪 胡辉 胡松
摘 要:随着信息技术的快速发展,计算机软件应用愈加广泛。而信息系统的安全性是较为关键的一点,计算机软件中的漏洞给其安全带来很大的影响。所以对其进行安全检测是非常必要的。文章通过对软件安全漏洞的了解,分析软件安全中存在的漏洞和不足,并且分析安全检测技术,以为相关领域研究提供参考和借鉴,解决计算机软件安全漏洞问题,提高检测技术水平,保障信息系统的安全运行。
关键词:计算机软件;安全漏洞;安全监测技术
科学技术的发展,使得计算机信息运用到很多领域中,为人们的工作和生活带来极大的方便。然而随着软件应用,其源代码种类逐渐增多,致使计算机软件漏洞频频出现。漏洞的存在严重威胁计算机软件,对整个信息系统的安全带来影响。随着计算机软件更新换代的加速,漏洞种类和数量也随着发展更新,对于安全检测技术的需要愈加强烈。因此对计算机软件安全检测技术和应用实践的相关研究是非常必要的。
1 软件安全漏洞概述
1.1 软件漏洞漏洞概念
漏洞为系统中的不足和缺点,此缺点会对系统工作和运行产生一定的威胁,或有一种攻击性的可能。计算机软件开发时,由于开发人员的疏忽会导致软件漏洞的出现[1]。通常来讲,软件漏洞大体有2种类型:功能性和安全性漏洞。前者是计算机软件工作中出现的结果、流程错误等,后者在一般状态下不会对计算机带来影响,然而如果漏洞被不法分子控制,则会有错误运行情况。
1.2 软件安全漏洞种类
软件安全漏洞主要有:(1)Bugtraq。其主要为邮件列别服务,为特意针对安全问题设置的,多数软件漏洞第一次即在此出现,其会导致危险入侵新闻进入系统。(2)Geronimo2.0[2]。其主要为远程入侵者可以跳过身份辨认这一程序将恶意代码侵入计算机,并且获取访问的权利。(3)LIBTIFF开元软件库。其主要为读写表现图片影像相应形式的一种文件。(4)ZLIB。其主要应用到信息压缩的软件库中,库中存在1个代码(不完整却可以解释长度比1大的代码),由此导致漏洞。(5)Jboss。其主要运用到服务设备3.2.4到4.05版本(Deployment File Repository)中目录的一种安全漏洞。(6)Net-SNMP。其主要为在网络中或者在SNMP中的一种协议。计算机软件系统中如相关程序运行(master agents)NETSNMP过程中,软件能够使得不法分子利用一种特点的TCP相连断开以实现对服务设备的共计,由此导致安全漏洞的出现[3]。
2 计算机软件安全检测技术及其应用
2.1 检测过程
一般状况下,针对计算机软件的安全检测构成,比较大型的计算机软件系统涵盖不同的子系统,且这些系统中涵盖各种模块。通常其过程为模块测试→系统组装→检测→软件性能测试→系统测试。第一步骤主要为子系统内部最小的模块测试,其主要目标为使得测试范围整体、细致[4]。第一时间找到漏洞危险。随后对模块进行组装,依照软件程序和相关标准组装后检测,确保所有软件性能达到标准,并且与客户要求一致。最后对整个系统进行测试,保证系统安全。
2.2 安全检测技术
2.2.1 静态检测技术
静态检测技术一般为在软件程序支持情况下,应用到相关程序中的有关代码(如源代码、二进制代码等),以发现存在问题和异常。主要判断标准是漏报率与误报率,同时如果前者减少,则会致使后者增加。静态检测技术仅仅可以整体体现程序具体状况,但是不能明确其关键性能。动态检测技术能够在软件不工作时检测,使用便利。
静态检测应用主要有以下几种技术:(1)词法研究。其重点是对语法的研究,对现有的程序源代码和C语言、系统调用危险等语言加以分析[5]。此技术通常为参考“辨别软件接口语言—定义语法—生成检测”的流程运行的。(2)评价程序。此检测技术重点为利用研究程序评价信息,发现软件内部有的漏洞,并且应用“tainted”的方式,对所有外部信息加以标注,并且将其给有关技工检查。(3)判断种类。判断种类检测技术主要为智能研究程序内存在的变量和函数种类,针对其访问变量与函数种类检查运行有异常与否。一般种类判断能够应用到除控制流之外的情况中。(4)检查模型。此检测技术可以在显式搜集状况下,或者在隐式不动为止运算,验证有穷情况的系统(模态命题性质等)。通常计算机软件的检测过程会将检查模型技术应用到有限状态建模中,由此比较软件的各种环节和模型,优化对其的验证。利用此方法,能够检测计算机软件的性能和功用[6]。
2.2.2 动态检测技术
动态检测技术能够在不改变宗旨程序(源代码或者二进制代码)的基础上,检查执行程序存在危险与否,有非常高的安全性。通常意义上讲,动态检测技术能够利用对内存修改、环境变量和堆、栈等研究检查,由此强化程序隐私性。
动态检测技术主要涵盖以下几点:
非执行栈。此技术能够利用栈溢出进行程序跳转,将代码放到堆上,执行栈并无显示代码,其有的为堆中执行代码。应用非执行栈检查方式,改变计算机系统内核,把其页标改成非执行状态。这一技术的劣势为智能检查栈共计,缺乏整体检查。若不法分析把恶意代码信息放到栈内,则检查无法发挥作用。同时,此技术兼容性不够强。
非执行堆和信息。此技术如果为褐非执行栈技术共同使用,则可以保证对计算机安全的监护,同时操作可能性高,可以应用到检查并且抵制所有恶意代码进入计算机。然而操作过程中应对计算机内核加以修改,同时因为此技术在堆和信息代码的动态形成方式加以修改,则导致程序兼容性消失。
内存映射[7]。此技术可以利用随机把代码加以内存位置映射,将此参考位置估计对策。例如缓冲区溢出漏洞,则不法分子如黑客等通常会找到内存宗旨进程所在的地方,同时应用自己建立的信息覆盖此位置。如果应用这个技术,能够把代码页加以随机地址映射,强化软件安全性能,避免入侵者太快或者太容易攻击系统。同时其不能够对新生代码加以攻击。同时,由于低端内存多少受到限制,所以代码映射时不能将全部代码映射。
安全共享库。此技术关键在于进行动态链接,将操作时的不安全函数组织。并且可以估算内存最大值,避免信息溢出。安全共享库技术操作起来难度并不大,所以不用改变程序,有非常好的兼容性。但是应用此技术不能确保变量安全,不能化解非标准库函数。
2.3 软件安全检测技术具体应用
计算机软件安全作为比较繁琐的系统,关键是利用系统的全面、隐私、安全性保证计算机软件的安全。然而其工作时,因为计算机或软件的不足或运行设计错误等原因导致的计算机软件自运行系统到相关程序,自交流设备到互联网服务和系统设置及管理客户端等各种层面全部有安全隐患。当前大部分利用C语言或者C++编写协议软件,而其安全漏洞有程序源代码,能够导致系统崩溃。
软件安全检测技术主要具体应用有:(1)竞争条件。其主要总是发生的软件不足,化解难度较大,导致此缺陷的原因为不同客户登录互联网时,应用检测技术能够解决函数被使用,降低竞争,防止导致系统被锁上等问题。(2)缓冲区溢出。其主要为在此区域写比标准长度长的输入,刀子缓冲区溢出,从而影响系统安全,任何一个数据就可以导致目标程序瘫痪。此漏洞缺陷出现频率较高,会使得系统重新启动、系统宕机等问题出现。应用其操作特殊授权的命令,则导致软件漏洞发生。应用检测技术能够对危险函数进行正确评估,缓冲溢出漏洞[8]。并且为了强化计算机安全,其会应用较为新的版本(如strncat)等进行检测。(3)格式化字符串。其主要为程序函数中有对比起来比较特殊的字符参数。其为一组程序代码,能够体现关键信息,并且把特定信息输入到内存中,对系统带来负面影响。因此计算机软件安全检测技术的应用,通常能够直接应用代码格式常量,且不会有不同构造格式串的出现。其依靠互联网窗口输入/出来往信息,提高安全性能。(4)随机数。在Netscape中有时出现随机数的问题,其主要应用比较地质的技术为假随机数加以播种,种子通常是由身份验证与设备时间因素影响,导致侵入者与被侵入者共同应用一个设备,形成系统密码破解,导致系统安全受到威胁。同时随机数可以生成序列号和密钥。通常在避免随机数漏洞过程中,挑选比较高的与程序相符合的数据发生设备是非常重要的。在应用此设备结合检测技术,能够将密码加以计算,保证随机数运行可靠,当系统受到攻击,掌握全部算法基础上同样能够控制数据流出现。
3 结语
随着科学技术的发展,计算机软件技术有所提高,然而计算机软件漏洞种类和状况也随之复杂和多样,使得在操作过程中经常受到不同程度的攻击,威胁着信息系统的安全。因此应加强对计算机软件安全检测技术的完善和应用,结合不同的检测技术,对各种计算机漏洞进行监督检测,防止攻击者的侵入,提高检测技术水平,保障计算机信息系统的安全运行。
[参考文献]
[1]金阳,邱禹霏,徐亮.关于计算机软件安全检测方法的讨论[J].商,2013(11):285-290.
[2]陈栋良.计算机软件中安全漏洞检测技术及其应用[J].软件,2013(13):128-129.
[3]管铭.基于程序分析的软件安全漏洞检测技术研究[D].西安:西北工业大学,2010.
[4]张永铮.计算机安全弱点及其对应关键技术研究[D].哈尔滨:哈尔滨工业大学,2011.
[5]刘强.基于数据挖掘的入侵检测系统设计与实现[D].成都:电子科技大学,2013.
[6]张晛譞.基于Windows平台的软件安全漏洞发掘技术研究[D].成都:电子科技大学,2010.
[7]朱力根.探析计算机软件中安全漏洞检测技术及其应用[J].信息通信,2015(8):124-130.
[8]潘镭.基于数据挖掘技术的分布式入侵检测系统的设计和开发[D].苏州:苏州大学,2011.
Research on Computer Software Security Testing Technology and Its Application
Chen Jia, Cai Yingxue, Hu Hui, Hu Song(Huizhou University, Huizhou 516001, China)
Abstract: With the rapid development of information technology, computer software application more widely. Is the safety of information system is the key point, in computer software vulnerabilities bring great influence on its security. So it is necessary for safety testing. Analysis in this paper, through the understanding of software security vulnerabilities, software security loopholes and defects existing in the safety testing and analysis technology, the thought related research to provide the reference and reference, solve the problem of computer software security vulnerabilities, improve the level of detection technology, to ensure the information system security.
Key words: computer software; security vulnerabilities; safety monitoring technology