论文部分内容阅读
恶意程序是计算机系统面临的首要威胁,代码混淆的流行,恶意程序自动生成器在互联网上肆意传播,都造成了变种及未知恶意程序呈爆炸式增长,极大地挑战着传统基于静态特征码的恶意程序检测方法。为了对抗恶意程序威胁,研究者提出了基于行为特征的恶意程序检测。基于行为特征的恶意程序检测包括三个环节:行为数据采集,行为特征抽象,以及行为检测算法设计。这三个环节相辅相成,共同保证了恶意程序检测的准确率。本论文围绕这三个环节,对基于行为特征的恶意程序检测问题进行了深入的研究,主要取得了以下研究成果。1.在行为数据采集研究中,设计并实现了虚拟机监控器层的程序行为监控系统Osiris,解决了虚拟机监控器与客户操作系统之间的语义缺口问题。Osiris系统采用开源模拟器Qemu作为虚拟执行组件,程序行为监控全部实现于虚拟机系统中有着最高特权等级的虚拟机监控器层,因此,恶意程序难以逃避分析。通过向开源模拟器Qemu的CPU模拟例程中加入API监控框架,Osiris系统能够对被分析程序发起的API调用进行监控;同时,Osiris系统采用双虚拟机体系结构对恶意程序运行所需的网络运行环境,以及常见主机事件进行模拟,能够最大限度激发恶意程序的潜伏行为。实验表明,Osiris系统是一种新型恶意程序行为分析工具,为后续行为检测打下了良好的数据基础。2.在程序行为特征抽象研究中,提出了安全敏感最小行为特征以及相应的行为抽象算法。一个API的输出参数或是返回值会成为另一个API的输入参数,API之间存在数据依赖关系,这是一种相对稳定的程序行为特征。论文提出以操作系统敏感资源为中心,对API调用按照数据依赖关系进行较低等级聚合,并对API参数进行抽象描述,最终从API调用序列中抽象出被分析程序对安全敏感的操作系统资源进行操作的模式,也就是安全敏感最小行为序列,并嵌入到高维特征向量空间作为后续行为检测算法的输入。程序相似性比较,聚类以及分类实验都验证了安全敏感最小行为能够有效刻画恶意程序的特征行为。3.提出了静态分析特征与动态分析特征相结合的恶意程序检测思路。同时设计了基于Totally Corrective Boosting思想的特征选择算法BoostFS,将用于解决分类问题的Boosting算法扩展到特征选择问题。BoosFS算法使用Decision Stump作为子分类器,每一轮迭代BoostFS算法寻找的子分类器其分类结果向量与所有已生成子分类器的分类结果向量尽可能正交。由于Decision Stump是仅含有一个结点的决策树,一个训练好的Decision Stump又相当于一个筛选出的特征,所有生成的子分类器恰相当于一个筛选出的特征子集,并且这些特征尽可能不相关。4.恶意程序检测是一个典型的代价敏感学习问题。在这一问题背景下,论文严格遵循Boosting理论框架,首先对AdaBoost算法使用的分类间隔的指数损失函数,以及LogitBoost算法使用的Logit损失函数进行代价敏感改造,然后使用函数空间梯度下降优化方法推导代价敏感的AsyB和AsyBL算法。可以证明,AsyB和AsyBL算法在极限情况下,收敛到最优的代价敏感贝叶斯决策。论文同时利用Newman-Person决策准则解决恶意程序检测问题中如何确定代价因子的问题。5.对噪声数据敏感是AdaBoost算法广为人知的特性之一。在恶意程序行为检测问题中,由于恶意程序常具有潜伏行为,或是被分析程序为充分执行等原因,程序行为数据中常常含有噪声数据。针对这一问题,论文严格遵循Boosting理论框架设计了抗噪声能力更好的RBoost算法。首先,RBoost算法优化非凸的Savage2损失函数。由于Savage2损失函数不会无限惩罚分类间隔很大的错分类样本,因此,对始终难以正确分类的噪声数据敏感性更低。在此基础上,RBoost算法进一步使用两种数值计算稳定性更好的每一轮迭代的最优子分类器。以上两个步骤共同保证了RBoost算法在训练和测试样本集含有噪声情况下学习的稳定性。实验表明在有噪声情况下,与AdaBoost以及GentleBoost,LogitBoost,SavageBoost等Boosting算法相比,RBoost算法能够给出更好的恶意程序检测准确率。