SDN Application Perils: Analytics-Enhanced Automated Verification for Reliability, Performance & Security
Software-defined networking (SDN) enables networks to be programmed and dynamically modified through software-based network applications and services. Applications can be deployed into operational SDN networks, replacing middle-boxes, and have tremendous power to impact and potentially compromise network behaviors, significantly affecting network reliability, performance, and security. To protect SDN networks, it is imperative to detect subtle faulty or malicious application behaviors prior to application deployment. Automated code verification based on software model checking provides promise for early identification of such behaviors, but faces inherent challenges w.r.t. scalability, soft real-time behaviors, and pre-specified thresholds. We describe an approach that enhances automated verification with machine learning-based analytics to detect and identify faulty and/or malicious behaviors of reactive SDN applications that can compromise network reliability, performance, and security. A novel aspect of our work is that our analytics algorithms learn on information provided by automated verification, together with real-time application inputs and outputs, in order to identify anomalous execution paths of reactive applications that may compromise the underlying SDN network. Our approach is agnostic with respect to underlying network topologies. We demonstrate our approach with a proof-of-concept case study on reactive applications for the ONOS open-source SDN network operating system.