Group of Software Security In Progress

GoSSIP @ LoCCS.Shanghai Jiao Tong University

Cracking App Isolation on Apple: Unauthorized Cross-App Resource Access on MAC OS X and iOS

论文下载

Introduction

论文针对苹果设备上非法获取其他app的敏感数据这一状况进行了研究,发现苹果设备上诸如 keychain, 内部app通讯机制等都存在一定安全问题,通过利用这些漏洞可以获取大量app的敏 感数据。

  • XARA:unauthorized cross-app resource access
  • 每个app都在自己的分区里,并被限制了权限,这一状况称为sandbox.
  • 1,612 most popular MAC apps and 200 iOS apps
  • 88.6% 可被攻击
  • 新的对XARA的检测技术

Background

App sandboxing

  • 从 OS X 10.7.5 Lion 开始,所以被提交到 MAC APP Store 的 apps 都要求 sandboxed,除了 一些需要以native code 方式运行。
  • OS X 上有一个服务——gatekeeper 阻止不是从APP Store 或可信任开发者的app进行安装
  • iOS:程序都比较小,所以都可以 sandboxed

IPC on the Apple platforms

  • 传统UNIX机制:pipe, UNIX domain socket, shared memory
  • 苹果独有:distributed objects, NSConnection, URL schemes

XARA MENACES

所有攻击程序都上传到Apple App Stores并通过了其检测

Password Stealing

  • 针对于keychain的攻击:malware 在 target app 之前首先声明,并伪造 ACL (Access Control List)。 当 target app 使用keychain 存储密码时,会发现已经存在此项,所以会将target app创建的storage视为自己的安 全 storage,并更新密码。因此target app可以访问到该密码。
  • 要求:malware需要首先创建 keychain item.
  • iOS没有此问题,因为iOS的keychain不支持ACL

Fig

Container Cracking

MAC Store 不检测 sub-target 的 BID 是否与已有的app 或他们的sub-target的BID冲突(除了 苹果自己保留的由com.apple开头的BID,)。因此这些BID被自动加入ACL,可以访问app的 container.

iOS没有此问题,因为主程序和sub-target被放在不同的父目录下,而且被随机生成的UUIDs命 名。

IPC Interception

创建的NSConnection object 通常是以固定字符串命名的(如com.evernote.ipc.client for Evernote)

attack APP可以创建一个victim app命名的 NSConnection object,伪造成该app,进行通讯。

同理,attack app可以占用目标app常用的 WebSocket 的port,进行伪装,而Appler并没有认 证机制。

Scheme Hijacking

苹果有一系列系统schema(e.g., sms, Facetime),这些系统schema并不能被第三方app代 替,但其他schema可以(如http)。

对于不在列表中可以被代替的schema,在OS X优先bound to第一个注册的app,而在iOS上则 优先最后一个app。

MEASUREMENT AND DEFENSE

检测机制

Fig

检测结果

如 Keychain, 挑选了1612个app,有198个使用了keychain,从这198个app中随机挑选了20个进 行人工分析。其中18个可被攻击,剩余的两个todo Cloud,Contacts Sync For Google Gmail 因为更新时采用的是先删除已有的keychain items然后创建新的,免受攻击,但这种行为并不 被苹果推荐(推荐的做法是改写item)。

Fig