文摘

近距离无线通信(NFC)是一组通信协议,使两个电子设备。其安全性和可靠性受到移动终端制造、银行、电信运营商、第三方支付平台。同时,也吸引了越来越多的注意力从黑客和攻击者,和具备nfc功能的设备正面临着越来越多的威胁。改善NFC技术的安全性,本文研究发现安全漏洞的NFC技术数据交换格式(NDEF),最重要的数据传输协议。在本文中,我们提出了一个算法,GTCT(通用测试用例构造和测试),基于起毛来构造测试用例和测试NDEF协议。GTCT采用四个策略构建测试用例,手工,一代,突变,和“反向分析,可以发现逻辑漏洞,起毛无法找到,提高检出率。基于GTCT,我们设计一个NDEF漏洞发现框架和开发一个工具叫“GNFCVulFinder”(一般NFC漏洞发现者)。通过测试33 NFC系统服务和应用程序在Android和Windows手机,我们发现八个漏洞,包括DoS NFC服务的漏洞,打开蓝牙/ wi - fi /火炬逻辑漏洞,设计缺陷的黑色屏幕,DoS NFC应用程序。最后,我们给出一些安全建议开发人员提高NFC的安全。

1。介绍

NFC(近场通信)是一组创意和新技术,使智能手机和其他设备建立无线电通信相互接触的设备或将它们在靠近的距离通常10厘米或更少(1- - - - - -4]。它发展的集成RFID和互连技术,可以实现电子设备之间的双向互动沟通。使用NFC技术设备(比如手机)可以互相交换数据,当他们接近。NFC有许多特征像通信距离短,一对一的设备连接,和硬件加密,它具有良好的安全性和可靠性。随着移动互联网和移动支付的发展,越来越多的智能手机开始支持NFC功能(5]。NFC支付已经成为一种很有前途的方法移动支付的银行、电信运营商、手机制造商。

然而,NFC也引起研究者越来越多的关注和攻击者,和NFC的安全面临着越来越多的威胁和挑战。2012年2月9日,Zvelo实验室找到了一个安全漏洞在谷歌钱包6基于NFC),移动支付系统。知道密码只能是一个4位数字值,他们能很容易地获得销的强力攻击,但这种攻击的前提是,攻击电话是根源。第二天,智能手机冠军发现另一个漏洞;谷歌钱包的漏洞可以计算出销无论电话是否扎根。新销可能收购进入应用程序菜单清楚谷歌钱包应用的日期和重置一个新的销通过打开一遍(7]。2012年7月,查理•米勒Accuvant实验室的首席研究顾问,暴露出许多漏洞在NFC协议栈而言,美国(8]。例如,攻击者可以自动导致影响用户打开一个恶意URL和嵌入的恶意软件利用这些漏洞与受害者一个NFC标记。在2012年9月,EUSecWest科里贝宁格和Max Sobell Intrepidus集团能够快速、轻松地重置旅行的数量在NFC非接触式旅行卡使用一个具备NFC功能的Android手机。这NFC支付缺陷存在于非接触式读卡器超轻型芯片和它可以用来重置某些NFC非接触式卡上的数据。这个缺陷导致提供免费地铁车票,在地铁系统影响的几个城市,如波士顿、费城和芝加哥(9]。2013年8月,羊的墙上显示,提前准备的恶意软件可以安装在攻击碰过精心设计的手机恶意NFC标签。这个漏洞,可以复制用户的短信在手机,发现在他们的NFC安全意识项目(10]。2015年7月,罗伯·米勒和乔恩·巴特勒MWR实验室发现,远程攻击者可以攻击三星具备nfc功能的手机下载任何或所有图片在脆弱的设备没有任何通知或用户交互11]。同年,一个视频(12)发表的一群黑客演示了如何一个小偷可以使用偷来的苹果看支付使用苹果支付没有以任何方式验证交易。2016年5月,卡坦Coenen前台应用程序发现敏感信息可以通过攻击者通过精心设计背景应用程序,导致NfcService具备nfc功能的手机。2016年8月,三星电子支付的安全研究员萨尔瓦多·门多萨演示了一个缺陷在黑帽13),事务令牌可以预测和授权使用欺诈性付款。Xinyi Chen等人在2017年发现,攻击者可以使用信用卡付款交易的漏洞来妥协NFC通信消息然后传输错误的支付信息传播者(14]。2020年,美国一种蛋白激酶等人发现了一个潜在的弱点在现有的非接触式支付协议由于分离卡认证和事务授权阶段。他们表明攻击者可以通过恶意的非接触式支付妥协的完整性MITM智能卡(15]。

所有NFC-related漏洞和安全事件上面所提到的,根本和关键的安全漏洞,这是网络攻击和防御的来源。因此,本文主要研究了技术有效地发现NFC安全漏洞。本文的主要工作和贡献如下:(我)测试用例结构结合了手动生成,mutation-based策略,利用三种策略,克服了它们的缺点。同时,已知的NFC脆弱性数据和异常数据采用构造测试用例。该方法解决了单一数据建设策略问题和漏洞提高阳性检出率。(2)实现测试的自动化和移动操作系统的独立性,我们采用了两种方式:模拟标记读者NFC设备和模拟“触摸”操作NFC的过程。此外,我们采用“logcat / Xapspy”和监控过程监控异常操作和其他问题。(3)NFC的数据交换格式(NDEF)协议,我们设计和建造一个测试用例数据库,可以用来测试各种NFC-related系统和应用程序,大大节约了时间和成本。(iv)与数据库,我们测试了很多NFC系统应用程序和第三方的应用程序在Android和Windows Phone平台,发现许多已知和未知的漏洞,包括“wi - fi,蓝牙,”“黑屏幕,”“手电筒,”和DoS攻击。

本文的其余部分组织如下。部分2调查相关工作。部分3介绍了提出的方法。部分4说明了我们的系统的体系结构和实现用来发现NFC漏洞。部分5显示了实验配置和环境。部分6提供详细的结果。部分7评估结果通过比较相关的工作,和部分8得出的结论。

目前,国内外许多研究人员和学者所做的大量研究漏洞发现和NFC的国防安全策略。近场通信安全的研究进展综述如下。

恩斯特Haselsteiner和Klemens Breitfu [16]了NFC安全的综合分析,包括NFC安全威胁及相关解决方案的各个方面来防止这些威胁。本文概述了传统的NFC安全,包括窃听、数据损坏、数据修改、数据插入,中间人攻击,NFC和安全通道,强调通信安全。科林穆力纳提出一个方法来执行漏洞分析起毛具备NFC功能的手机的应用程序与NFC标签(17]。他们分析了NFC子系统和组件(例如web浏览器)他们发现几个漏洞可以被滥用网络钓鱼,一张纸条蠕虫和DoS攻击。他们的方法构造测试用例和测试手动具备nfc功能的手机,不支持自动测试,所以该方法耗时和manpower-consuming。Gauthier et al。18)提供了一个NFC离线应用程序和应用它诺基亚6313/6312付款。PKI-based安全协议是用于创建一个安全的通道。他们的研究从国防战略的角度进行。然而,数据加密将会增加时间成本。安东尼奥et al。19)评估NFC-powered设备的安全功能进行不对称密码基于RSA公钥加密算法。他们提出了一个混合的安全方案,结合非对称密钥加密共享密钥和非对称加密算法。方案的缺点是长时间大小的关键和生成证书。贾和通20.]采用威胁建模方法分析威胁可能损坏资产条目移动支付过程中,数据流图中描述和说明了一些攻击场景。他们已经提出了一些解决方案迁移到这些威胁,分别。他们的作品仍然在未来理论和需要验证。米勒(8)提出了一个方法,起毛NFC协议栈,发现许多NFC漏洞。米勒构造测试用例基于苏利和采用一个战略工具构建测试用例,并使用一个监视器,“logcat”,这可能会导致假阴性率高。Omkar和对冲基金21]分析了所面临的威胁谷歌钱包和评估其安全措施。他们的方法是基于现有的移动支付解决方案,包括嵌入式解决方案,SIM-based解决方案,基于解决方案。本文还分析和评估安全的NFC支付从理论的观点。诺伯特(22)开发了一个框架称为“fuzzing-to-go”使用模糊方法为Android NFC api和NFC应用程序,测试集在苏利生成的工具。监视器在fuzzing-to-go也由苏利提供。这个框架的监控和数据生成策略是相对简单的,不输出详细错误日志。此外,框架开发的目标是为Android操作系统和专门指定API版本。因此,其可移植性差。Gummeson等人设计了一个被动的基于硬件的补丁名为“Engarde”[23]在极低功率保护NFC交互。Engarde可以被困在一个NFC手机和拦截恶意的具体操作和行为列入黑名单的行为。他们的解决方案需要额外的硬件,增加维护开销和硬件成本。罗兰(24)设计两个场景模仿Android平台的安全元素。安全元素模拟器可用于调试和安全元素的快速原型应用程序。应用程序开发人员可以使用它来代替安全元素长期测试,降低了开发成本和SE应用程序的复杂性。

随着移动支付的兴起,NFC安全面临越来越多的挑战。然而,有许多问题和NFC安全问题研究。我们可以看到从之前的相关研究工作,研究工作(16,20.,21纯粹是理论和将等待进一步的评估。研究工作(18,19,23提出一些NFC安全策略的软件或硬件的保护。然而,缺点是,这些策略会增加时间开销和硬件成本。研究工作(17,22)有一些缺点,包括自动化低,单一策略构建测试用例,缺乏监控,以及可扩展性差。文献[24)为开放平台开发两个场景模拟安卓平台的安全要素,有助于NFC安全。

我们可以看到从NFC安全研究进展,NFC的安全数据交换格式协议增加关注安全研究人员(8,17,22]。安全研究人员已经做了大量研究工作,取得了一些进展。然而,仍然有许多问题与NDEF安全需要解决。NDEF NFC论坛维护的是一种标准化的数据格式(25)可以在任何兼容的NFC设备之间交换信息和另一个NFC设备或标签。的研究工作17手动]构造测试用例和测试目标,自动化程度低,成本的大量的时间和劳动力。的研究工作8]构造测试用例有一个策略,即生成或mutation-based,监控目标用一个简单的“logcat”将导致假阴性率高。的研究工作22采用苏利的过程监控模块。监控效果并不好,并没有详细的日志可用来分析异常。此外,这项研究在22)强烈取决于版本的Android操作系统和api,导致可怜的可扩展性。

针对存在的问题在NFC安全研究,我们提出并设计了一个NFC应用程序安全系统称为GNFCVulFinder(一般NFC漏洞发现者)研究发现的技术漏洞,采取的策略构建测试用例生成的方式结合mutation-based方式和手动测试。

3所示。方法

在本节中,将引入漏洞发现的方法。

3.1。轮廓的方法

我们的方法采用三个技术找到漏洞:起毛测试(26- - - - - -31日),手动测试,和“反向分析。“这三种方法的结合使用可以弥补对方的缺点,提高效率和有效性。起毛是发现软件漏洞的方法通过提供意想不到的目标系统和监测结果的输入。之间的一个完整的手动测试,一个完全自动化的测试。它是一种有效的自动测试方法,可以大大提高测试效率,降低测试成本。然而,它也有一些缺点,包括代码覆盖率低,无法发现逻辑漏洞。手动测试是一种传统的软件测试技术用于我们的方法来检测逻辑漏洞。完整的手工测试是渗透测试。测试人员模拟黑客恶意进入系统并找到漏洞。这种方法完全依赖于测试人员的能力。 It can make up for fuzzing’s deficiencies. In addition, “reverse analysis,” not the traditional meaning of reverse engineering, is also used in our methodology. Some NDEF messages are defined by third-party developers; they do not strictly follow the NDEF specifications, so these messages will be obscure. These proprietary protocols lead to some difficulties in constructing test cases. Therefore, we have adopted some techniques, including “write in and read back” and “sniffer,” to analyze NDEF messages using binary editors, which will improve the recognition rate of test case. We call these techniques “reverse analysis.” The procedure of “reverse analysis” will be introduced in Section4.4

方法见图1。我们首先分析测试协议的漏洞,然后基于起毛构造测试用例,手工测试,和“反向分析。”之后,我们与测试用例和测试目标监控目标。最后,我们验证异常和输出测试结果。在我们的方法中,算法的关键是构造测试用例,这将在下一节中介绍。

3.2。测试用例建设和测试的算法

建设和测试的测试用例是核心的点的方法,如图2。我们称之为算法GTCT(通用测试用例构造和测试)。GTCT描述如下。输入包括G,,年代1,年代2

G生成矩阵,表示一个国旗对应的协议字段是否充满生成的数据。G= ( )n×r, = 0或1,≤1n,1≤jr ij= 1意味着与畸形的数据生成测试用例医学博士j在这个领域f,等于0意味着相反的。医学博士j是一个列向量MDB这是一个畸形的数据库数据碎片。MDB= {医学博士1,医学博士2、…医学博士r};医学博士表示一种畸形的数据库中的数据MDB1≤rf是一种弱协议字段在一个脆弱的字段设置FF= {f1,f2、…fn};f代表一个弱场在网络协议,≤1n

是一个变异矩阵代表一个标志是否相应的协议字段将随机突变或不是基于数据样本,= (ij)n×,ij= 0或1,≤1n,1≤jij= 1意味着变异f领域的年代j随机,等于0意味着相反。

年代1年代2列向量的吗深发展,这是一组示例数据。深发展= {年代1,年代2}= {年代1,年代2、…年代},是样品的数量。年代1表示样本数据手册的过程分析和测试过程,和年代2表示样本数据收集从NVD、CVE和其他数据库(参见算法1)。

输入:G,,年代1,年代2
输出结果:
开始
(1) 初始化();
(2) 年代1= Ndef测试(T);
(3) T=发生器(年代RFC,G,MDB);
(4) 年代2= Ndef测试(T);
(5) 深发展+ = (年代1,年代2);
(6) T无足轻重的人= Mutator (深发展,,兰德);
(7) Ndeftest (T无足轻重的人)
(8) 输出(日志);
结束

首先,初始化()来初始化手机和应用程序使用。其次,构造测试用例的策略的算法包括三个步骤:手动构造测试用例,生成脆弱的协议F字段,突变样本的脆弱F无足轻重的人。函数发生器(年代RFC,G,MDB)表示基于矩阵的生成测试用例G,MDB和协议的字段年代RFC根据RFC规范。函数赋值函数(深发展,,兰德)表示变异的样品深发展基于随机函数。此外,协议上的“反向分析”是用来构建一个示例数据库深发展。第三,执行测试用例T(由手动测试用例策略),T(测试用例由多维策略基于一代),和T无足轻重的人(测试用例由多维策略基于突变)的测试函数NdefTest ()。NdefTest()是一个测试函数;这个函数发送一些数据的手机读取数据进行测试。顺便说一下,年代1获得之前的测试期间,年代2从人工分析一些漏洞数据库,如NVD。第四,执行测试用例T无足轻重的人。最后,输出日志和结果。三种策略的细节和优势将部分中描述4.3

4所示。系统架构的设计和实现

本节将介绍我们的系统架构设计漏洞发现框架及其实现过程。

4.1。系统架构

我们设计了一个发现漏洞系统命名GNFCVulFinder NDEF协议,及其体系结构如图3。系统架构包括测试用例生成、初始化、异常监控,NFC应用测试,异常验证和日志输出。体系结构包含两个实体:手机和NFC标签。这两个实体在测试期间不需要身份验证。NFC沟通过程使用NDEF协议,用于在NFC手机和标签,不需要身份验证。Testcase代:此模块是用来对协议NDEF构造测试用例,包括NFC论坛类型,NFC外部类型,绝对URI类型和MIME类型。构造测试用例的策略在一节中详细介绍了“测试用例建设。”初始化:由于两个或两个以上的NFC应用程序将听NDEF消息事件和应对他们同时,手机用户必须选择一个应用程序来处理事件,这将导致严重干扰自动化测试。因此,我们需要初始化测试手机,即安装测试应用程序和卸载其他无关的应用程序。NFC应用测试:此模块是为了测试NFC服务和Android和Windows Phone应用程序。在Android上,采用模拟标记和“触摸”操作实现自动测试。前者是通过调用api开源库中的libnfc基于NFC设备ACR 122 u,而后者是通过控制命令的NFC过程“杀”和“开始。“在Windows Phone,我们只需要模拟一个标签,因为Windows Phone可以自动检测数据标签的变化并自动读取数据。异常监控:此模块采用监控异常日志和NFC服务和记录测试用例触发条件和异常断点。异常验证:此模块验证过程中发现的异常重发一个测试的测试用例和监控的目标。例外,如果存在,将手动分析,验证是否可以被利用。日志输出:该模块将输出测试结果。任何移动平台的系统架构是独立的,因为模拟NFC标签并不依赖于手机。因此,架构适用于测试在Android上,Windows Phone和其他手机操作系统平台。

以下部分将描述一些重要模块的实现细节,包括“测试用例建设”和“测试和监控。”

4.2。测试用例的建设

NDEF NFC数据交换格式,NFC标签的数据格式约定的NFC组织。它是一个轻量级的和紧凑的二进制格式的各种数据类型定义的URL,电子名片,NFC。本文不会详细的详细定义协议NDEF,可以获得在NFC论坛。以下将介绍测试用例的策略建设关于起毛和手动测试。

4.3。策略
4.3.1。手动的策略

手动策略构造测试用例通过分析NFC论坛NDEF规范和NDEF漏洞在流行的漏洞数据库。策略可以提高测试用例的有效性,reverify已知的漏洞,并找到一些逻辑漏洞,起毛不能检测。通过搜索著名数据库NVD [32),我们分析了以下几种典型的漏洞:cve - 2008 - 5825: SmartPoster实现NFC手机诺基亚6131不正确显示URI记录当标题记录包含一定的组合空间(“0×20”),CR (“0 x0d”),和(点,“”表示就是0 x2e)字符,它允许远程攻击者诱骗用户加载一个任意通过精心设计NDEF标签URI。我们可以用一个NFC标签测试NFC应用程序证明了(a)一个http: URI恶意网站,(b)电话:URI一些电话号码,和(c)一个短信:URI,引发购买铃声。cve - 2008 - 5826: NFC手机诺基亚6131允许攻击者造成拒绝服务(设备事故)通过一个较大的值的有效载荷长度。所以我们应该测试NDEF应用程序与一个较大的值在载荷长度字段NDEF记录或一定长度的一个电话或短信:NDEF URI。cve - 2008 - 5827:诺基亚6131自动安装软件在完成下载的JAR文件,方便远程攻击者通过精心执行任意代码NDEF标签URI记录。我们应该测试它通过NFC服务完成的APK文件的下载。cve - 2015 - 8041: multi-integer溢出NDEF记录解析器在hostapd 2.5和2.5之前wpa_supplicant允许远程攻击者造成拒绝服务(进程崩溃或无限循环)通过一个大型有效载荷长度字段值在WPS或P2P NFC NDEF记录,触发一个界外阅读。所以,我们可以测试NFC应用程序与大载荷长度值。cve - 2017 - 7461:一个目录遍历脆弱性的基于web的管理网站Intellinet NFC-30ir IP摄像机,并允许远程攻击者读取任意文件通过一个请求供应商提供的CGI脚本,用于读取HTML文本文件,但这并不做任何URI /路径卫生处理。所以,我们可以测试目标目录遍历字符串。

4.3.2。基于生成的多维策略

这种策略首先获得NFC论坛的规格和分析NDEF消息的格式。测试用例通过添加一个或多个字段的基础上构造的NDEF畸形数据和其他领域充满了正常数据。如表所示1,我们设计了一个数据库来测试字段畸形,包括头、长度,类型和载荷。数据库包含整数,格式化的字符串,目录遍历数据,分隔符和其他nonalphanumeric字符。一个示例见图4。这个消息是由4个字段生成数据,和其他领域充满了正常数据。

4.3.3。多维策略基于突变

这种策略不需要分析NDEF规范;它只需要通过改变一个或多个构造测试用例的选择样本。因为前面的脆弱性数据可能会触发一个旧或新的bug (31日),已知的漏洞数据和测试用例在测试过程中引发的异常作为突变样本。我们可以通过改变一个或多个构造测试用例的蓝牙配对的“本地名称字段”协议。

4.4。逆向分析

在测试过程中,NDEF消息定义的开发人员在不同的NFC应用程序没有按照NDEF规范在NFC论坛。例如,消息由一个NFC应用程序称为“YunNFC”不能被MIUI OS,而MIUI只是“YunNFC打开网站。“因此,大量的测试用例可能会否认测试目标。为了解决这个问题,采用“反向分析”分析NFC应用程序消息的格式。“反向分析”有助于提高测试用例的有效性,它由五个步骤组成。步骤1:构造NDEF消息与NFC应用程序,如细节!、TagInfo TagWriter。例如,我们可以构造一个蓝牙配对蓝牙信息通过输入信息。第二步:构造消息写入一个NFC标记。步骤3:“触摸”的NFC手机标签。关于消息的二进制文件将存储在手机。步骤4:导出二进制文件通过一些工具电话经理或命令“亚行拉。”第五步:分析基于NDEF协议格式的二进制文件和信息中输入步骤1,010等二进制编辑器编辑器。

4.5。测试和监控

自动测试的核心问题包括模拟NFC标签和“触摸”操作。我们使用读者NFC设备(如ACS ACR122u和PN512)来模拟NFC标签。上面提到的两个设备都是基于开源库libnfc。它独立于移动终端的平台来模拟一个标签的NFC设备。因此,我们的系统是通用测试NFC服务和应用程序。“碰”的操作是一个NFC设备触摸一个NFC标签从远到近。在Android平台上,“触摸”是通过命令“杀死- s SIGSTOP PID”和命令“杀死- s SIGCONT PID”控制NFC服务的过程。NDEF消息的NFC标签的变化可以被探测到的Windows Phone平台,所以不需要模拟“碰”。

目标监控也是一个自动测试的一个重要组成部分。对于安卓系统,我们采用过程监控和典型的日志命令”logcat”,有许多类型的选择和操作,可以输出详细的日志。对于Windows手机,我们使用一种叫做“Xapspy”的实时监测检测异常。Xapspy是一个动态的监测,实现了项目的技术工具和API。

5。实验配置和环境

5.1。实验配置

我们实验的配置可以分为硬件配置和软件配置。前封面GNFCVulFinder及其所需的硬件设备配置信息。后者包括NFC系统服务,NFC应用程序和它们的配置参数。

5.1.1。硬件配置

GNFCVulFinder运行在一个虚拟机的操作系统版本“Linux Ubuntu 2.6.32-21generic”;NFC手机包括三星GT-I9300 Mi 5 s + OnePlus 3 t,流光(Lumia) 920。此外,包括ACR 122 u和Proxmark3 NFC设备。的详细信息如表所示2

5.1.2中。软件配置

软件配置覆盖目标和他们的信息,包括NFC系统服务和Android平台上的第三方应用程序和Windows Phone。iOS平台不支持读写NDEF消息,所以我们不要在iOS平台上测试应用程序。通过搜索关键字“NFC”、“NDEF”和“标签”Android和Windows Phone的官方和第三方应用程序市场,我们目前收集了42 NFC应用程序和NFC服务如表所示3。在这些目标中,应用程序(34-42)NFC作家或需要人机交互的应用程序。这些应用程序还没有测试,因为他们可以打破自动测试。

5.2。实验环境

实验环境如图5;(1)在图5显示了“反向分析”的环境和细节部分4.4。顺便说一下,Proxmark3被用来嗅探器NFC手机和NFC标签之间的消息。(2)在图5说明了我们的测试过程。首先,基于libnfc模拟与ACS ACR122u NFC标签。其次,“触摸”标签NFC手机。最后,监控异常和输出结果。

6。结果

我们测试的目标图3GNFCVulFinder和找到8个新的移动操作系统和应用程序的漏洞,如表所示4。我们将缺陷划分为五种类型根据方式他们可以利用来描述如何使用这些漏洞攻击。具体描述如下:(1)NFC服务DoS:这个漏洞是由蓝牙配对消息的字段“本地名称长度”由0 b0000 0000或0 b1xxx xxxx (x代表0或1)NFC服务将崩溃,报告例外" . lang。NegativeArraySizeException”,停止服务。结果如图所示6(2)开幕式火炬:这个漏洞是由于开始com.android包”。systemui”,导致火炬在NFC手机自动打开。“com.android。年代ystemui” is a core system application in MIUI, which is used to manage battery, configure MIUI OS, and so on. After decompiling the torch apk, we found that the activity of the torch is the only activity kept in the root directory, which will cause the torch to be activated.(3)打开蓝牙开放wi - fi(逻辑漏洞):这两个漏洞都是逻辑漏洞。假设蓝牙和wifi默认是关闭的。蓝牙或无线网络将关闭通常如果配对或连接失败。然而,他们分别打开,削皮后或连接失败。蓝牙打开如图的结果7。无论哪个选择是选择,蓝牙将被打开。wi - fi的结果如图8。当手机连接到一个无线网络名称“UCAS”成功与否,手机的wi - fi将被打开。的逻辑漏洞,我们给一个攻击场景为例;攻击者首先打开一个NFC手机的wi - fi然后NFC手机通过NFC或wi - fi连接到获得敏感信息结合其他漏洞。自从消息是正常NDEF包,我们不需要专门来描述它们。(4)拒绝服务(TagInfo DoS、NFC标记辅助DoS和NFC细节DoS):我们发现大量的DoS漏洞测试TagInfo时,细节!,NFC标记辅助。的消息可能会导致拒绝服务的应用程序,包括智能海报、url和wi - fi连接。因为这些应用程序不妥善处理NDEF消息,他们会崩溃当阅读这些类型的消息,如图所示9。两种类型的异常捕获包括“. lang。IllegalStateExcepton "、" . lang。IndexOutOfBoundsException "、" . lang。ArrayIndexOutOfBoundsException”和“java.lang.NullPointerException。“这些异常不能利用分析日志,和他们只是导致拒绝服务攻击。(5)黑屏幕:这个漏洞存在的NFC标记辅助设计是一种缺陷。此应用程序的功能之一是Android手机屏幕的亮度。价值尺度之间的5和100。不过,我们可以打破限制,将亮度设置为0 0 x00写入NFC标签。Android NFC手机的屏幕就会变黑,直到重新启动手机或重新编写一个新的亮度值。

消息引发黑屏脆弱性的定义如下:D1 01 12 54 02 65 6 e 10 0 c 01 04 6 e 69 02 70 63 02 01 1 e 03 01 00。

以上测试结果属于安卓平台,在Windows Phone,未发现异常。结果的原因总结如下:(我)许多应用程序需要用户交互;也就是,当一个NFC手机“触摸”一个NFC标签,操作系统Windows phone叶子决定用户,用户交互测试过程中断。如果用户不做任何决定,Windows Phone的消息将被拒绝,导致低效率的测试。(2)NFC应用程序的数量小,大多数应用程序只是打印NDEF消息的二进制数据。嵌入在消息的操作没有被执行的机会。

7所示。评估和措施

7.1。评估

说明我们工作的价值和效率,我们将它与一些相关研究结果在五部分:测试用例建设、监控、可移植性、自动化、和漏洞。结果见表5分析如下:(我)测试用例结构:穆力纳(17手动]构造测试用例,效率很低,有很多与测试人员的经验。文献[8]和Wiedermann [22)采用单一的策略:一代策略(G)(苏利)或突变策略(M)。一代人的缺点是随机性和失明,导致较低的检出率。GNFCVulFinder采用手动生成和突变构建畸形数据,提出了一个名为“反向分析”的方法作为辅助方法分析信息。我们的策略是基于已知的漏洞NDEF的知识,它可以帮助快速找到错误;手动的策略可以检测逻辑漏洞,无法找到。此外,多维策略可以发现多维漏洞,可提高检出率。(2)监控:穆力纳(17]手动监控异常;效率低,假阴性率高。米勒(8)使用logcat监测异常和Wiedermann使用苏利;单一监控可能忽略一些例外。logcat GNFCVulFinder监控目标,监控NFC的过程,这就增加了检测率。(3)可移植性:GNFCVulFinder的可移植性和穆力纳的作品是好的;其他人则依赖于Android。(iv)自动化(汽车):除了穆力纳的作品,别人的自动化水平高。(v)弱点:GNFCVulFinder发现八个漏洞和涵盖所有别人的漏洞,包括一些新的漏洞,如开放wi - fi /蓝牙和黑色屏幕。

7.2。措施

解决上述问题和漏洞,我们提出以下具体措施和建议:(1)检测字段长度的各种各样的信息,并确保值0和负值可以正确地解决。(2)修改蓝牙配对和wi - fi连接的逻辑,并恢复原状时,操作失败。(3)当开发NFC应用程序,严格遵循NDEF规范。(4)添加一些方法来过滤特殊字符,如目录遍历字符,以防止这些人物引发安全漏洞。

8。结论

本文提出一种算法命名GTCT构造测试用例和测试协议NDEF基于起毛。GTCT采用四个策略来生成测试用例:手册,一代,突变,和“反向分析。“手动策略有助于发现逻辑漏洞,起毛无法检测。此外,已知的漏洞数据也用于构造测试用例,从而提高测试效率。算法的基础上,我们设计了一个NFC漏洞发现叫GNFCVulFinder框架和开发了一个工具。通过测试大量的NFC系统服务和应用程序,我们发现8 NDEF漏洞,可以覆盖所有以前的漏洞和证明GNFCVulFinder的有效性。

数据可用性

没有数据被用来支持本研究。

的利益冲突

作者宣称没有利益冲突。

作者的贡献

王志强和誉恒林设计的系统架构和设计实验;Zihan卓杰明顾进行实验;和杨涛分析结果。作者回顾了所有的手稿。

确认

这项研究是财务支持的中国博士后科学基金资助项目(2019 m650606),国家重点研发项目(2017 yfc1201204),中国一流的学科建设项目的北京电子科技学院(3201012),以及基础研究基金为中央大学(328201909)。