恶意软件定义
恶意软件通常指未经用户授权进入系统,通过扫描系统漏洞并执行破坏性活动,从而使当前系统功能受到一定影响、安全性受到威胁的恶意性软件或程序。恶意软件既可以单独存在,又可以与其它软件整合并存,具有很强的隐蔽性;同时在网络环境中大量存在,容易被攻击者利用。
检测系统架构
基于恶意软件发起的定向网络攻击日益增长,构建起有效的恶意软件监测系统势在必行。一个恶意软件检测系统的核心功能模块包括样本特征提取和分类标记两个部分。
特征提取
对恶意软件样本的特征提取,首先要获取样本程序中实时的API调用序列,这一步可以通过借助所在系统的API监听工具实现。其次,针对API调用序列的处理,目前通常采用n元语法模型(n-gram)。n-gram 模型的思想是,首先确定特征序列的长度为n,在假定第n个出现的词只与在它之前出现的n−1个词相关,那么在一个长度远大于n的词组序列中,就通过滑动窗口的形式来将整体序列划分为多个特征序列。经过已有实验验证,4-gram在实际应用中的效果相对较好。
最后,对于每个单独的特征序列的处理,不同的文章采用特征度量方式也有所不同。Ravi等人[1]首先针对已有的样本数据,通过上述的序列处理之后,计算其支持度和置信度,然后根据初始类别标签形成一条关联规则。支持度S与置信度C的计算方式如下:
S = I A N × 100 % S=\frac{I_A}{N}\times100\% S=NIA×100%