作者:新思科技软件质量与安全部门资深策略策划师Taylor Armerding
打开智能手机,我们可以进行支付、聊天、付款、叫外卖、打车、购物、医院挂号等等,现代人的生活似乎已经离不开这些各式各样的应用软件了。与此同时,功能越来越丰富的背后也隐藏着隐患,危害到用户的信息安全和财产安全。
人们每天携带的移动设备里安装了很多应用程序,但这些应用程序仍然缺乏强健的安全性。为什么会存在这样的问题呢?研发人员又该如何解决?
手机应用程序(APP)带来了极大的便利,改变了通信方式,体现了人类无穷的创造力。使用智能手机,扫一扫就能购买到食物、衣服或者其它物品;你可以手机支付、和朋友聊天、远程和亲人视频;可以记录运动数据、拍摄视频和照片;还可以收听节目、音乐,当手电筒或者给吉他调音。
但是,同时APP可能将你的个人信息、医疗记录或者财务信息都泄露给黑客。这会导致不法分子盗用你的银行账户、暴漏隐私,足以让你的生活不得安宁。
这全部或者大部分归咎于大多数APP开发人员将时间和金钱用在附加的功能上,而不注重保护客户隐私。这些APP功能丰富,但安全性较差。
现在,数十亿人随身携带着虚拟数据炸弹,每人的口袋里有数十枚炸弹。APP分析和APP市场数据权威机构App Annie 指出平均来说,智能手机用户在手机上安装了60至90个APP,每月大约使用30个APP,每天启动9个APP。
那需要采取什么措施以改变当前的困境?或许用户需要安全性更高的APP。但现实是消费者还没有想要为安全性更高的手机支付更高费用的意向。将来也很难讲。
Positive Technologies公司一份研究报告指出:手机APP带来的是高风险的便利。这也不足为奇。
该公司研究了17款手机APP,发现43%的安卓应用程序和38%的iOS应用程序中发现了高风险漏洞。
报告还发现:
– 不安全的数据存储是最常见的问题,这在76%的移动应用程序中都有发现。不安全的数据存储会将密码、财务信息、个人数据和通信暴露在风险中。
– 通过恶意软件,89%的漏洞可以被黑客利用。这意味着黑客几乎不需要访问智能手机就能窃取数据。
– 大多数漏洞是由安全机制漏洞导致的,不仅是APP本身,而且是服务器上的漏洞。服务器由开发人员托管并与APP进行通信。研究人员在74%的iOS应用程序和57%的安卓应用程序中发现了这样的漏洞,其中42%的服务器端组件存在这种漏洞。
由于此类漏洞会在设计阶段扩大,因此修复它们需要对代码进行重大修改。
同时,用户的疏忽也是造成安全隐患的很大原因。报告称:“很多网络攻击都是由于用户的疏忽大意。升级特权或者下载软件的时候可能让恶意攻击有机可乘。”
为什么手机APP会如此不安全呢?
这个问题的答案与APP盛行的原因几乎一致。新思科技高级安全策略师Jonathan Knudsen指出,也并不只是手机APP存在各种漏洞。他说:“所有行业使用的各种类型的软件都有相似的挑战。迫于要在尽可能低的预算和最短的时间内开发出功能的压力,开发团队通常都专注在功能上。但不幸的是,安全往往会被忽略,直到灾难性事件发生后才不得不重视起来。”
为尽早获利而牺牲安全
即使新闻总有报道信息泄露的消息,因为利益诱惑,厂商还是会将其功能丰富的APP尽快推出,即使要牺牲产品的安全性也无所谓。他们优先考虑的是比竞争对手更快推出产品。
但讽刺的是,任何一位优秀的安全专家都会告诉你可靠的安全并不会拖慢开发速度,反而会提升开发速度。
部署安全性看起来耗时又昂贵。Jonathan Knudsen指出,创建安全的APP要求在软件开发生命周期(SDLC)的不同阶段执行不同的活动,例如威胁建模、静态分析和动态分析等。
为此,开发人员需要添加软件组件分析(SCA),以帮助开发人员查找和修复开源软件组件的任何漏洞或许可问题。
更容易地在手机APP里构建安全性
尽管用户在自己的移动设备上使用APP时需要对安全性承担一些责任,例如使用安全密码并且不应从不可靠的来源安装APP。Jonathan Knudsen对此表示赞同。他补充道:“但开发人员的责任更大。他们控制数据的存储方式和位置、存储的时间长短以及数据的安全性。开发人员控制身份验证如何进行,用户需要多久重新证明其身份等。”
开发人员有责任安全地开发其应用程序,时常考虑安全风险问题,并尽早将安全性构建在APP开发阶段。
###
编者注:
该文章为节选,全文请参考:https://www.synopsys.com/blogs/software-security/mobile-app-security/