基于 AMSI 利用上下文嵌入检测恶意 PowerShell 代码
密码学与安全
2019-09-20 v2 机器学习
摘要
PowerShell 是一种命令行外壳,支持脚本语言。它在组织中广泛用于配置管理与任务自动化,但也日益被网络犯罪分子用于针对组织发起网络攻击,主要因为它预装在 Windows 机器上,并暴露出可被攻击者利用的强大功能。这使得检测恶意 PowerShell 代码的问题既紧迫又具挑战性。微软的反恶意软件扫描接口(AMSI)允许防御系统在代码执行前扫描传递给 PowerShell 等脚本引擎的所有代码。在本工作中,我们开展了首个利用 AMSI 所提供信息检测恶意 PowerShell 代码的研究。我们提出了几种基于深度学习的恶意 PowerShell 代码检测器,其采用来自 PowerShell“语言”的预训练上下文词嵌入。网络安全领域的一个已知问题是,与无标签数据相比,有标签数据相对稀缺,使得许多类型的恶意活动难以设计有效的监督检测。PowerShell 代码亦如此。我们的工作表明,该问题可通过基于无标签数据学习预训练上下文嵌入来缓解。我们使用从大型反恶意软件供应商经 AMSI 收集的真实世界数据训练和评估了我们的模型。我们的性能分析确定,将无标签数据用于嵌入显著提升了检测器的性能。我们性能最佳的模型采用了一种能够从字符与词元两个层面处理文本信号的架构,在保持低于 0.1% 低误报率的同时,获得了接近 90% 的真阳性率。
引用
@article{arxiv.1905.09538,
title = {AMSI-Based Detection of Malicious PowerShell Code Using Contextual Embeddings},
author = {Amir Rubin and Shay Kels and Danny Hendler},
journal= {arXiv preprint arXiv:1905.09538},
year = {2019}
}
备注
17 pages, 8 figures, 4 tables