好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

恶意代码的检测方法及装置的制作方法.docx

9页
  • 卖家[上传人]:ting****789
  • 文档编号:309596815
  • 上传时间:2022-06-13
  • 文档格式:DOCX
  • 文档大小:25.16KB
  • / 9 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 恶意代码的检测方法及装置的制作方法专利名称:恶意代码的检测方法及装置的制作方法技术领域:本发明涉及通信安全技术领域,尤其涉及一种恶意代码的检测方法及装置背景技术:PDF (portal document format,便携文件格式)是一种电子文件格式这种格式不受阅读软件、硬件以及操作系统的限制,可以在包括Windows、Linux和Mac OS的任何平台中使用JavaScript是一种广泛用于客户端网页开发的脚本语言,这种脚本语言能够实现的功能十分丰富在F1DF中嵌入JavaScript脚本语言对于实现PDF文件的交互特性十分重要,譬如动态内容的呈现、表格和3D界面等等恶意JavaScript脚本程序是恶意攻击代码中的一个新型病毒,对软件系统增加、改变或删除部分脚本,以制造危害或者破坏计算机系统功能和网络的完整性、保密性、可用性等为目的它通常由一段JavaScript脚本语言编写而成,恶意JavaScript脚本程序书写形式灵活化,易通过各种代码混淆技术产生变种,当前的反病毒技术很难达到对它的控制及防护能力恶意JavaScript脚本的传播通常是通过浏览器、局域网共享、即时聊天和Email为载体实现的。

      近年来,随着PDF漏洞利用技术的日益成熟,越来越多的恶意JavaScript被放在了 PDF文件里代码混淆,顾名思义是一种人为刻意地使脚本代码显得杂乱难懂的技术在许多商业软件中,为了保护版权开发者可能将代码进行混淆从而给逆向工程师增添困难在恶意脚本中,混淆的使用则是为了躲过杀毒软件和防火墙中的病毒特征库扫描,并给人工的恶意攻击代码分析制造麻烦相比于网页中的恶意JavaScript脚本,PDF中的恶意脚本在混淆上更多地利用了PDF标准里的一些特性如在文件的定义中使用字母和数字的十六进制码来代替相应文字,使用PDF流对象来对某些含有JavaScript脚本的对象进行隐藏和使用PDF流对象中的编码嵌套功能用多种编码方法处理JavaScript脚本现有浏览器端的许多解混淆工具无法对采用上述混淆方法进行混淆的JavaScript脚本进行解混淆,因此促使了恶意脚本通过PDF文件传播攻击,常见的攻击方式包括网页中包含恶意PDF文件、定向钓鱼邮件中包含恶意PDF文件附件等,其中恶意PDF文件是指携带恶意JavaScript脚本的PDF文件现有对I3DF文件中脚本进行检测的方法有:模拟执行环境来执行被检测的PDF文件,通过模拟被检测的PDF文件在正常的系统操作环境中的行为,来检测文件执行时的调用等一系列操作,从而发现恶意行为。

      但这种方法对于常见的JavaScript的欺骗隐藏手段,例如某个PDF文件中的JavaScript脚本只在特定时段或依赖特定的插件才会呈现恶意行为的设置,就无法检测到此类恶意行为发明人在实现本发明的过程中发现,现有技术至少存在如下问题:不能对携带在PDF文件中的恶意JavaScript代码,特别是通过混淆的方式携带在PDF文件中的恶意JavaScript代码进行准确的检测发明内容本发明实施例提供一种恶意代码的检测方法及装置,能够提高对携带在PDF文件中的恶意JavaScript代码的检测准确性为达到上述目的,本发明的实施例采用如下技术方案:第一方面,提供了一种恶意代码的检测方法,包括:提取PDF文件中的JavaScript脚本代码;启动预定的支持PDF标准的脚本解释器对所述JavaScript脚本代码运行解混淆进程,并根据所述解混淆进程,获得所述JavaScript脚本代码对应的代码信息,所述代码信息的类型包括操作码和字符串变量;根据所述代码信息的类型对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码在第一方面的第一种可能实现方式中,在所述启动预定的支持PDF标准的脚本解释器对所述JavaScript脚本代码运行解混淆进程之前,还包括:将库文件插桩注入在所述脚本解释器的解混淆进程中,所述库文件用于获取所述脚本解释器在解混淆JavaScript脚本代码进程中产生的被解混淆JavaScript脚本代码对应的代码信息。

      结合第一方面以及第一方面的第一种可能实现方式,在第一方面的第二种可能实现方式中,如果所述代码信息的类型为操作码,则所述根据所述代码信息的类型对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码包括:在已存储的恶意操作码特征库中匹配所述JavaScript脚本代码对应的操作码;若在已存储的恶意操作码特征库中匹配到所述操作码,则确定所述JavaScript脚本代码为恶意代码;若在已存储的恶意操作码特征库中未匹配到所述操作码,则确定所述JavaScript脚本代码不是恶意代码结合第一方面以及第一方面的第一种可能实现方式,在第一方面的第三种可能实现方式中,如果所述代码信息的类型为字符串变量,则所述根据所述代码信息的类型对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码包括:获取所述JavaScript脚本代码对应的字符串变量的长度;若所述字符串变量的长度位于第一区间,则获取所述字符串变量对应的第一特征参量;根据栈溢出检测模型和所述第一特征参量,判断所述JavaScript脚本代码是否为恶意代码;若所述字符串变量的长度位于第二区间,则获取所述字符串变量对应的第二特征参量;根据堆喷射检测模型和所述第二特征参量,判断所述JavaScript脚本代码是否为恶意代码。

      结合第一方面的第三种可能实现方式,在第一方面的第四种可能实现方式中,所述第一特征参量包括GetPC指令出现频率、花指令出现频率、是否包含已知脱壳代码指纹中的一种或多种的组合;所述第二特征参量包括字符串信息熵值、NOP指令出现频率中的一种或多种的组合结合第一方面以及第一方面的第一种可能实现方式,在第一方面的第五种可能实现方式中,如果所述代码信息的类型为操作码和字符串,则所述根据所述代码信息的类型对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码包括:根据所述操作码对应的检测规则,检测所述JavaScript脚本代码;以及,根据所述字符串对应的检测规则,检测所述JavaScript脚本代码;当根据所述操作码对应的检测规则,确定所述JavaScript脚本代码为恶意代码,或根据所述字符串变量对应的检测规则,确定所述JavaScript脚本代码为恶意代码时,则确定所述JavaScript脚本代码为恶意代码;当根据所述操作码对应的检测规则,确定所述JavaScript脚本代码不为恶意代码,且根据所述字符串变量对应的检测规则,确定所述JavaScript脚本代码不为恶意代码时,则确定所述JavaScript脚本代码不为恶意代码;其中,所述根据所述操作码对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码包括:在已存储的恶意操作码特征库中匹配所述JavaScript脚本代码对应的操作码;若在已存储的恶意操作码特征库中匹配到所述操作码,则确定所述JavaScript脚本代码为恶意代码;若在已存储的恶意操作码特征库中未匹配到所述操作码,则确定所述JavaScript脚本代码不是恶意代码;所述根据所述字符串变量对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码包括:获取所述JavaScript脚本代码对应的字符串变量的长度;若所述字符串变量的长度位于第三区间,则获取所述字符串变量对应的第三特征参量;根据栈溢出检测模型和所述第三特征参量,判断所述JavaScript脚本代码是否为恶意代码;若所述字符串变量的长度位于第四区间,则获取所述字符串变量对应的第四特征参量;根据堆喷射检测模型和所述第四特征参量,判断所述JavaScript脚本代码是否为恶意代码。

      结合第一方面的第五种可能实现方式,在第一方面的第六种可能实现方式中,所述第三特征参量包括GetPC指令出现频率、花指令出现频率、是否包含已知脱壳代码指纹中的一种或多种的组合;所述第四特征参量包括字符串信息熵值、NOP指令出现频率中的一种或多种的组合第二方面,提供了一种恶意代码的检测装置,包括:解混淆模块,用于提取PDF文件中的JavaScript脚本代码;启动预定的支持HF标准的脚本解释器对所述JavaScript脚本代码运行解混淆进程,并根据所述解混淆进程,获得所述JavaScript脚本代码对应的代码信息,所述代码信息的类型包括操作码和字符串变量;检测模块,用于根据所述解混淆模块获得的代码信息的类型对应的检测规则,检测所述JavaScript脚本代码是否为恶意代码在第二方面的第一种可能实现方式中,所述装置还包括:插桩注入模块,用于将库文件插桩注入在所述脚本解释器对所述JavaScript脚本代码运行的解混淆进程中,所述库文件用于获取所述脚本解释器在解混淆JavaScript脚本代码进程中产生的被解混淆JavaScript脚本代码对应的代码信息结合第二方面以及第一方面的第一种可能实现方式,在第二方面的第二种可能实现方式中,所述检测模块包括:第一匹配单元,用于如果所述代码信息的类型为操作码,在已存储的恶意操作码特征库中匹配所述JavaScript脚本代码对应的操作码;第一确定单元,用于在所述第一匹配单元在已存储的恶意操作码特征库中匹配到所述操作码时,确定所述JavaScript脚本代码为恶意代码;以及用于在所述第一匹配单元在已存储的恶意操作码特征库中未匹配到所述操作码时,确定所述JavaScript脚本代码不是恶意代码。

      结合第二方面的第二种可能实现方式,在第二方面的第三种可能实现方式中,所述检测模块包括:第一获取单元,用于如果所述代码信息的类型为字符串变量,获取所述JavaScript脚本代码对应的字符串变量的长度;第一判断单元,用于在所述第一获取单元获取的字符串变量的长度位于第一区间时,则获取所述字符串变量对应的第一特征参量;根据栈溢出检测模型和所述第一特征参量,判断所述JavaScript脚本代码是否为恶意代码;以及用于在所述第一获取单元获取的字符串变量的长度位于第二区间时,则获取所述字符串变量对应的第二特征参量;根据堆喷射检测模型和所述第二特征参量,判断所述JavaScript脚本代码是否为恶意代码结合第二方面以及第一方面的第一种可能实现方式,在第二方面的第四种可能实现方式中,所述第一特征参量包括GetPC指令出现频率、花指令出现频率、是否包含已知脱壳代码指纹中的一种或多种的组合;所述第二特征参量包括字符串信息熵值、NOP指令出现频率中的一种或多种的组合结合第二方面的第四种可能实现方式,在第二方面第五种可能实现方式中,所述检测模块具体用于如果所述代码信息的类型为操作码和字符串变量,根据所述操作码对应的检测规则,检测所述JavaScript脚本代码;以及,根据所述字符串变量对应的检测规则,检测所述JavaScript脚本代码;以及,用于当根据所述操作码对应的检测规则,确定所述JavaScript脚本代码为恶意代码或根据所述字符串变量对应的检测规则,确定所述JavaScript脚本代码为恶意代码时,确定所述JavaScript脚本代码为恶意代码;以及,用于当根据所述操作码对应的检测规则,确定所述JavaScript脚本代码不为恶意代码且根据所述字符串变量对应的检测规则,确定所述JavaScript脚本代码不为恶意代码时,确定所述JavaScript脚本代码不为恶意代码; 所述检测模块进一步包括:第二匹配单元,用于在已存储的恶意操作码中匹配所述JavaScript脚本代码对应的操作码;第二确定单元,用于在所述第二匹配单元确定在已存储的恶意操作码特征库中匹配到所述操作码时,确定所述JavaScript脚本代码为恶意代码;以及用于在所述第二匹配单元确定在已存储的恶意操作码特征库中未匹配到所述操作码时,确定所述JavaScript脚本代码不是恶意代码;所述检测模块进一步还包括:第二获取单元,用于获取所述JavaScript脚本代码对应的字符串变量的长度。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.