出于金钱的考虑:搜索和利用移动支付终端中的漏洞



卡支付变得越来越受欢迎。 移动支付终端(mPOS终端)推动了这一趋势的发展,减少了小公司和私人企业家进入卡支付市场的障碍。 而且,在某些条件下,仍可以在许多国家(包括俄罗斯)使用磁条进行操作。 新一轮的技术进步都威胁着支付生态系统。 哪些安全问题可以促进进入卡支付市场? 继续依靠旧的卡技术,特别是磁条,会给我们带来什么风险?

近年来,使用mPOS终端执行的操作数量已大大增加。 mPOS提供商之间的激烈竞争使获得这种付款终端变得异常容易。 签订合同不到五分钟,而且mPOS终端本身通常是免费提供的。 现在它们随处可见。 像常规POS终端一样,它们是支付基础架构中的最终链接。 这使它们变得有趣并且易于攻击者访问。

研究领域


我们评估了mPOS终端领先供应商的产品:PayPal,Square,iZettle和SumUp。 其中一些在世界几个地区提供服务。 由于付款过程,应用程序和设备以及安全设置因位置而异,因此我们试图尽可能访问不同地区的服务。

供应商制造商航站楼地区
正方正方非接触式终端
卡和带有Square芯片的卡(S8)
美国
正方正方磁卡端子
正方形(S4)
美国
正方正方非接触式卡和带有Square芯片的卡(S8)的端子欧洲
正方正方方型磁卡端子(S4)欧洲
正方三浦系统三浦M010美国
总结(不公开)空气1 E001欧洲
iZettle数据集永旺欧洲
贝宝三浦系统三浦M010欧洲

mPOS终端的制造商和供应商




mPOS终端

我们对设备进行了五类安全性分析:

  • 电话与支付系统服务器之间的通信;
  • 电话与mPOS终端之间的通信;
  • mPOS终端的物理保护机制;
  • 移动应用;
  • 影响安全性的其他因素,尤其是在注册过程中进行的验证。




主要研究领域

付款流程


我们彻底研究了攻击媒介和卡支付安全性问题。 我们发现的漏洞危及mPOS终端的主要功能。

mPOS与传统POS终端之间的主要区别在于,卖方并不直接与收单银行联系。 取而代之的是,mPOS提供者充当支付聚合者,向他们收取交易费。 此类支付服务不能始终保证收单银行提供的担保水平。 MPOS提供商以自己的方式将安全风险降到最低,经常将欺诈责任转移到收单银行。 重要的是要理解,这样的付款聚合商实际上是与收单行进行交互的卖方。



通过mPOS终端付款的过程

卡支付风险


卡支付有多种方法。 它们取决于支付系统,发行人和发行国家。 在交易过程中,卡会传输支持的持卡人验证方法(CVM)的列表,其中描述了支持的方法及其优先级。 如果选择的方法不起作用,CVM还规定了应该发生的情况。 终端存储配置文件,其中还描述了支持的验证方法。 终端比较这两个文件,并尝试使用第一优先级方法执行事务。 优先方法应在操作过程中高度保证持卡人在场。

显然某些付款方式比其他付款方式更安全。 用芯片卡和输入PIN码进行卡支付被认为是最安全的方法,因为它在很大程度上确保了持卡人已批准该操作。 磁条被认为是不太安全的技术,因为攻击者可以轻松地克隆磁条和存储在磁条上的Track2数据并伪造持卡人的签名。 使用磁条进行的操作无法确保交易过程中实际存在持卡人。 与支持EMV标准的卡交易不同,使用磁条进行的交易无需密码。 这意味着此类操作不能确保交易在执行期间的完整性和真实性。

采用EMV标准


根据EMV标准(Europay,Mastercard,Visa),世界上越来越多的付款是使用芯片卡进行的。 但是,在某些地区,该标准的采用要慢于其他地区。 在美国,EMV 交易不到所有交易的一半 。 大多数操作仍使用磁条进行。 在欧洲,大约90%的操作都是根据EMV标准进行的

研究成果


操作设备:发送任意命令


攻击者可以通过蓝牙连接到设备并执行任意操作。 为此,他需要有关设备上运行的蓝牙服务以及相应的特性和功能的信息。 可以在攻击之前使用反向工程获取此信息。 攻击者仅需要访问mPOS终端,支持主机控制器接口(HCI)事件日志记录的电话以及移动应用程序。 使用HCI事件的注册,攻击者将尝试获取有关mPOS终端主要功能的信息。 为此,他将使用不同的付款方式进行试验操作并比较结果。 收到必要的信息后,使用Wireshark的攻击者将分析电话与mPOS终端之间的通信。 此信息以及移动应用程序的数据,将使您可以将功能与其命令和标识符进行比较。 图5在mPOS终端的显示屏上显示消息“插入(刷卡)”。



消息“插入(刷卡)”已发送到显示器

如果未正确插入卡,则显示屏上会出现错误信息“ Please take the card”。 在HCI日志中,我们看到哪个UUID负责显示文本以及所发送数据的示例。



mPOS终端显示屏上的消息“请取卡”



第一个蓝牙程序包负责发送消息“请提起卡”



第二个蓝牙数据包负责发送消息“请拿起卡”(由于一个蓝牙低功耗数据包的最大大小较小,因此该消息分为两个数据包)。

下图显示了发送到mPOS终端的值包括五个部分。 它包括一个前缀,该前缀包含命令的标识符,已发送命令的计数器的值和有效负载的大小,ASCII字符形式的主要文本以及后缀,校验和的值和最后一个字节。



负责发送消息“请取卡”的两个软件包的元素

在以下示例中,终端使用Bluetooth Classic与电话进行通信。 我们看到消息“插入(刷卡)”已发送到终端显示屏。



mPOS终端显示屏上的消息“插入(刷卡)”



蓝牙程序包(在Wireshark窗口中),负责将消息“插入(刷卡)”发送到mPOS终端的显示屏

下图显示该数据由三部分组成:前缀,消息和校验和。 该前缀还包含计数器,命令ID和有效负载大小。 该消息包含ASCII编码的值“插入(滑动)卡”。 校验和是消息所有字节的XOR。



负责发送“插入(刷卡)”消息的软件包的元素

使用此信息,您可以创建一个任意命令,并将其发送到mPOS终端的显示屏。 我们测试的设备中有三个很容易受到这种攻击。

供应商制造商读卡器地区
总结(不公开)空气1 E001欧洲
iZettle数据集永旺欧洲
正方正方正方形(S8)美国

容易发送任意命令的终端列表。 尽管Square(S8)阅读器没有显示,但是攻击者可以发送其他任意命令。

此攻击媒介可与其他漏洞的利用结合使用,以向客户端提供不太安全的操作类型,例如磁条。 图14-16中描述了这种情况。 此外,攻击者可能会发送“付款被拒”消息,迫使持卡人进行多次交易。



持卡人试图插入卡



发送到终端显示屏的消息“请抽卡”会迫使持卡人使用磁条



操作成功-对于使用磁条的操作,必须留下签名。

假货数量


有多种方法可以拦截mPOS终端与支付系统服务器之间的流量。 我们已经描述了其中之一-在手机上记录HCI事件并分析结果。 为此,您必须启用开发人员(Android开发人员模式)。 攻击者可以采取其他路径,例如,拦截移动应用程序和支付系统服务器之间的HTTPS通信。 这是可能的,因为在大多数情况下,支付系统服务器会生成命令并将其发送到mPOS终端。 为了保护移动应用程序免受HTTPS的拦截,我们测试的所有终端供应商都使用SSL固定。

下图显示了通过两种不同方法截取的初始化付款的示例。 我们能够使用中间人攻击来拦截HTTPS流量,并且我们打开了调试模式。 交易金额以未加密形式给出。 值0100对应£1.00。



使用mPOS终端机进行的初始化付款

截获HTTPS流量后,我们可以更改交易金额。 然后,您需要重新计算校验和。 之后,我们可以将金额的更改值发送到支付系统的服务器以确认交易。 我们发现了五个易受磁条操作中的量修改影响的端子。

供应商制造商读卡器地区
总结空气1 E001欧洲
iZettle数据集永旺欧洲
正方三浦三浦M010美国
三浦三浦M010美国
贝宝
正方正方正方美国/欧洲
磁条阅读器(S4)

mPOS终端容易被伪造金额

不道德的卖家会诱骗持卡人以更大的金额确认交易。 在操作过程中,卖方在阅读器的显示屏上显示一个金额,但同时,较大的金额将发送到mPOS终端提供商进行确认。 下图显示了这种攻击。



左:发送到支付系统服务器的金额(£1.23)。 正确:持卡人看到的金额(1英镑)

此漏洞影响支持磁条操作的终端。 在操作过程中,终端仅发送加密的Track2数据; 操作本身未经认证。 如果根据EMV标准执行操作,此攻击向量将不起作用,因为在此类操作中,有关金额的信息存储在密码中。 支持传统模式(PayPass MAGSTRIPE和PayWave MSD)的非接触式PayPass和payWave付款不提供此级别的保护,因为金额信息也不受密码保护。

要了解问题的严重程度,只需回想一下,在美国,不到50%的交易是根据EMV标准进行的。 此外,通过我们在欧洲和美国的服务提供商验证的使用磁条进行的一项操作的限额非常高,分别高达50,000€和50,000 $。

通过使用对金额和货币字段的完整性的密码控制并将读取器上的操作的金额和货币与服务提供商确认的金额进行比较,可以防止这种攻击。 重要的是要注意,用于管理卡数据的存储,处理和传输的PCI DSS标准(当前版本3.2.1)在使用磁条操作的情况下不需要进行此类检查。 一项操作仅需要传输Track2数据。

远程执行代码


我们测试过的两个终端很容易受到远程代码执行的攻击。 利用此漏洞,攻击者可以完全访问终端的操作系统。 攻击者获得对操作系统的完全访问权限后,他将能够在加密之前拦截Track2数据,或者在终端键盘上启用未加密模式(发送命令)以拦截PIN码。

供应商制造商读卡器地区
正方三浦三浦M010美国
贝宝三浦三浦M010美国

易受远程代码执行影响的终端列表



Miura M010终端显示屏上的Nyan Cat视频。 远程执行代码使攻击者可以完全访问终端的操作系统

身体防护


大多数mPOS终端的物理安全机制是相当可靠的。 Square(S4)磁卡读卡器无法保证非接触式和芯片卡读卡器的安全性和技术复杂度。 但是,这应该是标准的设备要求,该要求是免费提供给卖方的。 其余终端提供适当级别的物理保护,防止篡改的支持机制以及其他防止硬件被黑客入侵的措施。

防篡改机制


防篡改系统有助于防止使用钻头和其他工具打开终端。 当您尝试断开电路时,设备将停止工作。 此外,大多数阅读器都基于专有标准进行操作。 如果无法访问开发人员的文档,则无法通过物理打开设备来获取有价值的信息。



IZettle YRWCRONE室内机



IZettle YRWCRONE篡改检测系统

结论


我们发现,超过一半的mPOS终端容易受到攻击,而总的来说,我们分析的所有mPOS终端提供商都容易受到攻击。 我们已经记录了许多严重的安全问题,特别是执行任意命令,伪造总和和执行远程代码的漏洞。
在大多数情况下,硬件终端保护机制是可靠的并已开发。 但是,其他方面,例如与移动应用程序和注册过程有关的方面,则受到的保护要少得多。

mPOS终端的开发人员强调设备注册和使用的简便性。 这些是业务模型的关键要素,但是并未考虑到减少进入卡支付市场的障碍应伴随着安全性的显着提高。 毫无疑问,卖方欺诈对于mPOS终端提供商仍然是一个严重的问题。 需要开发一种严肃的安全方法,包括在注册过程中进行验证和严格监控付款。



作者 :Lee-Ann Galloway,Timur Yunusov,Artem Ivachev,Mark Kearney,Alexey Stennikov | 积极技术

Source: https://habr.com/ru/post/zh-CN436952/


All Articles