# Analyzing Cyber-Physical Threats on Robotic Platforms +
## 3 Robotic Platform and Software
### The Robot Platform
#### 3.1.2 armIserver  
armIserver is an ArNetworking-based open source server with several APIs (C++, JAVA, and Python). It uses the ArNetworking protocol, briefly introduced above, to connect with MobileEyes or other remote control clients. armIserver is provided as part of the Advanced Robotics Navigation and Localization (ARNL) library [50], which is used for intelligent navigation and localization.  
ARNL comes in two packages: ARNL and BaseARNL. BaseARNL includes a software called Advanced Robotics Interface for Applications (ARIA) that is necessary to communicate with robots in addition to many other useful functions. In addition, ARIA includes the ArNetworking implementation. One application of armIserver is indoor navigation using a laser range finder (LRF) sensor (i.e., a lidar), which is installed on the robot to map and perform precise localization; a technique known as Simultaneous Localization And Mapping (SLAM). To use armIserver, at least three software distributions must be installed; MobileSim, MobileEyes and ARNL. If the user is dealing with a real robot, MobileSim will not be needed.  
armIserver is usually configured to enable/disable access to many features on the robot such as: laser data, sonar data, camera images, robot position, etc. This enables MobileEyes or other clients to  
Figure 5: A zoomed view of MobileEyes GUI after a successful connection to the server showing the robot (red circle or icon in the middle of the map pane), its lidar data in blue colored points at the thickest lines in the pane, and the teleoperated window to drive the robot.  
monitor and control access to the robot and its accessories as mentioned above. To do so, armIServer uses parameter files that are associated with both ARNL and the operating characteristics of the connected robot and its accessories. To override the default parameter files, armIServer takes several arguments when it starts to specify and set new values. Additionally, there are options in the connected clients, such as MobileEyes, to send commands to armIServer to set operating parameters.  
Finally, armIServer requires a map similar to the one shown in Figure 4. Such map is needed to define the robot's operating space to perform the localization and navigation tasks on the onboard computer or remotely on another computer.  
The vulnerabilities discovered in armIServer are as follows:  
* By default, the server is not configured to require the user (or client) to specify a username or password to connect to it. An attacker could potentially login and connect to the robot when accessing the robot network and providing the robot IP address.
* Even if the robot server is configured to require login credentials, the username information is sent as a plain-text without being encrypted, and the password is hashed using vulnerable MD5 hash coding scheme and sent over the network to the server.
* If the client connection with the server gets lost, say, due to bad network connection, then it will be restored automatically once the connection stream becomes okay without the need to explicitly reconnect again. Thus, if an attacker (e.g., in a MITM attack) interrupts the connection between the server (robot) and client for some time, then this might look like a bad network connection without anything noticed or any action taken from the server and the client.
* Most of the information sent from the server side to the client (i.e., robot position, laser data, and camera images) is sent in plain-text. Thus, a possible integrity attack might manipulate such information and result in serious damage to the physical robot and the surrounding environment.