EE354 Cyber Project: Hacking an Unmanned Ground Vehicle The EE354 vs EE434 CyberWar Games __________________________________________________________________________ Basics of Electronic Warfare We have devoted the vast majority of this course to discussing physical layer communications, however, we’re now introducing the concept of Cyber Warfare. Why? Because “Cyber” doesn’t exist solely in a single computer or a closed network. “Cyber” is not just “computer hacking” or “computer viruses”. You can have a significant impact by using Electronic Warfare as an enabler for Cyber effects. http://breakingdefense.com/2013/04/adm-greenert-wireless-cyberem-spectrum-changing-navy/ Now we’re going to put all your EE354 knowledge to the test and apply your cyber skills in a simulated real-world scenario. Your objective for this project is to (1) correctly decode the command and control signals being transmitted to an UGV (simulated by a Radio Controlled car), (2) successfully take over the operation of the UGV, and then (3) successfully drive the UGV around a closed course. Part (1) will be performed in lab and parts (2) and (3) will be a timed evolution during an evening block. Administrative Info Important Dates Project Grade Weighting Phase 1 & 2 – In Class: March 31, 2016 Last Opportunity for EI: April 22, 2016 @ 2359 Phase 3 (Evening): April 28, 2016 @ 1900-2300 Phase 1 Phase 2 Phase 3 Presentation 40% 15% 25% 20% Bonus Credit No collisions with walls of the course/No departing the course boundaries: +15 Fastest course time: +15; Second fastest: +10; Third fastest: +5 Producing a 60-second EE/Comms/Cyber “Spirit Spot” showcasing your comms/cyber skills on this project: +10 Project Groups & Honor Information Students will be expected to work in groups of 2 (a single three-person group will be authorized at the instructor’s discretion). While discussion of theory, techniques, results, etc. among groups and/or with other faculty members is allowed and encouraged, copying another group’s work in whole or in part (to include Matlab code, designs and/or design elements, or project presentation materials) is an honor violation. Copying code (in whole or in part) from other classes/sources that are performing similar cyber projects is also an honor violation. For the presentation, any work that is not the sole original creation of the group members must be properly cited in IEEE format. 1 Part I: System Identification Set-up. Equipment required: □ Your issued Laptop □ LeCroy “Wave Surfer” 104MXS 1GHz Oscilloscope □ Anritsu MS2711D Spectrum Analyzer □ Telescoping Antenna w/ BNC connector □ RC Vehicle □ TURN OFF YOUR CELL PHONE! (The next two hours of your life will be easier if your cell phone isn’t adding noise to the Electromagnetic Spectrum.) Part I: Data Collection Communications System. For part one of this activity, we’ll explore the entire communications system employed by a Radio Control (RC) vehicle. Answer the questions below to examine the RC vehicle’s communications. a) b) Coiled wire right under here! Note: These images resemble the models in your classroom enough to give you the general idea. We can’t all have Ferraris, after all! 2 Question 1: What type of channel does this communications system involve? Question 2: What do you expect your “information” to be in this case? Question 3: What will happen when the “information” is recovered at the receiver? Question 4: Does the transmitter or receiver give any indication of carrier frequency? If so, what is fc? To verify the carrier frequency of the transmitted signal, use the Anritsu MS2711D Spectrum Analyzer. □ □ □ □ □ □ □ Press “Recall Setup” (Hard Key #6) Ensure “Default” is highlighted Press “Enter” Set “Center” to the carrier frequency determined in the previous question. Set “Span” to 200 kHz Transmit from RC vehicle controller (ensure power is on); signal will display on the spectrum analyzer Capture a copy of the spectrum and include it in your coversheet. Be sure to clearly showcase the modulation/sidebands. Question 5: What is the carrier frequency? Does it match what (if anything) was reported on the transmitter? 3 Part II: Reverse Engineering So now we know the carrier frequency, but if we want to actually take control of the car, we need to know more about the RC car’s signal. What does the transmitted signal look like? What type of modulation does it use? How do controls work? To accomplish this, we’re going to look at the signal using the LeCroy Oscilloscope. First, some initial set-up for the O-Scope: □ Configure Channel 1 with the following settings: o Set Volts/div to 20 mV o Set Coupling to DC50Ω o Set “Trigger” to 25.0 mV o Touch “Timebase” to set Time/Division to 5.00 ms/div Once you’ve set up your Channel configuration on the O-Scope, it’s time to capture the signal. □ □ □ On “Trigger” section of O-Scope display, select “Normal” Holding RC car transmitter close to the O-Scope, send the “forward” signal by driving the car forward. Ensure antenna is extended! When your signal is displayed on the screen, press “Stop” on Trigger menu, while still sending the “forward” signal. If done correctly, your O-scope display should look similar* to this: * Captured signal may vary – that’s ok for now! 4 Question 6: What type of modulation does this car use? Question 7: What pattern of 0’s and 1’s does the transmitted signal represent? Question 8: What is the transmitted bit rate? To be able to control the RC car, we want to be able to do more than just drive it forward. How does the signal change for reverse, left, or right? Think about the controls – how many different signals do you expect to control the car? In addition to driving forward, the car can operate in reverse, as well as turning left and right… and any combination thereof! There are actually 8 different combinations of signals, as well as a “stop” signal. Here’s the catch: The chips that process the signal and control the vehicles motion aren’t necessarily wired the same way in every car, so you need to identify which operation each transmitted signal represents! Examine each transmitted signal by repeating the process you just followed to capture the signal: □ On “Trigger” section of O-Scope display, select “Normal” □ Transmit desired signal (Forward, Left, Forward AND Left, etc.). □ When your signal is displayed on the screen, press “Stop” on Trigger menu. □ Capture all 8 of the possible signals and include them on the coversheet. Question 9: What is the transmitted information (bit pattern) for each of the 8 possible signals? Question 10: Now that you’ve identified the modulated signal that controls the car, could you determine the baseband binary signal (Polar/Bipolar, RZ/NRZ) for each function? We now know the bits that are transmitted to control the forward, turning, and reverse motions of the RC car. We also know that we can’t transmit the baseband binary signal, so we need to modulate it on a high frequency carrier. If we can generate the bits and mix it up with the high frequency carrier, do we need the “real” remote to drive the RC car? Let’s find out! 5 Part III: The Hook In this section, you’ll create MATLAB code to generate the control signals for your card and your soundcard (plus a superheterodyne transmitter) to transmit the control signals to the RC car. Your code from the Digital Line Codes mini-lab will be most helpful for this part. You may have noticed that each transmitted signal consists of a synchronization sequence pulses followed by a specific 0/1 bit pattern. Since you’ve already matched the waveform to the driving direction, now all you need to do is count the number of “0/1” combinations and then use that to recreate the waveform in Matlab. Question 20: Fill in the table by entering the number of “0/1” combinations trailing the sync pulses for each RC car operation. You must find the exact value or else your transmitter will fail! Direction Number of 0/1’s in trail Forward Reverse Right Left Fwd-Right Fwd-Left Rev-Right Rev-Left The next step is to create the baseband waveforms in Matlab and then generate the transmitted ASK waveform at an IF of 10.0 kHz. Below is Matlab code to get you started. For long “0/1” sequences, you may find the command repmat.m to be useful. % % % % !!!!! NOTE !!!!! If you do something wrong and Matlab terminates unexpectedly (you get a lot of angry red Error messages) you will have to close out and restart Matlab in order to clear out the sound card buffer!!! clear all close all fs = ######; T_s = 1/fs; sam_per_sym = ##; Rb = fs./sam_per_sym; fif = 10e3; % % % % % Establish our Sampling Frequency (Soundcard!) Time increment between samples Samples per Symbol Resulting Bit Rate 10.0 kHz (IF) Frequency: 6-12 kHz Acceptable % Setup The Bit Sequence sync = ######; forward = ######; reverse = ######; right_fwd = ######; left_fwd = ######; % Generate the Baseband Line Code & Upsample % See Digital Line Code Lab for Information % Resulting Output Variable will be up_data !!!!! % Generate the "baseband" (IF) waveform – Consider multiplying by a % Complex Exponential in order to get a one-sided spectrum time_stop = length(up_data); time = linspace(0,(1/fs).*time_stop, length(up_data)); s_lo = #########; s_if = #########; 6 □ Now Execute your code; generate Matlab plots of all 8 signals and include them on the coversheet. Question 11: What do you hear? What type of signal is being generated? Question 12: What do you need to do to transmit this signal so that the car receives it? The instructor’s station has a transmitter version of the superheterodyne receiver we discussed in class – it works exactly the same way except in reverse. Question 22: What LO do you need to use to transmit the RC car control signal at the correct frequency? s(t) IF RF LO fLO □ Setup your computer and get ready to drive! Use the Anritsu spectrum analyzer to verify that you are transmitting on the correct frequency. Capture a copy of the spectrum and include it on the coversheet. Question 13: Do you need the car’s transmitter to control the car? What just happened? Question 14: Think of some examples of how this might be significant in a military setting. Need ideas? Check this out! http://www.engr.utexas.edu/features/humphreysspoofing 7 Part IV: Showtime The final part of your cyberwarfare mission is to successfully take over a new/unknown RC car and navigate it through a specifically designed course. The new RC car may be on a different frequency range and may have a different mapping of commands to functions, but will still use the same modulation scheme/bit patterns you decoded in Part III. The course will be constructed from metal rods that have lengths of 0.5m, 1.0m, and 1.5m. One potential course design is shown below. The actual design will not be released until the appointed test date/time. Finish 1.0m 1.0m Start 0.5m 0.5m 1.0m 1.5m At the appointed time, each group will be given 30 minutes to successfully hack the RC car and demonstrate that it can be controlled by the PC. Groups will then be given an additional 30 minutes to navigate the course. Any number of trial runs is permissible, however, the instructors must observe at least one full and complete run (starting with the front wheels on the “start line” and ending with the rear wheels crossing the “finish line”) in order for the group to receive full credit for completing the course. Rules of Engagement for the “EE354 vs EE434” EW contest follow below. At the end of the 30 minute allotment, each group will be given 30 minutes to compose their thoughts, and then must deliver a 10 minute Powerpoint briefing (absolute maximum 6 slides including title slide) on their design and results to the instructors. The briefing should contain the following elements: • • • • • • Overview of your design, Matlab Code, any unique features, and motivation/rationale for design choices. Overview of predicted results (and how you developed your prediction) for the design, whether theoretical, simulated, or empirical. Procedure you followed to hack the RC Car and results from the Course Navigation. Strategy for dealing with EE434 Electronic Attack and results. Comparison of the Course Navigation Results with the pre-predicted results, with discussion on the causes of any differences and any real-time corrections you made. Team collaboration and acknowledgement of each member’s individual contribution -- how was the result more than just the sum of the parts. 8 EE434 vs EE354 Cyber Night Rules of Engagement 1. Only one (1) EE434 Team may operate during the 30-minute Course Navigation Evolution; and it must be the same team for the entire evolution. 2. Inside the 30-minute Evolution, EE354 shall have “RF Quiet” time consisting of 5 minutes at the beginning (to verify control of the car) and 5 minutes at the end (for a last-ditch course navigation effort). 3. EE434 Teams are limited to a 1 Watt Transmit Power (as measured and verified by the instructor) input to any antenna design they desire. The default antenna shall be a simple monopole. If more than one antenna is used, the net total transmit power must still adhere to the 1 Watt requirement. 4. EE434 Teams must maintain at least a 5 meter standoff distance as measured from the center of the RC Car Course to the physical center of their antenna. If more than one antenna is used, the center of each antenna must adhere to the 5 meter standoff requirement. 5. EE434 and EE354 Teams shall not physically interfere with each other’s operation. This prohibition shall extend to “off duty” teams not actively engaged in the Course Navigation/Attack Evolution. 6. EE434 Teams may use any lab equipment contained in Rickover 061 and Rickover 071 that is not actively being utilized by an EE354 Team. 7. EE434 Teams must operate between 10 MHz and 300 MHz, and may transmit any waveform or signal they desire (as would be the case in real life). 8. EE354 Teams may employ electronic countermeasures that operate between 10 MHz and 300 MHz. EE354 Teams may also employ physical countermeasures that maintain a minimum 3 meter standoff distance from the EE434 Teams, respect Rule (5) above, and can be physically assembled and disassembled inside Rickover 061 during the allotted 30 minute time. 9. In the event of a dispute of the rules, or transgression of the rules, the Instructor reserves the right to issue a determination and judgment; all judgements are final. The rubric for grading the design and presentations is provided below. LCDR Jennie Wood and Assoc. Prof. Chris Anderson Modified Assoc. Prof. Chris Anderson 20160328 9 Team Members: ____________________________ Evaluator: _____________________ Score (0–5) Item 0 3 5 Introduction Not given Need, and objectives presented but incomplete Clear & concise “forest view” of project x2= Problem Overview Missing Present but not motivated or vague. Mission and expected outcome clearly motivated and articulated x1= Missing or Insufficient level of detail for design Incomplete description of important material; not justified, quantified, or too abstract. Present, clearly articulated, and appropriately formed. x3= Design Architecture Insufficient level of detail for design Some but not all of the approach is described; missing steps or incomplete information. Engineering Analysis Barely substantiate data, simulation, or predicted results; no discussion performance differences between predicted and tested. Some discussion of data, simulation, or predictions; delineated the origin of some performance differences between predicted and tested. Response to Questions Team is completely thrown or defensive Team struggled with some questions but maintained composure Answered questions readily and professionally x1= Slide Quality Completely illegible Some slides are difficult to read Slides are legible, correct, and visually appealing x2= Professionalism Mumbling and/or no eye contact; too long/short Low energy; presentation contains typos, seems rough, inadequate figure/slide titles. Dynamic and charismatic; Presentation is polished, professional, and clearly delivered x1= Engineering Requirements Presentation Score: Block diagrams & functional descriptions clearly provided. Clearly described approach to analyzing the problem space and associated engineering process. Clearly and concisely discussed data, simulation, and predicted results and tied all three together. Clearly delineated the origin of performance differences; identified contributors. Weight x5= x5= Sum: 10 Score