1.基于系统调用的智能终端恶意软件动态检测方法,其特征在于,包括以下步骤:特征提取模块使用检测工具记录动态行为的日志,提取待测样本动态行为日志信息,按时间顺序输出系统调用序列;特征选择模块将动态行为日志信息进行预处理,包括数据降维,向量化处理和去冗余,数据降维部分将系统调用按照重要程度不同进行量化评分,并按评分从高到低对系统调用序列进行处理,去除冗余部分的信息并保留“重要”部分后,对子序列进行合并,得到去冗余后的系统调用序列;机器学习模块构建系统调用序列的马尔科夫(Markov)矩阵,将结果转化为支持向量机SVM能够识别的格式,将正常软件样本和恶意软件样本的混合训练集作为SVM的输入进行有效性训练得到训练好的分类模型;采用训练好的分类模型对恶意软件样本和正常软件样本的混合集检测,输出检测结果;
数据降维具体包括,根据待分类系统调用集合的熵H(C)和系统调用的条件熵H(C|T),调用公式:IG(T)=H(C)‑H(C|T)计算信息增益IG(T),因此可以得到所有系统调用的IG值;
IG(T)值越大表示分类结果越重要,根据IG(T)值对系统调用进行向量化处理,通过仿真选取阈值,将系统调用分为“重要”和“无用”部分,对“重要”部分直接进行特征向量化处理,而“无用”部分根据属性合并后进行向量化处理,最后得到每个动态行为日志向量化后的系统调用序列;
对软件中的冗余信息进行去除具体包括,对向量化的系统调用序列进行语言模型N‑gram处理,得到系统调用的多个子序列,作为量化评分的对象,对N‑gram中的子序列进行量化评分时,首先根据公式 计算动态行为日志di中子序列tj出现的频率,其中ni,j为子序列tj在动态行为日志di中出现的次数;其次根据公式 计算子序列tj的反文档频率IDFj,其中|D|为样本库中的动态行为日志总数;|i:tj∈di|为出现子序列tj的日志总数;tj∈di表示子序列tj在动态行为日志di中出现;+1是为了防止分母变为0,去除冗余部分的信息并保留“重要”部分后,对子序列进行合并,得到去冗余后的系统调用序列。
2.根据权利要求1所述的方法,其特征在于,特征提取模块获取超级管理员Root权限开启超级管理员模式,获取待测软件样本的进程身份编号PID,提取系统调用的动态特征,模拟操作样本软件,对每个样本软件运行预定时间后杀死进程,以文本TXT格式进行记录保存样本日志文件,去除掉乱码部分,以及系统调用的时间和参数信息,得到按时间顺序输出的系统调用序列。
3.基于系统调用的智能终端恶意软件动态检测系统,其特征在于,包括:特征提取模块、特征选择模块、机器学习分类模块,特征提取模块使用检测工具记录动态行为的日志,提取待测样本动态行为日志信息,按时间顺序输出系统调用序列;特征选择模块将动态行为日志信息进行预处理,包括数据降维,向量化处理和去冗余,数据降维部分将系统调用按照重要程度不同进行量化评分,并将评分从高到低对系统调用序列进行处理;机器学习分类模块构建系统调用序列的马尔科夫Markov矩阵,将结果转化为支持向量机SVM能够识别的格式,将正常软件样本和恶意软件样本的混合训练集作为SVM的输入进行有效性训练得到训练好的分类模型;采用训练好的分类模型对恶意软件样本和正常软件样本的混合集检测,输出检测结果;
数据降维具体包括,对APK在模拟器中运行时的产生的动态行为日志,记所有日志中出现的全部系统调用为集合C,根据待分类系统调用集合的熵H(C)和系统调用的条件熵H(C|T),调用公式:IG(T)=H(C)‑H(C|T)计算信息增益IG(T),IG(T)值越大表示分类结果越重要,根据IG(T)值对系统调用进行向量化处理,将样本软件分为“重要”和“无用”部分,对“重要”部分直接进行特征向量化处理,而“无用”部分根据属性合并处理,得到向量化的调用序列;
对样本软件中的冗余信息进行去除,具体包括,对日志中向量化的系统调用序列进行N‑gram处理,得到系统调用的多个子序列,作为量化评分的对象,对N‑gram中的子序列进行量化评分时,首先根据公式 计算动态行为日志di中子序列tj出现的频率,其中ni,j为子序列tj在动态行为日志di中出现的次数;其次根据公式 计算子序列tj的反文档频率IDFj,其中|D|为样本库中的动态行为日志总数;|i:tj∈di|为出现子序列j的日志总数;tj∈di表示子序列tj在动态行为日志di中出现;+1是为了防止分母变为0,去除冗余部分的信息并保留“重要”部分后,对子序列进行合并,得到去冗余后的系统调用序列。
4.根据权利要求3所述的系统,其特征在于,特征提取模块获取超级管理员Root权限开启超级管理员模式,获取待测软件样本的进程身份编号PID,提取系统调用的动态特征,模拟操作样本软件,对每个样本软件运行预定时间后杀死进程,以文本TXT格式进行记录保存样本日志文件,去除掉乱码部分,去除系统调用的时间和参数信息,得到按时间顺序输出的系统调用序列。