Overview
应用程序开发者通常使用 security challenges
(一种升级身份验证形式)来增加应用程序的安全性。团队对在移动设备上的程序中运行现有反欺诈security challenges Boxer
进行了大规模测量研究后发现,虽然 Boxer
总体上运行良好,但它无法在以低于每秒一帧(FPS)的速度运行的设备上进行有效扫描,从而降低了使用廉价设备的用户的安全性。于是团队设计了 Daredevil
,一种新的反欺诈系统,用于扫描支付卡,并在各种性能的移动设备和硬件配置中都能很好地工作。与 Boxer
相比,Daredevil
将以低于1 FPS的速度运行的设备数量减少了一个数量级,为打击欺诈行为提供了一个更公平的系统。团队从5085444台真实设备收集数据,这些设备运行了496个真实的应用程序。
Background
Boxer
是一个在Enix Security 2020
上展示的系统,通过扫描信用卡来证明用户拥有真正的实体卡。Boxer
使用客户端机器学习来验证信用卡。然而,团队对Boxer
的测量研究,发现Boxer
在68.13%的Android
设备上扫描失败,这些设备以低于1 FPS的速度运行,较慢的帧速率使得系统处理验证的输入更少。因此,团队设计了Daredevil
,并通过信用卡扫描和验证系统来验证Daredevil
的效果。实验结果证明,Daredevil
在资源受限的硬件能够有效地运行安全模型。
Contributions
- 团队首次对基于设备的深度学习进行了大规模的实际研究。实验的研究重点是
Boxer
,一个扫描信用卡的系统。团队证明了由于硬件多样性的程度,基于深度学习的安全挑战是不同的。 - 团队在度量研究中得到了一些新的见解,如故障案例的关键原因、系统关键指标以及开发人员在设计客户端机器学习信道时应该考虑的缓解策略
- 团队设计、实施和部署了
Daredevil
,它为信用卡扫描和验证提供了强大的动力,并且可以在各种设备上运行
Measurement Study
为了衡量Boxer
的性能,团队测试了Boxer
的开源SDK,并将其提供给第三方应用程序开发人员。团队在安装了SDK的329272台Android
设备上运行,共611种Android设备类型。在安装了SDK的3175912台iOS设备上运行,共有27种iOS设备类型。
调用Boxer
时,它会启动设备相机,并提示用户将信用卡放置在相机的中心。OCR处理从相机获得的帧,并尝试从卡中提取卡号和到期日。成功后,将向用户显示卡号和有效期,SDK将扫描统计信息发送到服务器。Boxer
使用了两阶段OCR,包括一个检测阶段,用于检测信用卡图像中的数字组,以及一个识别阶段,用于从这些组中提取单个数字。Boxer
OCR成功率与Android
和iOS
上的帧速率如下图所示。每个点是特定设备类型的平均成功率和帧速率。该图显示,当使用相同的机器学习模型时,端到端成功率会随着帧率的下降而下降。
OCR是Boxer
管道中的第一个模型,用于提取前六位数(BIN)等数据,然后将其与信用卡设计等其他功能关联,以确定欺诈行为。但是,如果第一个模型无法运行,设备将被拒绝服务。Boxer
在84.7%的设备上成功运行了OCR。然而,在运行速度低于1fps的设备上,成功率仅为31.87%,这些设备占团队测量的安卓设备的44.61%。
Daredevil
为了提供平等的访问,即使是在缺乏机器学习硬件加速的资源受限设备上,Daredevil也必须尊重最终用户的隐私,并且Daredevil
必须保证准确率,以避免错误标记欺诈。团队通过以下方式改进Boxer
,展示了道德欺诈挑战的设计:
- 团队设计了一种新的快速高效的OCR,也可以在资源受限的设备上运行
- 团队提出了一个机器学习管道,将不同的模型结合起来,以提高效率
- 团队介绍了一种新的信用卡检测模型,它与卡片篡改检测协同工作,扫描卡片的两面
Threat Model
在威胁模型中,最终目标是减少金钱诈骗,同时确保所有正常用户都能通过检测。实验的重点是应用程序可以用来验证人们是否拥有真正的信用卡。团队假设攻击者盗取了信用卡凭证(例如,卡号和账单邮政编码),但没有盗取真正的信用卡实体。机器学习模型运行在客户端,在客户端,Daredevil会在设备上处理信用卡图像,然后将机器学习输出的摘要传递给服务器,并在服务器上判断扫描结果。
Architecture
图5从用户的角度展示了整个过程:
- 首先用户启动相机。
- 然后当他们把卡片放在视口的中心时,用户界面更新,并给予他们反馈。
- 信用卡检测和OCR模型运行,同时显示OCR从卡中提取的细节。在首次成功进行OCR预测后,将继续运行OCR模型1.5秒,并收集有关OCR详细信息的其他预测,以纠正预测失误。
- 纠错过程完成后,在处理的图像子集上运行信用卡卡篡改检测模型,时间长达1s。
- 对服务器进行API调用,以判断扫描是否包含真实的物理卡。这包括客户端机器学习模型的输出,以及服务器端逻辑实现规则,从而对扫描的有效性做出最终的总体决策。
Design
信用卡验证可以在客户端或服务器上运行。以服务器为中心的体系结构确保验证可以在所有手机上运行,无论它们的计算能力如何。然而,服务器端验证需要将帧从摄像头传输到服务器,从而导致验证延迟。服务器端验证也会忽略最终用户的隐私。通过服务器端验证,该应用程序会向服务器发送敏感的用户信息,如卡片图像,从而引入潜在的数据泄露途径。在移动客户端上运行验证需要在客户端上运行计算密集型机器学习推理。但客户机优先的体系结构对网络的压力更小,并且由于运行距离摄像机更近,可以更快地处理更多帧。重要的是,客户端验证更尊重最终用户的隐私,因为它避免了向服务器发送敏感信息。Daredevil
选择在客户机上运行其验证。并且Daredevil
的系统设计和算法改进确保了不同平台上对资源受限的设备可以进行统一验证。
Daredevil将验证分解为四个不同的子任务:OCR、卡片检测、假媒体检测和卡片篡改检测。OCR扫描卡片的数字侧并提取卡片编号,卡片检测检测框架用户在视口中将卡片居中并检测用户扫描的卡片侧(数字或非数字侧),假媒体检测检查卡片两侧,以检测从假媒体(如设备屏幕、纸张、纸板等)扫描的卡片。
卡片篡改检测:其会扫描卡片的两侧。较新的卡片设计在两面都印上了有意义的信息。例如,较新的Wells Fargo支付卡一面包含银行和支付网络标识,另一面包含卡号和到期日。在这种情况下,如果卡篡改检测在一侧检测到Wells Fargo卡号,并在同一侧或另一侧检测到冲突的银行徽标,Daredevil
会将扫描标记为假的。
主循环与完成循环:如果通过所有机器学习模型传递来自相机的每一帧,那么将有许多计算资源被浪费。例如,如果图像中没有卡,那么在该图像上运行模型是浪费的。为了使整个ML管道更高效,团队将计算分为实时运行在所有帧上的一个主循环和一个完整循环,该循环推迟模型的运行,只运行在被认为最有可能有相关欺诈信号的帧的一个子集上。下图显示了Daredevil
的组成:
卡片检测器模型:该模型是Daredevil
的核心。它是一个三级图像分类器,用于检测卡片数字侧的中心图像或非数字侧的中心图像。其还有第三个类,称为背景类,用于过滤不包含信用卡的帧。Daredevil
在主循环上执行卡片检测器和OCR模型。这些模型必须在主循环中运行,以实时处理帧并向用户显示其结果,并在完成循环中执行假媒体检测和卡片篡改检测模型。
分解冗余:Daredevil
对其每个模型使用不同形式的冗余,以确保其决策的准确性。一些模型需要内置冗余验证信号,而其他模型则需要外部冗余验证信号。更具体地,OCR的设计中内置了Luhn
算法的冗余。Luhn
算法可用于验证信用卡号。因此可以通过满足Luhn
校验和来评估OCR的预测结果。图7总结了在每个模型中使用的不同形式的冗余。
由于不同设备的硬件条件不同,团队通过改进机器学习模型,改进系统设计,以提供更快的有效帧速率解决方案,解决资源受限的问题。
Improvements in Machine Learning
机器学习的重新设计遵循以下两个关键原则:
- 创建了一个统一的OCR模型,并将参数数量减少了一半。这使得在资源受限的手机上出现二次加速,在配置良好的手机上也接近线性加速。
- 对于OCR的统一模型,在模型的多个阶段添加复杂的辅助层,以扫描所有支付卡设计。同时采用系统设计策略来计算较不常见的信用卡设计。
OCR模型设计:新模型借鉴了现有的workon Ratter RCNN
、SSD
和Yolo
的思想。团队将Boxer的检测和识别阶段替换为单一网络。该网络对整个图像进行全局推理,从而实现端到端的训练和更快的推理。团队将该模型实现为一个完全卷积的MobileNetV2
,带有用于检测和识别的辅助特征,将检测和识别的独立组件统一为一个单一网络。OCR模型的输入图像大小为600x375像素,接近信用卡的纵横比。与CNN
一样,当网络处理图像时,特征图在尺寸上缩小,在深度维度上扩展。团队网络的两个地方添加辅助层,其中一个大小为3824,另一个为1912。团队发现,在这两层添加多层预测可以捕获绝大多数信用卡字体。3824大小的特征块适用于小字体和扁平字体的支付卡,而与1912大小的特征块适用于字体较大的浮雕卡。
定位小型对象:在推理过程中,团队应用非最大值抑制和基于启发式的定义。团队的OCR模型像Yolo
和SSD
一样很难精确定位小对象。为了在微小字体的支付卡上成功执行OCR,模型首先检测单个数字的大小与输入特征图大小的比率。如果它低于事先设定好的阈值,那么模型将通过机器学习管道传递输入的放大图像,有效地将小字体的卡片映射到模型本机支持的相对大字体的卡片。
Improvements in System Design
团队从相机中收集多个帧,并对所有帧并行运行机器学习推理。团队发现,缓冲图像并并行运行会使工作负载提高117%。处理更多的帧对于提高复杂机器学习问题的端到端成功率至关重要。为了进一步提高帧速率,团队对系统设计进行了改进,使用了一个具有有限缓冲区的生产者/消费者管道。
Evaluation
假阳性问题:团队在不同的资源受限的Android和iOS设备上多次扫描105张不同的真卡,总共扫描310次。Daredevil错误地将7次扫描标记为欺诈,假阳性率为2.2%。错误均匀地分布在所有设备上,这体现了Daredevil
的公平性。报告的七个假阳性中有六个是暂时性的,也就是说,对同一张卡的进一步扫描不会导致假阳性。
此外,通过大量的实验结果验证,团队得出结论:使用Daredevil
的架构,能够实现所需的帧速率,并且使用高保真合成数据能够实现所需的精度。
还木有评论哦,快来抢沙发吧~