14-814: Wireless Network Security

14-814/18-637: Wireless Network Security - Spring 2017



Assignment #3 - Implementing MAC Layer Misbehaviors

Assigned: February 14
Due: March 2

Description: The goal of this assignment is to modify the IEEE 802.11 MAC layer code to include various options for MAC layer misbehavior into your existing WiFi network simulation/experimentation setup. The assignment has three primary components 1) familiarize yourself with the WiFi MAC implementation in your system, 2) demonstrate your understanding of MAC layer misbehavior, and 3) come up with interesting new forms of MAC misbehavior. Students have an option to complete the assignments using either the OMNET++ network simulator (following the Tasks for OMNET++ instructions) or with their own Raspberry Pi 3 or similar devices (following the Tasks for RP3 instructions). In either case, we recommend working on the assignment as soon as possible.

Tasks for OMNET++:
  1. Backup some Files! - Since you're about to modify important files in INET, it would be good to make backups. As you progress, please create backup copies of any .cc, .h, and .ned files in INET before you change them...just in case.
  2. Modify the WiFi MAC - Directly modify the 802.11 MAC implementation included in INET to allow for cheating and misbehavior at the MAC layer, without breaking the native functionality of the WiFi MAC. To do this, define a new variable cheatType in the IEEE 802.11 MAC implementation in the folder inet/src/inet/linklayer/ieee80211/mac/ (most likely in the Contention.h/.cc files), then modify the logic in the .cc file such that
    • the default behavior is used when cheatType = 0,
    • the client sets a backoff value of 0 when cheatType = 1, and
    • the client uses 1/2 the normal contention window size (i.e., replace cw with cw/2) when cheatType = 2.
    Create a new network setup that allows you to specify (1) the total number of WiFi clients, (2) the number of these clients that misbehave, and (3) which type of misbehavior each of these clients is using, all configurable through the .ini file, for example using statements like
    **.cliHost[0].wlan.mac.cheatType = 1
    **.cliHost[1].wlan.mac.cheatType = 2
    Simulate a WiFi network with 4 clients using various combinations of cheaters, collect some data, and create some interesting plots.
  3. Extend your Misbehavior Profile - Building on the material discussed in class, implement another form of MAC misbehavior by creating another behavior under cheatType = 3, focusing on misbehavior not related to the backoff counter. Repeat your simulation above, and create some interesting plots showing the differences among misbehavior types. Comment on the tradeoffs between different types of misbehavior.
  4. Think about Detection - Collect and visualize some data that, from the perspective of the WiFi access point or controller, could be useful in detecting the various forms of cheating. Note that some forms of cheating are easier to detect than others, so try to find a few different measurement types that enable misbehavior detection. You don't have to actually implement the detector, just show the data trends that can differentiate cheating from compliance. Be sure to pay attention to what measurements are actually observable from the perspective or the access point/controller.

Tasks for RP3:
  1. Backup some Files! - Since you're about to modify important drivers and system files, it would be good to make some backups, so you don't lose your previous work. As you progress, please create backup copies of any driver code, scripts, and other files before you change them...just in case.
  2. Modify the WiFi MAC - Directly modify the 802.11 MAC implementation in the open source driver that you're using for your RP3 testbed to allow for cheating and misbehavior at the MAC layer, without breaking the native functionality of the WiFi MAC. To do this, define a new variable cheatType in the IEEE 802.11 MAC implementation (specifically, in whatever file(s) implement MAC-layer contention, such that
    • the default behavior is used when cheatType = 0,
    • the client uses the minimum allowed backoff value (usually 0 or 1, look for checks and error conditions) when cheatType = 1, and
    • the client uses 1/2 the normal contention window size (i.e., replace cw with cw/2) when cheatType = 2.
    Create a new initialization/execution script that allows you to specify the type of misbehavior the client should exhibit when loaded with this firmware. Include as many clients as you can in your study, and experiment with different combinations of cheaters. Collect data for each experiment, and create some interesting plots/tables to summarize the outcomes of your study.
  3. Extend your Misbehavior Profile - Building on the material discussed in class, implement another form of MAC misbehavior by creating another behavior under cheatType = 3, focusing on misbehavior not related to the backoff counter. Repeat the relevant parts of the previous task, and create some interesting plots showing the differences among misbehavior types. Comment on the tradeoffs between different types of misbehavior.
  4. Think about Detection - Collect and visualize some data that, from the perspective of the WiFi access point or controller, could be useful in detecting the various forms of cheating. Note that some forms of cheating are easier to detect than others, so try to find a few different measurement types that enable misbehavior detection. You don't have to actually implement the detector, just show the data trends that can differentiate cheating from compliance. Be sure to pay attention to what measurements are actually observable from the perspective or the access point/controller.
Deliverables: Each student will submit a written summary of their efforts in the above tasks, including the following:
  • A brief description of what you did to fulfill each task, including details of the changes made to any code or other components,
  • Properly labeled (with description and units) and easy-to-understand plots created in each task, and
  • Detailed descriptions of the results of each study, with any insights gained or conclusions reached in your study.
The written summary should be no longer than five (5) pages in a single-column format using font size 10 or greater.

Submission Instructions: Each student should submit a .pdf version of their written summary via Blackboard, using the format requested above. All students are expected to complete the assignment on their own; discussion about the assignment is allowed and encouraged, but all writing and coding must be done individually.

Grading Rubric: This assignment is worth 35 points total. Fifteen (15) points are allocated to the detailed description of the steps taken in completing task 1, fifteen (15) points are given for task 2, and five (5) points are given for task 3. We reserve the right to take off points for presentation aspects, e.g., incorrect format, poor writing, etc.