间谍软件是攻击者广泛采用的一类信息窃取类恶意软件,具有高威胁性、高隐蔽性等特点.间谍软件在实施窃密行为时通常采用触发执行策略,使得基于软件行为的动态检测方法难以在短时间内将其捕获,故上述方法检测间谍软件效果不佳.针对该问题,本文采用主动诱导间谍软件执行窃密行为的思路,从应用程序编程接口(Application Programming Interface,API)层面分析不同诱导操作和诱导强度对间谍软件的不同诱发效果,进而提出一种基于诱导机制的间谍软件检测方法(Spyware Detection Method based on Inducement Mechanism,SDMIM).SDMIM包含诱导操作筛选、软件“活跃度”计算、间谍软件判别3个阶段,能够适用于多种类型间谍软件的诱导式检测.实验结果表明,SDMIM能够在包含5种不同类型间谍软件的样本集上获得95.98%的检测准确率.
当前主流基于主机行为特征的间谍软件检测方法存在难以获取间谍软件的全部主机行为、漏报率较高等问题。重点关注间谍软件传输所窃取数据的网络行为,明确“间谍软件网络通信阶段”的概念,提出了基于网络通信行为特征的间谍软件检测方法(Spyware Detection Method based on Network Communication Behavior Characteristics,SDMNC)。SDMNC以间谍软件网络通信阶段的通信会话为检测对象,提取会话持续时间、上行/下行数据包数量比、上行/下行数据量比等通信行为特征,运用机器学习算法训练检测模型以判别间谍软件流量和正常软件流量。实验结果显示,SDMNC在使用随机森林算法时,能以99.2%、97.4%的准确率分别检测出实验数据集中已知和未知间谍软件样本的流量。