2019-06-24 13:58:4211726人阅读
0x01、摘要
在公有云安全框架中,根据统计结果,大约有84%的恶意程序是可以通过杀毒软件查杀隔离的,在云端构建杀毒软件集群服务是云安全不可或缺的重要安全组件。为了更好的满足安全业务需求,我们需要了解包括传统的防病毒检查、动态分析、工具输出结果聚合和分类方法,以及如何搭建一个易部署、更可靠的、更灵活的恶意软件分析集群框架。
0x02、背景
针对云端的恶意软件主要包含,rookit、DDoS木马、特洛伊木马。恶意软件分析可以大致分为静态和动态分析,在本节中,我们提供背景有关恶意软件分析和分类的信息,包括分析类型、分析限制,和分类,以及他们的优缺点。
大体分类:
1、静态分析不执行样本,而是检查静态代码。
· 整体精度高。无法检测包括代码模糊,运行时的变量生成、代码打包和具有不透明常量的多态代码等情况。
· 执行静态分析需要大量的知识和逆向工程经验。
2、动态分析是静态分析的补充;动态分析在隔离的沙盒环境中执行样本,监测行为。
· 动态分析的主要关注点是由于检测到恶意软件行为修改周围的分析环境,安全地包含在分析过程中采样,通过执行过程中的完整代码覆盖率获取完整的结果,以及与动态分析相关的计算开销。
· 动态恶意软件分析的一个主要问题是将分析引擎隐藏在样本中正在审查;如果检测到分析引擎,某些恶意软件将修改显示的行为。
3、静态和动态分析结果通过监督学习建模的分类器。
· 目前这种分类结果准确率有待验证。
针对本次应用场景,我们主要是搭建一个可工程化的恶意软件分析架构。
0x03、系统架构
1、业务流程
描述:
1、EDR上传过来的进程HASH或者静态文件HASH(例如:MD5)进入到缓存系统(例如:redis集群)查询,判断是否曾经上传过。
· 如果上传过,经过yara规则过滤被标记为:加密、混淆等,同时沙箱中存在结果,则返回沙箱动态行为结果(可疑APICall、释放文件行为、网络行为、进程树等)。
· 如果上传过,经过yara规则过滤被标记为:反调试、反虚拟机等不适合在沙箱中运行的可疑程序,进入到恶意软件分类器判断流程,如果存在分类结果,则返回机器学习分类器的结果(例如:恶意软件家族等)。
· 如果上传过,并且被多款杀毒软件打标为恶意软件,那么返回对应恶意软件相关属性(多款杀毒软件查杀的名称、病毒家族)。
· 如果上传过,匹配上威胁情报对应HASH信息,那么返回威胁情报相关信息(例如:款杀毒软件查杀的名称、病毒家族等)。
· 如果没有上传过,那进入上传流程。
2、EDR上传过来的进程关联的文件或者静态文件,确认没有上传过。
· 经过yara规则过滤被标记为:加密、混淆等,提交给沙箱,异步等待检查结果,如果风险级别比较高,则返回沙箱动态行为结果(可疑APICall、释放文件行为、网络行为、进程树等)。
· 经过yara规则过滤被标记为:反调试、反虚拟机等不适合在沙箱中运行的可疑程序,提交给多款杀毒软件查杀集群,异步等待检查结果。如果风险级别比较高,则对应恶意软件相关属性(多款杀毒软件查杀的名称、病毒家族)。
· 对比威胁情报对应HASH信息,如果存在,那么返回威胁情报相关信息(例如:款杀毒软件查杀的名称、病毒家族等)。
· 提交给AI分类器分类,如果有结果则返回。
3、多杀毒软件查杀结果处理。
为了更好的鉴别多引擎查杀的结果,给出威胁分数,建议对杀软做一下分类,例如:杀软大厂、综合性比较强的杀软厂商以及机器学习能力突出的厂商。
4、AI分类器处理
伴随着不同恶意样本的增加,AI分类器需要及时感知到环境的变化,并且做出模型调整。分类器输入数据有两部分,第一部分为静态杀软结果,第二部分为动态沙箱的输入结果。具体处理方法,在往期的文章中有,这里就不在赘述。