Skip to main content
QUICK REVIEW

[论文解读] SCLib: A Practical and Lightweight Defense against Component Hijacking in Android Applications

Daoyuan Wu, Yao Cheng|arXiv (Cornell University)|Jan 13, 2018
Advanced Malware Detection Techniques参考文献 39被引用 5
一句话总结

SCLib 是一种轻量级、基于库的防御机制,通过在应用内强制实施强制访问控制来防止 Android 应用中的组件劫持攻击,无需修改固件或重新打包应用。它在 10 个开源应用中保护了 35 个高风险组件,代码开销低于 0.3%,性能下降低于 5%,实现了低运行时成本的实际安全防护。

ABSTRACT

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%.

研究动机与目标

  • 为解决 Android 中持续存在的组件劫持安全威胁,即恶意应用利用不安全的组件间通信实现权限提升的问题。
  • 克服以往防御方案需要操作系统级修改或应用重新打包的局限,从而提升实际部署可行性。
  • 提供一种实用且面向开发者的解决方案,可无缝集成到现有 Android 应用中,无需修改源代码或重新编译,仅需标准更新即可完成。
  • 在确保对系统级弱点和常见开发人员错误提供强保护的同时,将性能开销降至最低。

提出的方法

  • SCLib 实现为一个安全组件库,在应用级别强制执行强制访问控制,代表各个独立组件运行。
  • 它使用六种预定义的强制策略,检测并阻止源自系统漏洞和开发人员错误的劫持尝试。
  • 系统对 Binder 通信进行分析并验证调用者身份,用于常规应用内通信,引入的延迟极低。
  • 对于 Providers,它包含 SQL 字符串过滤机制,以防止注入攻击,性能成本可忽略不计。
  • 它在运行时执行清单文件分析和策略评估,以检测并阻止未经授权的跨应用组件访问。
  • 在最坏情况下,它会触发用户提示对话框,延迟约 10ms,确保用户知情,同时对可用性影响极小。

实验结果

研究问题

  • RQ1基于库的方法是否能有效防御 Android 中的组件劫持攻击,而无需修改操作系统或重新打包应用?
  • RQ2如何在性能开销最小的前提下,高效地将强制访问控制集成到现有 Android 应用中?
  • RQ3SCLib 对正常应用内通信以及已知劫持攻击向量的阻止效果如何?
  • RQ4SCLib 是否能同时防御系统级弱点和常见开发人员在组件配置中的错误?
  • RQ5SCLib 如何在真实 Android 应用中平衡安全性、性能与可用性?

主要发现

  • SCLib 在 10 个知名开源 Android 应用中成功保护了 35 个高风险组件,代码量增加不足 0.3%。
  • 对于正常应用内通信,Activity 的平均性能开销仅为 1.88%,Provider 的平均性能开销为 2.22%,SQL 注入过滤的性能影响可忽略不计。
  • 在最坏情况下,包括提示对话框触发在内的性能开销,Activity 约为 4.42%,Provider 约为 3.71%。
  • 清单文件分析和策略评估在最坏情况下的开销分别为 0.29ms 和 0.401ms,开销极低。
  • SCLib 的方法具有实际可部署性,仅需重新编译——这在 Android 应用更新中是常见操作——且不会破坏应用验证或兼容性。
  • 该方案有效缓解了来自系统弱点和开发人员错误的劫持攻击,重点保护最易受攻击的组件,从而最小化对可用性的影响。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。