MalwareGuard - FireEyes 机器学习模块检测并防御恶意软件
FireEye 的重要任务是不断通过创新技术和针对攻击的实践经验,来持续保护客户及其数据。随着越来越多的客户得到 FireEye 终端安全方案的保护,它开创了终端检测和响应服务市场,并成为行业翘楚。在过去一年,我们通过集成防病毒保护模块,显著拓宽了终端安全方案的应用范围。防病毒模块为我们现有检测套件增加了恶意软件防御功能,该套件还同时具有
ExploitGuard 行为检测能力和检测降低指示功能。
今天, 我们非常高兴在端点深度防御策略当中增加新的机器学习层: MalwareGuard。通过 MalwareGuard,客户将能够检测和阻止恶意软件的运行。这一功能通过检测绕过传统防病毒技术的新型零日恶意软件,来满足客户的安全需求。
MalwareGuard 可以判断 Windows 可执行程序是否是优先级高的恶意软件,因此可以阻止恶意软件获得落脚点。为了充分发挥这项检测功能,我们也将 MalwareGuard 集成在网络安全和邮件安全解决方案中。ML 模块静态检测能力是对网络安全和邮件安全解决方案中现有多维虚拟执行动态分析引擎的高效补充。执行静态和动态分析,提高了检测恶意软件的机率,使得攻击者逃避检测更加困难。
目标
在构建 MalwareGuard 之初,我们制定了很多目标:
-
当前的检测阻止范围是 Windows 便携执行文件 (e.g., EXE, DLL, and SYS files)。便携执行文件格式包含 Windows 需要的加载可执行代码的相关信息。便携执行文件不断成为恶意软件的主要活动领域,被证明容易受到感染表 1 病毒的分发
-
机器学习算法使得便携执行文件输入输出预测,判断文件是友好还是恶意。
-
打分一个便携执行文件必须是次秒级,占用最少内存和处理资源。时间限制可以保证我们及时阻止被认定为恶意软件的执行。
-
机器学习模块具有配置设定参数,便于用户选择适合的敏感程度。我们同时假定绝大部分用户希望极低误报率,来对付打猎式事件,在这些事件中,一旦被认定是恶意软件,机器学习模块将表现出更多战斗杀伤力。
FireEye 在达成上述目标上颇具优势。借助于响应复杂威胁的经验,我们掌握了大量不同的恶意软件的信息。除了商业恶意软件, FireEye 对于目标性很强的高速持续恶意攻击软件具有卓越的可视性,这是归功于我们的 Mandiant 事件响应管理。此外,项目专家具有丰富的知识,同时 FireEye Labs Advanced Reverse Engineering (FLARE) 团队为项目专家提供深度支持。经验与智能的相辅相成,产生了独特的数据集。数据科学家和应急工程师的携手合作,共同开发出 MalwareGuard 过硬的模块。
Figure 1: Submissions to VirusTotal during the week of 5/6 to 5/13, 2018. Notice the Win32 EXE and Win32 DLL types, which are Windows PE files.
开发
第一步是收集数据,创建通道,用来吸收便携执行文件和其相关元数据的流量。我们历经多年,不断收集内部和外部的恶意软件,创建了一个复杂而独特的恶意软件数据库。为了完成这项工作,我们利用了 FireEye 的两大资源:
-
1) MVX 动态分析引擎用于识别和标签部分恶意软件
-
2) The FLARE 团队的分析报告被认真消化,指导和衡量应急工程师的工作时间表。
我们面临的现实挑战是创建良性样本集。为了这项工作,我们从已知样本、可信来源的样本着手。我们发现,友好的便携执行文件表现出多样性,需要对更多样本增加原始友好设置,以帮助 FireEye 在数据丛林中捕捉更多变化。到今天,我们的数据集已经收集了 3 亿条样本。在制作模型时,根据样本初次发现的时间,我们把数据集分成三组 (培训, 认定,测试)。陪训集包括老样本,随后是认定集,最后是代表最新样本的测试集。这种拆分数据的方式帮助我们衡量培训数据经过时间打磨将多么持久有效。
接下来是如何把一个便携执行文件按照机器学习算法编写成输入代码。我们提供了两种不同选择:
-
1、 传统的机器学习,就是我们熟练制作一套基于便携执行文件的静态分析的特征库。
-
2、 深度机器学习,是便携执行文件当中未经过处理的数据直接输入算法。
开发第一选项,我们与 FLARE 事件处理专家密切工作,分辨指示,捕捉具有相关特征的数据。样本特征如下:
-
便携执行文件中,随机性字节(熵)的数量
-
便携执行文件中,字段的数量
-
特定 API 呼叫是否存在
这些特征抓取文件的结构内容等信息,因此为预测文件是友好还是恶意提供了有用信息。不断生成静态特征的迭代过程,被称为特征工程。特征工程与我们提供的深度学习选项完全不同。输入深度学习算法的是组成便携执行文件的一系列字节。将这些字节转变成有用信息,从友好样本中识别恶意代码,是深度学习算法的工作。这是一个活跃的研究领域,不局限于信息安全领域。去年,我们在应用机器学习大会上,分享了我们对于深度学习算法的成果。最终,我们在使用传统和深度学习两方面都获得了成功。接下来,我们训练不同种类的指导类学习模型。这包括随机森林,梯度放大树,神经网络,物流回归模型,用于 SME 识别特征,还有旋转神经网络和反复出现的用于深度学习案例的神经网络。
典型实验过程包括在培训库中的便携执行文件上训练模型,同时使用认定库调节超参数,然后在测试库评估训练过的模型,确定正确预报、误报和漏报的数量。为了比较不同模型的结果,我们使用 ROU 曲线进行 AUC 统计,AUC 统计是一个介于 0 到 1 之间的数字。AUC 为 0 的模型表示一直错误预测,AUC 为 1 的模型表示一直正确预测。我们顶部表现的恶意代码检测模型是 0.9998。我们筛选一些最好表现的模型来进一步评估。
内部评估
过去,我们在 Mandiant IR 和 Managed Defense engagements 中,测试了几个前景看好的备选模型,收集性能参数。我们创建了内部服务,团队设在 FireEye,便于便携执行文件适合机器学习模型打分。现在,我们对两千多万的新的便携执行文件进行了评估和预测。 这提供了非常宝贵的参考资料,便于我们接下来做几件事。我们能够识别和定位数据收集中的空白,评估某些附加的目标特征工程的误报和漏报。这些迭代过程的重要步骤,有助于创建强壮的机器学习模型。我们内部评估的最后一步是在备选模型当中甄选最终模型,再次使用 AUC 统计分析。
在内部评估阶段,我们为 MalwareGuard 开发了支持长期跟踪和维护的基础架构。我们的目标实现模型性能的实时可视性。不出意外,当性能下降达到下限时,模型的再培训可以根据需要启动。为了实现这一目标,我们为机器学习的每个阶段都开发了数据通道,实现系统完全自动化。
展望
FireEye 使用端点安全、网络安全和邮件安全方案的客户将从 MalwareGuard 中受益。客户在检测恶意软件以及零日威胁的能力方面将有显著提升。特别是终端安全方案用户,MalwareGuard 是对集成深度防御解决方案的重要补充。这一方案包括检测下降指示,恶意代码特征检测和预防集,ExploitGuard 行为检测和阻止,如今在 MalwareGuard 中又增加了机器学习恶意软件检测这层新功能。
我们很高兴完成了这一里程碑式的发布,我们希望不断提升 MalwareGuard。恶意威胁的背景不断快速发生变化,我们相信机器学习比传统的特征签名技术能够更快检测和阻止新的恶意软件。