一、前言

银联卡支付信息安全合规评估,是指适用《银联卡支付信息安全管理标准》(银联风管委[2018]3号)的机构通过聘请中国银联风险管理委员会授权的银联卡支付信息安全合规评估机构,履行合规义务,以确认符合《银联卡支付信息安全管理标准》要求的过程,该标准简称UPDSS。

《银联卡支付信息安全管理标准》明确规定了 “涉及支付信息的web应用应至少具备以下攻击的防范能力,暴力破解、重放攻击、注入攻击、跨站脚本攻击、网页仿冒、越权等”。被评估机构应至少每年执行一次外部渗透测试,外部渗透测试应由中国银联授权的第三方专业化检测机构执行。

因此,在UPDSS评估工作中,应用系统安全性测试是其中的重要一环。众所周知,传统的渗透测试分为白盒测试和黑盒测试。白盒测试,是指渗透测试人员在客户授权,且拥有尽可能多的客户资产信息的情况下进行的测试。黑盒测试在不了解客户资产信息的条件下进行,测试人员模拟一次完整的攻击过程,对技术能力要求更高。而UPDSS工作中的渗透测试与前两者又不尽相同,UPDSS工作检测的重点仅限于涉及支付信息的WEB应用。接下来我们以一个实际案例为样板,就常见典型应用安全问题进行分析说明。

二、测试案例与测评原则

某web应用系统(登录页面见图1),实际测试发现其登录密码未做密码长度及复杂度的校验,使用单因素进行身份认证登录,它可能存在什么风险呢?没错!第一反应,肯定是暴力破解漏洞。

图1 某web应用系统登录界面

接下来笔者对该问题进行验证,本次测试过程使用的工具为Burp suite。暴力破解因场景、协议、认证方式的不同,所采用的破解方法也不尽相同。爆破的时候在四种模式中选择了Sniper(狙击手模式),针对单一密码进行爆破,字典强大的话也可以选择双参数同时爆破。Burp的专业版提供了很多payload,比如快速的FUZZ字典,A-Z,0-9字典等,笔者试了下自己的弱口令字典,通过Length长度判断,爆破成功(见图2)。

图2 爆破成功的登录密码

针对此漏洞,提出如下修复建议:

1) 对密码的长度以及复杂度进行设置,密码以字母、数字与特殊字符组成,密码长度最少为8位;

2)不要明文传输账号密码,使用安全的加密算法对账号密码进行加密处理;

3)增加验证码,验证码采用后台刷新机制。(一定要设置验证码的失效时间,或者限制单位时间内验证码的失败输入次数,否则也会存在对验证码的暴力破解攻击)。

接下来我们用爆破出来的用户信息登录到后台看看,常规操作,在添加用户这里输入

    payload <a herf=”” onclick=”alert(100)”>xss</a>

    发现敏感字符,特殊标签未被进行处理,会存储至数据库,造成存储型XSS漏洞,见图3。

    图3 web应用系统存储型XSS漏洞

    解决存储型XSS最有效的方法,就是编写拦截过滤器对表单提交的数据进行过滤处理。

    根据以上情况看,此系统存在的应用安全问题着实不少,是一个比较“脆弱”的系统,而举例的两个漏洞又是比较常见和典型的。如果是部署于内网环境,且网络隔离做的非常好的情况,渗透其实是很难的,需要拿到一个权限比较高的跳板机,或者拿到路由的权限,修改掉访问策略方可进一步渗透,然而实际情况是,此系统部署在公网,安全措施又做的不够好,存在的风险问题相当大。

    以上是对UPDSS评估工作中,应用系统安全性测试常见典型应用安全问题。对于应用系统安全性测试人员,个人建议在工作中应当遵循以下原则:

    1)在客户授权的前提下开展工作,不对未经授权的系统进行测试;

    2)对客户的测试系统进行测试,避免因为意外操作而影响客户业务的正常运转;

    3)测试过程应当科学规范,严格遵循测试流程,保障系统的稳定性和安全性;

    4)对客户提供的信息进行保密,不对外泄露客户的测试信息。

    三、总结

    本文简述了UPDSS评估工作中,应用系统安全性测试常见典型应用安全问题以及应用系统安全性测试人员在工作中应当遵循的一些重要原则。今天的系统安全了,明天未必安全,信息安全工作任重而道远,需要大家长时间地、不容懈怠地进行下去。

    郑楠,信息安全工程师,注册信息安全专业人员,3年信息安全工作经验,目前专注于银联卡支付信息安全合规评估工作、系统安全检测工作。作者邮箱:zhengnan@cfca.com.cn,欢迎大家提出宝贵的建议

    声明:本文来自网安前哨,版权归作者所有。文章内容仅代表作者独立观点,不代表安全内参立场,转载目的在于传递更多信息。如有侵权,请联系 anquanneican@163.com。