利用电商逻辑漏洞爆破信用卡CVV及有效期(含paper),近日,Mohammed Aamir Ali,Budi Arie以及Martin Emms等多位网络安全研究人员共同发布了一篇名为《信用卡在线支付系统是否即将成为又一互联网诈骗的重灾区》的研究报告。其中详尽阐述了当前信用卡在线支付系统存在的安全隐患、黑客实施暴力破解信用卡的攻击方式及攻击过程等问题。Mohammed Aamir Ali,Budi Arie等几位专家将在明年举行的2017 IEEE Security&Privacy大会上,向公众细细讲述这一针对信用卡的攻击方式。而在此之前,我们则可通过阅读这篇报告来先睹为快。
什么是信用卡在线支付系统?
信用卡在线支付系统,顾名思义,即用户在使用互联网购买某种商品或某种服务时,通过自己的信用卡或借记卡向商家支付费用的转账支付系统,用户将消费金额从自己的帐户转入卖家的银行帐户。
为了能够完成这一支付过程,系统要求用户在结算时,应向开户银行提供自己准确的信用卡信息(包括:持卡人姓名、预留密码、电话、以及开户银行名称等)。银行据此来判断用户身份的真实性,并对交易过程进行授权。
在转账过程中,涉及到了买家支付系统、支付软件,信用卡支付网络以及支付受理银行等多方的交易系统,如下图所示:
在线支付系统所包含的信用卡信息
由于在线支付是一种“买卖双方均不见卡”的转账方式,这就要求卖家在进行交易之前,需确认买家所提供的信用卡的真实性和有效性。因而,信用卡信息的保密性(是否只有持卡人了解相关私密信息,且并未遭到窃取)便决定了在线支付系统的安全性。在进行在线支付时,系统要求用户提供的信息为以下5类:
1. 持卡人的姓名:通常在办理信用卡时,持卡人的姓名都会被印在信用卡上。但经我们调查后发现,没有一家网站会对持卡人姓名进行查验。
2. 16位信用卡号码:开户银行对信用卡进行唯一标识认证的号码。而这16位号码有别于用户的主账户编号(PAN:Primary Account Number),它只用于信用卡的识别。而PAN则是连接信用卡与用户帐户之间的纽带。
3. 信用卡到期时间:在信用卡的正面标识有此信息。到期时间和PAN构成了用户身份验证信息的最小模块。
4.信用卡身份验证值(Card Verification Value-CVV):一个3位的数字组合,通常置于信用卡背面的磁条内,用于辨别卡片真伪。它仅限于持卡人所持有,并且不允许以任何电子方式进行保存。
5.持卡人地址:该地址不在信用卡上进行标识,有时被用于支付授权过程中,是一种身份验证的辅助手段。
针对信用卡的暴力攻击方式—分布式猜测攻击(Distributed Guessing Attack)
为了能够获得用户的信用卡信息,黑客可利用卖家的一个支付界面来猜测出用户的数据。而来自卖家发出的支付确认信息,即可对猜测的正确与否给出判断。之所以这种攻击方式能够付诸实践,原因在于两点。如果将它们分开来看,则不会对在线支付系统构成威胁。但如果将二者融合起来,则便会成为全球在线支付系统的阿克琉斯之踵。
第一,当前我们所使用的在线支付系统均不会对从不同的电商网站发出的支付请求(这些请求均来自同一张信用卡),进行安全性检测。这便意味着,即便个别网站对猜测的次数有所限制,但黑客还是可以在大量的网站上,进行无限次的猜测式攻击,直至破解出用户的信用卡信息为止。
第二,黑客可随意扩大攻击范围。这是因为不同的网络商家所提供的服务涉及不同的领域(如:日用品、家电、通话服务等等),这便给黑客留下了巨大的“施展空间”,可随意进行猜测攻击。例如:可能在某一时刻,黑客想要窃取购买智能手机的用户的信用卡信息,则他便可以对所有出售智能手机的电商网站实施监测,对那些已完成支付的用户实施猜测攻击,拿到他所想要的信息。
在经过检测了大量的电商网站之后,我们将商家所使用的数据字段大致分为了以下三类:
1. PAN+信用卡到期时间(即:最小的身份验证模块);
2. PAN+信用卡到期时间+CVV;
3. PAN+信用卡到期时间+CVV+持卡人地址;
从以上三种方式可以看出,对于用户信用卡信息的采集是层层递进的。在某些时候,如果黑客想要获取更多的私人信息,他们便会采用PAN+信用卡到期时间+CVV+持卡人地址的攻击方式,来实现更多的攻击目的。
分布式猜测攻击的模拟过程
Mohammed Aamir Ali,Budi Arie以及Martin Emms等多位安全研究人员,利用一系列的软件工具,模拟出了这种分布式猜测攻击的攻击过程。他们在实验过程中,使用到了团队成员自己的信用卡,来验证这种新型的攻击方式是否能够成功获取到该信用卡的所有私密信息。所使用到的7张信用卡均是完好的,PAN、到期时间、CVV以及持卡人地址等信息均是完整的。在调查期间,他们利用浏览器机器人在400多家电商网站上猜测用户的信用卡到期时间。这些网站包括iTunes、Google、PayPal以及Amazon等等。
(1)所用到的工具软件
我们所使用的工具有:一个浏览器机器人软件(一个用于自动猜测信用卡信息的软件)和一个在Java Selenium浏览器自动化框架下编写的脚本程序。所有的实验均是在火狐浏览器中完成的。下图是一张浏览器机器人工作状态的截图,该软件会对每一个领域的信息进行循环猜测工作,直至找出正确的信用卡信息。
(2)获取信用卡数据
生成PAN是生成信用卡其他数据的基础。我们发现,目前至少有两种已知的方法能够成功获取信用卡的PAN。一种方法是通过购买黑客在黑市上出售的信用卡信息。然而,有时这些黑客所出售的信息也是不完整的,例如:不包含PAN。而PAN还有一个特殊功能,即:可利用它来生成信用卡的到期时间、CVV和持卡人的地址。另一种方法是利用信用卡中非接触式保存关键信息的方法来获取PAN等信息。例如:黑客若使用NFC Skimming技术(近场通信),就能窃取到用户信用卡的关键信息。但出于道德角度考虑,我们没敢继续深究这种方法。因为在我们看来,这种方法已经超越了我们的道德底线,甚至是一种犯罪;并且在实验过程中,我们使用的信用卡也是自己团队成员的。
3)转移帐户余额
在实验中,我们利用提取到的信息,在印度境内创建了一个虚假的银行帐户,用于实现资金转账。在几分钟时间里,我们便收到了一封来自开户银行的确认邮件,其中证实我们的转账已完成。从“开户”到转账成功仅仅用了27分钟。在如此短的时间内,我们的这一系列操作使得银行根本无法叫停这笔资金转账。
(4)实验结果
下表给出了我们此次实验的结果。结果表明:这种分布式猜测攻击确实能够对信用卡的安全构成威胁,我们必须对此给予高度重视。
结论
为了防止遭到这种暴力攻击,银行业以及相关机构须立即细化信用卡保护措施标准以及集中管理制度。(现在一些在线支付网络服务公司已经开始提供这项保护了)。保护措施标准化意味着全球所有的商家都必须使用统一的支付接口,(当然这指的是相同服务领域的商家),这就给攻击者扩大攻击范围增加了难度。集中式管理的实现,需要以一个完整的支付流程图为基础。它必须覆盖整个支付过程的所有细节,包括:支付网关、支付网络等。保护措施细化和集中式管理,二者缺一不可,相辅相成,对维护用户信用卡信息的安全,有着至关重要的作用。