JavaScript恶意代码检测相关技术研究
【摘要】:在互联网高速发展的今天,网络技术的提升与丰富使得越来越多的网站开始以Web应用的形式提供服务,从而导致基于Web的应用呈现倍数级的增长。而Java Script作为一种具有完备功能的语言,被广泛地应用于Web应用的前端开发之中。虽然为用户带来了诸多便利和良好的交互体验,但与此同时也给Web用户终端带来了不少威胁与风险。为了应对Java Script恶意代码所带来的网络安全问题,学术界已然提出过一些检测方法,然而实际成果却不尽人意。存在诸多不足,为了得到具备更好检测性能的Java Script恶意代码检测系统,本文的工作和创新点如下:首先,在实现了catch JS脚本抓取过程后,鉴于以往文献中针对大量的Java Script恶意代码检测系统对于脚本特征的提取考虑不够全面,再加上Java Script语言标准年年更新,本文结合最新的ECMAScript2019标准与对今年主流Java Script攻击技术的研究,从四个方面新增68个脚本特征,提高了特征提取泛化性。然后,考虑到传统特征提取对每个特征都采用相同的权重,缺乏科学性与泛化性,将文本分类思想应用于Java Script脚本恶意检测,并对传统的TF-IDF加权算法进行针对性改进得到TF-NIDF加权算法带来更加具备科学性与泛化性的加权。间接有效的提高了Java Script恶意代码分类模型检测性能。其次,区别与其他研究人员关注重点集中在分类算法与特征提取的优化之上,对网页获取脚本的分类标记误差考虑不周,重点关注了训练集的噪声优化,利用对V-detector算法进行针对性改进后的基于否定选择的MMV-detector脚本过滤算法,对抓取到的Java Script脚本集进行降噪过滤,将包含插件与广告等非正常脚本与正常脚本区分开来,保证了样本标记时的精确度。降低训练集噪声,减少标记误差,从源头提高Java Script恶意代码分类模型性能。此外,在通过对主流的分类算法理论分析与实验对比后选择了支持向量机SVM分类算法作为本系统的分类算法。并针对传统监督学习SVM算法存在的样本标记代价大,时效不高,精确度不足的问题,将主动学习加入到SVM分类算法之中,并针对性地改进了选择策略,优化询问算法。得到基于价值度量的ASVM主动学习分类算法。提高了分类器训练过程的精度与效率。最后,结合MMV-detector脚本过滤模块与TF-NIDF加权算法特征提取以及ASVM主动学习分类算法建立了完整的Java Script恶意代码检测MNAS模型。并将得到的分类模型应用于Java Script恶意代码检测,实现了Java Script恶意代码检测原型系统。并对系统的高效性与正确性以及进行了综合分析与实验证明。