《网上银行系统信息安全通用规范》技术解读
日期:2022年06月16日 阅:129
《网上银行系统信息安全通用规范(JR/T 0068-2020)》(以下简称《规范》)针对银行业金融机构的网上银行系统,在收集、分析评估检查中发现的网上银行系统的信息安全问题和已发生的网上银行案件的基础上,对网上银行系统的安全技术、安全管理、业务运营提出了具体的安全要求。
《规范》的发布旨在有效增强现有网上银行系统安全防范能力,促进网上银行规范、健康发展。《规范》既可作为各单位网上银行系统建设、改造升级以及开展安全检查、内部审计的安全性依据,也可作为行业主管部门、专业检测机构进行检查、检测及认证的依据。
金融行业网上银行系统面临的主要威胁包括客户端和服务端两大部分,其中:客户端(移动APP)主要面临的威胁有反编译、调试、篡改/重打包、输入记录、组件安全、注入和Hook、本地敏感数据泄露等;服务端主要面临的威胁有敏感信息泄露、任意文件读取、任意文件上传、SQL注入、未授权访问、跨站脚本攻击、关键逻辑判断前端验证等。
(一)总体框架
《规范》从安全技术规范、安全管理规范、业务运营安全规范三个层面分别展开,在网络通信安全、服务器端安全、与外部系统连接安全、客户端安全、专用安全机制等方面为网上银行系统建设、运营及测评提供了重要依据。
总体框架
主要内容
适用范围
《规范》适用于中华人民共和国境内设立的商业银行等银行业金融机构所运营的网上银行系统,其他 金融机构提供网上金融服务的业务系统宜参照本标准执行。
(二)客户端安全防护
《规范》强调了客户端程序、客户端环境安全。其中客户端程序需要在开发设计时注意第三方组件的选型,通过签名等技术确保客户下载到的软件是可信任的、完整的版本,并对仿冒渠道进行监测与处置。
金融机构应通过有效技术手段检测客户端软件常见的代码注入、缓冲区溢出等各类安全风险,保证客户端自身安全性。严格控制源代码安全,对应用程序进行源代码管理及加固。客户端应用软件在输入账户登录密码、银行卡支付密码和网络支付交易密码等认证信息时采用了替换输入框原文、逐字符加密、字符加密、防范键盘窃听、自定义软键盘,或者通过其他方式保证攻击测试无法获取输入信息的明文作为通过标准。应支持通过 IPv6 连接访问网络服务,收集客户信息前应明确目的、方式、范围并获得客户同意。退出阶段应保证运行或残留数据的可控清除。
《规范》在客户端环境安全要求中,主要定义了程序在使用过程中的运行环境安全,包括可信输入能力、可信输出能力、可信通讯能力、可信存储能力和可信计算能力。
(三)专用安全机制
在专用安全机制方面,《规范》强调了利用智能密码钥匙、文件证书、动态口令令牌、短信验证码、生物特征等方法。网上银行系统在使用密码算法时应符合国家密码主管部门的要求,在支付敏感信息加密及传输、数字证书签名及验签等环节宜支持并优先使用国产系列密码算法(SM算法)。短信验证码的使用应严格定义失效时间、错误次数及验证码长度,通过有效检查手段查看短信验证码是否存在逻辑缺陷如短信定向转发、短信验证码绕过、短信炸弹、短信内容任意编辑等问题,同时还要求对短信验证码要进行加密处理,确保短信验证码的机密性和完整性。
(四)网络通信安全
《规范》强调了通讯协议、安全认证、通信链路的安全。重点关注身份的真实性、链路的安全性和交易数据的安全性;在会话建立和交易发起前,应采用有效的双向身份证书校验,验证证书的合法性,通信过程应设置偏移向量使其每次通信采用不同的密钥对通信链路进行加密;对于敏感数据,应实现报文级别的加密,防止数据的被窃听或篡改。
(五)服务器端安全
对网上银行系统的服务器端,《规范》强调了等级保护要求、安全通信网络、安全计算环境、 虚拟机安全;应关注服务器端安全的可能内部风险,测试环境等边缘系统的安全性建设,API的安全性,加强防钓鱼建设,保障用户网上银行使用的安全性,服务器后台数据安全,如数据库访问的审计,传输加密等,数据的备份等。
(六)与外部系统连接安全
在与外部系统连接方面,《规范》强调了传输安全、数据安全。其中数据传输则是以针对不同场景的安全防护能力作为通过标准,包括应用层数据的机密性、完整性不可抵赖性,传输层数据的机密性、传输协议安全及证书双向校验,需要对金融客户端进行逐一的渗透测试以检查薄弱点。
(一)加强程序自身安全及环境检查能力
在程序开发阶段,金融机构应对其开发框架和技术路线进行严格的论证,基于应用功能设计和安全需求,以及应用安全基线标准,为程序提供自身安全性。对于应用程序普遍存在的破解、篡改等各类安全风险,需要提供应用加固技术手段。严格控制源代码安全,对应用程序进行源代码安全加固。
客户端环境安全应提供可信的信息输入安全,包括敏感信息加密、秘密复杂度设置等;对数字证书、客户敏感信息、密钥信息的生成、存储、使用需要借助SE(安全单元)、TEE(可信执行环境)技术,确保其安全,提供信息的可信存储能力;特别是对移动设备运行环境的安全,要求对客户端的病毒、木马等风险进行有效识别,将分析结果实时反馈,提供终端的威胁态势感知能力。
如图所示:检测到运行环境不安全
(二)采用国密算法及动态安全口令等专用安全机制
采用国密算法,如SM3、SM4。根据《移动终端支付可信环境技术规范(JR/T0156-2017)》,移动终端支付可信环境包括REE(富执行环境),TEE与SE三部分应用运行环境,并共存于同一终端上,根据终端提供的硬件隔离机制,分别拥有各自所属的硬件资源。根据金融机构业务特性,移动终端可信应借助TEE或SE技术来实现对于身份验证,识别功能的实现,防止验证过程被恶意干预而导致的验证结果不可信。对短信验证码的安全进行保护,如短信验证码加密。
(三)采用安全传输协议及有效的双向身份验证方式
采用安全的通信协议,在客户端程序与服务器之间建立安全的信息传输通道,如采用SSL/TLS证书、加密密钥体系,建立安全的信息传输通道。应采用有效的双向身份验证方式防止中间人攻击。支付敏感信息应加密防止敏感信息泄露。
如图所示:使用不安全的传输协议SSLv3
(四)加强服务端安全,防网络钓鱼及强化数据库管理
内部用户安全意识不足或管理技术手段的缺失,很有可能让服务安全防护功亏一篑。应对服务端可能存在的漏洞进行有效识别如SQL注入、信息泄露、未授权访问、任意文件下载、跨站脚本攻击、文件上传等。
金融机构要对API进行统一管理。具体的管理方法和管理标准,金融机构可以参考全国金融标准化技术委员会发布的《商业银行应用程序接口安全管理规范》。该《规范》规定了商业银行应用程序接口的类型与安全级别、安全设计、安全部署、安全集成、安全运维、服务终止与系统下线、安全管理等安全技术与安全保障要求。
防钓鱼建设是金融机构用户关怀很重要的一个方面,除了采用传统的防钓鱼监测这种被动的模式进行钓鱼网站防范外,金融机构也可以采用客户个性化界面,预留信息显示,验证等方式来帮助用户识别非法的钓鱼网站。
应对操作系统和数据库系统特权用户进行权限分离,数据库管理员只具备数据库权限。定期对异常登录、操作进行审计。具备数据本地备份域恢复等能力。
如图所示:存在跨站脚本攻击
(五)加强本地数据及传输安全
检测传输协议是否安全及程序中是否存在相关的残留信息,如测试内网信息、测试页面、私钥证书、管理员账号信息等。此类信息泄露可能造成数据泄露和系统入侵。检测设备中程序对应的数据文件夹是否包含敏感数据。由于设备可以进行越狱,且越狱之后数据不会丢失,则导致本地存储敏感信息面临较大风险。建议删除对应的数据残留,对数据文件夹中的敏感信息进行加密处理。
如图所示:数据残留导致敏感信息泄露
作者简介
王志超,谷安天下金融审计负责人,10多年的信息安全、科技风险、科技审计、业务连续性、科技外包、数据治理、金融科技等咨询及审计服务经验,获得CISA、COBIT、CDPSE、CCSK、TOGAF、ISO22301 LI等证书,熟悉银行业、保险业、证券业、大型央企的科技管理风险与应对措施,对科技外包、业务连续性、数据治理、大数据、人工智能、数字化转型等领域均有着较为深入的研究,多次与银行共同参与银保监会组织的信息科技风险管理课题研究,并获得多个奖项。
朱隆国,谷安天下高级技术顾问,从事安全行业5年,熟悉配置合规检查、漏洞扫描、渗透测试、Android/IOS客户端安全测试、接口安全测试等。获得CISSP资质认证,具有较强的攻防实战经验,多次参与金融行业网络攻防重大保障活动。