P4Fuzz: A Compiler Fuzzer for Securing P4 Programmable Dataplanes
Authors
Agape, Andrei-Alexandru ; Danceanu, Madalin Claudiu
Term
4. term
Education
Publication year
2018
Submitted on
2018-06-08
Pages
115
Abstract
Netværk er gået fra traditionelle, faste løsninger til mere fleksible, programmerbare systemer, hvilket har forbedret kvaliteten af de leverede tjenester. Denne udvikling medfører dog også nye sikkerhedsrisici. Vi adresserer en stort set uafdækket del af angrebsfladen ved at fokusere på programmerbare dataplanes—den del af netværksenheder, der udfører pakkehåndtering—skrevet i P4, et sprog til at beskrive, hvordan pakker behandles. Vores mål er at styrke sikkerheden ved at finde fejl i P4-kompilatorer. Vi præsenterer P4Fuzz, en smart, blackbox og genereringsbaseret fuzzer inspireret af Csmith. En fuzzer er et værktøj, der automatisk fremstiller mange testprogrammer; P4Fuzz bruger taming-teknikker til at kontrollere de genererede programmer og gør dem velegnede til test. Værktøjet komplementerer eksisterende arbejde og understøtter flere arkitekturer, herunder BMv2 og eBPF, med mulighed for at tilføje flere i fremtiden. I vores eksperimenter genererede P4Fuzz op til 80 P4-programmer i minuttet og testede op til 21 programmer i minuttet. Med P4Fuzz fandt og rapporterede vi fire kompilatorfejl; to er blevet rettet i det officielle P4C-repositorium, den standard kompilator for P4. En caseundersøgelse viser, hvordan kompilatorfejl kan introducere sikkerhedsproblemer. Vi vurderer, at P4Fuzz udfylder et vigtigt hul i litteraturen og i de tilgængelige sikkerhedsværktøjer for nye netværksteknologier.
Networking has moved from traditional, fixed designs to more flexible, programmable systems, improving the quality of services. However, these changes also introduce new security risks. We address a largely unexplored part of this attack surface by focusing on programmable dataplanes—the part of network devices that handles packet processing—written in P4, a language for describing how packets are processed. Our goal is to improve security by finding bugs in P4 compilers. We present P4Fuzz, a smart, black-box, generation-based fuzzer inspired by Csmith. A fuzzer is a tool that automatically creates many test programs; P4Fuzz uses taming techniques to control the generated programs and make them suitable for testing. It complements related work and supports multiple architectures, including BMv2 and eBPF, with the option to add more in the future. In our experiments, P4Fuzz generated up to 80 P4 programs per minute and tested up to 21 per minute. Using P4Fuzz, we discovered and reported four compiler bugs; two have been fixed in the official P4C repository, the standard compiler for P4. A case study shows how compiler bugs can introduce security issues. We argue that P4Fuzz helps fill an important gap in the literature and in available security tools for emerging network technologies.
[This abstract was generated with the help of AI]
Documents
