首页 » 漏洞 » 如何黑一个无连接付费系统

如何黑一个无连接付费系统

 

分享到:

任何一个从事信息安全方面工作的人都知道一句谚语:一旦你认为你比坏人更聪明,那么你已经输掉了这场战争了。同样的,任何从事网络安全方面工作的人会比任何人都要清楚这句话所要表达的含义。无论你的解决方案多么的复杂巧妙,无论你的操作多么的安全,都会存在更加聪明和有丰富创造力的黑客攻破你的系统。

回到现实世界中,尽管我们不想承认我们的付费系统已经被攻破了,然而这一切都已经对我们的经济和声誉造成了重大的损失。所以,我们能做些什么呢?我们怎样才能预测坏人想要做什么,而不是坐以待毙呢?其中的一个答案就是设计并采用一种付费系统,将其放在一个可控环境当中,然后看看会发生什么。那么现在你应该了解了这件事情的全部过程和目的了,但是如果你仍然不清楚,你可以看看这里

2014 HackFu大会上,处于各种各样的原因,我们编写并运行了我们自己的付费系统。在这篇文章中,我们会与大家分享一下我们从中得到的一些信息,包括我们是如何设计并开发出这种技术的,在实际中如何使用,更重要的是,它是否能承受得住付费系统黑客中的精英对它的猛烈攻击。让我们开始吧,首先,我们会向大家描述我们这个系统所要实现的功能,然后我们会向大家解释系统是如何实现这些功能的。

体系构造

HackFu大会是黑客的盛会,所以我们想要在大会上让我们的付费系统去接受最前沿的黑客技术以及最棒的黑客团队的挑战。同样的,这样以来我们也能够得到一个机会去学习他们是如何对这个系统进行攻击的。我们同样也受到时间和资金方面的约束,所以我们所做的每一步都得更加的务实。因此,关于可用的设备,我们有一个后端Windows服务器,还有一些USB RFID加密器,MiFare Classic 1K RFID标签,以及一些老款的笔记本电脑可供我们使用。

我们以我们所需得到的一些目标密钥开始。首先,我们想要一个团队专注于研究付费处理的过程,而不是后端系统或网络。后者实际上是保护的重点对象,但是我们想要它们不在攻击的范围之内,或者在一定时间内攻击变得不可行。我们还需要系统在大会的48个小时期间可以被攻击,我们也需要系统存在理论逻辑上的漏洞,而且这些漏洞只能通过对问题详尽的思考以及从现实世界角度观察和验证才能够发现。

从我们对人们的行为方式以及参加HackFu大会目的的理解,我们根据这种情况,为参加的团队提出以下几点要求:

攻击成功的奖金肯定是很高的,因此如果一个团队能够盗取大量的金钱,那么他们在这个挑战中获胜的概率就会更高。

任何人因滥用系统而被抓住的话,都会对他们的团队以及个人产生严重的负面影响,这样的话就无法在比赛期间完成其他的攻击挑战了。

对系统以及安全弱点的调查研究需要对MiFare Classic RFID标签,协议,以及数据格式分析有较好的理解,所以这些都需要进行学习。

请记住,大会中还会进行很多其他的活动,这个挑战只是大会中很小的一个部分,所以发现这个系统的漏洞并对其进行攻击并不会非常的复杂。

付费方案

我们的付费系统由固定的有线基础设备组成,包括一个后端服务器和六个POS机终端,并且使用非接触技术来实现支付。这些POS终端其实是全屏运行了支付程序的Linux笔记本电脑,以及一个USB加密器和RFID读取器。大会中的每一个参赛者都会得到一个RFID腕带,它可以用来POS机终端进行交易,如下图所示。

如何黑一个无连接付费系统

如何黑一个无连接付费系统

每一个终端都以相同的方式进行安装,而且允许任何事通过已授权的RFID腕带对他们的账号信息进行查询,还可以允许他们进行转账操作。

下图现实的是解决方案的高级架构,以及大会中所使用的一个POS机终端。

如何黑一个无连接付费系统

如何黑一个无连接付费系统

POS终端都是设置好了的,它们可以与后端服务器进行通讯,我们使用了TLS协议,客户端验证以及其他网络安全控制来对通信信息进行保护。POS终端上运行的应用程序使用起来非常的简单,个人可以通过这个软件来进行支付,而不必使用到第三方的服务。

如果一个使用者仅仅只是将他的RFID腕带靠近了读取器,那么他的账户信息将会被显示出来,包括账户余额以及银行账号的详细信息。下图显示的是屏幕上可供用户选择的三个选项:

如何黑一个无连接付费系统

奖励

在2014 HackFu大会上获胜的团队是在比赛过程中得分最高的团队。所以,如果一个团队能够通过良好的商业实践方案得到了大量的奖金,那么它们便能够获得相应的奖励,但如果它们能够盗取大量的金钱,那么它们就可以接受一个更大的挑战,这就意味着他们能够获取更多的分数。在挑战中最终获胜的团队是在比赛结束时账号中金钱最多的团队。

规则

为了提供一个系统运行的真实环境,我们会为参赛队伍提供一个基础规则框架。在这个规则框架中,会规定参赛队伍哪些操作活动是允许的,以及哪些是不允许的。

比赛结果

在比赛的48个小时期间,通过这六个支付终端的交易数量总共有507项。其中总共有78个独立的现金发送者和87个独立的现金接受者,其中有98项交易是由一个人发起的。并且每一项交易的平均金额为60美金。

我们发现,大多数的交易项集中在一个10人的核心团队,交易包括大额转账等。当我们看到每一个交易的交易状态时,事情变得更加的有趣了。信息如下:

成功-383

资金不足-56

试图从金库盗取-6

无效的交易代码-27

源帐号无效-2

目的排序代码无效-24

其他-9

结论

支付系统对于黑客来说,永远都是一个有吸引力的攻击目标,在我们这次并不是非常科学的试验中,我们向大家展示了一个支付系统的漏洞,并且这些漏洞是可以被坏人利用的。然而,尽管研究是在一个游戏的背景下进行的,但我们同样能够揭露一些与现实世界的支付系统直接相关的一些信息。

然而,这项试验的结果的确能够提醒大家,复制一个支付处理环境,观察系统是如何工作的,以及采用实际方法对其进行攻击都是有可能发生的。这也是以另一种方式强调,我们必须通过正确的方法和途径来教育和培养我们保护自己的方式和方法。因此,我们清楚地意识到,HackFu大会是一个非常有效的教育途径,但我们从中得到的收获也许往往并不是我们所期待得到的。

本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接:https://hackfu.mwrinfosecurity.com/hackfu-blog/params/post/465447/how-to-hack-a-contactless-payment-system.html

原文链接:如何黑一个无连接付费系统,转载请注明来源!

0