VeriCon: Towards Verifying Controller Programs in SDNs Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly Sagiv, Michael.

Slides:



Advertisements
Similar presentations
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
Advertisements

Seyed K. Fayazbakhsh Vyas Sekar Minlan Yu Jeff Mogul
SDN Abstractions. In an SDN Ideal World, we want… multiple applications (Composition): – So, need to worry about sharing. – About isolation. Network policies.
Openflow App Testing Chao SHI, Stephen Duraski. Motivation Network is still a complex stuff ! o Distributed mechanism o Complex protocol o Large state.
Saurav, Srikanth, Sangho
SDN Applications Jennifer Rexford Princeton University.
Models and techniques for verification of Software Defined Networks
CSC458 Programming Assignment II: NAT Nov 7, 2014.
Live Migration of an Entire Network (and its Hosts) Eric Keller, Soudeh Ghorbani, Matthew Caesar, Jennifer Rexford HotNets 2012.
Diagnosing Missing Events in Distributed Systems with Negative Provenance Yang Wu* Mingchen Zhao* Andreas Haeberlen* Wenchao Zhou + Boon Thau Loo* * University.
VeriCon: Towards Verifying Controller Programs in SDNs (PLDI 2014) Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly.
Towards a Logic for Wide-Area Internet Routing Nick Feamster and Hari Balakrishnan M.I.T. Computer Science and Artificial Intelligence Laboratory Kunal.
Troubleshooting SDNs Peyman Kazemian. Why SDN Troubleshooting SDN decouples software (control plane) from hardware (data plane). Opens doors for innovation.
Scalable Flow-Based Networking with DIFANE 1 Minlan Yu Princeton University Joint work with Mike Freedman, Jennifer Rexford and Jia Wang.
Page: 1 Director 1.0 TECHNION Department of Computer Science The Computer Communication Lab (236340) Summer 2002 Submitted by: David Schwartz Idan Zak.
A Type System for Expressive Security Policies David Walker Cornell University.
Extensible Untrusted Code Verification Robert Schneck with George Necula and Bor-Yuh Evan Chang May 14, 2003 OSQ Retreat.
Languages for Software-Defined Networks Nate Foster, Arjun Guha, Mark Reitblatt, and Alec Story, Cornell University Michael J. Freedman, Naga Praveen Katta,
272: Software Engineering Fall 2012 Instructor: Tevfik Bultan Lecture 4: SMT-based Bounded Model Checking of Concurrent Software.
OpenFlow Switch Limitations. Background: Current Applications Traffic Engineering application (performance) – Fine grained rules and short time scales.
Toward Software-Defined Middlebox Networking Aaron Gember, Prathmesh Prabhu, Zainab Ghadiyali, Aditya Akella University of Wisconsin-Madison 1.
Software-Defined Networks Jennifer Rexford Princeton University.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
Formal Modeling of an Openflow Switch using Alloy Natali Ruchansky and Davide Proserpio.
VeriFlow: Verifying Network-Wide Invariants in Real Time
Higher-Level Abstractions for Software-Defined Networks Jennifer Rexford Princeton University.
© 2008 Cisco Systems, Inc. All rights reserved.Cisco ConfidentialPresentation_ID 1 Chapter 9: Access Control Lists Routing & Switching.
SDN based Network Security Monitoring in Dynamic Cloud Networks Xiuzhen CHEN School of Information Security Engineering Shanghai Jiao Tong University,
Reasoning about Software Defined Networks Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday Schrieber.
Reasoning about Software Defined Networks Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday Schrieber.
Enforcing Network-Wide Policies in the Presence of Dynamic Middlebox Actions using FlowTags Seyed K. Fayazbakhsh *, Luis Chiang ¶, Vyas Sekar *, Minlan.
Extending SDN to Handle Dynamic Middlebox Actions via FlowTags (Full version to appear in NSDI’14) Seyed K. Fayazbakhsh, Luis Chiang, Vyas Sekar, Minlan.
1 Firewalls Types of Firewalls Inspection Methods  Static Packet Inspection  Stateful Packet Inspection  NAT  Application Firewalls Firewall Architecture.
UPPAAL-based Software-Defined Network Verification Uliana Popesko Lomonosov Moscow State University 2014.
Programming Languages for Software Defined Networks Jennifer Rexford and David Walker Princeton University Joint work with the.
1 Data Link Layer Lecture 23 Imran Ahmed University of Management & Technology.
Reasoning about Software Defined Networks Shachar Itzhaky & Mooly Sagiv Tel Aviv University Thursday (Physics 105) Monday.
Jennifer Rexford Princeton University MW 11:00am-12:20pm SDN Programming Languages COS 597E: Software Defined Networking.
Introduction to Mininet, Open vSwitch, and POX
Presented By: Mohammed Al-Mehdhar Presentation Outline Introduction Approaches Implementation Evaluation Conclusion Q & A.
Jennifer Rexford Princeton University MW 11:00am-12:20pm Data-Plane Verification COS 597E: Software Defined Networking.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Reactive Logic in Software-Defined Networking: Measuring Flow-Table Requirements Maurizio Dusi*, Roberto Bifulco*, Francesco Gringoli”, Fabian Schneider*
Common networking problems Bad names and other DNS name resolution failures Missing capabilities Bad HTTP headers are sent Incorrect use of completion.
Header Space Analysis: Static Checking for Networks Broadband Network Technology Integrated M.S. and Ph.D. Eun-Do Kim Network Standards Research Section.
Authors: Mark Reitblatt, Nate Foster, Jennifer Rexford, Cole Schlesinger, David Walker Presenter: Byungkwon Choi Abstractions for Network Update INA.
Department of Electrical and Computer Engineering Abhishek Dwaraki 1 Srini Seetharaman 2, Sriram Natarajan 3, Tilman Wolf 1 1. Department of Electrical.
Verifying & Testing SDN Data & Control Planes: Header Space Analysis.
Xin Li, Chen Qian University of Kentucky
SDN challenges Deployment challenges
CSC458 Programming Assignment II: NAT
SDN Network Updates Minimum updates within a single switch
Programming SDN Newer proposals Frenetic (ICFP’11) Maple (SIGCOMM’13)
Abstractions for Network Functions
Programming Assignment
Martin Casado, Nate Foster, and Arjun Guha CACM, October 2014
Toward Super High-Level SDN Programming
100% Exam Passing Guarantee & Money Back Assurance
Program Synthesis for Networks Pavol Černý FMCAD September 2016.
Aaron Gember-Jacobson
Overview of SDN Controller Design
of Dynamic NFV-Policies
Real Time Network Policy Checking using Header Space Analysis
Abstractions for Model Checking SDN Controllers
Toward Taming Policy Enforcement for SDN_______ in the RIGHT way_
Languages for Software-Defined Networks
Programmable Networks
Lecture 10, Computer Networks (198:552)
Recording Synthesis History for Sequential Verification
Control-Data Plane Separation
Presentation transcript:

VeriCon: Towards Verifying Controller Programs in SDNs Thomas Ball, Nikolaj Bjorner, Aaron Gember, Shachar Itzhaky, Aleksandr Karbyshev, Mooly Sagiv, Michael Schapira, Asaf Valadarsky 1

Network should always satisfy some invariants Difficult to write an SDN application that always guarantees such invariants Guaranteeing network invariants 2

Limitations of existing approaches 1.Establish existence, but not absence, of bugs – NICE (finite-state model checking): unexplored topologies may cause bugs to be missed – HSA (check network snapshots): snapshots may not capture situations in which bugs exist 2.Runtime overhead – VeriFlow & NetPlumber (check in real-time): bugs only identified when app is actually running 3

VeriCon Verifies network-wide invariants for any event sequence and all admissible topologies 4 SDN application in Core SDN Topology constraints & invariants in first order logic Guarantee invariants are satisfied Concrete counter- example Verify conditions using the Z3 theorem prover + OR

Example: stateful firewall Always forward from trusted to untrusted hosts Only forward from untrusted to trusted hosts if a trusted host previously sent a packet to the untrusted host Trusted Hosts Untrusted Hosts 1 2 5

Core SDN (CSDN) language Define and initialize relations – Topology: link (S, O, H)link(S 1, I 1, I 2, S 2 ) – Forwarding: S.ft(Src → Dst, I → O) S.sent(Src → Dst, I → O) Write event handlers: pktIn(S, Pkt, I) – Update relation – Install rule (insert into ft ) – Forward packet (insert into sent ) – If-then-else 6

Stateful firewall in CSDN rel tr(SW, HO) = {} pktIn(s, pkt, prt(1)) → s.forward(pkt, prt(1), prt(2)) tr.insert(s, pkt.dst) s.install(pkt.src → pkt.dst, prt(1), prt(2)) pktIn(s, pkt, prt(2)) → if tr(s, pkt.src) then s.forward(pkt, prt(2), prt(1)) s.install(pkt.src→pkt.dst, prt(2), prt(1)) 1 2 7

Invariants Topology: define admissible topologies Safety: define the required consistency of network-wide states Transition: define the effect of executing event handlers 8 assumed to hold initially checked initially & after each event

Topology: At least one switch with two ports, prt(1) & prt(2) ; a packet P is forwarded from an untrusted host U to a trusted host T Safety: For every packet sent from a host U to a host T there exists a packet sent to T’ from U Stateful firewall invariants 9

Counterexample I 1 is not inductive—not all executions starting from an arbitrary state satisfy the invariant 10 in out HO:0 prt(3) prt(2) prt(1) prt(0) SW:0 s flow-table HO:0 SrcDstInOut ** pkt.src pkt.dst

Additional firewall invariants Flow table entries only contain forwarding rules from trusted hosts Controller relation tr records the correct hosts I 1 ˄ I 2 ˄ I 3 is inductive 11

Non-buggy verification examples ProgramLOCsTopo Inv. Safety + Trans Inv. Time (sec) Firewall Stateless Firewall Firewall + Host Migration Learning Switch Learning Switch + Auth Resonance (simplified) Stratos (simplified)

Buggy verification examples BenchmarkCounterex Host + Sw Auth: Rules for unauth host not removed3 + 2 Firewall: Forgot part of consistency inv5 + 3 Firewall: No check if host is trusted6 + 4 Firewall: No inv defining trusted host6 + 4 Learning: Packets not forwarded1 + 1 Resonance: No inv for host to have one state StatelessFW: Rule allowing all port 2 traffic

Future work Assume events are executed atomically – Enforceable using barriers, with performance hit – Consider out-of-order rule installs Rule timeouts – App handles timeout events to update its ft relation and check invariants – Need to reason about event ordering 14

Summary of VeriCon Verifies network-wide invariants for any event sequence and all admissible topologies Guarantees invariants are satisfied, or provides a concrete counterexample Application with 93 LOC and 13 invariants is verified in 0.21s 15