14-814/18-637: Wireless Network Security - Spring 2017
Assignment #4 - Network Layer Misbehavior and Higher-Layer Impacts
- Assigned: March 2
- Due: March 30
- Description: The goal of this assignment is to build a network with support for protocols at several layers, then study how attacks at
lower layers of the protocol stack affect performance at higher layers. You'll be expected to implement several attacks in an ad hoc network
and discover what high-layer statistics are interesting and what lower-level attacks impact them. The assignment has three primary
components: 1) familiarize yourself with some of the modules that provide higher-layer support, 2) understand and implement basic MANET
packet-dropping attacks, and 3) study the impact of PHY, MAC, and network layer misbehavior on higher-layer performance. 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++:
- 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.
- Create a Functional Network - Using any of the INET Node modules capable of adhoc networking (e.g.,
AdhocHost
or
AODVRouter
) and building around existing INET example networks, create a useful representation of a mobile ad hoc network that includes
enough nodes to be interesting (e.g., non-trivial routing, possibility of multiple routing paths, short and long paths, etc.) and has support for
end-to-end services (e.g., TCP, UDP, etc.). Identify at least two interesting metrics at each of the physical, MAC, network, and transport layer
(these can be the same as in previous assignments) and create some plots using these statistics to demonstrate that your network functions end-to-end
under normal working conditions.
- Extend Assignments #2 and #3 - Now that your network functions without attacks, demonstrate how the PHY and MAC layer misbehavior
studied in previous assignments reflects in your chosen metrics. Create several scenarios with different types and severities of attacks
and study how your chosen metrics are affected (if your chosen metrics aren't affected, maybe choose more metrics or explain why). Simulate several
scenarios with attacks on the routing path and off-but-near the routing path to see what you can learn about the higher-layer impact of lower-layer
misbehavior, and create several plots for the most interesting things you find.
- Implement Packet Dropping Attacks - Introduce a new variable that controls the probability that a malicious device will drop each data
packet that it is supposed to forward for another source. If needed, further introduce new statistics to measure the actual number of packets dropped
and forwarded, which should allow you to verify the fraction of packets being dropped by that device. Create a figure or table that illustrates the
results of this study when varying the drop probability from 0 to 1.
Next, introduce more variables to bring time-variation in the packet dropping attack, changing from probabilistic packet dropping (i.e., drop each
packet with probability p
) to periodic probabilistic packet dropping as follows. Create two new parameters representing a time period (e.g.,
T
, where T > 0
) and duty cycle (e.g., d
, where 0<d<1
). In the periodic version of the attack,
the malicious device will drop each packet with probability p
for dT
seconds, then drop no packets for (1-d)T
seconds, continuing forever. Run several trials of the simulation for several values of p
, d
, and T
, and
tabulate or plot the interesting statistics. As in the previous task, create a few interesting figures/tables to demonstrate how this forwarding
misbehavior affects performance statistics at various layers.
- Think About Cross-Layer Detection - Now that you've studied how attacks at different layers affect your collection of statistics, think
about whether those statistics could be useful in detecting attacks or identifying what layer an attack could be occurring at. Specifically, by
inspecting your results from the previous tasks, would someone be able to figure out whether the misbehavior was at the MAC or network layer; could
they determine which node was under attack or mounting the attack; etc.? You don't need to implement anything here, but explore the possibilities of
what your statistics could be useful for.
- Tasks for RP3:
- 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.
- Create a Functional Network - Using any available code packages and hardware devices, create a multi-hop wireless network capable of using
adhoc network routing and forwarding protocols and supporting a variety of end-to-end protocols (e.g., TCP, UDP, etc.). Identify at least two
interesting metrics at each of the physical, MAC, network, and transport layer (these can be the same as in previous assignments), instrument your
network setup to collect relevant statistics to compute these metrics, and create some plots to demonstrate that your network functions end-to-end
under normal working conditions.
- Extend Assignments #2 and #3 - Same as Task #2 for OMNET++.
- Implement Packet Dropping Attacks - Same as Task #3 for OMNET++.
- Think About Cross-Layer Detection - Same as Task #4 for OMNET++.
- 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 your process, findings, and results of each study, with any insights gained or conclusions reached in your study.
The written summary should be no longer than six (6) pages a reasonable number of 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 40 points total. Five (5) points are allocated to the detailed description of the steps
taken in completing task 1, ten (10) points are given for task 2, fifteen (15) points are given for task 3, and ten (10) points are given for task 4.
We reserve the right to take off points for presentation aspects, e.g., incorrect format, poor writing, etc.