基于特征组合的Powershell恶意代码检测方法
2021-02-28刘宝旭赵子豪刘潮歌王晓茜吴贤达
刘 岳 ,刘宝旭 ,赵子豪 ,刘潮歌 ,王晓茜 ,吴贤达
1 中国科学院信息工程研究所 北京 中国 100093
2 中国科学院大学网络空间安全学院 北京 中国 100049
1 引言
随着互联网技术的发展,人们的生产和生活方式发生了巨大的改变[1],网络安全问题也愈发严峻。据赛门铁克发布的互联网安全威胁报告显示[2],2019 年其在全球超过157 个国家和地区的1.23 亿个监测终端,平均每天报告拦截的网络攻击次数达1.42 亿次。
在网络攻击中,APT(高级可持续威胁,Advanced Persisten Threat)攻击是指对特定目标进行长期持续性网络攻击的一种攻击方式。APT 攻击的全链路[3-4]如图1 所示。
由于APT 攻击过程中的隐蔽性需要,无文件恶意代码[5]越来越多地被应用在了APT 攻击链路中。具有代表性的有,2012 年最早出现的无文件恶意代码Lurk[6],2015 年的Duqu2.0[7],2017 年的poshspy[8],2020 年 Donoff 系列的TrojanDownloader[9]。在无文件恶意代码的攻击过程中,存在于Windows 操作系统中的Powershell 是攻击者常使用的攻击方式。据安全公司Macfee 2020 年7 月发布的网络安全威胁报告[9]数据显示,与上一季度相比,2020 年第一季度的新Powershell 恶意软件数量增长了689%。Powershell是一种命令行shell 程序,微软默认将其安装于Windows 系统中。由于Powershell 可以直接调用.NET和Windows API,并且允许使用者可以从其他系统登录下载代码并远程执行的特性,Powershell 被广泛应用于配置管理和任务自动化,但其便捷性使其成为了大量开源渗透工具的利用对象。通过利用Powershell 下载shellcode、内存运行、修改注册表以及WMI(Windows 管理规范,Windows Management Instrumentation)等方式,攻击者可以实现无本地文件驻留并持久化,从而达到攻击利用的目的。以GorgonAPT 为例,攻击者诱导受害者点击Word 文件,通过宏代码解密执行Powershell 下载,随后执行vbs脚本,再通过新释放的Powershell 脚本执行payload加载njrat 远控木马。……
