Home

Awesome

The Robot Security Framework (RSF)

Robot Security Framework (RSF) is a standardized methodology to perform security assessments in robotics.

Version: 1.1

How to cite our work

Article

@ARTICLE{2018arXiv180604042M,
   author = {{Mayoral Vilches}, V. and {Alzola Kirschgens}, L. and {Bilbao Calvo}, A. and
	{Hern{\'a}ndez Cordero}, A. and {Izquierdo Pis{\'o}n}, R. and
	{Mayoral Vilches}, D. and {Mu{\~n}iz Rosas}, A. and {Olalde Mendia}, G. and
	{Usategi San Juan}, L. and {Zamalloa Ugarte}, I. and {Gil-Uriarte}, E. and
	{Tews}, E. and {Peter}, A.},
    title = "{Introducing the Robot Security Framework (RSF), a standardized methodology to perform security assessments in robotics}",
  journal = {ArXiv e-prints},
archivePrefix = "arXiv",
   eprint = {1806.04042},
 primaryClass = "cs.CR",
 keywords = {Computer Science - Cryptography and Security, Computer Science - Robotics},
     year = 2018,
    month = jun,
   adsurl = {http://adsabs.harvard.edu/abs/2018arXiv180604042M},
  adsnote = {Provided by the SAO/NASA Astrophysics Data System}
}
<!-- Layer 1 --> <table> <tr> <th colspan="3">

Physical layer

</th> </tr> <!-- Aspect 1 --> <tr> <td>Aspect: <b>Ports</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Presence of external communication ports</b></th> </tr> <tr> <td>Objective</td> <td>Identify presence of unprotected external ports</td> </tr> <tr> <td>Rationale</td> <td>Unprotected external ports can let attackers in physical proximity to perform a variety of attacks and serve as an entry point for them</td> </tr> <tr> <td>Method</td> <td>

with sensors, user interfaces, power or other robot-related components</td> </tr> <tr> <td>Rationale</td> <td>Unplugging robot components can potentially lead to the exposure of internal communication ports. Often, these internal communication ports are typically not protected in robots. This may allow attackers in physical proximity to perform a variety of attacks and serve as an entry point</td> </tr> <tr> <td>Method</td> <td>

with a docking station or by connecting to the ports</td> </tr> <tr> <td>Rationale</td> <td>Unprotected external and internal ports can let attackers in physical proximity to perform a variety of attacks and serve as an entry point for them</td> </tr> <tr> <td>Method</td> <td>

removed or completely disabled causing the robot to misbehave. The most obvious example is the removal of critical sensors for the behavior of the robot</td> </tr> <tr> <td>Method</td> <td>

to be partially outside of the body frame (e.g. certain sensors such as range finders, or the antennas of certain wireless communication components) in such a case only the required part should stick out, but not the whole component</td> </tr>

</table> <!-- Criteria 2 --> <table> <tr> <th colspan="2">Criteria: <b>Monitoring and alerting capabilities</b></th> </tr> <tr> <td>Objective</td> <td>Identify whether rogue access to the internal hardware of the robot can be detected</td> </tr> <tr> <td>Rationale</td> <td>Having no verification whether the internals of the robot were accessed or not means that attackers can easily tamper with any components or install a hardware *trojan* unnoticed</td> </tr> <tr> <td>Method</td> <td>

were accessed or not. However, there is still a time window between inspections when exploited robots can be abused</td> </tr>

</table> <!-- Criteria 3 --> <table> <tr> <th colspan="2">Criteria: <b>Review logs of physical changes in the robot</b></th> </tr> <tr> <td>Objective</td> <td>Verify the logs of the robot and look for tampering actions. Log examples include powering on/off events, connection/disconnection of physical components, sensor values or actuator actions. Detect potential tampering based on this information</td> </tr> <tr> <td>Rationale</td> <td>Most robots register logs of a variety of events going from powering on/off the robot to each individual component data. Specially, some robots detect physical changes on their components and register it. Such changes could lead to an undetected tampering of the system. Reviewing the logs could lead to discovering physical tampering of the robot</td> </tr> <tr> <td>Method</td> <td> </table> <!-- Layer 2 --> <table> <tr> <th colspan="3">

Network layer

</th> </tr> <!-- Aspect 1 --> <tr> <td>Aspect: <b>Internal robot network</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Network accessibility</b></th> </tr> <tr> <td>Objective</td> <td>Determine and assess network accessibility and the corresponding protection mechanisms.</td> </tr> <tr> <td>Rationale</td> <td>Internal networks could be pass</td> </tr> <tr> <td>Method</td> <td>

Network fingerprinting is useful to understand the internal network structure and its behavior, and to identify components’ operating system by analyzing packets from that component. This information could be used for malicious purposes, since it provides fine-grained determination of an operating system and its characteristics.</td> </tr> <tr> <td>Method</td> <td>

Vulnerabilities in communication protocols can allow attackers to gain unauthorized access to the internal network of the robot and intercept or modify any transmitted data.</td> </tr> <tr> <td>Method</td> <td>

to hardware limitations or performance requirements, although it is critical for robots to introspect, monitor, report and act on issues that could appear on their internal networks. Security by obscurity is unfortunately a commonly accepted approach in robotics, nevertheless, it has been demonstrated that this approach leads to critically unsecured robots. Monitoring and control capabilities should be implemented on the internal network of the robot either through the manufacturer or through additional or external solutions. The decision of applying counter-measures to the attack or only alerting should be determined by the impact of possible false positives on the operative of the robot.</td> </tr> <tr> <td>Method</td> <td>

from the outside and ensure that they cannot accidentally leak data to the external network.</td> </tr> <tr> <td>Method</td> <td>

means that each communication component interfacing with an external channel should have a firewall behind it or use third party solutions. For example, WiFi hotspots in robots or LTE/UMTS transceivers.</td> </tr>

</table> </td> </tr> <!-- Aspect 2 --> <tr> <td>Aspect: <b>External network</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Availability of components from outside</b></th> </tr> <tr> <td>Objective</td> <td>Determine and assess network accessibility and the corresponding protection mechanisms.</td> </tr> <tr> <td>Rationale</td> <td>External networks could be password protected. If that is the case, the corresponding mechanisms should be up to date and ensure that only authenticated users are able to access the network.</td> </tr> <tr> <td>Method</td> <td>

its behavior, as well as to identify devices’ operating system by analyzing packets from that network. This information could be used for malicious purposes since it provides fine-grained determination of an operating system and its characteristics.</td> </tr> <tr> <td>Method</td> <td>

known vulnerabilities.</td> </tr> <tr> <td>Rationale</td> <td>Vulnerabilities in communication protocols can allow attackers to gain unauthorized access to the external network of the robot and intercept or modify any transmitted data.</td> </tr> <tr> <td>Method</td> <td>

VPN or application level encryption should be used.</td> </tr>

</table> <!-- Criteria 4 --> <table> <tr> <th colspan="2">Criteria: <b>Network ports exposure</b></th> </tr> <tr> <td>Objective</td> <td>Identify whether only necessary network ports are exposed to the external network.</td> </tr> <tr> <td>Rationale</td> <td>More open ports mean a bigger attack surface and therefore their number should be as low as possible. Services that are exposed should have no known vulnerabilities due to the ease of their exploitation.</td> </tr> <tr> <td>Method</td> <td>

are issued based on known signatures or anomalies and appropriate actions are taken.</td> </tr> <tr> <td>Rationale</td> <td>Properly configured external network monitoring can spot network based attacks in their inception even if other security mechanisms are compromised.</td> </tr> <tr> <td>Method</td> <td>

monitoring, alerting and response due to limitations on the robot capabilities, manufacturers should extend their capabilities or refer to third party solutions that could offer such.</td> </tr>

</table> </td> </tr> </table> <!-- Layer 3 --> <table> <tr> <th colspan="3">

Firmware layer

</th> </tr> <!-- Aspect 1 --> <tr> <td>Aspect: <b>Operating System (OS)</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Underlying OS updates</b></th> </tr> <tr> <td>Objective</td> <td>Verify that the used Operating System (OS) is still supported by the manufacturer and there is a mechanism to perform system updates.</td> </tr> <tr> <td>Rationale</td> <td>Outdated operating systems can have security vulnerabilities.</td> </tr> <tr> <td>Method</td> <td>

of middleware code against established compliance mechanisms. A common middleware such as ROS 2 should comply with the Motor Industry Software Reliability Association (MISRA) guidelines. Other middlewares might use different guidelines.</td> </tr> <tr> <td>Rationale</td> <td>As robotics and autonomy grow, especially in certain fields of robotics, users of middlewares need to be able to determine if the software is able to be used in a safety-critical environment. With suitable guidance and modification, it is expected that middleware code could be integrated as part of certain compliant system. For this purpose, code should be developed and reviewed following certain guidelines. The most common one is the Motor Industry Software Reliability Association (MISRA), widely used in many safety-critical environments and adopted by the ROS 2 middleware.</td> </tr> <tr> <td>Method</td> <td>

manufacturer. Verify to perform system updates in the middlware.</td> </tr> <tr> <td>Rationale</td> <td>Outdated middlewares in robotics are subject to have security vulnerabilities. This is specially true with ROS, ROS 2 and other robot-related middlewares</td> </tr> <tr> <td>Method</td> <td>

way to provide updates to all the devices that are already sold to customers. However, update mechanisms can be circumvented by an attacker to deliver malicious update. Therefore, it is important to verify the origin of the update prior to installation.</td> </tr> <tr> <td>Method</td> <td>

</table> <!-- Layer 4 --> <table> <tr> <th colspan="3">

Application layer

</th> </tr> <!-- Aspect 1 --> <tr> <td>Aspect: <b>Authorization</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Access control</b></th> </tr> <tr> <td>Objective</td> <td>Verify that resources are accessible only to authorized users or services.</td> </tr> <tr> <td>Rationale</td> <td>Access to the restricted functions by anonymous users or users with lower access control rights diminishes all the benefits of access control.</td> </tr> <tr> <td>Method</td> <td>

data.</td> </tr> <tr> <td>Method</td> <td>

compliance to the data protection regulations and laws that apply. Particularly, General Data Protection Regulation (GDPR) in the EU.</td> </tr> <tr> <td>Rationale</td> <td>Not complying with regulations could result in penalties.</td> </tr> <tr> <td>Method</td> <td>

with data protection regulations can result in financial penalties and should therefore be taken into consideration.</td> </tr>

</table> </td> </tr> <!-- Aspect 3 --> <tr> <td>Aspect: <b>Integrity</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Integrity check</b></th> </tr> <tr> <td>Objective</td> <td>Identify whether the system performs an integrity check of critical components and takes action if they are not present or modified.</td> </tr> <tr> <td>Rationale</td> <td>Tampering with any of the critical components can make the robot cause physical damage to people and property.</td> </tr> <tr> <td>Method</td> <td>

and effortless way to exploit internet connected devices.</td> </tr> <tr> <td>Method</td> <td>

change succeeded.</td> </tr> <tr> <td>Note</td> <td>Password complexity requirements depend on the sensitivity of the application. In general, the minimum requirements that should be in place are:

attempts should be prevented by implementing a login lockout mechanism.</td> </tr> <tr> <td>Method</td> <td>Attempt to log in with incorrect credentials multiple times. Verify that the account has got a lockout.</td> </tr> <tr> <td>Note</td> <td>The lockout threshold depends on the sensitivity of the service. In general, there should be 5 login attempts or less. Prior to testing, verify that the lockout recovery mechanism is being present. Accounts can be either locked out for a specific duration of time and/or they can be recovered by physical interaction with the robot.</td> </tr>

</table> <!-- Criteria 4 --> <table> <tr> <th colspan="2">Criteria: <b>Hardcoded or backdoor accounts</b></th> </tr> <tr> <td>Objective</td> <td>Identify presence of hardcoded or backdoor accounts.</td> </tr> <tr> <td>Rationale</td> <td>Hardcoded or backdoor credentials pose the same danger as default passwords. However, their identification is usually harder due to the need for reverse engineering or possession of the source code.</td> </tr> <tr> <td>Method</td> <td>

or lateral movement.</td> </tr> <tr> <td>Method</td> <td>

should be 5 login attempts or less.</td> </tr>

</table> </td> </tr> <!-- Aspect 5 --> <tr> <td>Aspect: <b>Communication</b></td> <td> <!-- Criteria 1 --> <table> <tr> <th colspan="2">Criteria: <b>Encryption</b></th> </tr> <tr> <td>Objective</td> <td>Ensure that all sensitive data is transmitted over an encrypted channel.</td> </tr> <tr> <td>Rationale</td> <td>If data is transmitted in a clear text attackers can easily gather sensitive information (e.g. credentials, audio and video streams, private data).</td> </tr> <tr> <td>Method</td> <td>

then arbitrary replay them to achieve desired actions.</td> </tr> <tr> <td>Method</td> <td>

can easily introduce a vulnerability into the product where they are used.</td> </tr> <tr> <td>Method</td> <td>

control center application.</td> </tr> <tr> <td>Method</td> <td>

phone control center application.</td> </tr> <tr> <td>Method</td> <td>

</table>

License

GPLv3.

Glossary