随着移动互联网的普及,企业越来越需要开发适用于多种移动平台的应用程序,从而深化其客户体验,扩展其顾客购买产品的方式方法。
对移动应用程序的这种需求推动着企业开发。但是,需要注意的是,与移动应用程序相关的风险不同于传统的企业软件。我们看到,在移动软件领域,安全性很少成为开发过程中的重要因素。
业务经理需要确保销售和IT管理人员在构建移动应用程序时能够保护客户的数据,不会向外部的攻击者打开无法预料的安全漏洞。下面,我们给出企业在开发移动应用程序之前需要考虑的八大问题:
一、移动设备上的软件风险与传统的企业软件有什么不同?
移动设备应用程序的定义决定了它存在于企业环境之外的手持设备上,如一个客户的设备。不妨设想一下这种设备被窃取,而其中的软件又被恶意人员实施了逆向工程的情况。还有,如果某人正在胡乱地修补、改变你的移动应用程序,你几乎是很难知道的。对于攻击的预防和检测,必须依赖于检测移动设备与内部服务器的交互方式上。
二、这些移动应用程序如何与内部服务器交互?
许多人将对移动安全的重视主要放在了设备的安全上。事实上,多数风险存在于移动设备与面向外部的服务器进行交互的过程中。企业的风险建模和测试方式应该反映这个现实问题。如果设备被窃取,其中的代码被逆向工程,适当水平的攻击者就可以确认接收内部请求(即移动设备发送的请求)的目标服务器。这样,服务器就必须能够承受不同的应用程序攻击和网络攻击。
三、企业内部拥有管理这种风险的技能和技巧吗?
由于对移动设备应用程序的需求不断增长,即使开发经验不太丰富的软件开发人员也受到企业领导的青睐。但是,企业应重视移动开发领域的内部技巧,或招聘适当的移动安全专家,用以强化移动应用程序的安全性。
四.移动代码的开发人员是否比其它开发人员更理解安全概念呢?
不幸的是,许多人的回答者否定的,但移动代码的安全问题必然会改变这种状况。如今,该领域中的许多才能都来自现实世界,来自封闭的设备开发领域。用这种才能开发的移动应用程序只能是过于粗糙,无法承受来自互联网的攻击的。而且,如果开发人员对移动环境不够熟悉,会带来一些安全隐患。
五.在完成一次会话后,能否确保机密的客户信息不留在移动设备上?
软件开发人员应当编写这样的代码:在客户已经完成浏览会话后,不准许再保留私密数据。这是因为有些移动设备易于攻击。同时,企业必须采取措施杜绝某些浏览器或操作系统绕过这些控制,要及时修补移动浏览器和操作系统的漏洞。
六.一旦与移动应用程序相关的客户数据丢失或受破坏,应部署哪些过程进行应对呢?
应当把事件响应过程设计到移动领域中,无论是内部人员还是外部人员都应如此。要以客户数据的损失情况为基础进行评估和训练。在某个严重的漏洞被暴光之时,你已经准备好断开移动设备的措施了吗?
七.什么机构(企业、设备供应商、移动操作系统供应商等)需要为安全问题负责?
在架构问题上,企业都有多种关键的依赖,如果发生了损害,谁要为环境的哪个方面负责呢,是设备、操作系统或是应用程序呢?理解这个问题有助于你管理移动应用程序的安全事件。
八.为了开发更安全的移动应用程序,需要部署哪些开发方法呢?
你要问一下这些问题:考虑到移动环境所固有的弱点,移动应用程序的开发方法是否已经发生了改变?你为移动代码制定了哪些编码标准?如何强化这些标准?经常检查这些标准吗?是否仅针对高版本的程序检查标准呢?最先进的移动开发项目必须遵循企业的标准,这样才能开发出更安全的软件。必须强化、补充这些标准,其目的是为了反映与移动应用程序有关的更复杂的威胁模式。
精明的安全管理人员都应当在开发和部署移动应用程序前就关注这些问题,而不是在开发的后期。任何企业必须尽快地定义其移动安全的策略,遏制移动应用程序给企业带来的风险。