symtcp eluding stateful deep packet inspection with
play

SymTCP: Eluding Stateful Deep Packet Inspection with Automated - PowerPoint PPT Presentation

SymTCP: Eluding Stateful Deep Packet Inspection with Automated Discrepancy Discovery Zhongjie Wang , Shitong Zhu, Yue Cao, Zhiyun Qian, Chengyu Song, Srikanth Krishnamurthy, Kevin Chan, and Tracy Braun What is DPI (Deep Packet Inspection)?


  1. SymTCP: Eluding Stateful Deep Packet Inspection with Automated Discrepancy Discovery Zhongjie Wang , Shitong Zhu, Yue Cao, Zhiyun Qian, Chengyu Song, Srikanth Krishnamurthy, Kevin Chan, and Tracy Braun

  2. What is DPI (Deep Packet Inspection)? Censorship and Surveillance ISP Traffic Differentiation Modeling Users for Online Ads

  3. How does DPI work? Application Protocol TCP IP

  4. How does DPI work? Application Protocol TCP IP RST RST

  5. How does DPI work? Application Protocol TCP IP

  6. Implementation-level discrepancy // Linux TCP timestamp validation if (( signed int )(last_tsval - current_tsval) <= 1) { // succeed } else { last_tsval - 1 <= current_tsval <= last_tsval + 2 31 // fail } // Snort TCP timestamp validation if (( signed int )((current_tsval - last_tsval) + 1) < 0) { // fail } else { last_tsval - 1 <= current_tsval <= last_tsval + 2 31 - 2 // succeed }

  7. Workflow of SymTCP Huge search space!!! Successful test cases

  8. Workflow of SymTCP Successful test cases Highly effective Symbolic test cases Execution

  9. Problem with symbolic execution All possible packets All possible execution paths Path explosion!!!

  10. Pruning decisions Labeling In the program, we label where a packet gets dropped or accepted “drop” / “accept” (i.e. TCP state changed). We try to cover these accept/drop points. points Bounding We allow each TCP option to occur only once, and at most 5 TCP options different TCP options in a packet. Pruning We terminate an execution path once it reaches any uninteresting uninteresting TCP state (e.g., TIME_WAIT, CLOSED) TCP states

  11. Differential testing DPI Server DPI

  12. Complete packet sequence Packet triggering Packet triggering discrepancies feedback …… …… Pn+r P1 Pn Pn+1 Test case Follow-up packets LISTEN ESTABLISHED state state

  13. Symbolic execution performance ● Linux kernel v4.9.3 ● 72 core Intel Xeon CPU and 256GB memory ● 1/2/3 symbolic packets ● 20/40/60 byte length packet No TCP options 56,787 test cases Sampled 10,000 test cases

  14. Zeek (formerly Bro) ● 6082 successful test cases, 9 strategies, 2 novel strategies

  15. Snort ● 652 successful test cases, 11 strategies, 3 novel

  16. Great Firewall of China (GFW) ● 4587 successful test cases, 12 strategies, 9 novel

  17. Case study 1. Urgent Pointer (Snort) 2. Underflow SEQ (Zeek & GFW)

  18. Key contributions ● A novel approach that combines whitebox and blackbox testing Whitebox: Extract a reference model from server with symbolic execution ○ Blackbox: Infer internal states of DPI with follow-up packets ○ ● First to run symbolic execution on full-fledged TCP implementation and send multiple symbolic packets ● Highly efficient and effective automated tool to unearth discrepancies between different TCP implementations Facilitate DPI elusion ○ Help developers fix implementation bugs ○

  19. Conclusion ● A novel approach combines whitebox and blackbox testing to automatically discover TCP implementation-level discrepancies ● Evaluated against 3 well-known DPI systems, Zeek (Bro), Snort, and the GFW, and found 14 novel strategies ● A significant step in testing and eluding DPI systems Email: zwang048@ucr.edu Homepage: https://zhongjie.me

Recommend


More recommend