版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、基于BP神经网络的shellcode检测(图文)论文导读:其中,Shellcode的变形技术,可以隐藏shellcode中的大量特征,使得使用传统检测引擎的IDS需要更多的CPU时间来检测,同时还存在较高的误报率,这是高速网络上的NIDS所不能接受的。为了使得该引擎更加的通用,需要分析大量的变形引擎,并参加更多的常用指令到符号数组中。关键词:Shellcode,入侵检测,BP神经网络,变形引擎1 引言在信息平安日益被关注的今天,缓冲区溢出攻击无疑是最大的平安威胁之一,严重威胁着大量企事业单位门户网站和内部网络的平安。缓冲区溢出攻击的主要技术就是shellcode技术,包括shellcode的编
2、写和注入。因此,检测缓冲区溢出攻击的主要手段也就是检测流入网络中的数据流中是否包含shellcode。早期的shellcode较简单包含大量的特征,一般的使用特征匹配检测引擎的NIDS都可以较准确的检测出来。为了防止攻击被检测,于是出现了各种针对IDS 的躲避手段,使得传统的IDS遭遇了重大考验。其中,Shellcode的变形技术,可以隐藏shellcode中的大量特征,使得使用传统检测引擎的IDS需要更多的CPU时间来检测,同时还存在较高的误报率,这是高速网络上的NIDS所不能接受的。2 Shellcode及其变形技术缓冲区是内存中用于存放数据的区域,当程序向缓冲区中填入的数据量超过缓冲区的
3、容量时,就会发生溢出。在许多C或者C+ 编写的程序中,由于未对字符串进行严格的边界检查,将超长字符串拷入函数的栈内时,字符串的溢出会覆盖函数的返回地址,通过精心计算这个覆盖后的返回地址,就能使函数返回后执行恶意代码并操纵系统。Shellcode代码是缓冲区成功溢出后,实现攻击系统的恶意指令集的16进制机器码,它常包含在拷贝进栈内的超长字符串中,一般将此此超长字符串称为shellcode,它包括了三局部:空运算符:用无效的单字节或多字节命令来填充字符串,用于精确的返回。Shellcode代码:通常为实现攻击功能的代码的等效指令码。三局部的分布如下列图1示:图1 一般的shellcode组成由于N
4、IDS 可对简单的Shellcode 进行有效的检测,各种针对传统NIDS 行之有效的Shellcode 变形手法便应运而生。变形的Shellcode在功能上完全等同于变形前原始的Shellcode,但在表现特征上与原始的Shellcode 完全不同。这些变形过的Shellcode 在实施攻击时,它们大都能轻松躲避上述两种传统的Shellcode 检测技术。目前常用的一些生成变形Shellcode 的引擎主要有,ADMmutate,CLET和 Jempiscodes,当攻击者将原始的Shellcode输入后,引擎能根据不同的设置来生成上百种的变形。Shellcode主要的变形方式有:NOP段变
5、形,返回地址变形和shellcode代码段变形。2.1 NOP 段的变形NOP段包含了一些无特定意义的单字节或多字节指令。在溢出成功后要执行shellcode那么必须准确的跳转到shellcode代码段的头部,但是返回地址的不固定性,使得无法保证能精确跳转,错误的跳转意味着攻击的失败。为了扩大攻击的成功率,一个NOP段被放置在Shellcode 段之前,只要返回地址能跳转进入NOP段,指令会顺序的执行直到攻击代码成功实施攻击。2.2 Shellcode代码段的变形在shellcode的中存在一些稳定的特征包括一些特定的字符串,例如存在一些shell的名称(./bin/bash,/bin/sh.
6、)。为了防止很容易被检测到,利用病毒常用的多态技术对Shellcode段进行变形以隐藏特征,迷惑一些简单的检测方法。变形后的shellcode就称为多态shellcode,主要的变形方法有编码和变换。编码是指,每次使用一个随机的密钥对shellcode进行编码,编码算法不用是很复杂的密码算法,因为在高速网络中使用的NIDS有一定的时间和CPU限制,同时被利用的缓冲区的太小也存在限制,所以简单的编码算法就能彻底改变代码的特征,使得NIDS 的特征匹配失效。同时在shellcode 段之前插入一个解码函数,该函数用于在shellcode 段被执行之前对进行解码恢复成原来的可执行代码。编码是最有效的
7、变形方法,这种方法的溢出字符串的结构如下列图2:图2 变形shellcode组成为了防止对解码引擎进行检测,在更高级的变形技术中,shellcode解码引擎本身也必须进行相当的变形。例如,在解码引擎中随机地插入一些无效的代码;把一条指令能完成的工作用两条或更多的指令代替;随机改变存放器的使用顺序,打乱存放器的用途。如果同时引入这三种变形方法,即便是具有相同功能的解码引擎也会拥有截然不同的特征,导致NIDS通过检测Shellcode解码引擎来检测Shellcode变得异常困难。 shellcode段变形过程中有一个必须遵循的原那么就是不允许0 x00;字节出现,因为字符串处理函数中以0 x00;
8、作为字符串的结尾标志,假设存在0 x00;字节,shellcode可能在字符串复制过程中被截断失效。变换的方法主要是相同功能指令替换,例如用XOR EAX EAX 替换MOV EAX 0。2.3 返回地址区的变形溢出字符串必须覆盖真实的返回地址,一般情况下溢出字符串中的返回地址被屡次重复,以便可以准确的覆盖真实的地址。溢出字符串中的返回地址不该被编码或隐藏,因为确切的溢出字符串地址还不能事先确定,一旦变形后的地址值不在NOP 段的范围之内,就会造成攻击的失败,所以对返回地址区的变形最为困难。目前最有效的变形方法是轻微的改变地址的不重要位即最后一位,但有限的变化并缺乏以使NIDS 无法区分出变形
9、后的返回地址区。有些Windows 平台上的Shellcode 利用系统内某些特定地址的jmp esp 指令进行跳转,这种类型的返回地址区几乎无法进行任何形式的变形,因为系统内jmpesp 指令的地址完全固定且相当有限,即使对这些有限的地址进行随机的排列构成返回地址区,NIDS 也能在相当短的CPU 时钟周期内将其检测并发出警报。3 检测引擎该引擎采用BP神经网络来解决分类问题,BP网络在解决分类问题时具有以下优势:数学理论已证明它具有实现任何复杂非线性映射的功能,这使得它特别适合于求解内部机制复杂的问题;网络能通过学习带正确答案的实例集自动提取合理的;求解规那么,即具有自学习能力;网络具有一
10、定的推广、泛化能力因此在检测shellcode时,训练完成后的网络需要更少的CPU时间并具有较低的误报率,使得可以应用于高速网络上的NIDS,同时它的自学习能力使其具有一定的智能性。3.1 简介检测引擎一般用于NIDS系统中,主要对系统提供的数据流进行检测,以确定是否包含shellcode等恶意代码,假设检测成功那么发出报警,NIDS系统做出相应的防御措施。检测引擎主要包括两个局部:预处理器,用于对提供的数据流进行初级检测和预处理,包括对jmp esp指令地址的检测和对NOP字段的检测,同时为下一个处理器提供输入数据。神经网络处理器,对预处理器提供的数据进行计算,当输出节点输出值大于阈值(当前
11、为0.4)时认为是检测到shellcode,并向NIDS发出报警。3.2 预处理器预处理器包括三个函数,esp_detect(),nop_detect() ,create_input()。esp_detect()函数用于检测数据流中是否包含jmp esp指令的地址。nop_detect()函数用于检测数据流中是否含有NOP段。create_input(data)函数用于计算特定符号集在数据流data中的特征值,结果为一个大小为75的浮点数数组。计算公式为(count(instruction)/size(data)*(FACTOR),其中count(instruction)为特定符号在数据流中出
12、现的次数;size(data)为数据流的大小;FACTOR为影响因子,它表示特定符号在shellcode中的重要程度,是一个可调节的参数。3.3 神经网络结构网络结构为多层前馈神经网络,包括一个输入层,一个隐含层和一个输出层。有75个输入节点,40个隐层节点,1个输出节点,训练过程使用Levenberg-Marquartdt算法,结构如下列图3示:图3 神经网络结构网络的输入项为create_input(data)计算得到的symbol符号数组中每个符号在数据流中的特征值,这些符号主要有两个来源:变形算法经常使用的一些指令当前为25个可以通过分析常见的变形算法得到,所有shellcode样本中
13、出现频率最高的不包括前面的指令前50个指令,通过分析shellcode样本得到。3.4 网络训练与测试结果获得shellcode和一些网络上经常传输的文件类型,然后生成样本并对网络进行训练,到达一定精度后停止,用测试样本来检测网络的泛化性能。样本分为两类,正样本P和负样本N。首先从shellcode生成器中生成编码后的shellcode,一共有8种不同的编码函数。样本生成函数code2data()读取所有shellcode代码,统计并分析代码中出现频率较高的前50个(不包括变形算法使用的)符号,再加上25个变形算法使用的符号,生成一个大小为75的符号数组symbol。正样本P这样每个shell
14、code代码就被量化成大小为75的特征数组和一个值为1的教师信号,形如 1,这就形成了正样本P,大小为2000。负样本N主要有.jpeg .txt .html .dll .lib .nls .exe等。先用预处理器中的esp_detect()和nop_detect()处理上述文件,这样可以检测出假阳性样本。再用create_input(data)函数计算符号数组中的每个符号在这些假阳性样本中的特征值,再加上一个值为0 的教师信号。例如一个txt文本可以表示成如下形式: 0,这样经过处理后生成了负样本N,大小为1000。神经网络的泛化能力与样本之间有密切的联系,为了提高泛化能力,它需要有足够多和
15、代表性强的样本。同时为防止所建立的网络模型发生过拟合;现象,须将正样本集P分成训练集T、测试集Q、验证集V 三个局部大小分别为1200,400,400,数据分组时应尽可能考,虑样本模式间的平衡,同时在训练集T中参加大小为700的负样本,用以降低误报率,剩余的300负样本作为误报验证样本V_mis。用训练集T以批处理方式训练网络,学习率为0.7,动量因子为0.6,当误差小于0.01停止,使用测试集Q和验证集V来测试网络。测试样本集Q中包含8种不同编码的shellcode,使用样本集Q检测训练后的网络,检测结果如下表2示,可以看出网络具有较强的泛化能力。 编码样本 检测精度 Pex 100% Pe
16、xFnstenvSub 100% PexAlphaNum 98% PexFnstenvMov 98% CountDown 85% JmpCallAdditive 90% Alpha2 97% ShikataGaNai 97% 表2 泛化能力测试验证样本为包含正样本的V和包含负样本的V_mis,两次验证网络的检测效果,结果如表3示,网络的漏报率为5.5%,误报率为11.3%。由此可以看出可能由于负样本的代表性不够降低了对负样本的检测效果。 验证样本大小 检测结果 V(400) 378 V_mis(300) 266 表3 误报率和漏报率测试分析不同的网络参数如隐层数对检测精度和检测时间的影响。考察
17、隐层节点对检测精度的影响,当隐层数从30到36再到40,到达同样的误差精度需要的训练代数越少,误差下降的速度也是越来越快。但是当隐层单元数超过40后再增大效果并没有明显的提高,因此选择隐层数为40.图4 隐层单元数和误差下降关系4 总结随着越来越多的NIDS和网络防护软件的部署,为了防止攻击被检测出来,变形shellcode 会越来越流行,对变形Shellcode的成功检测与否将成为评价好;IDS 的一项重要指标。该引擎的核心机制是神经网络引擎,通过上述测试得到的L和H的值,使得训练后的网络具有很高的检测性能,另外该引擎对新变形算法具有很好的适应性而不需要知道新算法的具体信息因而也具有了较高的泛化性能。网络的输入为符号数组symbol中符号在数据流中的特征值,符号数组的选择至关重要,它决定了网络的泛化性能。为了使得该引擎更加的通用,需要分析大量的变形引擎,并参加更多的常用指令到符号数组中。参考文献【2】CLETteam: Polymorphi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年华东师大版七年级科学下册月考试卷含答案
- 2025-2030年中国PBT树脂行业市场十三五规划及发展策略研究报告
- 2025-2030年中国CT机行业需求状况与投资战略研究报告
- 个人不动产抵押融资协议规范文本选集版A版
- 2025年仁爱科普版八年级地理下册阶段测试试卷
- 2025年沪教新版九年级化学下册月考试卷
- 2025年上外版二年级语文下册阶段测试试卷含答案
- 2025年湘师大新版八年级生物上册月考试卷
- 浙教版八年级数学下册《3.1平均数》同步测试题含答案
- 2025年人教新课标九年级物理上册阶段测试试卷含答案
- 液晶高压芯片去保护方法
- GB/T 24527-2009炭素材料内在水分的测定
- 教练技术1阶段讲义一阶段版本十一1
- JESD22~B117A中文版完整详细
- 五大发电公司及所属电厂列表及分部精编版
- 2022年新疆青少年出版社有限公司招聘笔试题库及答案解析
- 《动物生理学》课程思政优秀案例
- 高分子材料完整版课件
- DB37∕T 5118-2018 市政工程资料管理标准
- 大气红色商务展望未来赢战集团年会PPT模板课件
- 住宅工程公共区域精装修施工组织设计(217页)
评论
0/150
提交评论