Intersection Automata based model for Android Application Collusion

《Intersection Automata based model for Android Application Collusion》
来源:AINA 2016 (CCF B)
关键词:automata, Android, ICC Collusion Attack
摘要:
本文针对安卓中存在的基于intent的ICC Collusion Attack,使用有限状态自动机方法从组件层面进行检测。

1.针对问题:

Android 多个应用之间的互相调用和交互时存在ICC Collusion Attack

ICC Collusion Attack:两个应用之间的组件调用,但是两个应用所拥有的权限不同,因此应用A可以通过应用B可以获取不属于应用A的权限,导致权限提升问题。可以称之为组件间通信合谋攻击。

Treat Model:如下图(msgRead与msgSend应用之间存在提权攻击)所示,msgRead拥有接收短信和读取短信的权限,msgSend拥有写短信和发短信的权限,msgRead通过Intent与msgSend交互时,可能存在将短信内容通过intent发送给msgSend,导致隐私泄露。
title

2.contribution

(1) 第一个使用非确定性有限状态自动机来标识基于ICC的Intent,使用app之间的通讯和相关策略的制定来检测攻击
(2) 在组件层面分析(传统工作都基于应用或方法层面分析,不精确且应用范围小)
(3) 对21个app组合成的210对进行测试,成功检测
(4) 时间和内存都是线性的

3.Challenge

(1) App之间的ICC Collusion Attack检测比较难
(2) ICC Collusion Attack与隐式intent相关联,如何将intent与隐私泄露结合,实际上需要考虑intent-component-permission这条链。
(3) 将app行为与定制的策略相结合

4.文章方法

由于intent的发送者和接收者组件权限不相等,因此ICC Collusion Attack检测问题可以被视为字符串搜索和模式匹配问题。所以本文提出了组件层面的自动机检测方案。
该交叉自动机由两个自动机组成。提取两个app(A和B)中的调用图,如果A的组件发送一个Intent给应用B符合intent-filter的组件,则A和B之间使用边连接起来(application自动机)。检测这些边是否破坏了我们定义的安全权限策略(policy自动机)。
(1)application自动机
第一个是对app进行分析得到的Application自动机,描述函数和权限之间的关系,如图2(application自动机示意图)所示。
(1)首先提取app中的图,顶点代表所有的组件,定义intent的源组件和目标组件,边即连接源组件和目标组件。
(2)将两个app的顶点和边形成的图进行联合。
(3)减少与权限无关的边
(4)将图转换成自动机,该自动机大小为n(n是app中组件数量)。
title

(2)policy自动机
第二个自动机描述权限和隐私泄露之间的关系,Collusion attack发生是因为危险权限以一定的顺序被使用,policy自动机如图3所示。
title
最终的自动机结合了权限,函数调用和隐私泄露的policy,最终检测出ICC Collusion Attack,如图4(交叉自动机示意图)所示。
title

5.evaluation

数据来源:21个app(14app(自己设计)+ 3 app(DroidBench)+ 4app(Google Play))
两两app进行组合,总210对app组
结果:21个app之间存在发送短信,泄露位置等隐私泄露现象。实验证明自动机状态数与分析的app组件数是线性关系。