SCLib:一种实用的轻量级Android组件劫持防御机制
SCLib: A Practical and Lightweight Defense against Component Hijacking in Android Applications
摘要:
通过组件间通信实现的跨应用协作是Android上的一种基本机制。虽然它带来了功能重用和数据共享等好处,但也带来了一种称为组件劫持的威胁。通过劫持受害者应用程序中的易受攻击组件,攻击应用程序可以升级其最初禁止的操作权限。已经进行了许多先前的研究来理解和缓解这个问题,但是没有在野外部署防御,主要是由于部署困难和性能问题。在本文中,我们提出了SCLib,一个安全的组件库,代表应用程序组件执行应用程序内的强制访问控制。它不需要像以前的作品那样修改固件或重新打包应用程序。基于库的性质也使SCLib更容易被应用程序开发人员访问,并使他们能够在碎片化的Android设备上首先生成安全的组件。作为概念验证,我们设计了六个强制性策略,并克服了独特的实施挑战,以减轻来自系统弱点和常见开发人员错误的攻击。我们使用10个知名开源应用程序进行的评估表明,SCLib可以保护35个风险组件,代码占用量可以忽略不计(小于0.3%的存根代码),并且几乎不会影响正常的应用程序内通信。阻止攻击的最差性能开销约为5%。
英文摘要:
Cross-app collaboration via inter-component communication is a fundamental mechanism on Android. Although it brings the benefits such as functionality reuse and data sharing, a threat called component hijacking is also introduced. By hijacking a vulnerable component in victim apps, an attack app can escalate its privilege for operations originally prohibited. Many prior studies have been performed to understand and mitigate this issue, but no defense is being deployed in the wild, largely due to the deployment difficulties and performance concerns. In this paper we present SCLib, a secure component library that performs in-app mandatory access control on behalf of app components. It does not require firmware modification or app repackaging as in previous works. The library-based nature also makes SCLib more accessible to app developers, and enables them produce secure components in the first place over fragmented Android devices. As a proof of concept, we design six mandatory policies and overcome unique implementation challenges to mitigate attacks originated from both system weaknesses and common developer mistakes. Our evaluation using ten high-profile open source apps shows that SCLib can protect their 35 risky components with negligible code footprint (less than 0.3% stub code) and nearly no slowdown to normal intra-app communications. The worst-case performance overhead to stop attacks is about 5%.
机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。