摘要
为了使开发者能安全准确地使用第三库接口,库设计者提供了各种类型的安全提示(安全规约),进而保护应用程序免受因库函数的误用而造成的安全攻击.然而,研究表明:开发者经常性不遵守这些安全规约,导致应用程序中引入了各种各样的安全漏洞.为了评估该问题的影响与规模,进行了系统性的、大规模的对安全规约在安卓应用程序中违反情况的研究.结果表明:已有的安全规约由于不精确的描述、误导性的代码示例、错误的默认设置、碎片化以及缺少强制性检查等原因而大大影响了其在实际运用中的有效性.为了使开发者能更好地遵守安全规约,提出了TipTracer,一个自动化的通用漏洞分析框架.TipTracer主要包含2个部分:1)TipTracer定义了一个能形式化描述安全规约的安全性语言,并利用该语言对已知的安全规约进行形式化表述;2)TipTracer实现了一个静态代码分析器,用于检查应用程序是否满足安全规约.最后,通过大规模的实验分析,证明了TipTracer能有效且准确地对大规模的真实应用程序进行安全性分析.
Many security vulnerabilities are caused by the unsafe use of library programming interfaces.To protect applications from security attacks,library designers provide security tips to help developers use security-sensitive APIs correctly.However,developers often fail to follow security tips,which can introduce vulnerabilities to their programs.To evaluate the scale and impact of this problem,we conduct the first systematic,large-scale study on security tips and their violations in Android apps.Our study shows that existing security tips are less effective,due to their imprecise descriptions,misleading sample code,incorrect default settings,fragmentation(scattered across different sources),and lack of compliance check.As a result,the significant portion of Android apps we analyze are found to be vulnerable.To help the security guidance better followed by app developers,we propose TipTracer,a framework for verifying Android security tips automatically and efficiently.TipTracer contains a security property language that formally describes constraints expressed in security tips and a static code analyzer that checks whether applications satisfy security tips.We demonstrate the effectiveness,efficiency and usability of TipTracer using a large set of real-world apps.
作者
张磊
杨哲慜
李明琪
杨珉
Zhang Lei;Yang Zhemin;Li Mingqi;Yang Min(Software School,Fudan University,Shanghai 201203)
出处
《计算机研究与发展》
EI
CSCD
北大核心
2019年第11期2315-2329,共15页
Journal of Computer Research and Development
基金
国家“九七三”重点基础研究发展计划项目(2015CB358800)
国家自然科学基金项目(U1636204,61602121,U1736208,61602123,U1836213,U1836210)~~
关键词
安卓安全规约
安卓应用程序
安全性质语言
静态代码分析
漏洞检测
Android security tips
Android apps
security property language
static code analyzer
vulnerability detection