编辑: 865397499 2019-07-15

1 相关工作 A n g l u i n [

1 1 ] 将最有利于机器学习提高效能的样 本选择出来, 再进行人工标记后用以分类模型训练, 该方法受到网络安全领域的广泛关注.A l m g r e n 等[

1 2 ] 在入侵系统中引入了主动学习, 获取到了较好 的检测性能, 李洋等[

1 3 ] 将主动学习与 K N N算法相 结合用于入侵检测, 减少了样本标记量和算法开销, G u 等[

1 4 ] 研究了主动学习应用于入侵检测的现状, 指出了一些不足和需要改进的方向. 文献[

1 5 ] 中采用 E S V M( E d i t i n g S u p p o r t i n g V e c t o r M a c h i n e s ) 方法提高泛化能力, 但是需要重复使 用SVM训练进行迭代的样本剪裁, 做法 十分的复杂. 在脚本的特征提取方面, L i k a r i s h等[

1 6 ] 提取代 码中的关键字作为特征, 应用机器学习算法进行分 类来进行脚本检测, 该方法只考虑了脚本特征中关 键字的不同分布, 并没有考虑一些可执行的方法与 函数特征, 导致特征类型过于单一, 特征维度太低. A l T a h a r w a 等[

1 7 ] 通过分析 J a v a S c r i p t 脚本语义特征, 建立抽象语法树来进行分类检测, 但并没有考虑 到JavaScript脚本中混淆代码的特性, 因此难以准确 检测.F r a i w a n 等[

1 8 ] 在脚本的频繁特征、 U R L特征、 函数特征和执行特征的基础上构建相应的分类模 型, 亦是缺乏对混淆特征的考虑.马洪亮等[

1 9 ] 使用 基于机器学习的分类算法来检测 J a v a S c r i p t 恶意代 码, 但是局限于特征提取的维度缺失, 所以检测效果 一般.

2 N E S V M 算法

2 .

1 特征提取 结合以往的文献[

2 0-

2 1 ] , 充分考虑了 J a v a S c r i p t 脚本的混淆特征, 基于统计特征、 漏洞利用特 征和动态执行特征这四类特征, 完善了传统的静态 检测所存在的特征提取维度低、 泛化性不足的问题.

3 8 第 3期 管衡, 等: 基于 N E V A S V M的JavaScript恶意代码检测系统 最终确定提取

2 5个特征, 完善了传统的静态检测所 存在的特征提取维度低、 泛化性不足的问题, 特征分 布如下: (

1 )e v a l 函数个数 (

2 )c l a s s i d 个数 (

3 )字符串包含 i f r a m e 个数 (

4 )D O M更改函数个数 (

5 )U n e s c a p e ( ) 函数个数 (

6 )字符串总信息熵 (

7 )字符串最大信息熵 (

8 )字符串含参个数 (

9 )字符串内嵌脚本长度 (

1 0 )长度大于

5 0的字符串个数 (

1 1 )可疑字符串使用个数 (

1 2 )代码混淆个数 (

1 3 )Wi n d o w . s e t T i m e o u t ( ) 函数个数 (

1 4 )S h e l l c o d e 使用个数 (

1 5 )C r e a t O b j ec t ( ) 函数使用个数 (

1 6 )含有某事件的特征符使用个数 (

1 7 )D o c u m e n t . w r i t e 或. Wr i t el n ( ) 个数 (

1 8 )可疑标签个数 (

1 9 )字符串更改函数个数 (

2 0 )脚本中空格回车所占比例 (

2 1 )十六进制字符个数 (

2 2 )p a r s e I n t ( ) 和fromcharcod e ( ) 个数 (

2 3 )A c t i v e X O B b j e c t 相关函数使用个数 (

2 4 )字符串最大长度 (

2 5 )E s c a p e ( ) 函数个数 在收集到所需的恶意样本与正常样本作为训练 集后, 再对每个样本 x i进行相应的特征提取, 将恶 意样本特征标记为 + , 正常样本特征标记为 i , 在对 每个 J a v s S c r i p t 样本的特征数量进行归一化处理之 后得到对应的特征向量 x i=( x

1 i , x

2 i , …, x

2 5 i ) , x n i∈ [

下载(注:源文件不在本站服务器,都将跳转到源网站下载)
备用下载
发帖评论
相关话题
发布一个新话题