Runtime Verification for Programmable Switches

被引:1
|
作者
Shukla, Apoorv [1 ]
Huedemann, Kevin [2 ]
Vagi, Zsolt [3 ]
Huegerich, Lily [4 ]
Smaragdakis, Georgios [5 ]
Hecker, Artur [1 ]
Schmid, Stefan [4 ,6 ]
Feldmann, Anja [7 ]
机构
[1] Huawei Munich Res Ctr, D-80992 Munich, Germany
[2] SAP, D-69190 Walldorf, Germany
[3] Swisscom AG, CH-3048 Bern, Switzerland
[4] Tech Univ Berlin TU Berlin, D-10623 Berlin, Germany
[5] Delft Univ Technol TU Delft, NL-2600 CD Delft, Netherlands
[6] Fraunhofer Inst Secure Informat Technol Fraunhofe, D-64295 Darmstadt, Germany
[7] Max Planck Inst Informat, D-66123 Saarbrucken, Germany
基金
欧洲研究理事会; 奥地利科学基金会;
关键词
Computer bugs; Behavioral sciences; Runtime; Software; Fuzzing; Pipelines; Static analysis; Programmable networks; P4; verification;
D O I
10.1109/TNET.2023.3234931
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
We introduce a runtime verification framework for programmable switches that complements static analysis. To evaluate our approach, we design and develop, a runtime verification system that automatically detects, localizes, and patches software bugs in P4 programs. Bugs are reported via a violation of pre-specified expected behavior that is captured by . is based on machine learning-guided fuzzing that tests P4 switch non-intrusively, i.e., without modifying the P4 program for detecting runtime bugs. This enables an automated and real-time localization and patching of bugs. We used a prototype to detect and patch existing bugs in various publicly available P4 application programs deployed on two different switch platforms, namely, behavioral model (bmv2) and Tofino. Our evaluation shows that significantly outperforms bug detection baselines while generating fewer packets and patches bugs in large P4 programs, e.g., switch.p4 without triggering any regressions.
引用
收藏
页码:1822 / 1837
页数:16
相关论文
共 50 条
  • [41] Decentralized Stream Runtime Verification
    Miguel Danielsson, Luis
    Sanchez, Cesar
    RUNTIME VERIFICATION, RV 2019, 2019, 11757 : 185 - 201
  • [42] Runtime checking for program verification
    Zee, Karen
    Kuncak, Viktor
    Taylor, Michael
    Rinard, Martin
    RUNTIME VERIFICATION, 2007, 4839 : 202 - +
  • [43] Runtime verification: the application perspective
    Falcone, Ylies
    Zuck, Lenore D.
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2015, 17 (02) : 121 - 123
  • [44] Runtime Verification of Contracts with Themulus
    Aranda Garcia, Alberto
    Cambronero, Maria-Emilia
    Colombo, Christian
    Llana, Luis
    Pace, Gordon J.
    SOFTWARE ENGINEERING AND FORMAL METHODS, SEFM 2020, 2020, 12310 : 231 - 246
  • [45] Runtime verification of statechart implementations
    Pintér, G
    Majzik, I
    ARCHITECTING DEPENDABLE SYSTEMS III, 2005, 3549 : 148 - 172
  • [46] Runtime monitoring & software verification
    Drusinsky, D
    DR DOBBS JOURNAL, 2004, 29 (08): : 68 - 72
  • [47] Runtime Verification for Trustworthy Computing
    Abela, Robert
    Colombo, Christian
    Curmi, Axel
    Fenech, Mattea
    Vella, Mark
    Ferrando, Angelo
    ELECTRONIC PROCEEDINGS IN THEORETICAL COMPUTER SCIENCE, 2023, 391 : 49 - 62
  • [48] Runtime Verification for Biochemical Programs
    Andrei, Oana
    Kirchner, Helene
    ELECTRONIC NOTES IN THEORETICAL COMPUTER SCIENCE, 2013, 297 : 27 - 46
  • [49] Runtime verification of cryptographic protocols
    Bauer, Andreas
    Juerjens, Jan
    COMPUTERS & SECURITY, 2010, 29 (03) : 315 - 330
  • [50] Runtime Verification of Kotlin Coroutines
    Furian, Denis
    Azzopardi, Shaun
    Falcone, Ylies
    Schneider, Gerardo
    RUNTIME VERIFICATION (RV 2022), 2022, 13498 : 221 - 239