1 概述
依据《电子银行业务管理办法》的相关规定:
电子银行安全评估是金融机构开办或持续经营电子银行业务的必要条件,也是金融机构电子银行业务风险管理与监管的重要手段。
金融机构应按照中国银监会的有关规定,定期对电子银行系统进行安全评估,并将其作为电子银行风险管理的重要组成部分。
电子银行安全评估在国内已经成为银行机构定期开展的一项电子银行风险评估的重要工作,而渗透测试则是评估过程中必不可少的一项技术检测手段,通过渗透测试来挖掘电子银行系统中的安全漏洞及业务风险成为电子银行评估最直观的成果展示。
2 全业务流程渗透测试
电子银行全业务流程渗透测试并非一项新的技术,它只是根据电子银行系统的业务特性对渗透测试提出一个更高的要求。电子银行系统与常规业务系统相比有不同的特点:业务复杂度更高、业务渠道多、不同的电子银行渠道间有业务关联性。每个电子银行系统渗透测试结束后,银行方项目经理本身并未全程参与测试实施工作,在收到渗透测试结果后往往还会有以下疑虑:
上百个业务功能点是否都测完了?
每个业务功能点都测了什么内容?
测试人员的技术水平如何,测完后是否还会被爆出漏洞?
正是有了这些疑虑,才有了电子银行全业务流程渗透测试的需求。
2.1 测试要求
全业务流程渗透测试要求在实施渗透测试时,一是做到全业务覆盖,二是要有完整的测试过程及结果记录。全业务覆盖要求测试人员结合电子银行系统的生产环境及测试环境开展渗透测试,例如涉及大额资金交易、理财购买、贵金属交易等在生产环境中不易测试的业务要在测试环境中完成,而涉及交易短信验证、跨行身份验证、其他第三方系统关联交易的业务则在生产环境中完成,对于手机银行、直销银行等移动客户端渠道,遇到通讯请求和响应加密的情况,还需要对移动APP进行逆向hook,对加密进行还原后再进行常规业务安全和WEB安全的测试。测试人员在测试初期需要梳理电子银行系统业务流程,并在后续的测试工作中记录每一项业务的测试过程以及测试结果,作为全业务流程渗透测试的过程记录。
图1 全业务流程渗透测试记录表示例
2.2 项目难点
增加了渗透测试的人力投入。实现全业务流程渗透测试等于在完成整个电子银行系统业务测试的前提下再对每个业务开展安全测试,并且要求测试人员记录每个业务点的测试过程结果,人力投入的增加导致项目成本的提高。
要求渗透测试人员对电子银行系统业务比较熟悉,理解各项业务的目的、流程以及业务输入和输出。同时又要求测试人员有丰富的电子银行渗透测试经验,对每一项业务可能出现的漏洞点和漏洞类型都比较熟悉。
对渗透测试人员技术要求更高。由于电子银行系统除了网银这种WEB应用系统外,还有如微信银行、手机银行、微信小程序等不同业务终端类型。特别是银行机构出于安全考虑对移动银行进行了HTTP请求响应加密处理的情况下,测试人员除了WEB渗透测试技术外,还需要掌握移动APP的逆向技术,对加密算法进行分析定位,使用HOOK技术完成业务安全测试。
部分业务功能点可能由于测试环境不完善无法测试,导致出现个别业务流程在测试环境中无法完成,在生产环境下又不易达到测试条件的情况。全业务流程渗透测试对银行方的环境准备工作也要求更高。
3 电子银行系统常见漏洞
我们统计了2018年实施过的146个电子银行系统的渗透测试结果,通过漏洞类型统计后可知在电子银行系统中出现频率较高的安全漏洞如下:
3.1 业务安全漏洞
业务越权漏洞
越权漏洞包含越权查询及越权业务操作漏洞,越权查询一般发生在账户信息、交易信息、个人身份信息等信息查询类业务中;越权业务操作则常出现在转账交易、支付、信息修改等业务提交过程中。通过业务越权漏洞可以直接获取、篡改他人的账户信息、交易信息、身份信息等敏感数据,漏洞利用比较简单且不易触发安全防护系统告警,越权漏洞是目前电子银行系统中普遍存在且危害较高的安全漏洞。
异常交易金额漏洞
电子银行系统一般在前端操作界面都有对用户的输入进行合法性校验,特别是交易金额相关的参数,但部分系统仅在前端校验未在服务端执行同步数据校验;测试人员通过篡改交易数据中的金额值,使用0、负数、超小数等尝试发起交易,一旦交易成功则造成异常金额交易攻击。特别是支持负数的转账、付款交易,可直接对客户或者银行造成经济损失,危害较大。
业务流程跳过
在电子银行系统密码找回、注册验证、重要交易等业务流程中,可能涉及多个身份验证步骤或者多因素身份认证分开执行的情况,一旦服务端未对每个操作环节进行有效的关联验证,测试人员则可通过步骤跳跃的方式来绕过某些身份认证步骤,实现业务流程跳过攻击。
业务合规性安全问题
作为电子银行安全建设的参考标准,《网上银行系统信息安全通用规范》中列举的电子银行系统中用户敏感信息泄露、密码控件或密码键盘防护机制失效或者易被绕过、关键交易缺乏报文完整性校验机制失效、关键交易无法防交易重放攻击等业务合规性问题也是常见问题。
图形验证码及短信验证码安全问题
图形验证码在电子银行系统登录、关键交易操作步骤作为一项防范机器自动化批量操作的重要措施,一旦出现漏洞,可致使系统存在账号暴力破解、信息批量枚举获取、业务大量操作的风险。常见的图形验证码安全漏洞有:图形验证码可复用、图形验证码机制失效、图形验证码值明文返回等。
短信验证码作为一项身份认证的补充措施,在电子银行的注册以及重要业务操作阶段广泛使用,短信验证码常见安全问题有:短信验证码发送频率未限制、短信验证与业务验证分离、短信验证码在HTTP响应中泄露、短信验证码可被爆破、验证码未限定接收手机号码、短信验证码内容可被控制等,任何一项短信验证码的漏洞一旦被利用,轻则引来客户投诉,重则导致多因素身份认证被绕过的伪造身份操作交易。
3.2 常规WEB安全漏洞
大部分银行机构都在电子银行系统前部署有各类入侵保护系统、WEB应用防火墙等安全设备,对针对电子银行系统的常规WEB漏洞攻击利用进行拦截防护。但同时电子银行系统的高安全性要求又需要使用https协议对业务流量进行加密传输,当安全防护设备配置不当,未导入站点证书及密钥,无法对HTTPS流量进行解密,就可能导致防护失效的情况出现,这种情况下SQL注入、XSS跨站攻击便可直接执行。
SQL注入漏洞
常见于手机银行和企业网银,手机银行因为涉及http请求客户端加密,导致加密后的数据报文无法被WAF所识别,一旦开发人员使用拼接SQL语句造成SQL注入漏洞,测试人员可利用手机银行的请求加密轻松绕过WAF实现注入攻击。虽然每家银行定期都在开展电子银行安全评估项目,但在多家银行的企业网银中还是发现有SQL注入漏洞。或许是由于企业网银业务最为复杂繁多,导致之前的安全测试人员无法对业务进行一一测试,导致SQL注入漏洞的遗漏。
XSS跨站脚本攻击
在个人网银、直销银行、企业网银中常出现有XSS跨站脚本攻击漏洞,大部分情况下是因为银行在上新业务时由于开发人员的疏忽未在该业务功能代码上增加已有的XSS全局过滤规则。但鉴于电子银行系统重要操作基本都需要双因素身份认证,管理后台都对外网隔离,利用XSS跨站脚本攻击漏洞对网银客户和银行管理员进行攻击的可能性较低,相对漏洞风险更低些。
敏感信息泄露
常见的敏感信息泄露有:开发测试程序未在生产环境中及时删除导致系统信息泄露,在业务HTTP响应中返回多余的敏感数据。甚至有电子银行系统将用户的支付密码、登录密码hash等信息在业务查询操作中返回至浏览器。
任意文件下载漏洞
该漏洞常出现在企业网银中的文档下载、模板下载、对账单下载等下载功能中,通过目录跳转的方式可利用该漏洞下载服务器的重要配置信息,对服务器安全造成威胁。
WEB中间件导致的安全漏洞
中间件管理后台弱口令、中间件命令执行漏洞、中间件示例程序和管理后台未删除是常见的一类安全漏洞,由于银行系统管理员未能及时在WEB中间件出现0day漏洞后打上安全补丁,可能直接导致系统被入侵,如近期刚曝光的weblogic反序列化命令执行漏洞(CVE-2019-2725)。
施明明,拥有12年渗透测试工作经验,目前专注于金融行业信息系统渗透测试、金融移动APP安全检测工作。实施过113家国有银行、全国性股份制银行、城商行的信息系统渗透测试,在电子银行业务安全检测、移动APP安全检测领域有着丰富的实践经验。
声明:本文来自中金网安,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。