奇安信技术研究院 - 恶意文件样本集简介及样本分析过程

《互联网基础设施与软件安全年度发展研究报告(2020)》第四章《恶意样本分析报告》,共九个小节,分别为: 恶意文件样本集简介、样本分析过程、 恶意样本分析概况、 PE样本分析、 ELF样本分析、 APK样本分析、文档样本分析、典型案例分析、恶意代码的发展趋势与分析挑战。 我们已经发布了前三章的内容,本文为第四章第一小节《恶意文件样本集简介》和第二小节《样本分析过程》。

恶意文件样本集简介

恶意样本是网络攻击的主要载体和表现形态。为了更好地了解当前网络的安全状况,摸清恶意代码的发展变化和攻击趋势,奇安信技术研究院星图实验室从2020年上半年收录的样本集中抽取了4,000多万个恶意样本,并利用分析工具和自研沙箱系统,对这些样本进行了详细的分析。

这些样本来源途径包括野外捕获、用户上传、友商交换等。在本次分析报告中,我们只关注恶意样本文件,以及文件自身所包含的各种信息,整个分析过程不涉及样本来源、样本捕获渠道、样本出现场景等样本相关上下文信息,亦不涉及样本攻击目标、攻击受害者等用户相关信息。

根据静态引擎的标签信息,分析涉及的恶意样本类型分布如图4-1所示,其中数量最多的是木马,其次是其他类型的恶意软件、黑客工具和病毒。
奇安信技术研究院 - 恶意文件样本集简介及样本分析过程 - 图1
图4-1 恶意样本类型分布

样本分析过程

静态分析与动态分析是当前恶意代码分析的主要方式,静态分析查其“形”,动态分析查其“行”,两者相辅相成,互相补充。
为此,我们每天从新增样本集中随机抽取20万~30万的样本,对样本进行静态分析和动态分析,其中:

  • 静态分析主要包括多引擎扫描、文件类型分析、文件属性分析等;
  • 动态分析主要借助天穹动态分析沙箱,进行动态行为、衍生文件、网络流量等方面的详细分析。01

    天穹沙箱

    天穹沙箱是奇安信技术研究院开发的一款基于硬件虚拟化技术、软件动态分析技术、控制流完整性分析技术等技术方法研制的,面向软件行为动态分析的系统。
    天穹沙箱系统采用out-of-the-box分析模式,在分析环境透明性、行为分析粒度、样本分析能力、分析数据提取能力等方面都优于Cuckoo沙箱及其他类似的基于in-the-box分析模式的沙箱系统。

如图4-2所示,在out-of-the-box分析模式下,天穹沙箱的分析工具与分析样本运行在完全不同的两个环境中,彻底解决了in-the-box分析模式下,分析工具与分析样本运行在同一个系统环境下会导致用户态与内核态、分析与反分析、检测与反检测等技术竞争问题。
奇安信技术研究院 - 恶意文件样本集简介及样本分析过程 - 图2
图4-2 不同分析模式技术原理对比
在out-of-the-box分析模式下,分析工具完全独立于虚拟机中的操作系统,分析过程可以覆盖虚拟机从操作系统引导启动到断电关机的所有系统状态,甚至在虚拟机操作系统发生突然崩溃的情况下也能保证分析过程和分析数据的完整性。

得益于采用的硬件模拟机制,天穹沙箱可以实现对虚拟机内软件的指令级别的细粒度分析,相比in-the-box分析模式下API Hook方式的API级别分析,能够提供更全面、更精准的行为数据。

天穹沙箱支持模拟的设备类型包括个人计算机、服务器、IoT设备、移动终端等主流设备形态,全面覆盖包括x86、ARM、MIPS、SPARC、PowerPC、SuperH、M68K在内的主要CPU架构。

天穹沙箱提供覆盖Windows、Linux、Android、macOS以及国产操作系统在内的各类分析环境(见图4-3),支持分析的操作系统环境包括:Windows7、Windows 10等Windows操作系统,CentOS、Debian等Linux操作系统,OpenWrt、Buildroot等IoT操作系统,UOS、Kylin等信创操作系统,以及Android和macOS操作系统。
奇安信技术研究院 - 恶意文件样本集简介及样本分析过程 - 图3
图4-3 天穹沙箱支持的分析环境

动态分析

天穹沙箱支持各种类型样本文件的动态分析,主要包括以下几种:


  • 可执行程序,包括32位和64位的各类可执行文件格式,涵盖PE格式文件,如exe、dll、sys等,以及ELF文件、Mach-O文件和jar文件、APK文件。

  • 文档文件,包括doc、docx、ppt、pptx、xls、xlsx、rtf、wps、pdf等。

  • 多媒体文件,包括html、hta、jpg、png、swf、chm等。

  • 脚本类文件,包括bat、vbs、js、ps1、shell等。

  • 特殊类型文件,包括lnk、URL、boot sector等。

  • 压缩打包文件,包括zip、rar、7z、gz、ace、arj、z、bz、tar、tgz、cab、lzh、iso、img、eml、msg等。

    沙箱分析面临的挑战

    沙箱分析系统作为自动化恶意样本动态分析流程的核心,在恶意样本分析和鉴定中起着重要作用,但大规模、多样化、对抗性的恶意样本,也给沙箱分析系统提出了更高的要求,主要包括如下几个方面。

如何高效处理海量样本文件

无论是作为前端现场部署的安全检测设备,还是作为后台分析流程的自动化分析系统,考虑到沙箱系统的可用资源和部署成本,沙箱系统需要处理的样本量都是巨大的。
因此在沙箱分析中,天穹沙箱系统引入了样本结构哈希Thash对相似样本进行过滤;加入了动态分析智能终止,对于崩溃退出等样本运行的确定性状态,自动结束动态分析过程。
从样本预处理、动态运行分析、数据后处理等多个维度,提高样本分析的效率。

如何全面分析各种类型样本文件

由于恶意样本的形态多种多样,因此各种不同平台、不同系统、不同功能的软件都可能成为攻击的目标,同时,不同形态、不同格式的文件也可能是攻击的载体,因此,沙箱系统要全面支持各种形态的样本的动态分析是巨大的挑战。
为此,天穹沙箱系统提供了针对不同硬件架构、不同操作系统、不同应用软件的动态分析环境,全面支持了当前绝大多数恶意样本的沙箱分析。
另外,根据样本预分析结果,智能选择最为匹配的分析环境对样本进行动态分析,大大提高了沙箱分析的成功率。

🤔如何构建逼真的分析环境和沙箱系统

随着沙箱分析的普遍应用,越来越多的恶意样本采取了各种各样的反分析、反沙箱对抗手段。
传统沙箱系统受限于自身技术架构,分析目标与分析工具运行在同一个操作系统环境中,存在严重的检测与反检测、分析与反分析等技术竞争和沙箱对抗问题。
对此,天穹沙箱系统采用了完全不同的技术架构,将分析目标与分析工具完全隔离,两者运行在两个独立的操作系统环境之中,整个分析过程对分析目标完全透明,从而彻底解决了上述技术竞争问题,大大提高了分析环境的仿真度和分析过程的透明性。

🤔如何准确捕获样本的动态行为和执行过程

沙箱分析的准确性依赖于动态分析过程中提取的样本实际行为,传统沙箱系统主要依赖于运行在虚拟机分析环境中的代理程序,通过它收集的样本行为参数和结果进行行为分析,一旦样本通过技术手段绕过了代理程序,或者分析环境出现异常崩溃等情况,整个分析过程就会失败。
针对这一问题,得益于自身采用的独特的技术架构,天穹沙箱系统的行为数据采集不依赖于样本运行的虚拟机分析环境,因此,不存在样本绕过分析代理程序的问题,同时,分析环境崩溃等情况也不会影响动态分析过程,整个分析过程可以覆盖虚拟机启动、运行、关闭、重启等各个运行状态,从而全面分析样本在不同系统状态下的动态行为。