搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 珞珈之戍 > 【择善】及时处理:支持Android 开发人员编写安全代码

【择善】及时处理:支持Android 开发人员编写安全代码

珞珈之戍 2017-11-30
【择善】及时处理:支持Android 开发人员编写安全代码

题目:A Stitch in Time:Supporting Android Developers in Writing Secure Code

会议:CCS 2017

【择善】及时处理:支持Android 开发人员编写安全代码
1

研究背景

安卓凭借自由、开源的特性成为了全球最大移动操作系统。安卓用户可以在第三方开发者那里下载超过290万个应用程序,但是,自由、宽松的开发环境也增大了用户隐私被泄露的风险。有的开发者由于经验不足,只关注代码功能而忽视其安全隐患,以及粗心大意采用未经验证的代码,这些开发者的行为,使得用户数据很容易受到泄露或攻击。尽管Android官方为用户提供了许多工具和策略来应对安全问题和管理隐私风险,但是这些并不足以防止Android应用程序的不安全。

为了支持Android开发人员编写安全代码,本文作者开发了FixDroid工具。作为Android、Android studio正式支持的集成开发环境的插件,FixDroid强调了与安全和隐私相关的代码问题,向开发者提供了解释,并提出了“快速修复”这一选项。FixDroid借鉴官方Android软件开发工具包中的Android Lint这一工具,但是避免了某些限制。

2

本文贡献

1.证明基于交互式IDE的安全审查工具在改进第三方开发人员编写代码的安全性和隐私方面的有效性;

2.根据开发人员的反馈确定此类工具的新UI需求;

3.与经验丰富的专业开发人员和经验不太丰富的学生开发人员一起评估这种工具的有效性;

4.在IDE中验证遥测的使用,以确定程序员使用FixDroid的行为。

3

目前Android开发工具存在的问题

在Android应用程序开发早期,开发人员依靠带有Android开发工具插件的Eclipse IDE 编写应用程序。2013年,谷歌发布了Android Studio,它包括代码扫描工具Android Lint,可以检测代码结构质量问题,帮助开发者提高整体代码质量,但是它也存在一些问题:

1.Android Lint 对各种警告使用相同的显示,即与安全相关的不良代码和非安全相关的不良代码以同样的方式突出显示给开发者。这样的显示可能使得开发者习惯化,无法重点突出部分警告。

2.虽然它强调了安全问题,也给开发者一定的提示,但是它没有指导开发人员将不安全的代码转换为安全的代码,如图1所示。

【择善】及时处理:支持Android 开发人员编写安全代码

图1 Lint对安全性不良做法的快速修复没有提供帮助

3.Android Lint有一个轻量级的数据流分析来检测编程问题,它能够检测到明显的安全问题,但是由于缺乏全面的数据流分析,它没有检测到更复杂的问题,如图2和图3所示。

【择善】及时处理:支持Android 开发人员编写安全代码

图2 Android Lint能够检测到返回true的不安全的主机名验证器

【择善】及时处理:支持Android 开发人员编写安全代码

图3 Android Lint无法检测到简单的不安全的主机名验证器

4

FixDroid

鉴于Android Lint中的这些局限性,本文开发一个新的工具FixDroid。FixDroid解决了Android Lint工具的局限性,并增加了了解开发者行为的功能。FixDroid的目标是在用户编写代码时向用户提供有关代码的隐私和安全影响的简单反馈。FixDroid目前涵盖从Android官方文档和现有研究测试发现的13个安全隐患,它在适当的代码行中指出了这些问题,使用“安全指示符”来吸引开发者的注意力。对于其中一些陷阱,FixDroid提供了快速修复,当快速修复不可用时,FixDroid会提供一个警告信息来描述陷阱。

【择善】及时处理:支持Android 开发人员编写安全代码

图4 FixDroid的体系结构

FixDroid的体系结构如图4所示,Inspectors是观察开发人员代码的中心组件,每当开发人员完成编写一行代码,相应的Inspectors会调用Security Resolver来检查给定的代码段是否安全。如果代码片段不安全,Inspectors会将信息转发给Telemetry Manager,同时,Inspectors会通过代码编辑器显示出不安全的代码段,并标记出不安全的代码。

5

实验研究

第一次试点实验研究找了3位Android开发者来参与研究,不过,三位开发者都没有注意到突出显示的代码,说明突出显示不安全的代码是不够的。再次设计实验,加入一个额外的安全指标,向开发者通报不安全的做法。第二次试点实验中,9位开发人员使用了FixDroid提供的快速修复,只有一位参与者顺利完成了加密任务的解决方案,其他8位参与者都生成了不安全的代码,尽管他们已经阅读了FixDroid的警告信息,说明Android中的加密API对于开发者来说有一定的难度,所以,最终在研究中加入一个加密任务的快速修复程序。

远程实验研究共有409位参与者参与,大多数人认为快速修复是有用的,如图5所示,橙色表示参与者是开发人员,蓝色表示参与者是学生,横坐标数字代表使用频率,数字越大说明使用越多。从图中可以看出,学生习惯使用更多的功能,而开发人员和学生使用最多的是警告图标和快速修复功能,学生使用突出代码显示这个功能的频率远高于开发人员,在使用警告信息这个功能的时候,学生使用频率只是略高于开发人员。

【择善】及时处理:支持Android 开发人员编写安全代码

图5 参与者使用FixDroid功能统计

6

总结

论文探讨了帮助Android开发人员编写安全代码的可能性,最后的研究证明了这种工具在提高代码生成安全性方面的有效性,这些发现表明,如果未来的Android IDE包含类似于FixDroid工具的功能,将会显著提高开发程序的安全性。

【择善】及时处理:支持Android 开发人员编写安全代码

珞珈之戍

|| 审稿:石头 ||

|| 排版:梨子 ||

【择善】及时处理:支持Android 开发人员编写安全代码

版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《【择善】及时处理:支持Android 开发人员编写安全代码》的版权归原作者「珞珈之戍」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读