学术文献阅读—移动安全(1)

1. Vetting Undesirable Behaviors in Android Apps with Permission Use Analysis(CCS’13)

1.1 题意:

审批Android应用使用权限的不良行为。

1.2 内容:

背景:Android系统采用权限机制来防止不信任的APP对受保护资源的访问,然而,一旦用户在安装APP的时候授予了相关权限,那么这个应用就具备了相关资源的访问能力,并且这种能力还是长久的。近年爆出更多的Android应用具有不良的权限使用行为,在安全对抗当中一个重要的问题就是如何更加精确的对这些APP进行分析,传统的基于系统调用的方式并不适合Android平台。
研究内容:本文提出的是VetDroid,一个动态的分析平台,该平台能够从权限使用的角度重建Android应用相关的敏感行为。VetDroid能够系统、高效的构建权限使用行为,比如应用程序如何利用权限访问敏感内容、或者系统资源,进一步应用程序又是如何利用获得的系统敏感资源的,具有这种权限的分析能力,安全研究人员能够更加容易检测应用的敏感行为。

实验效果:

VetDroid能够非常清晰的构建恶意应用的敏感行为,从而大大减轻恶意分析的工作负担。进一步分析了Google play上1249个免费的app,VetDroid能够发现更多的额外的信息泄露比TaintDroid,也就是VetDroid能够更加细粒度的分析一些造成信息泄露的原因,因此VetDroid能够帮助发现一些隐蔽的漏洞。

2. EdgeMiner: Automatically Detecting Implicit Control Flow Transitions through the Android Framework(NDSS ‘15)


2.1 题意:

通过在Android Framework层自动的检测Android应用的隐式控制流

2.2 内容:

背景:近年有大量的研究提出了通过静态数据流分析来对Android应用进行安全性分析的方法,这些研究的共同基石是依赖于对控制流的精确计算,但是由于Android应用程序框架设计的基于回调的编程模式,使得要产生精确的控制流非常困难。从分析的角度来看,回调的调用是一种由Framework推进的隐式控制流传输。现有的静态分析工具构建的控制流模型中的回调部分大多通过手工预设的列表或预设的启发式算法构建的。本项工作表面,这两种方法是不够有效的,而且恶意应用也很容易逃过检测
研究内容:
为了解决通过Framework层识别隐式控制流的问题,本文是第一次提出、实施、验证该方法的有效性。EDGEMINER静态的分析整个Android Framework自动的产生和隐式控制流相关的API摘要,分析了三中主流的Android Framework版本,in Android 4.2 识别了19,647个回调,这也表明通过手动的解决隐式回调控制的识别是不可能的,本文的实验也说明了目前主流的静态分析工具针对隐式回调控制流的识别有很多不必要和不精确的地方。比如,由于FlowDroid在识别回调控制流的不精确性,导致在分析应用的过程中遗漏了大量的隐私数据泄露途径,因此恶意应用可以利用这些分析工具的盲点刻意的规避检测,为了因对现有分析工具的缺点,本文在保证结果公开可用的情况下,并且说明了如何将本文的工作整合到现有的分析工具中去。我们的工作可以让现有的工具来全面解决回调的挑战和确定以前未被发现的泄漏隐私敏感数据

3. SecComp: Towards Practically Defending Against Component Hijacking in Android Applications

3.1 题意:

面向实际的对抗Android应用组件劫持研究

3.2 内容:

背景:在Android系统中多个APP通过组件间通信进行协作是一种基本的机制,这样带来的好处是功能的重用和数据共享,然而这种特性带来了一种称作组件劫持的攻击威胁。攻击者通过劫持受害APP中一些脆弱的组件,从而得到自身权限提升的目的,很多先前的研究针对这样的问题提出了很多解决办法,但是在现实中,组件劫持在Android的生态系统中仍然是个严重公开安全问题。
内容:在本篇文章中,作者站针对组件劫持在新的视角上提出了抵御办法。首先,要从根本阻止组件劫持威胁的发生,我们需要切换以前的研究思维倾向到一种更加积极的想法,就是首先如何帮助那些经验不丰富的开发人员正确的使用组件,为了达到这个目,我们提出了一个在APP内部实现强制访问控制的安全组件库SecComp,SecComp的一个重要的特性是能够有效的实施一系列防止组件劫持的policies,允许开发者自定义policies,同时内置的有缺省的策略。
实现效果:实现了SecComp的原型,具有非常低的performance overhead,SecComp将在不久后将会开源。

3.3 default-policies
其中 A - Activity B - BroadcastReciver S - Service P - ContentProvider
ID Policy Name scope Policy Representation result
P1 没有预先申明自定义的权限 ALL 如果a和b是不同的开发者开发的APP,而且申明的有同样的自定义权限,而且权限的保护级别是normal而不是signature deny
P2 No By-default Exported Provider P 如果a和b是不同的开发者开发的APP,并且相关的Content Provider没有申明exported属性值 deny
P3 No By-default Exported Component for Custom Intent Action A,S,B 如果a和b是不同的开发者开发的APP,并且相关的Content Provider没有申明exported属性值,并且相关的Action属性又不是系统的Action属性 deny
P4 Checking System-only Broadcasts B 如果a和b是不同的开发者开发的APP,如果存在 Action属于系统性的 Action,并且申明input action与Action的属性又不相符 deny
P5 Stopping DoS (Denial-of-Service) ALL 如果a和b是不同的开发者开发的APP,记录被调用APP的crash次数CrashNum if CrashNum >= Threshold: deny
P6 Filtering Sql Injection for Provider P 对于ContentProvider.=过滤相关的SQL Injection deny

4. FLEXDROID: Enforcing In-App Privilege Separation in Android(NDSS’16, 21-24 February 2016)

3.1 题意:

在Android应用中实施特权分离

3.2 内容:

背景:Android应用逐步增加整合第三方库来提供各种各样的特色功能,例如广告、统计分析、社交网络等等,不幸的是,整合第三方库会造成对用户隐私的冒犯,因为Android系统总是授予应用中的第三方库具有该应用所有的权限,无意的访问用户的隐私数据被低估了对用户隐私的威胁,随着第三方库越来越复杂化和加入混淆因素,使得开发者很难估计第三方库的行为的正确性。更关键的是越来越多的应用采用Java反射技术动态加载代码或者通过JNI调用本地代码库。使得安全分析变得越来越困难。
内容:针对这样的情形,本文提出了FLEXDROID—一种新的安全模型和隔离机制,提供针对第三方库动态的、细粒度的访问控制。有了FLEXDROID应用开发者不仅能够对第三方库进行完全的控制,针对第三方库定义了一种新的准则和开发了一种新的安全机制——叫做进程间的堆栈检测技术,能够针对JNI和动态代码加载。我们的可用性研究表明,开发人员可以很容易地采用FLEXDROID策略在他们现有的应用中。最后实验结果表明FLEXDROID能够有效的限制第三方库的权限,同时带来的负载几乎可以忽略不计。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值