- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
计算机软件中安全漏洞检测的方法的探讨
计算机软件中安全漏洞检测的方法的探讨
摘 要 随着计算机技术的发展,计算机软件种类层出不穷,功能越来越强大。但计算机软件开发过程中受多种因素影响,容易出现安全漏洞,这些漏洞一旦被恶意攻击者利用通常会给软件的使用者造成巨大损失。因此,加强计算机软件安全漏洞检测的研究具有重要的现实意义。本文从静态与动态两个方面探讨计算机软件安全漏洞检测方法,以期为提高软件安全性提供参考。
关键词 计算机软件;安全漏洞;检测方法
中图分类号:TP31 文献标识码:A 文章编号:1671-7597(2015)03-0085-02
任何计算机程序开发过程中,受开发人员个人水平或其他技术因素影响,均可能出现安全漏洞。计算机软件安全漏洞区别于软件的安全弱点,只有可能引起攻击的弱点才称之为漏洞,换言之,计算机软件安全不一定是漏洞,但漏洞却是计算机软件的安全弱点。
1 计算机软件安全漏洞动态检测技术
所谓动态检测技术指软件运行期间,通过分析堆、内存、环境变量等因素,判断软件是否存在安全漏洞。此种检测技术的特点在于在不修改二进制代码或程序源码的条件下进行的检测,因此,确保了程序的保密性。
1.1 非执行栈技术
基于栈的计算机软件攻击行为时常发生,究其原因在于一些操作系统的栈允许执行与写入,这就给攻击者留下了可乘之机,即一些攻击者将一些恶意代码注入到栈中,而后加以运行试图达到攻击的目的。
为防止上述攻击行为的发生,比较有效的手段是禁止栈执行代码,不过需要对操作系统进行修改。同时,还需考虑软件性能问题,尤其在堆和栈同时存在溢出可能的程序中,会提高故障发生率。一般的处理办法是借助栈溢出将程序跳转到至于堆上的攻击代码上,避免栈中代码的执行。该技术检测的内容不够全面,其只能检测和组织栈攻击行为。而且通过将恶意代码注入到数据段中躲过该种技术的检测。另外,考虑到一些应用程序的正确执行需要栈的支撑,因此该技术可能会引起一些兼容问题,不过可以经过分析进行排除。
1.2 非执行堆和数据技术
堆是程序运行过程中进行动态分配的内存区域,而数据段在程序编译时就已完成。很长一段时间人们担心非执行堆和数据段会给软件的正常运行带来不利影响,因此,该种检测技术的发展非常缓慢。
该种技术可使攻击者注入的恶意代码丧失执行的机会,尤其与非执行栈技术配合使用效果更为明显。不过与非执行栈技术相比,因其需要修改较多内核,因此,该技术花费的成本要高一些。研究表明,该种技术可有效检测和阻止将恶意代码注入内存中的攻击行为,但如果是对函数参数或指针进行恶意的修改则无能为力。另外,该种检测技术给其他应用程序的影响非常小,因此,在性能上的消耗可不必过多的考虑。
1.3 内存映射技术
部分攻击者利用NULL结尾的字符串对内存进行覆盖,以实现攻击目标。而使用内存映射技术随机将代码页映射到不同的内存地址中一定程度上避免某些攻击行为的发生。
例如,针对一些缓冲区溢出漏洞,攻击者实施攻击行为时需要在内存中找到目标进程的地址,而后通过构造的数据对其进行覆盖,以达到攻击的目的。利用内存映射技术将代码页随机映射到某个地址上,可提高攻击者的攻击难度,增加攻击成本。应用该种检测技术需要对操作系统的内核进行修改,尽管其不需要修改代码,考虑到程序链接阶段二进制的地址已经确定,因此,需对其进行重新链接。
该种检测技术对防止基于内存地址跳转的攻击比较有效,但无法检测与预防新代码注入的攻击。而且低端内存大小一般受限制,因此,将代码页均映射到低端内存中可能性不大。该种检测技术消耗的性能可忽略不计,而且运行起来给其他程序造成的影响较小。
1.4 程序解释技术
加强程序运行过程中的行为监视并对其进行安全检查,是检测软件安全漏洞的有效方法,这就需要运用程序解释技术。
程序监视器将攻击行为分为绕过安全检测、无限制控制转移、非原始代买执行三种类型。针对不同的攻击行为人们开发出了对应的机制及安全策略。例如,针对无限制的控制转移,要求函数要想返回只回到调用地址,而且对调用及跳转均给予了严格的限制,只有目的段为导出表、源段为导出表才可被执行。并将间接调用控制在某个段内,并严格审查open、ececve等一些危险的函数。
使用程序解释技术时并不需要修改应用程序代码或操作系统内核,只需将应用程序链接产生新启动代码即可,而后通过对动态优化程序加以调用、并解释框架即可。该技术会对兼容性产生一定的影响,而且安全策略较为严格会造成某些应用程序的崩溃。不同的安全策略消耗的性能存在较大差异,不过从整体上来看,其在性能上的消耗并不算太大。
2 静态检测技术
静态检测技术指借助一定的程序分析技术对程序的源代码或二进制代码进行分析,以找到软件弱点的一种方法
文档评论(0)