Static Analysis Tools for Network-Device Stacks

Furkejuvvon:
Bibliográfalaš dieđut
Publikašuvnnas:ProQuest Dissertations and Theses (2025)
Váldodahkki: Ruffy, Fabian
Almmustuhtton:
ProQuest Dissertations & Theses
Fáttát:
Liŋkkat:Citation/Abstract
Full Text - PDF
Fáddágilkorat: Lasit fáddágilkoriid
Eai fáddágilkorat, Lasit vuosttaš fáddágilkora!

MARC

LEADER 00000nab a2200000uu 4500
001 3223751664
003 UK-CbPIL
020 |a 9798286423576 
035 |a 3223751664 
045 2 |b d20250101  |b d20251231 
084 |a 66569  |2 nlm 
100 1 |a Ruffy, Fabian 
245 1 |a Static Analysis Tools for Network-Device Stacks 
260 |b ProQuest Dissertations & Theses  |c 2025 
513 |a Dissertation/Thesis 
520 3 |a The administration of computer networks is increasingly automated, and network devices are becoming more programmable. The network-device stack---software layers dedicated to forwarding packets and interpreting instructions from the network control plane---now implements much more operational logic. The increase in complexity in logic can increase the frequency of faults, which can have an outsized impact on a computer network. Hence, network operators and device manufacturers are turning to static analysis to ensure that the device stack is both well-optimized and functionally correct. The software in network-device stacks is extensive and often written in general-purpose languages such as Python or C++. These languages contain loops, aliasing, or indirection, which can make developing effective static analysis techniques challenging. In this dissertation, we explore an opportunity to build better static analysis tools for network-device stacks. We use P4, a domain-specific language for network programming, as our foundation. We develop an execution model for P4 that describes the behavior of a network device, and we implement this execution model using satisfiability modulo theories (SMT), expressed in quantifier-free bit vectors. We refine this execution model through three distinct projects and show its utility by adopting techniques from software engineering research that are theoretically powerful but were considered practically limited for general-purpose languages. Applying our specialized techniques, we were able to find approximately 60 bugs in network-device stacks that cause incorrect packet processing. Furthermore, we reuse our model to optimize network programs based on their control-plane configuration, which can reduce resource usage and increase packet-processing performance. Our SMT-based execution model for packet processing is protocol-independent, device-agnostic, and precise enough for bug-finding and program optimization. We attribute these successes to tailoring our model to a DSL specialized in packet processing while also appropriately exploiting the restrictions of this DSL. We have contributed the tools that use this model to open-source projects, and these tools are now in broader use by the community. 
653 |a Computer science 
653 |a Computer engineering 
653 |a Information technology 
773 0 |t ProQuest Dissertations and Theses  |g (2025) 
786 0 |d ProQuest  |t ProQuest Dissertations & Theses Global 
856 4 1 |3 Citation/Abstract  |u https://www.proquest.com/docview/3223751664/abstract/embedded/L8HZQI7Z43R0LA5T?source=fedsrch 
856 4 0 |3 Full Text - PDF  |u https://www.proquest.com/docview/3223751664/fulltextPDF/embedded/L8HZQI7Z43R0LA5T?source=fedsrch