镣铐之舞:美团安全工程师Black Hat USA演讲

背景

2018年8月9日,全球顶级安全会议——Black Hat USA在美国拉斯维加斯的曼德勒海湾会议中心落下了帷幕,这场盛会在全球黑客心中几乎等同于“世界杯”和“奥斯卡”同样的存在。这场一年一度的盛会已经有着21年的悠久历史,也被公认为世界信息安全行业的最高盛会之一。ios

做为在国内安全领域拥有多年的实战经验和技术积累的安全团队,美团安全研究院再次受邀参加了本次盛会。在议题经过率不足20%的严苛筛选条件下,美团安全工程师Ju Zhu与小伙伴一块儿带着本次演讲的议题“Art of Dancing with Shackles: Best Practice of App Store Malware Automatic Hunting System”,荣登Black Hat USA 2018的国际舞台。算法

讲者介绍

Ju Zhu目前就任于美团基础研发平台/信息安全中心/基础研究组,拥有超过8年的安全研究经验,其中6年左右时间都在从事高级威胁相关的研究,包括0Day、nDay和漏洞挖掘等等。Ju Zhu一直致力于使用自动化系统来Hunt野外的高级威胁,曾屡次得到CVE,而且屡次受到Google、Apple、Facebook等厂商的致谢。他也屡次做为Speaker受邀参加BlackHat、CSS等国内外的顶级安全会议。数据库

议题解读

Apple的iOS系统是全部流行操做系统中最安全的系统之一,正由于如此,也是黑客重要的攻击目标和研究对象。虽然攻击难度大,但一旦成功,所得到的商业价值很是之高,因此iOS系统备受黑客“青睐”。浏览器

由于苹果的商业模式比较特别,并且iOS系统并不是开源系统,同时Apple高度重视安全,因此对iOS系统进行了周密的安全设计,这使iOS系统的安全性远超其余操做系统。安全界对于大规模自动化捕获该平台的高级威胁,一直面临困难和挑战,同时当终端用户遭受真正的APT攻击(如PEGASUS)时,防护检测解决方案也没法得到足够的权限来检测深层攻击,甚至都没法得到足够的信息。安全

本议题正是在这个方向通过深刻研究作了突破性的进展,成功设计出一套可大规模自动获取应用样本的Crawl系统,经过使用基于Raspberry Pi构建集群实现了低成本、可扩展的安全沙箱自动分析系统,最终实现了自动化收集样本并对样本进行自动化安全分析的APT攻击捕获及分析系统。服务器

首先,咱们先来看一下这个系统的总体架构。网络

系统总体架构

实际上,整个iOS恶意软件Hunt系统基本上分为两个不一样的部分:架构

  • 第一部分,是App Crawl系统,主要用于从App Store收集新发布或现有的应用程序。固然做为感染链源之一,还会收集来自第三方App Store甚至公共恶意软件存储库(例如Virus Total)的应用程序以加强咱们的恶意软件数据库。除应用程序外,其余潜在的恶意文件类型(如Profile)也是咱们的收集目标,(顺便说一句,您能够参考我在BlackHat Asia 2018中关于”野外iOS Profile攻击“的名为“Death Profile”的文章)。并发

  • 另外一部分,是沙盒分析系统,主要是动态跟踪应用程序行为,并根据规则决策引擎关联行为日志以给出最终结果。实际上,沙盒系统包含不一样的类型,包括基于Frida的iOS真实设备、ARM服务器的用户模式仿真(例如Raspberry Pi系统)以及完整的系统仿真VM。app

系统构成

具体来讲,整个系统主要由五个模块构成。

  1. 自动Crawl系统:自动化爬行及抓取各App应用市场的应用程序,包括App Store以及其余第三方市场,本系统中经过逆向分析成功的实现了自动化的用户登陆、购买及下载应用程序。
  2. App Crack系统:解密从App Store下载的应用程序,方便沙盒进行动态行为分析。
  3. 沙盒分析系统:突破传统基于真机(iOS设备)沙盒的系统设计,创新的使用了基于Raspberry Pi模式和QEMU模式,低成本、可扩展的集群方式来实现动态监控应用程序的运行行为,例如File、Network、XPC、IOKit和Profiled等。
  4. 动态跟踪行为系统:主要用来收集沙盒系统中所运行样本的各类监控行为日志。
  5. 决策引擎系统:基于开源的Nools系统,实时或非实时地根据监控日志,来判断样本行为。

那么,它们是怎么有效的运转起来的呢?

系统运行流程

  • 首先,经过自动化爬虫系统构建相应的登陆、购买、下载操做,从iTunes服务器抓取应用程序,并发送给Crack系统。以后Crack系统将解密Apple的DRM,并生成可在越狱设备和模拟器上运行的IPA文件。
  • 而后,构建IPA运行环境暨沙盒分析系统,咱们引入了两个解决方案,第一个是传统的在真正越狱设备上分析这些应用程序;第二个是创新的使用了基于Raspberry Pi的模拟器集群来运行并分析应用程序。
  • 最后,使用基于开源的Frida框架,通过定制化的开发,动态跟踪每一个IPA应用程序的行为,再经过决策引擎检查IPA是否为恶意应用,是否可能存在APT攻击。

下面,咱们将基于各个模块的分解来详谈它们的运做模式。

首先,App Store应用程序的Crawl基本能够理解为iTunes协议的灰盒逆向工程。

通过研究,咱们发如今PC主机上经过iTunes实现App Store Crawl的基本步骤包括如下几个方面:

  • 第一步,是抓取目标应用的Meta数据,例如名称、类别、大小等等。
  • 第二步,是使用Apple ID登陆,购买产品,使用iTunes受权PC端,以知足应用下载的要求,并将应用保存到本地磁盘。这里,咱们必须使用不少技巧来征服App Store的反爬机制。
  • 最后一步,是破解下载的应用程序。因为App Store上的全部应用程序都由Apple打包,这显然会阻止厂商基于安全方面的动静态分析,所以须要将目标应用程序的运行时内存转储为普通代码。

所以,基于上面的流程,咱们能够设计成如下架构。

自动Crawl & Crack系统架构

从架构图来看,该系统实现的功能,包括应用程序Meta信息Crawl、Apple ID登陆、PC受权、iOS设备受权、IPA签名和安装后的Crack。它其实是一个基于iTunes Store应用程序的自动系统。

App Meta信息Crawler负责获取应用程序详细信息,包括下载URL和价格信息。应用下载抓取工具能够经过这些网址自动下载应用。而后,这些应用程序将发送到每一个越狱设备进行解密,这将用于之后的静态和动态分析。

自动Crawl系统

对于Crawl系统,咱们能够分为三个部分来运做。

  1. App Meta信息Crawler:App Store是有区域限制的,即区域A的Apple ID没法下载区域B的应用程序。所以,针对不一样区域,咱们设计了不一样的Spider。而得到的Meta信息,包含了App ID、下载地址、图标和其余一些基本信息。
  2. App下载Crawler:经过逆向分析多个二进制文件及通信协议,构造Apple ID的登陆及购买请求,能够自动化下载与“从iTunes客户端下载的IPA文件”相同的IPA文件。
  3. 导入DRM数据:上面下载的IPA文件,其实是不能直接安装运行的,由于还缺乏一个Sinf文件,它是一个包含受权等信息的DRM数据文件。对于Apple来讲,它们只为每一个应用程序保留了一份Copy。当用户购买App时,服务器将动态生成DRM信息,并将其放入应用程序购买的响应数据中发送回来。以后iTunes或者App Store将负责把DRM数据从新打包到IPA文件中。所以,咱们仅需简单地将以前得到“Sinf数据”保存并下载到IPA文件中便可。

咱们都知道,从App Store下载的App是加密的。这样不利于咱们使用越狱设备和模拟器来分析行为,因此还须要对IPA进行解密。下面咱们说一下,Crack系统的技术要点。

App Crack系统

若是用户的账户历来没有在iOS设备上登陆过,则它购买的App是没法在该设备上运行的,即DRM保护。
若是在一台设备上,用户登陆了本身的账户,Apple会认为用户受权此设备,而使用该账户购买的一切应用程序则可安装、也可运行。可是咱们须要让这一切变得自动化。

经过逆向“设置”程序,咱们发现“StoreServices.framework”是用来管理帐户信息的,最后咱们作了一个Tweak,并配合Undocument API实现了Apple ID登陆过程。

咱们有了大量待分析的样本,下面的工做就是静态和动态分析。业界对于静态分析已经很是成熟,好比MachOView等等,这里咱们就很少介绍了。而动态分析,目前主要以基于Frida的系统居多。

Frida是一个功能强大且便携的Hook系统,支持移动(例如iOS和Android)和PC系统(例如MacOS)。更重要的是,它容许在没有配置和编译的状况下根据脚本(例如JavaScript)控制Hook点。因此说,它是目前最流行的动态分析框架系统。固然它们都必须依赖真机设备。

接下来,咱们来介绍一下传统的基于真机(iOS设备)的沙盒系统。

沙盒分析系统

传统的基于真机(iOS设备)沙盒系统

从上图来看,这种基于Frida实现真机(iOS设备)沙盒系统的工做流程主要包括如下几个方面:

  • 首先,给iOS设备配置Frida,目的是为了进行行为跟踪;
  • 而后,Frida控制器模块将在iOS设备上触发样本运行,或者其余任何操做(例如:安装配置文件,使用浏览器访问网站等),并跟踪感兴趣的系统行为;
  • 最后,将行为日志收集到主机端,该日志将成为决策引擎系统的输入,它会根据须要,实时或非实时地判断样本行为。

虽然Frida一直是App动态检测的主流,可是若是咱们须要检测大量样本或者大量Case时,则会出现严重瓶颈,由于面临大量的真机(iOS设备)投入,并且成本、扩展性都是致命问题,因此咱们创新的使用了低成本Raspberry Pi来替代它,并成功的实现了虚拟化、集群化。

基于Raspberry Pi的iOS虚拟机

在虚拟化方面,咱们实现了一个动态加载器,它能够加载iOS可执行文件,并从新实现了System Library和Framework,以保证iOS可执行文件可以正常运行等等。

这样咱们就能够轻松动态监控Mach-O的行为,并将这些日志提交给决策引擎,以肯定该应用程序是否为恶意软件,甚至是不是APT攻击的一个Chain等等。

若是但愿利用现有的服务器来运维,咱们也能够将其移植到QEMU中运行。

经过这种“低成本硬件仿真器”的设计,天天均可以自动化扫描大量的样本,从而节省了成本,并提高了可扩展性,提升了样本的检测效率。

这种高效的沙盒分析系统,必然会产生大量的分析日志,因此,咱们须要一种高性能、高实时性的规则决策引擎系统来作最后的判断处理。

决策引擎系统

Nools是一个基于Rete并使用JavaScript实现的规则引擎推理系统。它能够支持连续日志输入时的实时判断模式,并且用其编写的决策规则,具备强灵活性和可移植性,使得咱们对于样本的检测得到了高可用性。

总结

一直以来,业界对于“iOS大量样本检测实现自动化Hunt高级威胁”都没有很好的实践,而咱们已经证实了基于自动抓取、安全沙箱自动分析系统以及iOS虚拟化的高级威胁Hunt系统的可行性。而这样大量的样本检测Case和日志,也为之后咱们引入AI系统提供了必要条件。

关于美团安全

美团点评集团安所有的大多数核心开发人员,拥有多年互联网以及安全领域实践经验,不少同窗参与过大型互联网公司的安全体系建设,其中也不乏全球化安全运营人才,具有百万级IDC规模攻防对抗的经验。安所有也不乏CVE“挖掘圣手”,还有不少受邀在Black Hat等国际顶级会议发言的讲者,固然还有不少漂亮的运营妹子。

目前,美团点评安所有涉及的技术包括渗透测试、Web防御、二进制安全、内核安全、分布式开发、大数据分析、安全算法等等,同时还有全球合规与隐私保护等策略制定。咱们正在建设一套百万级IDC规模、数十万终端接入的移动办公网络自适应安全体系,这套体系构建于零信任架构之上,横跨多种云基础设施,包括网络层、虚拟化/容器层、Server 软件层(内核态/用户态)、语言虚拟机层(JVM/JS V8)、Web应用层、数据访问层等,并可以基于大数据+机器学习技术构建全自动的安全事件感知系统,努力打形成业界最前沿的内置式安全架构和纵深防护体系。

随着美团点评的高速发展,业务复杂度不断提高,安所有门面临更多的机遇和挑战。咱们但愿将更多表明业界最佳实践的安全项目落地,同时为更多的安全从业者提供一个广阔的发展平台,并提供更多在安全新兴领域不断探索的机会。

美团安全2018秋季招新开始啦!这里有数据安全、Web安全、移动安全、IT安全、渗透测试、安全研究、隐私保护合规、产品研发等十余个热门岗位欢迎你的加入,详情戳这里。简历请投至 zhaoyan17@meituan.com

相关文章
相关标签/搜索