1、支付卡安全概述
各位同学好,我是老周。在安全圈摸爬滚打十几年,经手过的支付系统漏洞少说也有上百个。今天咱们聊聊支付卡安全这个老生常谈却又常谈常新的话题。
说实话,支付卡安全是整个金融安全体系里最基础也最关键的一环。你想想看,每天全球有几十亿笔交易在跑,任何一个小漏洞都可能造成巨额损失。我见过太多因为基础安全没做好而翻车的案例了。
1.1 支付卡产业数据安全标准(PCI DSS)简介
PCI DSS,全称是Payment Card Industry Data Security Standard。说白了,就是Visa、MasterCard这些卡组织联合制定的安全规范。不遵守?那你就别想跟卡组织玩了。
这个标准现在最新的是4.0版本,但我个人习惯还是把3.2.1版本的核心要求记牢。为什么?因为基础要求基本没变过。
PCI DSS六大目标、12项要求(核心摘要)
- 目标一:构建并维护安全网络
- 要求1:安装并维护防火墙配置
- 要求2:不使用厂商默认密码
- 目标二:保护持卡人数据
- 要求3:保护存储的持卡人数据
- 要求4:加密传输中的持卡人数据
- 目标三:维护漏洞管理计划
- 要求5:使用并更新防病毒软件
- 要求6:开发并维护安全系统与应用
- 目标四:实施强访问控制
- 要求7:按业务需要限制数据访问
- 要求8:为每个用户分配唯一ID
- 要求9:限制物理访问持卡人数据
- 目标五:定期监控并测试网络
- 要求10:跟踪并监控所有网络访问
- 要求11:定期测试安全系统与流程
- 目标六:维护信息安全策略
- 要求12:制定并维护信息安全策略
我在项目中遇到过一家电商公司,他们觉得PCI DSS就是走个过场。结果呢?被黑之后发现连持卡人数据的存储都没加密,直接罚了上百万美元。嗯,这里要注意,PCI DSS不是选择题,是必答题。
1.2 常见支付卡类型与交易流程
支付卡类型其实没你想的那么复杂。主流就三种:
| 卡类型 | 特点 | 常见品牌 |
|---|---|---|
| 信用卡 | 先消费后还款,有信用额度 | Visa, MasterCard, American Express |
| 借记卡 | 直接扣账户余额,实时到账 | 银联, Visa Debit, Maestro |
| 预付卡 | 先充值后使用,不记名常见 | 礼品卡, 储值卡 |
交易流程呢?我画了个图,你们一看就明白。
这个流程看着简单,但每个环节都可能出问题。我曾经在渗透测试中发现,有些商户直接把卡号明文存在日志里,收单行那边也没做任何脱敏处理。你想想看,这要是被拖库了,后果不堪设想。
1.3 支付卡攻击面分析
攻击面这个词,说白了就是你能从哪些地方下手搞破坏。支付卡的攻击面,我习惯分成三层来看:
支付卡攻击面全景
- 第一层:物理层攻击面
- 卡片克隆(磁条数据读取)
- ATM/POS机侧录
- 卡片丢失/被盗后的非授权使用
- 第二层:网络层攻击面
- 中间人攻击(MITM)截获交易数据
- Wi-Fi钓鱼获取支付凭证
- DNS劫持重定向支付页面
- 第三层:应用层攻击面
- SQL注入获取持卡人数据库
- XSS攻击窃取会话令牌
- CSRF伪造交易请求
- API接口未授权访问
这里我重点说说应用层。为什么?因为物理层和网络层的防护相对成熟,但应用层漏洞层出不穷。我记得有一次做代码审计,发现某支付网关的退款接口居然没做签名校验。攻击者只要知道订单号,就能任意退款到自己的卡上。嗯,这种低级错误我见过不止一次。
避坑指南
我曾经在测试一个大型电商平台时,发现他们的支付回调接口只校验了HTTP Referer头。这玩意儿太容易伪造了。正确的做法是:必须使用服务端签名验证,而且签名密钥要定期轮换。
警告
千万别以为用了HTTPS就万事大吉。我见过太多案例:HTTPS加密了传输层,但应用层的数据根本没做任何保护。卡号、CVV、有效期明文传输到后端,这跟裸奔有什么区别?
最后说一句,支付卡安全不是某个单一环节的事。从持卡人输入卡号的那一刻起,到发卡行返回授权结果,每个节点都是潜在的攻击点。做渗透测试的时候,我习惯把每个环节都过一遍,不放过任何一个可能被利用的缝隙。
公众号:蓝海资料掘金营,微信deep3321