移动应用程序(app)即针对智能手机、平板电脑等移动终端设备移动连接到互联网业务而开发的应用程序。
据工业和信息化部最新发布的2015年3月份通信行业经济运行情况报告显示,目前我国移动电话用户规模近13亿,移动互联网用户规模近9亿。3月份,4G用户继续保持高速增长态势,净增超2300万,总数达1.62亿。随着移动智能终端的广泛应用,移动终端正向功能增强化、多模化、定制化、平台开放化的方向发展。在国外,已经有一半以上的企业在使用移动app,国内企业移动app的应用也越来越广泛。但是,随着移动互联网产业快速发展,企业采用自带设备(BYOD,Bring-Your-Own-Device)模式,将移动终端设备用于工作,移动app给其用户带来诸多好处的同时,相应地也带来了新的问题。如:app的开发质量参差不齐,缺乏权威的第三方测评企业;app被破解和篡改;app中夹带病毒、木马、广告吸费、后门遥控、隐私窃取等恶意代码等,损害了app开发者和使用者的合法利益。
中国软件评测中心作为国内成立最早、规模最大的专业第三方软件测评企业,针对我国移动app使用中存在的问题,搭建了中国移动互联网可信应用平台暨“利猫网”,从安全检测、安全评估、安全加固、渠道监测等方面提供移动app全生命周期的安全保障服务,降低使用移动app的安全风险、保障app开发者和使用者的合法权益。
移动app存在的问题不仅受到个人用户的关注,更受到企业用户的关注。存在安全隐患的app就像一个链条中的“最薄弱环节”,企业中使用的单一不安全设备(应用)将可能危及到整个企业的安全。为了降低企业使用移动app的安全风险,2015年1月,美国国家标准技术研究所(NIST)信息技术实验室(ITL,Information Technology Laboratory)发布的NIST SP 800-163《移动应用安全审查》,旨在帮助企业(1)了解移动应app安全审查的过程,(2)规划app审查过程的实施,(3)开发app安全需求,(4)了解app漏洞类型以及检测漏洞的方法,(5)确定某个app是否可以部署在企业的移动设备上。为企业提供了将其工作转移到诸如智能手机和平板电脑等移动终端设备时,降低移动应用安全风险的指南。鼓励企业将移动app审查包含在系统认可过程中,确保app的使用不会危及企业重要的业务系统。研究和学习NIST SP 800-163《移动应用安全审查》,将会对我们的工作提供很好的帮助和启发。
NIST SP 800-163《移动应用安全审查》中包括了以下主要内容。
App审查程序
为了帮助企业确保app符合预定义的安全要求,SP 800-163提供了app审查程序。App审查程序是一系列以确定app是否符合企业安全需求为目的的活动。应在app开发完成并分销发布后,在移动设备上部署之前,执行该程序。App审查程序不同于app软件开发生命周期中的软件保证程序,包括两个主要活动序列:app测试和app批准/拒绝。图1显示了app审查程序的主要步骤和涉及的相关参与者。
App安全需求开发
NIST SP 800-163介绍了两种类型的企业app安全需求:基本安全需求和企业相关的安全需求。
App基本安全需求,指定app为了证明其是安全的而表现出的软件特性或行为。对于一个app,是否满足或违反一个基本安全要求,由app审查程序中app测试活动期间测试app软件漏洞的分析者确定。如果分析者在app中检测到相关缺陷,则该app被认为违反了app基本安全要求。
App企业相关的安全需求,指定为了确保企业的安全状态,企业应如何使用app。对于一个app,是否满足或违反一个企业相关的安全要求,不取决于软件脆弱性的存在或不存在,不能由分析者来确定,而必须由app审查程序中app批准/拒绝活动期间将企业特定的审查准则用于该app的审核人员来确定。如果审核员认定对于一个app,企业特定的审查标准与企业相关的安全需求相冲突,则该app被认为违反了企业相关的安全需求。
App测试
NIST SP 800-163从启用经授权的功能、防止未经授权的功能、限制权限、保护敏感数据、确保app代码依赖关系安全、测试app更新等方面描述了app基本安全需求。在app的测试方法中介绍了正确性测试、app源代码或二进制码分析、静态或动态分析,以及人工或自动app测试等。给出了有关如何使用特定的分析工具测试app基本安全需求的指导,描述了app漏洞的类型和检测漏洞的方法,并提供了专门针对Android和iOS app漏洞的描述。
App批准/拒绝
在分析者进行app测试后,生成app测试报告,确定发现的软件漏洞,并对使用app的风险级别进行评估,将报告和风险评估提供给企业的一个或多个审核人员。审核人员对报告和有关问题进行审核,并将企业特定的审查准则用于app企业相关的安全需求的审核,确定app是否满足企业相关的安全需求,做出批准/拒绝app的建议提交给最终的审批人员。审批人员收到来自一个或多个审核人员描述app安全状态的意见后,参考这些信息以及其他非安全相关的评判准则,包括:预算、战略,以及任务/使命相关的准则等,做出企业批准或拒绝app的正式决定。