基于BP神经网络的shellcode检测(图文).docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于BP神经网络的shellcode检测(图文) 论文导读:其中,Shellcode的变形技术,可以隐藏shellcode中的大量特征,使得使用传统检测引擎的IDS需要更多的CPU时间来检测,同时还存在较高的误报率,这是高速网络上的NIDS所不能接受的。为了使得该引擎更加的通用,需要分析大量的变形引擎,并加入更多的常用指令到符号数组中。 关键词:Shellcode,入侵检测,BP神经网络,变形引擎 1 引言 在信息安全日益被关注的今天,缓冲区溢出攻击无疑是最大的安全威胁之一,严重威胁着大量企事业单位门户网站和内部网络的安全。缓冲区溢出攻击的主要技术就是shellcode技术,包括shellcode的编写和注入。因此,检测缓冲区溢出攻击的主要手段也就是检测流入网络中的数据流中是否包含shellcode。早期的shellcode较简单包含大量的特征,一般的使用特征匹配检测引擎的NIDS都可以较准确的检测出来。为了避免攻击被检测,于是出现了各种针对IDS 的规避手段,使得传统的IDS遭遇了重大考验。其中,Shellcode的变形技术,可以隐藏shellcode中的大量特征,使得使用传统检测引擎的IDS需要更多的CPU时间来检测,同时还存在较高的误报率,这是高速网络上的NIDS所不能接受的。 2 Shellcode及其变形技术 缓冲区是内存中用于存放数据的区域,当程序向缓冲区中填入的数据量超过缓冲区的容量时,就会发生溢出。在许多C或者C++ 编写的程序中,由于未对字符串进行严格的边界检查,将超长字符串拷入函数的栈内时,字符串的溢出会覆盖函数的返回地址,通过精心计算这个覆盖后的返回地址,就能使函数返回后执行恶意代码并操纵系统。Shellcode代码是缓冲区成功溢出后,实现攻击系统的恶意指令集的16进制机器码,它常包含在拷贝进栈内的超长字符串中,一般将此此超长字符串称为shellcode,它包括了三部分: 空运算符:用无效的单字节或多字节命令来填充字符串,用于精确的返回。 Shellcode代码:通常为实现攻击功能的代码的等效指令码。 三部分的分布如下图1示: 图1 一般的shellcode组成 由于NIDS 可对简单的Shellcode 进行有效的检测,各种针对传统NIDS 行之有效的Shellcode 变形手法便应运而生。变形的Shellcode在功能上完全等同于变形前原始的Shellcode,但在表现特征上与原始的Shellcode 完全不同。这些变形过的Shellcode 在实施攻击时,它们大都能轻松躲避上述两种传统的Shellcode 检测技术。目前常用的一些生成变形Shellcode 的引擎主要有,ADMmutate,CLET和 Jempiscodes,,当攻击者将原始的Shellcode输入后,引擎能根据不同的设置来生成上百种的变形。Shellcode主要的变形方式有:NOP段变形,返回地址变形和shellcode代码段变形。 2.1 NOP 段的变形 NOP段包含了一些无特定意义的单字节或多字节指令。在溢出成功后要执行shellcode那么必须准确的跳转到shellcode代码段的头部,但是返回地址的不固定性,使得无法保证能精确跳转,错误的跳转意味着攻击的失败。为了扩大攻击的成功率,一个NOP段被放置在Shellcode 段之前,只要返回地址能跳转进入NOP段,指令会顺序的执行直到攻击代码成功实施攻击。 2.2 Shellcode代码段的变形 在shellcode的中存在一些稳定的特征包括一些特定的字符串,例如存在一些shell的名称(./bin/bash,/bin/sh...)。为了避免很容易被检测到,利用病毒常用的多态技术对Shellcode段进行变形以隐藏特征,迷惑一些简单的检测方法。变形后的shellcode就称为多态shellcode,主要的变形方法有编码和变换。 编码是指,每次使用一个随机的密钥对shellcode进行编码,编码算法不用是很复杂的密码算法,因为在高速网络中使用的NIDS有一定的时间和CPU限制,同时被利用的缓冲区的太小也存在限制,所以简单的编码算法就能彻底改变代码的特征,使得NIDS 的特征匹配失效。同时在shellcode 段之前插入一个解码函数,该函数用于在shellcode 段被执行之前对进行解码恢复成原来的可执行代码。编码是最有效的变形方法,这种方法的溢出字符串的结构如下图2: 图2 变形shellcode组成 为了防止对解码引擎进行检测,在更高级的变形技术中,shellcode解码引擎本身也必须进行相当的变形。例如,在解码引擎中随机地插入一些无效的代码;把一条指令能完成的工作

文档评论(0)

潇湘画里 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档