
长期以来,恶意软件一直是对信息安全的主要威胁。分析和防御这种类型的攻击的方法各不相同。通常有两种方法:静态和动态分析。
静态分析的目的是寻找文件或进程内存中的恶意内容模式。这些可能是字符串、编码或压缩数据的片段、编译代码的序列。不仅可以搜索单个模式,还可以搜索这些模式与附加条件的组合(例如,绑定到一个签名位置,检查彼此位置的相对距离)。
动态分析是对一个程序的行为进行分析。值得注意的是,该程序可以在所谓的仿真模式下运行。它应该能够安全地解释行动,而不会对操作系统造成损害。另一个选择是在虚拟环境(沙盒)中运行该程序。在这种情况下,在系统上会有一个公平的执行动作,然后对调用进行记录。记录的详细程度是观察的深度和分析系统的性能之间的一种平衡。其输出是程序在操作系统上的行动日志(行为的痕迹),可以进一步分析。
动态或行为分析有一个关键的优势,即无论攻击者试图混淆代码和恶意意图,恶意活动都会被病毒分析人员发现。将恶意软件检测任务减少到行动分析,使我们能够假设高级恶意软件检测算法的稳健性。而且,由于分析环境的初始状态相同(虚拟服务器状态投出),行为的可重复性简化了合法和恶意行为的分类任务。
通常情况下,行为分析的方法是基于规则集的。专家分析被转移到签名,在此基础上,恶意软件和文件检测工具得出结论。然而,在这种情况下会出现一个问题:只有严格遵守书面规则的攻击才能被计算在内,而不符合这些条件但仍然是恶意的攻击则可能被忽略掉。当同一恶意软件发生变化时,也会出现同样的问题。这可以通过使用更柔和的触发标准来解决,即可以写一个更通用的规则,或者在每个恶意软件下使用大量的规则。在第一种情况下,我们有可能出现许多误报,而第二种情况则需要严重的时间承诺,这可能导致必要的更新滞后。
有必要将我们已经掌握的知识扩展到其他类似的案例。也就是说,那些我们以前没有遇到过或没有用规则处理过的案例,但根据某些特征的相似性,我们可以得出结论,该活动可能是恶意的。这就是机器学习算法发挥作用的地方。
ML模型,当训练正确时,具有可推广性。这意味着受过训练的模型不只是学会了它所训练的所有例子,而是能够根据训练样本的模式对新的例子做出决定。
然而,为了使可推广性发挥作用,在训练阶段必须考虑两个主要因素:
- 特征集应该尽可能完整(以便模型能够看到尽可能多的模式,从而更好地将其知识扩展到新的例子),但不能是多余的(以便不存储和处理那些对模型不携带有用信息的特征)。
- 数据集应该是有代表性的、平衡的和定期更新的。

文章探讨了分析恶意软件的两种主要方法——静态和动态分析,以及如何利用动态行为分析和机器学习提升检测的准确性和泛化能力。动态分析侧重于程序的行为,而机器学习模型通过学习行为模式来识别恶意活动,强调了特征集的选择、数据集的代表性、平衡性和定期更新对于模型性能的重要性。
最低0.47元/天 解锁文章
2701

被折叠的 条评论
为什么被折叠?



