现如今,手机和移动应用程序在我们生活中扮演着重要的角色,我们不再只是用它来打电话和收发短信,还用来预定航班、医院挂号、网上购物等等。移动应用在银行业和金融行业的应用使得信息的机密性变得更为重要,因为移动应用程序中的安全漏洞可能导致数据窃取,IP盗窃,未经授权的访问和欺诈。
近日,浙江松阳警方侦破一起特大侵犯公民个人信息案件,共查获7亿余条个人信息,共370余G的电子数据,这些数据包括孕检、车主、银行、金融等个人信息。从这起案件中我们不难看出移动应用的安全已经是迫在眉睫,不完善的安全性不仅会导致客户不满意,甚至还会造成大量的个人信息泄露。
那么移动应用程序究竟面临着哪些方面的挑战呢?
图片来源于dzone
1.设备碎片
移动应用测试需要覆盖具有不同功能、特征和限制的多种移动设备,所以识别设备特有的安全漏洞就成为了一项艰巨的任务。测试团队无法像开发团队一样快速迭代测试版本,慢慢这一问题就成为了发布过程中的瓶颈,同时也导致了低质量的应用程序的产生。
大多数应用程序都是在iOS,Android或Windows环境中生产的,还有一些应用程序是跨平台的,但是每个操作系统都有不同的漏洞,且不同版本漏洞也会有所不同,所以对于每个版本的测试是非常耗时的,对于测试人员的要求也会很高。
2.移动自动化测试工具
纯人工的测试在这个信息化时代显然是不合理的,因此我们需要合理使用自动化测试工具。传统测试工具,如Selenium或QuickTest Professional(QTP)无法满足跨平台的要求。
由于移动应用和Web应用的自动化工具是不同的,所以市面上有很多用于移动设备的自动化测试工具,但工具虽多,却缺乏完整标准的工具。目前常见的移动自动化测试工具是Appium,Robotium和Ranorex。
3.加密薄弱
移动应用可以接收来自各种来源的数据,在没有足够加密的情况下,攻击者可以修改cookies和环境变量等输入。当基于这些输入的值进行鉴定和授权决策时,攻击者可以绕过安全性。
之前,星巴克手机移动软件遭到黑客攻击,星巴克账号内的余额遭到盗用。据悉,星巴克把用户的注册名、密码以及其他个人信息直接保存在没有加密的文本里。这意味着,就算不知道手机的个人识别码,黑客也能通过把手机接入电脑,轻易恢复遗失手机中的用户信息。
4.弱主机控制
首次创建移动应用程序时,企业经常会暴露之前无法访问外部网络的服务器端系统,所以应用程序托管的服务器应具有防止未经授权的用户访问数据的安全措施,这其中包括企业自己的服务器,以及应用程序可能访问的任何第三方系统的服务器。
防止恶意攻击,后端服务是重要的,所以要验证所有API,并采取适当的安全方法确保只有授权人员可以访问。
5.不安全的数据存储
很多受欢迎的应用中,消费者只需在应用付款时输入密码即可,平时在浏览应用时,无需重新输入用户名和密码。在这种情况下,用户数据应该是安全的,用户名、电子邮件地址和密码都应该是被加密的。
例如,在2012年Skype数据安全惊现漏洞,黑客可以打开Skype应用程序,并使用电子邮件内容中的简单链接拨打电话号码。所以联系人的详细信息、密码和信用卡号码等关键信息最好不要直接放在设备上,如果一定要存储在设备上,那么必须安全地存储。
企业在进行应用程序的开发过程中一定要定义标准的安全实践,确保移动应用在以下几个方面的安全:
数据:应用程序如何获取和显示数据?
网络:应用程序如何访问网络?
设备:设备丢失或盗窃之后有何措施?
应用程序:应用程序编码的安全有效?
企业应该将移动应用战略提升到一个高度,以提高移动开发人员在应用程序设计时对安全性后果的思考,如果企业将客户的数据置于风险之中,那么不只会降低品牌价值,甚至会引起更严重的后果。