几维资讯> 行业资讯

金融行业移动App安全标准化建设研究

几维安全 2019-02-27 14:25:44   1871
分享到:

随着移动互联网的广泛应用,移动金融服务迎来了爆发式增长的时代,打破了传统金融服务在空间和时间上的限制,根据《中国互联网络发展状况统计报告》统计可知,截止2017年12月,我国使用网上支付的用户规模达到 5.31亿,较2016年底增加5661万人,年增长率为11.9%,使用率达68.8%。根据《2017支付体系运行总体情况》统计可知,2017年,银行业金融机构共处理电子支付业务1 525.80亿笔,金额2 419.20万亿元,较2016年均有不同程度的增长。

在移动互联网时代,移动金融在生活中扮演着越来越重要的角色,移动金融正以前所未有的速度改变着人们的工作和生活方式,移动金融将成为连接客户的主要渠道,并成为客户源的主要入口和数据采集入口,移动金融是决定金融市场成败的关键因素。

移动金融APP安全概述

移动金融给人们的生活带来了极大的便利,但是随着移动金融市场的需求快速增长,移动金融APP的开发与应用也是成几何级数量递增,移动金融APP在没有安全防范意识和安全开发规范的限制下迅速发展,在APP应用安全性方面的缺失直接成为阻碍移动金融前进的主要原因。

于是我们可以看到,近几年针对移动金融APP的攻击持续不断,逆向破解、病毒植入、仿冒侵权、信息截取等攻击给移动金融行业的安全造成了极大的威胁,每年对企业造成直接经济损失高达1500亿元,严重影响了企业收益,也对用户的隐私和财产的安全造成了极大的损害。而且,黑客和黑产从业者的攻击技术和手段在快速的更新迭代,一旦我们的防御能力不能与之相匹敌,出现“道高一尺魔高一丈”的技术代差,那么“人为刀俎我为鱼肉”的悲剧将不可避免的发生。

移动金融APP安全标准化工作的意义

正是基于当前严峻的移动金融安全形势,2018年8月14日,中国人民银行办公厅下发《中国人民银行办公厅关于开展支付安全风险专项排查工作的通知》银办发〔2018〕146号(以下简称146号文),开展支付安全风险专项排查,旨在要求商业银行、非银行支付机构、清算机构等从业机构切实加强风险防控意识,提高风险防控水平,保障金融体系的健康与安全。

从全面保障移动金融网络安全的角度来看,贯彻落实146号文,开展移动金融网络安全标准化工作,是进一步夯实移动金融行业健康发展的根基,是移动金融行业切实落实《中华人民共和国网络安全法》的集中体现,对提升移动金融网络安全防护水平,保障移动金融网络安全具有重要意义。 

移动金融APP安全政策和标准

网络安全法律政策

当前国内外在围绕互联网金融相关网络安全出台的法律政策方面,已经逐渐形成繁杂细密的监管和制度体系,为互联网金融提供可实施的规范。

国外情况

欧盟GDPR

GDPR是英文“General Data Protection Regulation”的缩写,通常翻译为“通用数据保护条例”,是欧盟议会和欧盟理事会在2016年4月通过,在2018年5月开始强制实施的规定,目的在于遏制个人信息被滥用,保护个人隐私。

GDPR本质上来说是一版强制执行隐私条例,规定了企业在对用户的数据收集、存储、保护和使用时的新标准;另一方面,对于自身的数据,也给予了用户更大处理权。因为考虑到全球性是写入互联网基因内到属性,几乎所有的服务都会受到影响,所以生活照欧洲之外的人其实也会从此条例中获益。

GDPR规定了所有欧盟的公民所享有的数字生活中的权利,在欧洲,事实上也是目前世界范围内,GDPR是最完善、最严格的隐私保护规定。

国内情况

中国人民银行146文

由中国人民银行办公厅发布《关于开展支付安全风险专项排查工作的通知》(银办发〔2018〕146号),通知称为进一步加强移动支付领域网络与信息安全管理,有效防范移动支付风险,切实保障消费者合法权益,人民银行决定开展支付安全风险专项排查工作 。

移动APP安全-改-1.jpg

按照《支付安全风险专项排查列表》开展专项排查,主要内容如下:

一、针对客户端应用软件安全,排查客户端应用软件关于敏感信息、数据传输等方面存在的安全隐患;

二、针对支付系统安全管理,排查支付业务系统在系统安全、交易安全、数据保护、业务连续性、账户管理、内控管理等方面存在的问题;

三、针对支付交易安全管理,督查支付交易报文规范化改造、终端信息注册等工作落实情况,排查支付产品质量管理方面存在的不足,切实防范支付业务安全风险;

需要得到重视的是,央行往期排查主要聚焦在支付系统安全,而这一次的排查重点增加了对客户端应用软件安全的要求,客户端安全已经受到重视,未来在这方面的监管要求将越来越高。 

移动APP安全-改-2.jpg

等保2.0

等保全称为“信息系统安全等级保护”,现改为“网络安全等级保护”,是指对网络和信息系统按照重要性等级分级别保护的一种工作。安全保护等级越高,安全保护能力就越强。

这套制度标准的实施为信息系统安全开辟了一条可落地可操作的道路。不仅为各信息系统提供体系化的指导,根据各自责任落实相应技术措施,避免安全工作的不作为、或乱作为;同时为落实信息系统安全工作提供方向和依据,明确法律法规要求,让安全工作有法可依;还致力于落实保障个人信息、资金等安全,为个人隐私提供保护伞

为了配合《网络安全法》的实施,同时适应移动互联新技术发展情况下网络安全等级保护工作的开展,新标准针对共性安全保护需求提出安全通用要求,针对移动互联新技术个性安全保护需求提出安全扩展要求,形成新的网络安全等级保护基本要求标准,移动互联安全扩展要求标准如下:

移动App安全-3.png

移动金融APP安全威胁分析

Top 10 漏洞类型

(1)通信数据明文发送

客户端APP与服务器端交互的数据通过明文的通信信道传输

(2)通信数据可解密

客户端APP与服务器交互的数据传输加密,但数据依然可以被解密

(3)敏感数据本地可破解

客户端APP将敏感数据(如登录密码,手势密码等)以明文存储在本地,或加密 存储但通过逆向分析程序可以破解该数据

(4)调试信息泄露

客户端APP将开发时帮助调试的信息打印出来,这些信息通常包含一些敏感的参数,消息的明文等。

(5)敏感信息泄露

客户端APP代码中泄露敏感数据,如对称加密密钥,非对称加密中的私钥,认证使用的共享密钥,不应该被暴露的后台服务器管理地址等等。

(6)密码学误用

客户端APP代码中使用了不安全的密码学实现,例如固定硬编码的对称加密,ECB模式的对称加密,CBC模式中的IV固定,不安全的公钥进行非对称加密等。

(7)功能泄露

客户端APP中高权限等行为和功能(如发送短信,读取联系人等)没有被安全的保护,被其他无授权的应用程序调试或访问。

(8)可二次打包

客户端APP可被修改代码后,重新打包发布在市场上供用户下载

(9)可调试

客户端APP能够被调试,动态的提取,修改运行时的程序数据和逻辑

(10)代码可逆向

客户端APP的逻辑能够被轻易获取和逆向,得到代码和程序中的敏感数据

典型业务场景

应用仿冒

移动金融APP应用井喷式增长,导致市场大量金融应用堆积,种类繁多,鱼目混杂,这些应用良莠不齐,甚至有些为恶意应用。由于使用人数较多,伴随着越来越多的仿冒应用参杂其中,给用户群体造成损失也是巨大的。

应用仿冒场景中,企业版应用被恶意者反编译破解,加入恶意代码后重新打包发布,或者整个程序都是恶意代码,只是利用了一部分企业版的资源文件图片等,这类恶意程序投入市场,会严重影响其他用户的资金安全。

二次打包漏洞,通常是由于企业没有对程序代码进行安全加固,通过这种漏洞,恶意者可以获取整个程序的逻辑代码,从而进行恶意应用的伪造危害用户。

经过统计分析,大部分金融行业的APP应用存在此类问题,缺乏必要的保护措施。

协议破解

移动金融的用户数据最为真实和最为完整,为保证用户数据信息不被泄露,厂商定制化了多种多样的加密协议来保护数据传输安全,在复杂的网络环境中,如果加密数据的算法被破解,那一切保护措施将形同虚设。

协议破解场景中,通常是由于客户端代码被逆向,加密算法代码逻辑信息被提取,对算法进行重构解密,这样一来,加密的数据流量就可以被解密获取。

算法重构风险,通常是由于设计者在设计算法的时候没有采用行业标准处理,或者采用了固定的密钥或者填充模式,在加上没有对核心算法代码进行保护,导致整个加密算法被逆向分析,进而导致互联网传输的加密数据被解密明文获取。

支付篡改

移动支付经过多年的发展,越来越多的商户和消费者注重移动支付设备的便捷性,在多元化的消费支付场景中,除了转账之外还有聚合二维码等方式,离线支付等便捷性带来的就是支付的安全问题,一旦在不可信的设备发生了交易,用户的资金安全时刻都处于危险之中。

支付篡改场景中,通常是由于客户端核心支付逻辑被篡改,或者是核心代码被重构导致改变了原有的支付的性质,从而实现恶意支付。

代码篡改风险,通常是由于没有对核心代码进行虚拟化处理,或者没有对程序运行环境进行检测,导致攻击者可以更改程序运行的逻辑,从而破坏支付安全。

移动金融APP安全标准化体系

移动金融的发展,符合监管是基本要求,金融机构安全标准化在加速落地,

网络安全标准化需求

根据我国移动金融行业发展的实际需求,结合上文归纳的安全威胁,移动金融APP安全影响范围涵盖了软硬件设备,系统,协议与接口以及平台等各方面,目前主要存在如下标准化需求。

1、移动平台存在系统漏洞,虽然平台本身有比较规范的安全机制,如应用权限控制;内核层通过沙箱机制 隔离不同进程的资源,并辅助独特的内存管理机制和进程间通信机制等,由于本身的开源性,推广开放等因素,这些问题一旦被攻击者利用,用户的利益将收到侵害,解决该问题需要对移动平台环境进行检测感知。

2、移动开发语言存在先天性缺陷,具有代表性的java,C#语言为了保证它们的高级特性(比如反射),程序编译过后并没有成为可运行的二进制文件,而是一种中间语言,在编译的过程中保留了源程序的绝大部分信息,只有很少的信息丢失,这样一来,中间语言可以在一定程度上反编译为程序语言,反编译出来的程序其结构和功能都是完备的;汇编语言就是使用助记符和地址标号来替代原来的二进制机器语言,减少的记忆和计算(地址可由编译程序计算),但仍有一一对应的特点,所以机器语言可以反汇编到汇编语言,具有代表的有C/C++语言,解决该问题必须对程序进行加密处理。

3、常规信息安全领域中能够直接使用的基础共性标准相对较少,缺乏针对性很强的安全需求分析方法,参考架构,概念模型等内容,故需要就解决此类问题制定支撑性等基础安全规范。

4、当前移动金融相关各类服务需要相应安全管理标准支撑。随着移动金融的的普及深入,以安全漏洞修复为代表的网络服务频率越来越高,黑客可借助此类服务通过利用签名漏洞或伪造签名等手段植入相应后门,从而进行资金诈骗;为防范此类安全风险,除了加固相 应安全功能外,还应对服务管理提出相应安全要求,包括在服务平台层面,并且安全事件不可避免的发生后应急响应管理同样需要标准化指引。

5、针对移动金融APP的安全测评类测试标准缺少,常规的风险评估测试标准并不完全适用。目前常规的自动化检测平台只能判断APP是否采用了加固手段,无法判断加固手段的强弱以及其产品性能,需要采用更深层次的测试标准来验证其安全性。

体系框架图

移动App安全-4.png

标准体系内容

基于上述标准化需求分析,结合信息安全标准体系通用框架,现将移动金融APP安全标准体系框架定义为“基础通用”、“技术要求”、“服务管理”、“测评规范”四个部分,同时根据各具体标准类在内容、技术等级上的共性和区别,对四部分做进一步细分,形成内容基本完整、结构基本合理的12个子类。

基础通用

基础通用类标准主要包括防御检测、代码防护、资源加密等三个大类标准。防御检测是用来衡量APP运行环境的安全性,是保证APP在整个执行阶段的安全基础,只有基于安全可靠的环境才能按照开发者企业的意愿正常执行APP流程,为APP启动过后的业务执行提供可靠运行环境;代码保护是用于弥补开发语言先天性缺陷(反编译/反汇编),针对不同语言环境以及应对不同业务场景提供通用的安全防护和方法;资源加密应用于核心用户数据的二次加密,在防御检测的基础上升级防御手段。

技术要求

技术要求类标准主要包括设计规范,编码规范,防护规范等三类标准。设计规范标准基于软件安全架构设计的基本原则,结合应用软件通用安全需求,提供一个安全依据;编码规范标准旨在规避开发编码过程中常见的安全性问题;防护规范提供一个安全基线的配置。

服务管理

服务管理类标准主要包括漏洞修复,应急响应,平台运营等三类标准。漏洞修复标准主要是针对目前已有业务模式中存在的安全威胁提供防护方法和控制措施;应急响应标准主要是针对各类突发的安全事件的应急预案的制定和实施,以及相应维护管理要求提供支持;服务运营标准主要是针对金融APP服务运营平台的安全问题,提出相应的安全运维要求。

测评规范 

测评规范类标准主要包括风险评估、产品测评、系统测评等三类标准。风险评估类标准主要针对不同业务功能定义相应的风险评估流程、方法等内容;产品测评类、系统测评类标准 主要针对产品级、系统级两个层面的移动安全要求给出相应测试评价方法,以满足各层级厂商、测评机构和监管组织机构的需求。

分享到:



《安卓应用加密》 《Unity3D手游加密》 《源代码加密》 《移动端的KiwiVM虚拟机》