Abstract | ||
---|---|---|
We propose PIC, a tool that helps developers search for non-interoperabilities in protocol implementations. We formulate this problem using intersection of the sets of messages that one protocol participant can send but another will reject as non-compliant. PIC leverages symbolic execution to characterize these sets and uses two novel techniques to scale to real-world implementations. First, it uses joint symbolic execution, in which receiver-side program analysis is constrained based on sender-side constraints, dramatically reducing the number of execution paths to consider. Second, it incorporates a search strategy that steers symbolic execution toward likely non-interoperabilities. We show that PIC is able to find multiple previously unknown noninteroperabilities in large and mature implementations of the SIP and SPDY (v2 through v3.1) protocols, some of which have since been fixed by the respective developers. |
Year | Venue | DocType |
---|---|---|
2015 | NSDI | Conference |
Citations | PageRank | References |
0 | 0.34 | 0 |
Authors | ||
6 |
Name | Order | Citations | PageRank |
---|---|---|---|
Luís D. Pedrosa | 1 | 6 | 1.22 |
Ari Fogel | 2 | 0 | 0.34 |
Nupur Kothari | 3 | 414 | 21.91 |
ramesh govindan | 4 | 15430 | 2144.86 |
Ratul Mahajan | 5 | 4735 | 322.35 |
Todd Millstein | 6 | 1290 | 81.02 |