# Analyzing Cyber-Physical Threats on Robotic Platforms +
## 3 Robotic Platform and Software
### The Robot Platform
#### 3.1.1 MobileEyes  
MobileEyes is a development software as well as a graphical user interface (GUI) used to remotely observe and control virtual or physical robots [18]. It has the ability to interact with a wide range of systems including the robot's main computer and network connected Linux and Windows computers. MobileEyes uses a networking protocol, namely ArNetworking, to connect over a network to an ArNetworking-based server (e.g., ARNL's guiServer, ArNetworking, serverDemo, arnlServer, and among others [50]). Using the ArNetworking protocol, MobileEyes communicates with the server via the TCP/IP networking protocol, port 7272. After startup, MobileEyes user locates the robot server by entering a hostname (e.g., \"myRobot\") or an IP address (e.g., \"10.239.40.170\") in the \"Robot Servers\" field in the MobileEyes' GUI, as shown in Figure 2.  
Figure 1: The PeopleBot mobile robot platform, where several sensors are attached to the robot, e.g., pan-tilt-zoom (PTZ) camera, laser range finder, sonars, stereo camera, etc. Figure 2: MobileEyes graphical user interface. It is noteworthy that not all robot servers (e.g., arnlServer) are configured to require login credentials. In other words, by default, either one or both of the \"User Name\" and \"Password\" fields in Figure 2 can be left blank [51], without affecting the operation of MobileEyes. Those fields will only be required and useful if the robot server has been configured to require login credentials. In this case, the password will get authenticated using MD5 hash coding scheme, but the username will only get matched as a plain-text (without being first encrypted and then decrypted) in the traffic stream between the client (i.e., MobileEyes) and the server. After entering the \"Robot Servers\" hostname, the user clicks the \"Connect\" button to access the robot over the network. The connection to the server that is running on the robot may then be canceled by clicking the \"Quit\" button. If MobileEyes cannot connect with the robot after a few seconds, it may show a message of why the connection failed and then try to reconnect again. One feature of MobileEye is that if it loses connection during a session with the server, it will give a message and an option to reconnect without having to stop and restart the GUI as shown in Figure 3. This feature is useful because it makes MobileEyes easier to use; however, it can be utilized by an attacker as a vulnerability or possible threat (e.g., in a man-in-the-middle (MITM) attack). On a successful connection between MobileEyes and the server, and depending on what services the server has been configured to provide (access to camera(s), lidar(s), sonars, bumpers, IR's, battery information, wheel encoders, etc. ), MobileEyes can display the robot's position in a map, range sensor (sonar, laser) data, camera image, and much more. The control features of MobileEyes GUI allow for teleoperating the robot and sending it to a goal in a loaded map of a certain environment, among many other useful features. Figures 4 and 5 show two snapshots of the MobileEyes GUI after a successful connection to arnlServer. Figure 4: MobileEyes GUI after a successful connection to the server. A logged 2D laser map of the indoor hallways of the second floor of our engineering building is being loaded in the map pane of MobileEyes. Figure 3: MobileEyes reconnect message if it loses connection during a session. In summary, from a security point of view, the following features of MobileEyes can be considered as possible threats on the robot:  
* The port number is published and known. Thus, using any of the packet sniffing tools on the robot network, an attacker can determine the existence of the robot connection on the network by looking for port 7272. * By default, the user does not need to specify a user or password to connect to the server, which can allow an attacker to login and connect to the robot by accessing the network and knowing the robot IP address.