CN117544960B - 一种基于生成的自动化Wi-Fi协议模糊测试方法 - Google Patents
一种基于生成的自动化Wi-Fi协议模糊测试方法 Download PDFInfo
- Publication number
- CN117544960B CN117544960B CN202410026744.4A CN202410026744A CN117544960B CN 117544960 B CN117544960 B CN 117544960B CN 202410026744 A CN202410026744 A CN 202410026744A CN 117544960 B CN117544960 B CN 117544960B
- Authority
- CN
- China
- Prior art keywords
- test
- protocol
- state
- equipment
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000010998 test method Methods 0.000 title claims abstract description 30
- 238000012360 testing method Methods 0.000 claims abstract description 245
- 238000000034 method Methods 0.000 claims abstract description 65
- 238000011084 recovery Methods 0.000 claims abstract description 28
- 238000012544 monitoring process Methods 0.000 claims abstract description 22
- 230000006399 behavior Effects 0.000 claims abstract description 14
- 230000005856 abnormality Effects 0.000 claims abstract description 13
- 230000004044 response Effects 0.000 claims description 27
- 238000013461 design Methods 0.000 claims description 18
- 206010000117 Abnormal behaviour Diseases 0.000 claims description 9
- 230000002159 abnormal effect Effects 0.000 claims description 7
- 238000004891 communication Methods 0.000 claims description 7
- 241000931365 Ampelodesmos mauritanicus Species 0.000 claims description 5
- 230000004083 survival effect Effects 0.000 claims description 4
- 238000005065 mining Methods 0.000 claims description 3
- 238000005316 response function Methods 0.000 claims description 3
- 230000026676 system process Effects 0.000 claims description 2
- 239000002699 waste material Substances 0.000 claims description 2
- 230000007246 mechanism Effects 0.000 abstract description 6
- 230000035772 mutation Effects 0.000 description 14
- 230000008569 process Effects 0.000 description 13
- 230000006870 function Effects 0.000 description 8
- 238000012795 verification Methods 0.000 description 6
- 230000015556 catabolic process Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000007547 defect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 208000024780 Urticaria Diseases 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 201000010099 disease Diseases 0.000 description 2
- 208000037265 diseases, disorders, signs and symptoms Diseases 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 241000238633 Odonata Species 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 239000009136 dragon's blood Substances 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000007717 exclusion Effects 0.000 description 1
- 230000002068 genetic effect Effects 0.000 description 1
- 235000000334 grey box Nutrition 0.000 description 1
- 244000085685 grey box Species 0.000 description 1
- 230000000266 injurious effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000003012 network analysis Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000013522 software testing Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W12/00—Security arrangements; Authentication; Protecting privacy or anonymity
- H04W12/12—Detection or prevention of fraud
- H04W12/121—Wireless intrusion detection systems [WIDS]; Wireless intrusion prevention systems [WIPS]
- H04W12/122—Counter-measures against attacks; Protection against rogue devices
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W24/00—Supervisory, monitoring or testing arrangements
- H04W24/04—Arrangements for maintaining operational condition
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W76/00—Connection management
- H04W76/10—Connection setup
- H04W76/19—Connection re-establishment
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04W—WIRELESS COMMUNICATION NETWORKS
- H04W84/00—Network topologies
- H04W84/02—Hierarchically pre-organised networks, e.g. paging networks, cellular networks, WLAN [Wireless Local Area Network] or WLL [Wireless Local Loop]
- H04W84/10—Small scale networks; Flat hierarchical networks
- H04W84/12—WLAN [Wireless Local Area Networks]
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Maintenance And Management Of Digital Transmission (AREA)
Abstract
本发明涉及一种基于生成的自动化Wi‑Fi协议模糊测试方法,属于模糊测试技术领域。本发明的方法用于测试Wi‑Fi设备中潜在漏洞,该方法能够对WPA2和WPA3兼容的产品进行模糊测试。现有的Wi‑Fi协议模糊测试工具主要针对特定的错误配置、变异策略单一,无法发现更复杂的不合规行为。此外,这些工具大多没有提供监控机制和恢复机制来自动化检测记录设备断开事件并恢复测试环境,这种功能对于确定异常原因和提高测试效率十分重要。
Description
技术领域
本发明属于模糊测试技术领域,具体涉及一种基于生成的自动化Wi-Fi协议模糊测试方法。
背景技术
目前,无线网络已经成为人们生活中不可或缺的一部分。近年来,随着物联网的兴起,大多数计算设备现在都配备了无线网络硬件,使用此类硬件的设备(称为客户端,STA)与网络接入点 (AP) 建立连接并通过无线网络传输数据。作为应用最广泛的无线协议,IEEE 802.11协议在我们的日常生活中无处不在。尽管每一代802.11标准都取得了进步,但安全性仍然是一个热点问题。尽管Wi-Fi联盟最新的Wi-Fi Protected Access 3认证要求在之前的IEEE 802.11修订版或标准中引入安全功能,包括802.11w、802.11-2016和802.11-2020,但最新研究工作表明,该协议仍存在各种潜在的安全漏洞和问题。因此,验证无线协议的软件或固件实现是否存在潜在漏洞至关重要。
模糊测试是软件测试中的一个方法,其主要思想是以自动方式测试计算机程序,通过向其提供无效、意外或随机数据作为输入。提供数据后,监控程序的状态是否存在崩溃、失败的内置代码断言、内存泄漏、意外的程序行为等异常。这个提供数据和监控程序反应的过程一遍又一遍地重复不同的输入以自动的方式。根据输入生成策略进行分类,模糊测试可以分为基于变异和基于生成两种;根据被模糊测试的设备或程序(SUT)的先验知识进行分类,可以分为白盒、灰盒和黑盒三种。
基于变异的模糊测试的思想是通过对现有有效输入进行修改来生成新的测试用例。这种变异通常是在有效输入的基础上进行随机或有针对性的变异操作,例如位翻转、值替换、删除或***数据等。通过这种变异操作,可以生成大量的测试用例,用于检测程序的异常行为和潜在漏洞。测试人员不需要知道输入数据或协议使用的规范,只需提供一批原始种子用于生成第一个测试用例,因为变异会改变原始种子而不检查它是否符合特定语法。基于变异的模糊测试简单、易于实施,适用于不同类型的应用和协议测试。
基于生成的模糊测试的思想是通过根据语法规则和约束条件生成全新的测试用例。在这种方法中,测试人员定义了输入的语法结构和约束条件,然后使用随机、符号执行、遗传算法等技术生成满足这些规则和条件的测试用例。相比于基于变异的方法,基于生成的模糊测试可以更加精确地控制输入的结构和范围,有助于发现特定类型的漏洞和错误。
黑盒模糊测试是指在没有详细了解被测程序内部实现的情况下,通过随机生成、突变、变异或特制的输入数据进行测试。测试人员不需要了解被测程序的源代码或内部结构,只关注输入和输出的关系,此类测试发现漏洞的可能性较小,但几乎可以应用于任何目标。
白盒模糊测试是在了解被测程序的内部实现和结构的基础上,针对特定代码路径或功能进行测试。测试人员可以根据代码覆盖率、条件覆盖等信息来设计测试用例,以发现潜在的安全漏洞和错误。 白盒模糊测试极大地增加了代码覆盖率,但源代码在很多情况下无法获取。
灰盒模糊测试是黑盒和白盒模糊测试的组合。灰盒模糊器可以部分访问 SUT 的内部逻辑。这可以是所用协议的知识、所用算法、对部分代码的访问等。灰盒模糊测试是当今最广泛使用的。测试人员部分了解被测程序的内部实现,比如所用协议的知识、所用算法、对部分代码的访问等,但并不完全了解。他们可以利用这些部分知识来指导模糊测试的输入生成或测试用例设计,从而发现更多潜在问题。
Wi-Fi协议有严格的语法,因此在模糊协议时应优先使用基于生成的方法而不是基于变异的方法。此外,由于Wi-Fi协议是公开协议,但大多数供应商不公开其实现的源代码,因此大部分Wi-Fi模糊测试方法可以归类为灰盒模糊测试。
目前有不少针对Wi-Fi协议进行模糊测试的研究工作,文献[1,2]展示了几种针对对等实体同时验证(Simultaneous Authentication of Equals)的拒绝服务攻击,而文献[3,4]则表明,802.11w引入的受保护管理帧(PMF)不足以抵抗持续取消身份认证攻击。文献[5,6]针对不同厂商的Wi-Fi芯片进行了模糊测试,发现了许多Wi-Fi漏洞,这些漏洞包括设计和实现缺陷。文献[7]设计并实现了一种模糊测试方法,该方法可以自动测试Wi-Fi客户端实现是否存在崩溃或不合规行为等漏洞。
文献[6]提出了一种基于语法的无状态黑盒变异模糊测试方法,名字为WPAxFuzz。WPAxFuzz可用于经WPA2和WPA3认证或兼容的无线设备,目前能够对802.11管理帧、控制帧、数据帧以及SAE握手进行模糊测试。此外,WPAxFuzz还包含一个监测模块和一个验证模块,监测模块用于监测AP和STA之间的通信中断,这些异常可能包含Wi-Fi协实现中潜在的错误配置或漏洞,验证模块利用测试过程的日志文件直接生产验证数据,用于验证分析潜在的漏洞。
WPAxFuzz是目前功能最齐全且易于扩展的一种Wi-Fi协议模糊测试方法,图 1 展示了该工具进行模糊测试的流程。主进程负责模糊测试操作,而两个并行线程分别通过ping请求和监测解除身份验证或解除关联帧来获取SUT的状态。以下给出WPAxFuzz对Wi-Fi协议进行模糊测试并监测异常行为的流程(见图1,图片来自文献[6]):
模糊测试开始前,首先要选择模糊测试模式,包含标准和随机两种模式,在标准模式中,所有随机生成的帧字段长度,都满足802.11标准,而随机模式则可以产生长度不同于802.11标准定义的帧字段。然后要选择模糊测试对象,包括协议帧类型以及具体的子帧,帧类型包括管理帧、控制帧、数据帧以及SAE认证帧,不同类型的帧又包含多种子帧。根据具体的帧格式,WPAxFuzz使用随机数据生成器生成数据填充到控制标志和有效载荷并发送给无线设备。最后,使用监测和验证模块监控并记录设备异常。
监测模块首先跟踪在SUT和配对设备之间传送的任何取消身份验证或解除关联帧,一旦发现这样的帧,模糊测试过程就会暂停,用户可以手动重新连接 SUT 并在需要时恢复模糊测试。此外,监测模块还通过ping来确定SUT状态(SUT需要具备ping功能并开放相应防火墙规则),如果发现SUT不响应 ICMP 回应请求,模糊测试过程将暂停并提示用户重新连接SUT并恢复。两个监控线程是同步的,可以暂停主进程的执行。此外,监控线程不共享内存中的临界区,因此不需要互斥。监控线程处于无限循环中,而只有模糊测试过程会根据情况暂停和恢复。
验证模块首先从相应的日志文件中收集在模糊测试过程中导致连接中断的所有帧,并逐个传输它们,验证单个数据帧能否触发异常。此外,验证模块还记录直到SUT的连接中断的时刻所有发送的帧,用于验证触发异常的帧序列。
WPAxFuzz虽然功能齐全,但是其存在以下缺点:模糊测试策略单一,仅通过随机变异来生成测试用例,效率较低;缺乏SUT状态获取方式,仅通过设备崩溃作为反馈,无法获取协议状态异常;无法自动恢复模糊测试,出现设备异常需要手动重新连接,自动化程度较低。
以上涉及到的文献如下:
1、Chatzoglou, E.; Kambourakis, G.; Kolias, C. How is your Wi-Ficonnection today? DoS attacks on WPA3-SAE. J. Inf. Secur. Appl.2022, 64,103058.
2、Vanhoef, M.; Ronen, E. Dragonblood: Analyzing the DragonflyHandshake of WPA3 and EAP-pwd. In Proceedings of the 2020 IEEE Symposium onSecurity and Privacy (SP), San Francisco, CA, USA, 18–21 May 2020; pp. 517–533.
3、Chatzoglou, E.; Kambourakis, G.; Kolias, C. Empirical Evaluation ofAttacks Against IEEE 802.11 Enterprise Networks: The AWID3 Dataset. IEEEAccess 2021, 9, 34188–34205.
4、Schepers, D.; Ranganathan, A.; Vanhoef, M. On the Robustness of Wi-Fi Deauthentication Countermeasures. In Proceedings of the 15th ACMConference on Security and Privacy in Wireless and Mobile Networks, Antonio,TX, USA, 16–19 May 2022;pp. 245–256.
5、https://www.blackhat.com/asia-21/arsenal.html#hongjian-cao
6、KAMPOURAKIS, Vyron, et al. Wpaxfuzz: sniffing out vulnerabilitiesin wi-fi implementations. Cryptography, 2022, 6.4: 53.
7、GARBELINI, Matheus E.; WANG, Chundong; CHATTOPADHYAY, Sudipta.Greyhound: Directed greybox wi-fi fuzzing. IEEE Transactions on Dependableand Secure Computing, 2020, 19.2: 817-834.
发明内容
(一)要解决的技术问题
本发明要解决的技术问题是:对无线设备中Wi-Fi协议的实现进行模糊测试,以发现漏洞或不合规行为。
(二)技术方案
为了解决上述技术问题,本发明提供了一种基于生成的自动化Wi-Fi协议模糊测试方法,该方法通过测试模块、反馈模块和恢复模块三个模块实现,测试模块和反馈模块运行于测试设备,恢复模块运行于被测设备;
所述被测设备为Wi-Fi设备;所述测试设备是带有两个无线网卡的Linux终端,该测试设备作为中间人接入到被测设备和与其配对的设备中,用于冒充Wi-Fi配对设备测试任意一端的Wi-Fi实现;
所述测试模块通过随机变异字段和字段边界测试的变异策略变异正确数据包的一些字段来构建格式错误的数据包,此外,还根据协议状态在错误的阶段发送格式正确的数据包,称为错误状态报文;
所述反馈模块跟踪在被测设备和配对设备之间传送的任何取消身份验证的帧或解除关联帧,或通过比对响应包和协议状态机的状态来获取被测设备的反馈;
所述恢复模块监测被测设备上Wi-Fi组件的运行状态,在连接断开后自动恢复连接。
优选地,该方法具体包括以下步骤:
首先,选择测试对象、测试方法和测试协议帧,测试对象指AP端和客户端这两种被测设备;测试方法指模糊测试策略,包括两种变异字段的方法和一种发送错误状态数据帧的方法,由测试模块提供;测试协议帧指具体测试的协议报文;
然后,反馈模块的三个线程分别开始监听Deauth/Disass帧、探测设备状态、核对响应帧状态;监听Deauth/Disass帧指跟踪在被测设备和配对设备之间传送的任何取消身份验证的帧或解除关联帧,一旦感知到Deauth/Disass帧,意味着最近发送的数据导致了连接状态的异常;探测设备状态指通过ping确定被测设备是否处于存活状态,一旦感知到被测设备不响应ICMP回应请求,意味着最近发送的数据影响了被测设备的响应功能;核对响应帧状态指通过协议状态机判别配对设备响应帧的状态,如果响应包与协议状态机的状态不一致,说明协议实现和协议设计存在差异或者协议设计存在漏洞;与此同时,测试模块的测试线程根据选择的测试对象和测试协议帧,通过协议状态机引导被测设备进入测试环境,然后根据选择的测试方法使用Dot11模块生成测试报文发送给被测设备,判断反馈模块是否检测到连接异常、设备失联或者状态错误,如果有则记录当前数据包和上下文环境并重置参数;最后,恢复模块的设备恢复进程实时判断被测设备的Wi-Fi运行状态,在检测到异常后重启Wi-Fi并恢复连接,确保模糊测试能够持续进行。
优选地,测试模块提供发送错误状态报文、随机变异字段和字段边界测试三种模糊测试策略。
优选地,所述发送错误状态报文的模糊测试策略即所述发送错误状态数据帧的方法,是指将有效数据包在不适当的状态下发送到被测设备,这种测试方法用于挖掘Wi-Fi的逻辑漏洞。
优选地,所述随机变异字段的模糊测试策略即随机变异策略是一种变异字段的方法,指针对测试协议帧包含的字段,将随机生成器产生的具有随机值长度的随机数据,逐一填充到指定字段或者组合填充到各个字段并发送至被测设备,随机变异策略用于生成具有随机数据的输入,旨在模拟来自恶意用户或异常情况下的非预期输入;随机变异策略按确定输入长度、生成随机数据、填充输入字段和重复测试的步骤进行:输入的长度范围根据Wi-Fi协议规范的预期输入长度来确定,且采用随机生成输入长度的方法;使用伪随机数生成器或特定的随机化算法来生成随机数据;逐一遍历字段将生成的随机数据进行填充,在单独测试完所有字段后,随机组合字段进行填充;在确定测试协议帧和模糊测试策略后,无限循环对所有字段和字段组合进行模糊测试,遇到崩溃记录测试数据后设备自动恢复状态继续测试,直至手动停止。
优选地,所述随机变异字段的模糊测试策略中,使用随机数据生成工具Faker来生成以半字节为单位的随机数据。
优选地,字段边界测试的模糊测试策略从字段长度、数值范围方面测试***是否能够正确处理字段边界、超出允许范围的值、无效格式的数据、未预期的数据类型的情况。
优选地,所述字段边界测试的模糊测试策略是另一种变异字段的方法,它是针对测试协议帧包含的字段,通过输入数据的边界情况,即最小值、最大值以及接近边界的值来测试协议在字段边界条件下的行为,字段边界测试的目的是检查***是否正确处理边界条件,从而发现协议在边界条件下可能出现的异常行为和安全漏洞;字段边界测试针对定长和变长字段的输入长度测试范围分别为{0,1,固定长度-1,固定长度,固定长度+1,254,255}和{0,1,最小长度-1,最小长度,最小长度+1,最大长度-1,最大长度,最大长度+1,254,255},数据生成时随机选择填充0x00、0xff或者随机数据。
优选地,该方法在两种场景下使用,一种场景是***地测试任意Wi-Fi设备的协议实现,用于发现不符合协议标准的行为,包括崩溃和漏洞;另一种场景是通过发送错误状态的数据包来发现潜在的协议设计缺陷。测试过程通过持续监控Wi-Fi设备之间的通信并采用Wi-Fi的综合状态机模型检查在任何状态下收到的意外数据包的方式监测异常。
本发明还提供了一种用于实现所述方法的***,包括测试模块、反馈模块和恢复模块三个模块。
(三)有益效果
本发明提供了一种基于生成的自动化Wi-Fi协议模糊测试方法,用于测试Wi-Fi设备中潜在漏洞,该方法能够对WPA2和WPA3兼容的产品进行模糊测试。现有的Wi-Fi协议模糊测试工具主要针对特定的错误配置、变异策略单一,无法发现更复杂的不合规行为。此外,这些工具大多没有提供监控机制和恢复机制来自动化检测记录设备断开事件并恢复测试环境,这种功能对于确定异常原因和提高测试效率十分重要。本发明的优点如下:
1、提供了两种变异字段的方法和一种发送错误状态数据帧的模糊测试方法,分别是字段边界测试、随机变异字段和错误状态报文;多样的模糊测试策略不仅可用于***地测试任意Wi-Fi设备的协议实现,发现实现的不符合协议标准的行为(包括崩溃和漏洞),还能可以通过发送错误状态的数据包来发现潜在的协议设计缺陷,有助于尽可能多地发现潜在漏洞。
2、提供了三种获取被测Wi-Fi设备反馈的方法,即通过跟踪在目标 AP 和相应的STA 之间传送的任何取消身份验证的帧或解除关联帧,或通过比对ICMP回应请求和响应包状态来获取 SUT 反馈。这些监控功能不仅能观测到Wi-Fi设备的崩溃,还能获取设备连接断开和响应状态。
3、提供了自动恢复Wi-Fi设备状态的方法,实时判断被测设备的Wi-Fi运行状态,在检测到异常后重启Wi-Fi并恢复连接,确保模糊测试能够持续进行。模糊测试过程中一旦发生崩溃或者影响设备运行的不合规行为,不需要测试人员手动恢复设备状态。
附图说明
图1为WPAxFuzz对Wi-Fi协议进行模糊测试并监测异常行为的流程图;
图2为本发明的设计构思图;
图3为本发明的测试模块和反馈模块的实现测试流程图;
图4为本发明的恢复模块的实现设备恢复进程流程图;
图5为本发明实施例1的测试操作原理图;
图6为本发明实施例2的测试操作原理图。
具体实施方式
为使本发明的目的、内容和优点更加清楚,下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。
为了设计能够全面发现尽可能多的漏洞和不合规行为的模糊测试方法,面临着如下技术挑战:
多样的模糊测试策略。模糊测试通过向测试目标提供无效、意外或随机数据作为输入来触发漏洞,由于Wi-Fi协议实现的源代码一般无法获取,无法使用引导覆盖或动态符号分析方法来提高模糊测试效率,因此需要使用多样的模糊策略来尽可能多地发现潜在漏洞。
从 SUT 获得反馈。当对机器上运行的软件进行模糊测试时,很容易发现程序运行期间是否发生了任何异常,比如内存泄漏、挂起、崩溃等。如果模糊测试的对象是没有操作***的嵌入式设备,在监控上述异常时会面临很多困难,唯一可以相对轻松地观察到的是设备崩溃。但是并非每次内存异常或意外程序行为都会在短时间内导致崩溃,因此,仅基于监视设备是否崩溃的模糊测试方法效率不会很高。
自动记录与环境恢复。现有的模糊测试工具无法自动恢复状态,模糊测试过程中一旦发生崩溃或者影响设备运行的不合规行为,需要测试人员手动恢复设备状态才能继续进行测试,自动化程度不高。
针对上述问题,本发明提出了一种基于生成的自动化Wi-Fi协议模糊测试方法。该方法采用随机变异字段和字段边界测试的变异策略,通过与被测目标交换经过变异和错误状态的数据包等多种测试策略,诱导被测目标出现崩溃或出现偏离Wi-Fi协议的异常行为;模糊测试开始后,通过跟踪在目标AP和相应的STA之间传送的任何取消身份验证的帧或解除关联帧,或通过比对响应包和协议状态机的状态来获取 SUT 反馈;在异常出现后自动记录并在恢复设备状态继续进行测试。
如图2所示,本发明的方法通过测试模块、反馈模块和恢复模块三个模块实现,测试模块和反馈模块运行于测试设备,恢复模块运行于被测设备。图3和图4展示了该方法进行模糊测试的详细步骤。测试模块包含图3的测试线程,反馈模块包含图3的Deauth/Disass探测线程、存活探测线程和状态核对线程,恢复模块包含图4的设备恢复进程。其中,Deauth:Deauthentication,断开认证帧,是Wi-Fi协议中的一种管理帧,用于请求或强制与Wi-Fi访问点连接的客户端断开连接。Disass:Disassociation,断开关联帧,是Wi-Fi协议中的一种管理帧,用于告知Wi-Fi客户端结束与访问点的关联。
基本设计:图2展示了本方法的总体架构。本方法需要使用带有两个无线网卡的Linux终端作为测试设备,该测试设备作为中间人接入到被测Wi-Fi设备和与其配对的设备中,可用于冒充Wi-Fi配对设备测试任意一端(AP端或STA端)的Wi-Fi实现。要在Wi-Fi协议下建立无线连接,Wi-Fi客户端需要遵循协议与网络 AP 有序地交换大量数据包,本方法通过中间人劫持的方式捕获数据包并根据变异策略进行变异后发送给被测设备SUT来触发被测目标出现崩溃或出现偏离Wi-Fi协议的异常行为,此外本方法还将无线协议建模为协议状态机以供参考,通过应答错误状态的数据包来测试被测设备Wi-Fi协议的健壮性。
如图2所示,该方法通过下列模块实现:(i)测试模块,该模块通过随机变异字段和字段边界测试的变异策略变异正确数据包的某些字段来构建格式错误的数据包,此外,还根据协议状态在错误的阶段发送格式正确的数据包,称为错误状态报文;(ii)反馈模块,跟踪在被测设备(SUT)和配对设备之间传送的任何取消身份验证的帧或解除关联帧,或通过比对响应包和协议状态机的状态来获取 SUT 反馈;(iii)恢复模块,监测SUT上Wi-Fi组件的运行状态,在连接断开后自动恢复连接。
该方法主要可以在两种场景下使用。首先,可用于***地测试任意Wi-Fi设备的协议实现,可以发现实现的不符合协议标准的行为(包括崩溃和漏洞)。其次,该方法可以通过发送错误状态的数据包来发现潜在的协议设计缺陷,例如KRACK漏洞,KRACK:KeyReinstallation Attack,是一种Wi-Fi网络安全漏洞,属于WPA2协议设计缺陷,能利用四次握手过程中的重发机制,导致密钥重新安装并破坏加密通信。该方法的反馈模块持续监控Wi-Fi设备之间的通信并采用Wi-Fi的综合状态机模型检查在任何状态下收到的意外数据包。
具体实现时,测试模块使用Dot11模块生成Wi-Fi协议数据包。Dot11模块是一个Python模块,用于处理802.11(Wi-Fi)网络的帧(frame)和协议。它是Scapy库中的一部分,Scapy是一个功能强大的用于网络分析和操作的Python库。Dot11模块提供了一系列类和函数,用于构建、解析和处理802.11帧和协议。通过Dot11模块,可以创建自定义的802.11帧,并对其进行操纵、发送和捕获。如图3所示,首先,选择测试对象、方法和测试协议帧。测试对象指AP端和客户端,本方法能够对两种类型的设备进行模糊测试;测试方法指模糊测试策略,本方法提供了两种变异字段的方法和一种发送错误状态数据帧的方法,将在下文进行详细阐述;测试协议帧指具体测试的协议报文,涵盖IEEE 802.11管理、控制和数据帧。然后,反馈模块的三个线程分别开始监听Deauth/Disass帧、探测设备状态、核对响应帧状态。监听Deauth/Disass帧指跟踪在目标设备和配对设备之间传送的任何取消身份验证的帧或解除关联帧,一旦感知到这样的帧,意味着最近发送的数据导致了连接状态的异常;探测设备状态指通过ping确定被测设备是否处于存活状态,一旦感知到被测设备不响应ICMP回应请求,意味着最近发送的数据影响了被测设备的响应功能;核对响应帧状态指通过协议状态机判别配对设备响应帧的状态,如果响应包(响应帧)与协议状态机的状态不一致,说明协议实现和协议设计存在差异或者协议设计存在漏洞。与此同时,测试模块的测试线程,根据选择的对象和协议帧,通过协议状态机引导被测设备进入测试环境,然后根据选择的测试方法使用Dot11模块生成测试报文发送给被测设备,判断反馈模块是否检测到连接异常、设备失联或者状态错误,如果有则记录当前数据包和上下文环境并重置参数。最后,有些测试会引起被测设备Wi-Fi无法保持正常通讯,因此,恢复模块的设备恢复进程会实时判断被测设备的Wi-Fi运行状态,在检测到异常后重启Wi-Fi并恢复连接,确保模糊测试能够持续进行。值得注意的是,设备恢复进程需要运行在SUT上,如果被测设备无法运行外来程序,则无法实现自动恢复连接功能,此时只能在反馈模块获取异常后发出提醒,手动恢复设备的Wi-Fi连接。
本发明中,测试模块提供了错误状态报文、随机变异字段和字段边界测试三种模糊测试策略:
(1)错误状态报文的模糊测试策略指将有效数据包在不适当的状态下发送到被测设备,这种测试方法对于挖掘诸如秘钥重装攻击(KRACK,Key Reinstallation Attack)此类的漏洞至关重要。KRACK漏洞属于WPA2协议的逻辑漏洞,WPA2协议通过handshake四次握手消息产生用于后续数据通信的加密密钥,因为报文可能丢失,如果AP未接收到客户端的响应会重发第三个消息报文,所以客户端可能重复接收到第3个消息报文多次。每次当客户端接收到此消息,都会重新安装相同的加密密钥,然后重置协议加密使用到的nonce值及重放计数。在四次握手完成进入数据传输阶段后,客户端重发协议中规定四次握手中的第三个消息报文仍然可以被AP端响应,并且能够重置。利用此机制,攻击者可以通过KRACK攻击重置客户端加密密钥,诱导被害者客户端自动连入伪造Wi-Fi。结合中间人攻击,可对被害者流量进行嗅探、劫持和篡改等,获取Wi-Fi网络中的数据信息。在连接已经建立的状态下,向客户端发送message3会触发 KRACK漏洞。在确定测试协议帧后,利用状态机分析正确发送该协议帧的状态,然后通过缺省前序协议帧、提前发送后续协议帧和重复发送该协议帧等方式,发送错误状态报文并监测被测设备响应情况。
(2)随机变异字段的模糊测试策略(随机变异策略)指针对测试协议帧包含的字段,将随机生成器产生的具有随机值长度的随机数据,逐一填充到指定字段或者组合填充到各个字段并发送至被测设备。随机变异策略用于生成具有随机数据的输入,旨在模拟来自恶意用户或异常情况下的非预期输入。随机变异策略一般按确定输入长度、生成随机数据、填充输入字段和重复测试的步骤进行:输入的长度范围可以根据Wi-Fi协议规范的预期输入长度来确定,为了提高测试效率,此策略采用随机生成输入长度的方法;随机数据可以使用伪随机数生成器或特定的随机化算法来生成数据,此策略使用随机数据生成工具Faker(Faker:是一个开源的Python库,用于生成各种类型的随机数据,如姓名、地址、电话号码、电子邮件、日期等。它可以帮助开发人员在测试和模拟环境中快速生成虚拟数据)来生成以半字节为单位的随机数据;此策略首先逐一遍历字段将生成的随机数据进行填充,在单独测试完所有字段后,随机组合字段进行填充;在确定测试协议帧和测试策略后,会无限循环对所有字段和字段组合进行模糊测试,遇到崩溃记录测试数据后设备自动恢复状态继续测试,直至手动停止。
(3)字段边界测试指的模糊测试策略(变异策略)针对测试协议帧包含的字段,通过输入数据的边界情况,即最小值、最大值以及接近边界的值(利用这些值变异测试协议帧包含的某些字段)来测试协议在字段边界条件下的行为。字段边界测试的目的是检查***是否正确处理边界条件,例如正确验证边界值、正确处理上溢或下溢情况等,从而发现协议在边界条件下可能出现的异常行为和安全漏洞。相较于随机变异字段,字段边界测试目的更明确,能更快发现异常行为,但能够测试的漏洞范围有限。字段边界测试针对定长和变长字段的输入长度测试范围分别为{0,1,固定长度-1,固定长度,固定长度+1,254,255}和{0,1,最小长度-1,最小长度,最小长度+1,最大长度-1,最大长度,最大长度+1,254,255},数据生成时随机选择填充0x00、0xff或者随机数据,其余测试方法和随机变异字段一致。字段边界测试从字段长度、数值范围等方面测试***是否能够正确处理字段边界、超出允许范围的值、无效格式的数据、未预期的数据类型等情况,可以帮助发现许多与输入相关的问题,例如缓冲区溢出、整数溢出、数据截断等,这种测试方法可以增加对协议实现的覆盖度,并提高***的鲁棒性和安全性。
参考图5,本发明实施例1的测试操作流程如下:
①客户端通过手机Wi-Fi热点接入无线网络;
②在测试设备配置文件设置热点名称和密码,接入无线网络;
③在测试设备运行模糊测试程序,选择AP为目标,确定测试方法和协议帧;
④测试设备劫持流量,成为AP和STA中间人;
⑤测试模块根据选择的变异策略和协议帧向AP发送测试帧,反馈模块监测AP响应;
⑥运行在AP端的恢复模块检查手机热点情况,出现连接异常时自动重启,利用客户端的自动连接功能恢复连接。
参考图6,本发明实施例2的测试操作流程如下:
①个人电脑通过Wi-Fi点接入无线网络;
②在测试设备配置文件设置热点名称和密码,接入无线网络;
③在测试设备运行模糊测试程序,选择STA为目标,确定测试方法和协议帧;
④测试设备劫持流量,成为AP和STA中间人;
⑤测试模块根据选择的变异策略和协议帧向STA发送测试帧,反馈模块监测STA响应;
⑥运行在STA端的恢复模块检查无线连接情况,出现连接异常时自动进行重新连接。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明技术原理的前提下,还可以做出若干改进和变形,这些改进和变形也应视为本发明的保护范围。
Claims (10)
1.一种基于生成的自动化Wi-Fi协议模糊测试方法,其特征在于,该方法通过测试模块、反馈模块和恢复模块三个模块实现,测试模块和反馈模块运行于测试设备,恢复模块运行于被测设备;
所述被测设备为Wi-Fi设备;所述测试设备是带有两个无线网卡的Linux终端,该测试设备作为中间人接入到被测设备和与其配对的设备中,用于冒充Wi-Fi配对设备测试任意一端的Wi-Fi实现;
所述测试模块通过随机变异字段和字段边界测试的变异策略变异正确数据包的一些字段来构建格式错误的数据包,此外,还根据协议状态在错误的阶段发送格式正确的数据包,称为错误状态报文;
所述反馈模块跟踪在被测设备和配对设备之间传送的任何取消身份验证的帧或解除关联帧,或通过比对响应包和协议状态机的状态来获取被测设备的反馈;
所述恢复模块监测被测设备上Wi-Fi组件的运行状态,在连接断开后自动恢复连接。
2.如权利要求1所述的方法,其特征在于,该方法具体包括以下步骤:
首先,选择测试对象、测试方法和测试协议帧,测试对象包括AP端和客户端这两种被测设备;测试方法指模糊测试策略,包括两种变异字段的方法和一种发送错误状态数据帧的方法,由测试模块提供;测试协议帧指具体测试的协议报文;
然后,反馈模块的三个线程分别开始监听Deauth/Disass帧、探测设备状态、核对响应帧状态;监听Deauth/Disass帧指跟踪在被测设备和配对设备之间传送的任何取消身份验证的帧或解除关联帧,一旦感知到Deauth/Disass帧,意味着最近发送的数据导致了连接状态的异常;探测设备状态指通过ping确定被测设备是否处于存活状态,一旦感知到被测设备不响应ICMP回应请求,意味着最近发送的数据影响了被测设备的响应功能;核对响应帧状态指通过协议状态机判别配对设备响应帧的状态,如果响应帧与协议状态机的状态不一致,说明协议实现和协议设计存在差异或者协议设计存在漏洞;与此同时,测试模块的测试线程根据选择的测试对象和测试协议帧,通过协议状态机引导被测设备进入测试环境,然后根据选择的测试方法使用Dot11模块生成测试报文发送给被测设备,判断反馈模块是否检测到连接异常、设备失联或者状态错误,如果有则记录当前数据包和上下文环境并重置参数;最后,恢复模块的设备恢复进程实时判断被测设备的Wi-Fi运行状态,在检测到异常后重启Wi-Fi并恢复连接,确保模糊测试能够持续进行。
3.如权利要求2所述的方法,其特征在于,测试模块提供发送错误状态报文、随机变异字段和字段边界测试三种模糊测试策略。
4.如权利要求3所述的方法,其特征在于,所述发送错误状态报文的模糊测试策略即所述发送错误状态数据帧的方法,是指将有效数据包在不适当的状态下发送到被测设备,这种方法用于挖掘Wi-Fi协议的逻辑漏洞。
5.如权利要求3所述的方法,其特征在于,所述随机变异字段的模糊测试策略即随机变异策略是一种变异字段的方法,指针对测试协议帧包含的字段,将随机生成器产生的具有随机值长度的随机数据,逐一填充到指定字段或者组合填充到各个字段并发送至被测设备,随机变异策略用于生成具有随机数据的输入,旨在模拟来自恶意用户或异常情况下的非预期输入;随机变异策略按确定输入长度、生成随机数据、填充输入字段和重复测试的步骤进行:输入的长度范围根据Wi-Fi协议规范的预期输入长度来确定,且采用随机生成输入长度的方法;使用伪随机数生成器或特定的随机化算法来生成随机数据;逐一遍历字段将生成的随机数据进行填充,在单独测试完所有字段后,随机组合字段进行填充;在确定测试协议帧和模糊测试策略后,无限循环对所有字段和字段组合进行模糊测试,遇到崩溃记录测试数据后设备自动恢复状态继续测试,直至手动停止。
6.如权利要求5所述的方法,其特征在于,所述随机变异字段的模糊测试策略中,使用随机数据生成工具Faker来生成以半字节为单位的随机数据。
7.如权利要求5所述的方法,其特征在于,字段边界测试的模糊测试策略从字段长度、数值范围方面测试***是否能够正确处理字段边界、超出允许范围的值、无效格式的数据、未预期的数据类型的情况。
8.如权利要求7所述的方法,其特征在于,所述字段边界测试的模糊测试策略是另一种变异字段的方法,它是针对测试协议帧包含的字段,通过输入数据的边界情况,即最小值、最大值以及接近边界的值来测试协议在字段边界条件下的行为,字段边界测试的目的是检查***是否正确处理边界条件,从而发现协议在边界条件下可能出现的异常行为和安全漏洞;字段边界测试针对定长和变长字段的输入长度测试范围分别为{0,1,固定长度-1,固定长度,固定长度+1,254,255}和{0,1,最小长度-1,最小长度,最小长度+1,最大长度-1,最大长度,最大长度+1,254,255},数据生成时随机选择填充0x00、0xff或者随机数据。
9.如权利要求1至8中任一项所述的方法,其特征在于,该方法在两种场景下使用,一种场景是***地测试任意Wi-Fi设备的协议实现,用于发现不符合协议标准的行为,包括崩溃和漏洞;另一种场景是通过发送错误状态的数据包来发现潜在的协议设计缺陷;测试过程通过持续监控Wi-Fi设备之间的通信并采用Wi-Fi的综合状态机模型检查在任何状态下收到的意外数据包的方式监测异常。
10.一种用于实现如权利要求1至9中任一项所述方法的***,其特征在于,包括测试模块、反馈模块和恢复模块三个模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410026744.4A CN117544960B (zh) | 2024-01-09 | 2024-01-09 | 一种基于生成的自动化Wi-Fi协议模糊测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410026744.4A CN117544960B (zh) | 2024-01-09 | 2024-01-09 | 一种基于生成的自动化Wi-Fi协议模糊测试方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117544960A CN117544960A (zh) | 2024-02-09 |
CN117544960B true CN117544960B (zh) | 2024-03-19 |
Family
ID=89792261
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410026744.4A Active CN117544960B (zh) | 2024-01-09 | 2024-01-09 | 一种基于生成的自动化Wi-Fi协议模糊测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117544960B (zh) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255711A (zh) * | 2017-12-29 | 2018-07-06 | 湖南优利泰克自动化***有限公司 | 一种基于污点分析的plc固件模糊测试***及测试方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
CN116471043A (zh) * | 2023-03-10 | 2023-07-21 | 电子科技大学 | 一种基于覆盖引导的工控协议模糊测试优化方法 |
CN117254964A (zh) * | 2023-09-28 | 2023-12-19 | 国网福建省电力有限公司 | 基于高阶属性文法的电网智能终端协议漏洞检测方法 |
CN117294515A (zh) * | 2023-10-19 | 2023-12-26 | 北京工业大学 | 一种基于生成对抗网络的工控网络协议模糊测试方法 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10382310B2 (en) * | 2015-04-01 | 2019-08-13 | Rohde & Schwarz Gmbh & Co. Kg | Measuring device and measuring method for efficiently processing measuring results |
CN114070763B (zh) * | 2020-07-29 | 2023-09-26 | 富泰华工业(深圳)有限公司 | 基于改进的rest协议的测试方法、客户端、服务器及介质 |
US11956139B2 (en) * | 2020-08-31 | 2024-04-09 | Teledyne Lecroy, Inc. | Method and apparatus for simultaneous protocol and physical layer testing |
-
2024
- 2024-01-09 CN CN202410026744.4A patent/CN117544960B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255711A (zh) * | 2017-12-29 | 2018-07-06 | 湖南优利泰克自动化***有限公司 | 一种基于污点分析的plc固件模糊测试***及测试方法 |
CN110505111A (zh) * | 2019-07-09 | 2019-11-26 | 杭州电子科技大学 | 基于流量重放的工控协议模糊测试方法 |
CN114501458A (zh) * | 2022-01-27 | 2022-05-13 | 重庆邮电大学 | 基于扩展有限状态机的wia-pa协议模糊测试数据生成方法 |
CN116471043A (zh) * | 2023-03-10 | 2023-07-21 | 电子科技大学 | 一种基于覆盖引导的工控协议模糊测试优化方法 |
CN117254964A (zh) * | 2023-09-28 | 2023-12-19 | 国网福建省电力有限公司 | 基于高阶属性文法的电网智能终端协议漏洞检测方法 |
CN117294515A (zh) * | 2023-10-19 | 2023-12-26 | 北京工业大学 | 一种基于生成对抗网络的工控网络协议模糊测试方法 |
Also Published As
Publication number | Publication date |
---|---|
CN117544960A (zh) | 2024-02-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Hofer-Schmitz et al. | Towards formal verification of IoT protocols: A Review | |
US10873594B2 (en) | Test system and method for identifying security vulnerabilities of a device under test | |
US20020120575A1 (en) | Method of and apparatus for ascertaining the status of a data processing environment | |
Lee et al. | A comprehensive security assessment framework for software-defined networks | |
CN113422774B (zh) | 一种基于网络协议的自动化渗透测试方法、装置及存储介质 | |
Hussain et al. | Noncompliance as deviant behavior: An automated black-box noncompliance checker for 4g lte cellular devices | |
Karim et al. | Prochecker: An automated security and privacy analysis framework for 4g lte protocol implementations | |
KR102215706B1 (ko) | 제어 평면의 동적 보안 분석 방법 및 그 시스템 | |
US20160134650A1 (en) | System, method, and appartus for proactive cybersecurity | |
Ray et al. | Bluetooth low energy devices security testing framework | |
Schepers et al. | On the robustness of Wi-Fi deauthentication countermeasures | |
CN105187369A (zh) | 一种数据访问方法及装置 | |
Schepers et al. | Practical side-channel attacks against WPA-TKIP | |
Yang et al. | 5g rrc protocol and stack vulnerabilities detection via listen-and-learn | |
Nkuba et al. | Riding the IoT wave with VFuzz: discovering security flaws in smart homes | |
Zhang et al. | Kingfisher: Unveiling insecurely used credentials in iot-to-mobile communications | |
Chlosta et al. | On the challenges of automata reconstruction in lte networks | |
Morais et al. | A model-based attack injection approach for security validation | |
Mendonça et al. | Fuzzing wi-fi drivers to locate security vulnerabilities | |
Karim et al. | Blediff: Scalable and property-agnostic noncompliance checking for ble implementations | |
Mahadewa et al. | HOMESCAN: Scrutinizing implementations of smart home integrations | |
CN117544960B (zh) | 一种基于生成的自动化Wi-Fi协议模糊测试方法 | |
CN115633359A (zh) | Pfcp会话安全检测方法、装置、电子设备和存储介质 | |
CN115426654A (zh) | 一种构建面向5g通信***的网元异常检测模型的方法 | |
CN114328216A (zh) | 一种漏洞挖掘的方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |