论文部分内容阅读
摘要:21世纪是信息大爆炸的时代,计算机在世界范围内得到了普及,各式各样的软件也随之而生。丰富的软件给人们的生活发生了翻天覆地的变化,但是计算软件存在的安全漏洞问题又给人们的生活带来诸多不便,甚至造成财产损失。本文针对计算机软件存在的安全漏洞问题展开讨论,分析漏洞产生原因并提出相应的防范方法。
关键词:计算机软件;安全漏洞;防范方法
中图分类号:TP309文献标识码:A文章编号:1007-9599 (2013) 06-0000-02
1引言
计算机发明至今,经历了迅速的发展壮大。目前计算机已深入到各行各业,已然成为当今社会不可或缺的。随着各式各样的应用软件的出现,更是使计算机焕发着第二春,但是计算机软件存在的漏洞往往会给使用者带来财产损失。计算机软件属于高科技产品,其研发费用往往是硬件设备的几倍,甚至几十倍,但是计算机软件却是易复制的产品,这就给那些利益追求者们可乘之机,给产品的产权维护造成困难,同时扰乱了国家的税收秩序,造成恶劣的社会影响;出于非人为因素,计算机软件存在一些问题和缺陷是不可避免的,这给软件的安全造成严重的威胁,一些黑客可以发现这些漏洞,并有目的得对用户进行攻击;计算机软件一经问世,必然有人对软件进行破译,窃取软件源代码或者取消加密以获取利益。计算机软件的安全漏洞是其特性,入侵者或者入侵软件针对这种特性,在未经授权的情况下进行非法访问,给系统造成损害。很多人认为安装了防火墙或杀毒软件就安全了,其实对于计算机软件漏洞的破坏并没有多大的用处,甚至带来更多问题。目前情况看来,人们很容易忽视以下五种安全漏洞:JBOSS应用服务器、LIBTIFF开源软件库、NET—SNMP、ZLIB。
Geronimo2.0这个漏洞可以使访问者通过插入恶意软件代码非法获取访问权限;JBOSS服务器3.2.4至4.0.5版本存在目录遍历漏洞;LIBTIFF开源软件库是读写标签图像文件格式的文件;NET或者SNMP中的协议文件导致NET-SNMP存在安全漏洞;ZLIB是数据压缩软件库,由于代码解释不当导致存在漏洞。
2提高软件安全性的对策
首先要提高软件的开发水平,减少软件本身存在的漏洞。开发软件的企业可以通过一些技术的革新来提高软甲的研发水平,将软件开发过程中存在的漏洞以及安全隐患降至最低。另外可以应用一些加密技术,严格制止盗版软件的滋生,通过设置访问关卡等安全措施对软件进行安全维护。加强反跟踪技术,是软件的到双重保护;建立专门的反跟踪技术小组,相关部门根据实际需要严密管理和监督软件从研发到投入使用整个过程。对一些非法的盗取软件源代码情况给予法律制裁;国家应该制定健全的法律法规,对软件开发行业给予规范,对盗版现象进行严厉打击,使其树立法律意识,在法律允许范围内进行软件的开发销售工作。
针对容易被忽视软件安全漏洞问题,需要采用一些检测手段来进行预防,动态检测法和静态检测法是其中主要的两种方法。
静态检测法,通过对应用程序的二进制代码进行分析。对软件进行完全检测的方法是不存在的,即便能检测到很多漏洞,其中可能存在很多误报现象。静态检测方法不需要运行软件,方便于检测。同时,不需要专业人员进行分析处理。静态检测方法主要包括:元编译法、变异语法、词法检测法、程序评注法、约束解算器法和类推断法。元编译法,利用编译器达到检测目,它将程序的安全性当作低级别的编译器进行拓展,然后建立模型进行检测。这类技术可以对所有需要检测的代码安全性进行检测和判断,然后编译相应的拓展。变异语法,是通过对一些不安全的操作进行限制达到目的,由于一般的软件都是通过C或C++编写,所以通过C或C++安全程序改变,达到限制例如指针算术运算、setjmp与longjmp等不安全的操作。词法检测法,对源代码中的不安全的C库和系统进行调用,易产生误报,不存在兼容性问题。程序评注法,通过注释程序的方式,不存在兼容性问题,也不会增加代码长度。通过注释的信息来进行分析查找漏洞。约束解算器法,对目标程序程序的属性进行建模分析,不用对源代码进行注释,会产生大量的误报现象,需要专职工作人员分析,耗费人力。类推断法,利用一种新型的修饰,将特殊的指针或输入增加安全性能,达到检测漏洞的目的,适合较大程序的检测,具有效率高的优点,但是存在兼容问题。
动态检测法,对不同运行环境进行分析总结提高程序保密性能,与静态不同之处在于不修改目标程序的源代码而进行漏洞的检测,达到提高软件安全性能的目的。动态检测法包括:非执行堆与数据法、非执行栈法、内存映射法、安全共享库法、沙箱法和程序解释法。非执行堆与数据法,当软件处于非正常运行时,执行禁止命令,来检测和禁止内存中存在的恶意代码,但是有局限性,不能修改函数指针和参数,并且兼容性较低。非执行栈法,不法入侵者通过往栈中注入恶意代码来破坏程序运行,用非执行栈法可以对栈执行代码进行限制,对攻击者的入侵起到一定作用。内存映射法,映射代码页,使攻击者很难通过NULL尾部字符串抵达低端内存区,与此同时,将代码页映射到随机的地址,能给攻击者制造很大困难,但是无法对新攻击进行检测和阻止。安全共享库法,运用动态链接技术,对不安全的函数进行检测和制止,阻止它的调用。该方法没有兼容性问题,但是对代码段数据和数据段溢出无法提供保护。沙箱法,限制进程资源的访问来达到预防目的,在应用程序中设定资源访问策略,策略安全与否不需该变操作系统的内核以及应用程序。该方法主要应用在系统调用的过程,全面且无兼容性问题。程序解释法,对正在运行的程序额监控进行强制检查,用程序监视器对非原始代码、绕过安全检测、无限制转移和控制等攻击进行检测。可以对动态代码进行检测,但会损失一定的兼容性和其他性能。
3小结
计算机在高速发展的今天,在各个领域都有非常重要的作用。软件研发企业非常重视相应软件的开发工作,软件的功能用途越来越多,随之而来的是安全漏洞问题。由于软件开发水准较低,使计算机容易出现很多安全隐患—计算机软件容易被跟踪而丢失源代码、容易复制假冒伪劣产品增多,这些都影响着计算机软件的发展。可以通过提高开发水平、建立反跟踪小组、依法打击假冒产品等手段来为软件提供安全的应用环境。针对容易被人们忽视的五个安全漏洞,需要加强安全检查来达到预防的目的。检查方法包括静态检测法和动态检测法,能有效的检测并防止攻击者入侵,从而保障软件安全。
参考文献:
[1]王雨晨.系统漏洞原理与常见攻击方法[J].计算机工程与应用,2001.37(3):62-63.
[2]马海涛.计算机软件安全漏洞原理及防范方法[J].科协论坛(下半月),2009(06).
[3]胡宇.浅析计算机软件安全问题及其防护策略[J].科技资讯,2011(32).
[4]郑晶.计算机软件漏洞与防范措施的研究[J].吉林农业科技学院学报,2010(02).
[作者简介]周亚峰(1982-),男,山东滕州人,研究生毕业,硕士学位,主要从事计算机及通信相关工作。
关键词:计算机软件;安全漏洞;防范方法
中图分类号:TP309文献标识码:A文章编号:1007-9599 (2013) 06-0000-02
1引言
计算机发明至今,经历了迅速的发展壮大。目前计算机已深入到各行各业,已然成为当今社会不可或缺的。随着各式各样的应用软件的出现,更是使计算机焕发着第二春,但是计算机软件存在的漏洞往往会给使用者带来财产损失。计算机软件属于高科技产品,其研发费用往往是硬件设备的几倍,甚至几十倍,但是计算机软件却是易复制的产品,这就给那些利益追求者们可乘之机,给产品的产权维护造成困难,同时扰乱了国家的税收秩序,造成恶劣的社会影响;出于非人为因素,计算机软件存在一些问题和缺陷是不可避免的,这给软件的安全造成严重的威胁,一些黑客可以发现这些漏洞,并有目的得对用户进行攻击;计算机软件一经问世,必然有人对软件进行破译,窃取软件源代码或者取消加密以获取利益。计算机软件的安全漏洞是其特性,入侵者或者入侵软件针对这种特性,在未经授权的情况下进行非法访问,给系统造成损害。很多人认为安装了防火墙或杀毒软件就安全了,其实对于计算机软件漏洞的破坏并没有多大的用处,甚至带来更多问题。目前情况看来,人们很容易忽视以下五种安全漏洞:JBOSS应用服务器、LIBTIFF开源软件库、NET—SNMP、ZLIB。
Geronimo2.0这个漏洞可以使访问者通过插入恶意软件代码非法获取访问权限;JBOSS服务器3.2.4至4.0.5版本存在目录遍历漏洞;LIBTIFF开源软件库是读写标签图像文件格式的文件;NET或者SNMP中的协议文件导致NET-SNMP存在安全漏洞;ZLIB是数据压缩软件库,由于代码解释不当导致存在漏洞。
2提高软件安全性的对策
首先要提高软件的开发水平,减少软件本身存在的漏洞。开发软件的企业可以通过一些技术的革新来提高软甲的研发水平,将软件开发过程中存在的漏洞以及安全隐患降至最低。另外可以应用一些加密技术,严格制止盗版软件的滋生,通过设置访问关卡等安全措施对软件进行安全维护。加强反跟踪技术,是软件的到双重保护;建立专门的反跟踪技术小组,相关部门根据实际需要严密管理和监督软件从研发到投入使用整个过程。对一些非法的盗取软件源代码情况给予法律制裁;国家应该制定健全的法律法规,对软件开发行业给予规范,对盗版现象进行严厉打击,使其树立法律意识,在法律允许范围内进行软件的开发销售工作。
针对容易被忽视软件安全漏洞问题,需要采用一些检测手段来进行预防,动态检测法和静态检测法是其中主要的两种方法。
静态检测法,通过对应用程序的二进制代码进行分析。对软件进行完全检测的方法是不存在的,即便能检测到很多漏洞,其中可能存在很多误报现象。静态检测方法不需要运行软件,方便于检测。同时,不需要专业人员进行分析处理。静态检测方法主要包括:元编译法、变异语法、词法检测法、程序评注法、约束解算器法和类推断法。元编译法,利用编译器达到检测目,它将程序的安全性当作低级别的编译器进行拓展,然后建立模型进行检测。这类技术可以对所有需要检测的代码安全性进行检测和判断,然后编译相应的拓展。变异语法,是通过对一些不安全的操作进行限制达到目的,由于一般的软件都是通过C或C++编写,所以通过C或C++安全程序改变,达到限制例如指针算术运算、setjmp与longjmp等不安全的操作。词法检测法,对源代码中的不安全的C库和系统进行调用,易产生误报,不存在兼容性问题。程序评注法,通过注释程序的方式,不存在兼容性问题,也不会增加代码长度。通过注释的信息来进行分析查找漏洞。约束解算器法,对目标程序程序的属性进行建模分析,不用对源代码进行注释,会产生大量的误报现象,需要专职工作人员分析,耗费人力。类推断法,利用一种新型的修饰,将特殊的指针或输入增加安全性能,达到检测漏洞的目的,适合较大程序的检测,具有效率高的优点,但是存在兼容问题。
动态检测法,对不同运行环境进行分析总结提高程序保密性能,与静态不同之处在于不修改目标程序的源代码而进行漏洞的检测,达到提高软件安全性能的目的。动态检测法包括:非执行堆与数据法、非执行栈法、内存映射法、安全共享库法、沙箱法和程序解释法。非执行堆与数据法,当软件处于非正常运行时,执行禁止命令,来检测和禁止内存中存在的恶意代码,但是有局限性,不能修改函数指针和参数,并且兼容性较低。非执行栈法,不法入侵者通过往栈中注入恶意代码来破坏程序运行,用非执行栈法可以对栈执行代码进行限制,对攻击者的入侵起到一定作用。内存映射法,映射代码页,使攻击者很难通过NULL尾部字符串抵达低端内存区,与此同时,将代码页映射到随机的地址,能给攻击者制造很大困难,但是无法对新攻击进行检测和阻止。安全共享库法,运用动态链接技术,对不安全的函数进行检测和制止,阻止它的调用。该方法没有兼容性问题,但是对代码段数据和数据段溢出无法提供保护。沙箱法,限制进程资源的访问来达到预防目的,在应用程序中设定资源访问策略,策略安全与否不需该变操作系统的内核以及应用程序。该方法主要应用在系统调用的过程,全面且无兼容性问题。程序解释法,对正在运行的程序额监控进行强制检查,用程序监视器对非原始代码、绕过安全检测、无限制转移和控制等攻击进行检测。可以对动态代码进行检测,但会损失一定的兼容性和其他性能。
3小结
计算机在高速发展的今天,在各个领域都有非常重要的作用。软件研发企业非常重视相应软件的开发工作,软件的功能用途越来越多,随之而来的是安全漏洞问题。由于软件开发水准较低,使计算机容易出现很多安全隐患—计算机软件容易被跟踪而丢失源代码、容易复制假冒伪劣产品增多,这些都影响着计算机软件的发展。可以通过提高开发水平、建立反跟踪小组、依法打击假冒产品等手段来为软件提供安全的应用环境。针对容易被人们忽视的五个安全漏洞,需要加强安全检查来达到预防的目的。检查方法包括静态检测法和动态检测法,能有效的检测并防止攻击者入侵,从而保障软件安全。
参考文献:
[1]王雨晨.系统漏洞原理与常见攻击方法[J].计算机工程与应用,2001.37(3):62-63.
[2]马海涛.计算机软件安全漏洞原理及防范方法[J].科协论坛(下半月),2009(06).
[3]胡宇.浅析计算机软件安全问题及其防护策略[J].科技资讯,2011(32).
[4]郑晶.计算机软件漏洞与防范措施的研究[J].吉林农业科技学院学报,2010(02).
[作者简介]周亚峰(1982-),男,山东滕州人,研究生毕业,硕士学位,主要从事计算机及通信相关工作。