Accelerating Cybersecurity for High-Speed Networks: Developing Defenses with P4 and DPDK

 

 

 

 

 

Workshop on Accelerating Cybersecurity for High-Speed Networks:

Developing Defenses with P4 and DPDK

 

Wednesday, October 9, 2024

Carnegie Mellon University
 

Click Here to Register
 

Organizers
University of South Carolina (USC)
Minority Serving Cyberinfrastructure Consortium (MSCC)

 

Venue
  • Carnegie Mellon University
  • Jared L. Cohon University Center
  • 5032 Forbes Ave, Pittsburgh, PA
  •  

 

Overview

Network packet processing faces significant performance challenges due to kernel overheads. These issues have become more pronounced with the rapid growth of network traffic, often leading to performance limitations in software-based security appliances. To address these challenges, the Data Plane Development Kit (DPDK) was developed. DPDK bypasses the kernel and operates directly in user space, offering significant improvements in performance and latency for packet processing tasks. However, DPDK's steep learning curve presents a barrier to entry for developers and network administrators. In recent years, P4 has emerged as a language specifically designed for expressing packet processing data paths. Building on this development, P4-DPDK has been introduced as a new technology that bridges P4 and DPDK. It allows developers to create P4 code which is then translated into a DPDK pipeline, combining the expressiveness of P4 with the performance benefits of DPDK. This workshop aims to provide researchers, students, developers, and practitioners with an introduction to P4-DPDK, followed by hands-on implementation of applications for cyberattack mitigations. The workshop will cover the fundamentals of P4, including P4 building blocks, parser implementation, and match-action tables. It will then progress to cybersecurity applications, such as identifying heavy hitters and mitigating SYN flood and DNS amplification attacks, with 100Gbps traffic rates. Through hands-on experiments, participants will gain practical experience in using P4-DPDK to address common network security challenges.

 

Audience

The target audience for this tutorial includes Information Technology (IT) professionals and practitioners, network and security students, researchers, and application developers. The tutorial can also be useful for instructors interested in teaching P4 in the classrooms.

 

Tutorial Goals

The workshop aims to equip participants with both theoretical knowledge and practical skills related to packet processing in high-speed networks, with an emphasis on cybersecurity applications. By the end of this workshop, attendees will:

  • Implement DPDK pipelines using the P4 language.
  • Describe the elements of the Portable NIC Architecture (PNA), define and parse protocol headers and header fields in P4, define match-action tables and populate them at runtime, and leverage stateful elements (registers) to store arbitrary data in the data plane.
  • Develop DPDK-based defense solutions to mitigate common cyberattacks.
  • Accelerate packet processing using the Receive Side Scaling (RSS), which distributes packets across multiple CPU cores.

 

 

Pre-requisites

Connectivity to the Internet and a browser to access the online virtual platform. Attendees will be provided with an account to access USC’s NETLAB system: https://netlab.cec.sc.edu/

 

Agenda

Wednesday, October 9 
Time (MDT) Topic Presenter
2:00-2:05 Welcome and Introduction [pdf, ppt] Elie Kfoury, Samia Choueiri, Jorge Crichigno
2:05-2:35 Fundamentals of P4, DPDK, and the PNA architecture [pdf, ppt] Elie Kfoury, Samia Choueiri,  Jorge Crichigno
2:35-2:40 Demo: Heavy hitter detection at 100Gbps [Demo] Elie Kfoury, Samia Choueiri,  Jorge Crichigno
2:40-3:00 Lab 1: Introduction to match-action tables [pdf, ppt]  
3:00-3:30 Break  
3:30-3:50  Lab 1: Introduction to match-action tables (continue) Elie Kfoury, Samia Choueiri,  Jorge Crichigno
3:50-4:35 Lab 2: Calculating packets interarrival times using hashes and registers [pdf, ppt] Elie Kfoury, Samia Choueiri,  Jorge Crichigno
4:35-5:00

Lab 3 (FABRIC): Limiting the impact of SYN flood by probabilistically dropping packets [pdf, ppt]

Elie Kfoury, Samia Choueiri,  Jorge Crichigno
Workshop Recording
Survey

 

Access to Lab Platform

To access the lab platform, please use the following URL: https://netlab.cec.sc.edu/

Resources

Item Note
p4c-dpdk: Link p4c with DPDK backend needed to compile P4 codes into DPDK
swx pipeline: Link The DPDK pipeline library source code
P4-DPDK-Sec VM: Link P4-DPDK Security Virtual Machine used in the P4-DPDK Security lab series
P4-DPDK VM: Link Virtual Machine used in the P4-DPDK lab series
VM for P4 Labs: Link VM containing lab exercises
Cybertraining Material: Link List of virtual labs on P4, SDN, network tools and protocols, ...
P4 Campus: Link P4 applications for campus networks
FABRIC: Link A programmable research infrastructure
Behavioral Model version 2 (BMv2): Link Reference P4 software switch used as a tool for developing, testing and debugging P4 data planes
Software-Defined Networks: A Systems Approach: Link A book that explores the key principles of Software-Defined Networking (SDN)
Mininet: Link Virtual testbed enabling the development and testing of network tools and protocols
Containernet: Link Mininet fork that allows to use Docker containers as hosts in emulated networks
Mininet Installation: Link A guide that describes the steps to install Mininet on Linux
Wireshark: Link Packet analyzer used for network troubleshooting, analysis, protocol development, and education