P4Fuzz: Compiler Fuzzer forDependable Programmable Dataplanes

Andrei-Alexandru Agape, Madalin Claudiu Danceanu, René Rydhof Hansen, S. Schmid
{"title":"P4Fuzz: Compiler Fuzzer forDependable Programmable Dataplanes","authors":"Andrei-Alexandru Agape, Madalin Claudiu Danceanu, René Rydhof Hansen, S. Schmid","doi":"10.1145/3427796.3427798","DOIUrl":null,"url":null,"abstract":"Emerging software-defined networks and programmable dataplanes promise to render communication networks more dependable, overcoming today’s manual and error-prone approach to operate networks. Indeed, programmable dataplanes such as P4 provide great opportunities for improving network performance and developing innovative security features, by allowing programmers to reconfigure and tailor switches towards their needs. However, extending programmability to the dataplane also introduces new threat models. In this paper, using a systematic security analysis, we identify a particularly worrisome vulnerability: the automated program compilers which lie at the core of programmable dataplanes. The dataplane compilers introduce a risk of persistent threats which are covert and hard to detect, and may be exploited for large-scale attacks, affecting many devices. Our main contribution is P4Fuzz, a compiler fuzzer to find bugs and vulnerabilities in P4 compilers, in an efficient and automated manner. We discuss the challenges involved in designing such a compiler fuzzer for P4, present our fuzzing and taming algorithms, and report on experiments with our prototype implementation, considering the standard compilers of BMv2, eBPF, and NetFPGA. Our experiments confirm that P4Fuzz is able to generate and test the validity of dozens of P4 programs per minute. Using P4Fuzz, we also successfully found several bugs which have been acknowledged and fixed by the community.","PeriodicalId":335477,"journal":{"name":"Proceedings of the 22nd International Conference on Distributed Computing and Networking","volume":"1 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2020-12-25","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"7","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"Proceedings of the 22nd International Conference on Distributed Computing and Networking","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1145/3427796.3427798","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 7

Abstract

Emerging software-defined networks and programmable dataplanes promise to render communication networks more dependable, overcoming today’s manual and error-prone approach to operate networks. Indeed, programmable dataplanes such as P4 provide great opportunities for improving network performance and developing innovative security features, by allowing programmers to reconfigure and tailor switches towards their needs. However, extending programmability to the dataplane also introduces new threat models. In this paper, using a systematic security analysis, we identify a particularly worrisome vulnerability: the automated program compilers which lie at the core of programmable dataplanes. The dataplane compilers introduce a risk of persistent threats which are covert and hard to detect, and may be exploited for large-scale attacks, affecting many devices. Our main contribution is P4Fuzz, a compiler fuzzer to find bugs and vulnerabilities in P4 compilers, in an efficient and automated manner. We discuss the challenges involved in designing such a compiler fuzzer for P4, present our fuzzing and taming algorithms, and report on experiments with our prototype implementation, considering the standard compilers of BMv2, eBPF, and NetFPGA. Our experiments confirm that P4Fuzz is able to generate and test the validity of dozens of P4 programs per minute. Using P4Fuzz, we also successfully found several bugs which have been acknowledged and fixed by the community.
P4Fuzz:可编程数据平面的编译器Fuzzer
新兴的软件定义网络和可编程数据平面有望使通信网络更加可靠,克服当今人工操作和容易出错的网络操作方法。实际上,P4等可编程数据平面允许程序员根据自己的需要重新配置和定制交换机,从而为提高网络性能和开发创新的安全特性提供了巨大的机会。然而,将可编程性扩展到数据平面也引入了新的威胁模型。在本文中,通过系统的安全分析,我们发现了一个特别令人担忧的漏洞:自动程序编译器,它位于可编程数据平面的核心。数据平面编译器引入了持续威胁的风险,这些威胁隐蔽且难以检测,并且可能被用于大规模攻击,影响许多设备。我们的主要贡献是P4Fuzz,这是一个编译器模糊器,以高效和自动化的方式查找P4编译器中的错误和漏洞。我们讨论了为P4设计这样一个编译器模糊器所涉及的挑战,介绍了我们的模糊测试和驯服算法,并报告了我们的原型实现的实验,考虑到BMv2、eBPF和NetFPGA的标准编译器。我们的实验证实,P4Fuzz能够每分钟生成和测试几十个P4程序的有效性。使用P4Fuzz,我们还成功地发现了一些bug,这些bug已经得到了社区的承认和修复。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 求助全文
来源期刊
自引率
0.00%
发文量
0
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术官方微信