MultiFuzz:IoT发布/订阅协议的基于Coverage的多方协议模糊器
摘要
1.简介
我们提出了一个多方协议模糊器MultiFuzz,以充分支持发布/订阅协议的模糊化。 模糊器可以启动到PUT的多个连接,并具有新的种子格式,用于在单个种子输入中存储连接的所有消息。 我们提出了一种消息变异算法来变异种子输入中的消息序列,以有效地刺激协议的状态转换。 变异算法还考虑了种子中存储的多个连接。 我们设计并实现了desockmulti,用于将网络消息发送到PUT。 以前,社区通常使用Preeny的desock模块和AFL来模糊网络服务,但desock只支持一个连接。 我们使用一种新的设计来支持多个连接,并进一步优化desockmulti,使其比广泛使用的desock工具快10倍( 第5.4节 )(我们计划在本文发表后开源desockmulti)。
2.相关工作
黑匣子网络协议模糊化 [ 19 ]. 它包括通用协议模糊化工具,如SPIKE[ 33 ],PROTOS公司[ 34 ]、SNOOZE[ 35 ]、LZFuzz[ 36 ]、布夫兹(苏利)[ 26 ]和桃子[ 8 ]以及专门为某些协议设计的工具,如TLS-Attacker[ 27 ]传输层安全(TLS)协议和MTF[ 37 ]用于Modbus协议。 这些工具大多需要用户告诉网络消息的格式,其中一些还支持用户提供协议状态的转换规则[ 8 ]. 对于通用协议模糊化工具,用户需要通过脚本提供此类信息[ 26 , 33 , 34 ]或xml文件[ 8 , 35 ]. 对于专门为某些协议设计的工具,这些信息由工具开发人员提供。 这些工具中的大多数假装为客户端,将输入输入到网络程序中,还有一些工具,如LZFuzz[ 36 ]充当中间人(MITM)代理来修改客户端和服务器之间的消息。 黑盒模糊处理通常需要按照协议规范编写脚本、xml文件或代码,并且需要在协议有新版本时相应地更新它们。 此外,与灰盒和白盒模糊相比,黑盒模糊可能更适合于发现“浅层”错误[ 6 ]. 灰盒网络协议模糊化 [ 三 , 10 , 15 ]. 通用的基于覆盖的模糊工具,如AFL[ 三 ]和libFuzzer[ 4 ]也用于模糊网络协议。 通常用户不需要知道协议规范或编写任何脚本/代码,而是准备(例如通过录制)一些消息作为种子输入。 然而,由于AFL等工具[ 三 ]用于使用files/stdin/memory buffer作为输入源对程序进行模糊处理,它们需要某种方式将模糊输入输入到网络程序中。 现在有三种已知的方法。 AFL建议使用Preeny(desock)[ 28 ],一个基于钩子的工具,只需将stdin重定向到该工具劫持的套接字[ 三 ]、AFLNET[ 15 ]通过普通套接字向网络程序发送输入,用户还可以修改程序源代码,使程序直接从内存缓冲区读取数据包,而不是真正的网络接口,就像Google OSS-Fuzz项目对openssl所做的那样[ 10 ]. 前两种方法可能会限制模糊化的执行速度(与本文提出的desockmulti工具相比)。 如果程序的原始开发人员不期望这样的修改,那么第三种方法可能会很困难,而且对于封闭源代码程序来说也是不可能的。 AFLNET的最新作品[ 15 ]提出将基于覆盖的模糊化与自动状态模型推理相结合。 当模糊化生成新的消息序列以覆盖新状态时,推断的状态模型指导如何进行模糊化。 AFLNET表现优于Boofuzz[ 26 ]和AFL[ 三 ]在代码覆盖和漏洞发现方面[ 15 ]. 然而,它要求用户编写代码来从消息中提取部分信息,如响应代码。
3.MQTT和CoAP简介
4.多引信
4.1. 概述
4.2. 用多连接信息扩充种子
4.3. 新消息突变阶段
|
4.4. desockmulti,一种快速、多连接的脱扣工具
desockmulti支持新的种子格式。 desockmulti可以启动到PUT的多个连接(即一个或多个),它可以替代只能启动一个连接的desock。 desockmulti针对模糊进行了优化,比desock快10倍。
4.5. 其他实施细节
5.评估
5.1. 实验设置
5.2. 路径和崩溃发现
5.3. 多连接设计和消息变异算法的影响
5.4. 执行速度的比较
5.5. 脆弱性分析
6.结论
作者贡献
基金
利益冲突
工具书类
米勒,B.P。; 弗雷德里克森,L。; 因此,B.UNIX实用程序可靠性的实证研究。 Commun公司。 ACM。 1990 , 33 , 32–44. [ 谷歌学者 ] [ 交叉参考 ] 马内斯,V.J.M。; 韩,H.S。; Han,C。; Cha,S.K。; 埃格尔,M。; E.J.施瓦茨。; 吴,M.《模糊数学的艺术、科学和工程:一项调查》。 IEEE T.软件。 工程师。 2019 , 1–21. [ 谷歌学者 ] [ 交叉参考 ] [ 绿色版本 ] Zalewski,M.AFL-American Fuzzy Lop。 在线可用: http://lcamtuf.coredump.cx/afl/ (2020年7月29日查阅)。 libFuzzer。 在线可用: http://llvm.org/docs/LibFuzzer.html (2020年7月29日查阅)。 伯赫梅,M。; Pham,V.T。; Roychoudhury,A.基于覆盖的灰盒模糊马尔可夫链。 2016年10月24日至28日在奥地利维也纳举行的ACM SIGSAC计算机和通信安全会议记录; 第1032-1043页。 [ 谷歌学者 ] [ 交叉参考 ] Liang,H。; 裴,X。; 贾,X。; 沈伟(Shen,W.)。; Zhang,J.Fuzzing:艺术状态。 IEEE T.可靠性。 2018 , 67 , 1199–1218. [ 谷歌学者 ] [ 交叉参考 ] 佐夫。 在线可用: 网址:http://caca.zoy.org/wiki/zzuf (2020年7月29日查阅)。 桃子科技。桃子浓雾。 在线可用: https://www.peah.tech (2020年7月29日查阅)。 Godefroid,P。; 基辅,A。; Levin,M.Y.基于语法的白盒模糊处理。 2008年6月7日至13日在美国亚利桑那州图森市举行的ACM SIGPLAN编程语言设计与实现(PLDI)会议记录; 第206-215页。 [ 谷歌学者 ] [ 交叉参考 ] 谷歌安全团队。 OSS-Fuzz的新篇章。 在线可用: https://security.googleblog.com/2018/11/a-new-chapter-for-oss-fuzz.html (2020年7月29日查阅)。 甘,S。; 张,C。; 秦,X。; 涂,X。; 李凯。; 裴,Z。; Chen,Z.CollAFL:路径敏感模糊。 2018年5月21日至23日,美国加利福尼亚州旧金山,IEEE安全与隐私研讨会(S&P)会议记录; 第679-696页。 [ 谷歌学者 ] [ 交叉参考 ] 陈,P。; Chen,H.Angora:通过原则搜索实现高效模糊。 2018年5月21日至23日,美国加利福尼亚州旧金山,IEEE安全与隐私研讨会(S&P)会议记录; 第711-725页。 [ 谷歌学者 ] [ 交叉参考 ] [ 绿色版本 ] 我·云。; Lee,S。; 徐,M。; Jang,Y。; Kim,T.QSYM:为混合模糊定制的实用协和执行引擎。 第27届USENIX安全研讨会(安全)会议记录,美国马里兰州巴尔的摩,2018年8月15日至17日; 第745-761页。 [ 谷歌学者 ] Lyu,C。; 季S。; 张,C。; 李,Y。; Lee,W.H。; Song,Y。; Beyah,R.MOPT:优化模糊器的变异调度。 第28届USENIX安全研讨会(安全)会议记录,2019年8月14日至16日,美国加利福尼亚州圣克拉拉; 第1949–1966页。 [ 谷歌学者 ] Pham,V.t。; 博姆,M。; Roychoudhury,A.AFLNet:网络协议的灰盒模糊器。 第13届IEEE软件测试、验证和确认国际会议论文集:测试工具跟踪,葡萄牙波尔图,2020年10月24-28日; 第460-465页。 [ 谷歌学者 ] [ 交叉参考 ] Aschermann,C。; 舒米洛,S。; 阿巴斯。; Holz,T.IJON:通过Fuzzing探索深状态空间。 2020年5月17日至21日,美国加利福尼亚州旧金山,IEEE安全与隐私研讨会(S&P)论文集; 第1-16页。 [ 谷歌学者 ] Al-Fuqaha,A。; Guizani,M。; 穆罕默德(M.Mohammadi)。; Aledhari,M。; Ayyash,M.物联网:关于实现技术、协议和应用的调查。 电气与电子工程师协会。 Commun公司。 调查。 导师。 2015 , 17 , 2347–2376. [ 谷歌学者 ] [ 交叉参考 ] 亚森,医学学士。; M.Q.沙特纳维。; Al-Zoubi,D.物联网应用层协议:一项调查。 2016年9月22日至24日,摩洛哥阿加迪尔,《2016年国际工程与管理信息系统会议记录》。 [ 谷歌学者 ] [ 交叉参考 ] Dizdarević,J。; 卡皮奥,F。; Jukan,A。; Masip Bruin,X.物联网通信协议调查以及雾和云计算集成的相关挑战。 ACM公司。 计算。 Surv公司。 2019 , 51 , 1–30. [ 谷歌学者 ] [ 交叉参考 ] 佩雷拉,C。; Aguiar,A.走向高效移动M2M通信:调查和开放挑战。 传感器 2014 , 14 , 19582–19608. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] Banks,A。; 布里格斯,E。; Borgendale,K。; Gupta,R.(编辑) MQTT版本5.0 ; OASIS标准:美国马萨诸塞州伯灵顿,2019年。 [ 谷歌学者 ] 谢尔比,Z。; Hartke,K。; C.鲍曼。 约束应用程序协议(CoAP)。 RFC 7252 2014 ; 互联网工程特别工作组(IETF):美国加利福尼亚州弗里蒙特,2014年。 [ 谷歌学者 ] 英国哈特克。 观察受限应用程序协议(CoAP)中的资源。 RFC 7641 2015 ; 互联网工程任务组(IETF):美国加利福尼亚州弗里蒙特,2015年。 [ 谷歌学者 ] 团队,T.H.IoT云平台对MQTT支持的比较。 在线可用: https://www.hivemq.com/blog/hivemz-cloud-vs-aws-iot/ (于2020年7月29日访问)。 普托内。 物联网核心CoAP代理演示。 在线可用: https://cloud.google.com/community/tutorials/cloud-iot-coap-proxy网站 (2020年7月29日查阅)。 Boofuzz:人类网络协议模糊。 在线可用: https://github.com/jtpereyda/boofuzz (2020年7月29日查阅)。 Somorovsky,J.TLS库的系统模糊和测试。 2016年10月24日至28日在奥地利维也纳举行的ACM SIGSAC计算机和通信安全会议记录; 第1492-1504页。 [ 谷歌学者 ] [ 交叉参考 ] 普伦尼。 在线可用: https://github.com/zardus/prepeny(https://github.com/zardus/preeny) (2020年7月29日查阅)。 Eclipse Mosquito公司。 在线可用: https://mosquitto.org网站/ (2020年7月29日查阅)。 利伯阿普。 在线可用: https://libcoap.net网站/ (2020年7月29日查阅)。 克莱斯,G。; Ruef,A。; 库珀,B。; Wei,S。; Hicks,M.评估模糊测试。 2018年10月15日至19日,加拿大安大略省多伦多市,ACM SIGSAC计算机和通信安全会议(CCS)会议记录; 第2123-2138页。 [ 谷歌学者 ] [ 交叉参考 ] [ 绿色版本 ] Godefroid,P。; 莱文,M.Y。; Molnar,D.自动化白盒模糊测试。 2008年2月10日至13日在美国加利福尼亚州圣地亚哥举行的网络和分布式系统安全研讨会(NDSS)会议记录; 第416–426页。 [ 谷歌学者 ] 艾特尔,D。 基于块的协议分析在安全测试中的优势 ; 技术报告; Immunity Inc.:美国纽约州纽约市,2002年。 [ 谷歌学者 ] Roning,J。; Laakso,M。; Takanen,A.PROTOS演讲。 在线可用: https://www.ee.oulu.fi/research/ouspg/ (于2020年7月29日访问)。 Banks,G。; Cova,M。; Felmetsger,V。; 阿尔梅罗斯,K.C。; R.A.凯默勒。; Vigna,G.SNOOZE:走向一个有状态的网络。 2006年8月30日至9月2日在希腊萨摩斯岛举行的第九届国际会议信息安全会议记录; 第343–358页。 [ 谷歌学者 ] [ 交叉参考 ] 布拉特斯,S。; Hansen,A。; A.舒比纳。 LZfuzz:一种用于文档化较差的协议的快速压缩模糊器 ; 技术报告; 达特茅斯学院计算机科学系:汉诺威,新罕布什尔州,美国。 [ 谷歌学者 ] Voyiatzis,A.G.公司。; Katsigiannis,K。; Koubias,S.A Modbus/TCP Fuzzer,用于测试互联工业系统。 2015年9月8日至11日,卢森堡,IEEE新兴技术和工厂自动化国际会议(ETFA)会议记录; 第1-6页。 [ 谷歌学者 ] [ 交叉参考 ] 陈,J。; 迪奥·W。; 赵(Q.Zhao)。; 左,C。; 林,Z。; 王,X。; 刘,W.C。; 孙,M。; Yang,R。; Zhang,K.IoTFuzzer:通过基于应用程序的模糊处理发现物联网中的内存损坏。 2018年2月18日至21日在美国加利福尼亚州圣地亚哥举行的第25届网络和分布式系统安全研讨会(NDSS)会议记录; 第1-22页。 [ 谷歌学者 ] 郑毅。; Davanian,A。; 尹,H。; 宋,C。; 朱,H。; Sun,L.FIRM-AFL:通过增强过程仿真对物联网固件进行高通量灰盒模糊化。 第28届USENIX安全研讨会(安全)会议记录,2019年8月14日至16日,美国加利福尼亚州圣克拉拉; 第1099-1114页。 [ 谷歌学者 ] 埃尔南德斯·拉莫斯,S。; 马萨诸塞州维拉尔巴。; Lacuesta,R.MQTT安全:一种新的模糊方法。 Wirel公司。 Commun公司。 暴徒。 通用域名格式。 2018 , 2018 . [ 谷歌学者 ] [ 交叉参考 ] [ 绿色版本 ] mqtt_fuzz工具。 在线可用: https://github.com/F-Secure/mqtt_fuzz (2020年7月29日查阅)。 罗德里格斯-多明格斯,C。; 班加西,K。; Noguera,M。; 加里多,J.L。; 罗德里格斯,M.L。; Ruiz-López,T.将请求-响应和发布-订阅范例集成到无所不在系统中的通信模型。 传感器 2012 , 12 , 7648–7668. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] Davis,E.G。; Calveras,A。; Demirkol,I.提高无线传感器网络中发布/订阅协议的数据包传递性能。 传感器 2013 , 13 , 648–680. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] 阿卡西亚迪斯,C。; Pitsilis,V。; Spyropoulos,C.D.基于开源框架的多协议物联网平台。 传感器 2019 , 19 , 4217. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] Larmo,A。; Ratilainen,A。; Saarinen,J.CoAP和MQTT对NB-IoT系统性能的影响。 传感器 2019 , 19 , 7. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] Bormann,C。; 莱梅,S。; Tschofenig,H。; Hartke,K。; Silverajan,B。; 雷莫尔,B。 基于TCP、TLS和WebSockets的CoAP(受限应用程序协议)。 RFC 8323 2018 ; 互联网工程任务组(IETF):美国加利福尼亚州弗里蒙特,2018年。 [ 谷歌学者 ] Houimli,M。; Kahloul,L。; Benaoun,S.物联网中MQTT协议的正式规范、验证和评估。 2017年12月4日至5日在阿尔及利亚阿德拉尔举行的2017年国际数学与信息技术会议(ICMIT)会议记录; 第214-221页。 [ 谷歌学者 ] [ 交叉参考 ] Vaccari,I。; M.Aiello。; Cambiaso,E.SlowITe,一种影响MQTT的新型拒绝服务攻击。 传感器 2020 , 20 , 2932. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] Granjal,J。; 席尔瓦,J.M。; Lourenço,N.使用异常检测在CoAP无线传感器网络中进行入侵检测和预防。 传感器 2018 , 18 , 2445. [ 谷歌学者 ] [ 交叉参考 ] [ 公共医学 ] [ 绿色版本 ] Serebryany,K。; 布鲁宁,D。; Potapenko,A。; Vyukov,D.AddressSanitizer:一个快速的地址完整性检查程序。 2012年6月13日至15日在美国马萨诸塞州波士顿举行的USENIX年度技术会议(ATC)会议记录; 第309-318页。 [ 谷歌学者 ]