Model checking large network protocol implementations

被引:0
|
作者
Musuvathi, M [1 ]
Engler, DR [1 ]
机构
[1] Stanford Univ, Comp Syst Lab, Stanford, CA 94305 USA
关键词
D O I
暂无
中图分类号
TP3 [计算技术、计算机技术];
学科分类号
0812 ;
摘要
Network protocols must work. The effects of protocol specification or implementation errors range from reduced performance, to security breaches, to bringing down entire networks. However, network protocols are difficult to test due to the exponential size of the state space they define. Ideally, a protocol implementation must be validated against all possible events (packet arrivals, packet losses, timeouts, etc.) in all possible protocol states. Conventional means of testing can explore only a minute fraction of these possible combinations. This paper focuses on how to effectively find errors in large network protocol implementations using model checking, a formal verification technique. Model checking involves a systematic exploration of the possible states of a system, and is well-suited to finding intricate errors lurking deep in exponential state spaces. Its primary limitation has been the effort needed to use it on software. The primary contribution of this paper are novel techniques that allow us to model check complex, real-world, well-tested protocol implementations with reasonable effort. We have implemented these techniques in CMC, a C model checker [30] and applied the result to the Linux TCP/IP implementation, finding four errors in the protocol implementation.
引用
收藏
页码:155 / 168
页数:14
相关论文
共 50 条
  • [1] Verifying network protocol implementations by symbolic refinement checking
    Alur, R
    Wang, BY
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2001, 2102 : 169 - 181
  • [2] Security analysis of TLS protocol implementations based on model checking
    Bi X.
    Tang C.
    Xi Tong Gong Cheng Yu Dian Zi Ji Shu/Systems Engineering and Electronics, 2021, 43 (03): : 839 - 846
  • [3] Model Learning and Model Checking of SSH Implementations
    Fiterau-Brostean, Paul
    Lenaerts, Toon
    Poll, Erik
    de Ruiter, Joeri
    Vaandrager, Frits
    Verleg, Patrick
    SPIN'17: PROCEEDINGS OF THE 24TH ACM SIGSOFT INTERNATIONAL SPIN SYMPOSIUM ON MODEL CHECKING OF SOFTWARE, 2017, : 142 - 151
  • [4] Model checking generic container implementations
    Dwyer, MB
    Pasareanu, CS
    GENERIC PROGRAMMING, 2000, 1766 : 162 - 177
  • [5] SeSFJava']Java harness: Service and assertion checking for protocol implementations
    Elsharnouby, T
    Shankar, AU
    IEEE JOURNAL ON SELECTED AREAS IN COMMUNICATIONS, 2004, 22 (10) : 2035 - 2047
  • [6] VERIFYING OF A NETWORK CRYPTOGRAPHIC PROTOCOL USING THE MODEL CHECKING TOOLS
    Jomeiri, Alireza
    4TH INTERNATIONAL CONFERENCE ON SOFTWARE TECHNOLOGY AND ENGINEERING (ICSTE 2012), 2012, : 541 - 546
  • [7] Model Checking of Linearizability of Concurrent List Implementations
    Cerny, Pavol
    Radhakrishna, Arjun
    Zufferey, Damien
    Chaudhuri, Swarat
    Alur, Rajeev
    COMPUTER AIDED VERIFICATION, PROCEEDINGS, 2010, 6174 : 465 - 479
  • [8] Efficient Model Checking of Network Authentication Protocol Based on SPIN
    Tan, Zhi-hua
    Zhang, Da-fang
    Miao, Li
    Zhao, Dan
    INTERNATIONAL CONFERENCE ON GRAPHIC AND IMAGE PROCESSING (ICGIP 2012), 2013, 8768
  • [9] A model-based approach to the security testing of network protocol implementations
    Allen, William H.
    Dou, Chin
    Marin, Gerald A.
    31ST IEEE CONFERENCE ON LOCAL COMPUTER NETWORKS, PROCEEDINGS, 2006, : 1008 - +
  • [10] Combining Model Learning and Model Checking to Analyze TCP Implementations
    Fiterau-Brostean, Paul
    Janssen, Ramon
    Vaandrager, Frits
    COMPUTER AIDED VERIFICATION: 28TH INTERNATIONAL CONFERENCE, CAV 2016, PT II, 2016, 9780 : 454 - 471