Skip to content

Commit 75f5d99

Browse files
author
Murilo Marinho
committed
[network] Adding more explanation.
1 parent de3728f commit 75f5d99

1 file changed

Lines changed: 30 additions & 12 deletions

File tree

docs/source/cybersecurity/network.rst

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,23 @@ Network topologies
33

44
.. include:: ../the_topic_is_under_heavy_construction.rst
55

6+
There is plenty of software that can be used to protect your network. One of these is :program:`ufw`, the `uncomplicated
7+
firewall <https://en.wikipedia.org/wiki/Uncomplicated_Firewall>`_. These are good to some extent and I suppose will
8+
always be part of the security suite of companies and institutions.
69

7-
https://docs.ros.org/en/foxy/Concepts/About-Domain-ID.html
10+
Also, as part of :program:`ROS2` there is the concept of `ROS_DOMAIN_ID <https://docs.ros.org/en/foxy/Concepts/About-Domain-ID.html>`_.
11+
Although this concept exists, it should not be confused with a security measure. Each participant in the network can
12+
easily switch to another ``ROS_DOMAIN_ID`` without authentication or central management. It can be seen as merely a
13+
local filter.
814

9-
Case 1
10-
++++++
15+
An aspect that is often ignored in robotics labs are the physical network topologies, which are important for safety.
16+
This safety is not only for cybersecurity reasons. Yes, your robot's computer can be attacked if it's exposed. However,
17+
in development environments, you might inadvertently move someone else's robot. In these scenarios it will be much
18+
more efficient to physically isolate the robotic setup if many devices in the network can be shared with users with
19+
varying levels of network understanding.
20+
21+
Case 1 - No isolation
22+
+++++++++++++++++++++
1123

1224
A common network architecture in small companies and laboratories is shown below.
1325

@@ -34,21 +46,24 @@ A common network architecture in small companies and laboratories is shown below
3446

3547
In it, each computer and robot is directly connected to the internet. This setup is rather tempting because from the
3648
point-of-view of the robotics software developer they might want to have as much freedom as possible to develop their
37-
software as quickly as possible. Depending on the internet services they want to provide, they might even DMZ
49+
software as quickly as possible. Depending on the internet services they want to provide, they might even `DMZ <https://en.wikipedia.org/wiki/DMZ_(computing)>`_
50+
or forward ports that give straight access to local computers. That is a huge security concern. If you leave port 22 open,
51+
it won't take long for someone to try to hack into your machine from somewhere in the world.
3852

3953
This setup leads to a high level of risk. As mentioned in the previous section, although you *might* be able to keep
4054
your computers up-to-date, the same is not usually possible for the robots' control computers. They could have vulnerabilities
4155
such as unpatched security bugs that will leave them exposed. In addition, the robots' might have been left with their
42-
original credentials. This means that an attacker could easily ssh into the robot.
56+
original credentials and network settings, without a firewall. This means that an attacker could easily ssh into the robot.
4357

44-
Although from a robotics software developer you might think that they might have little to gain from accessing a robot
58+
Although from a robotics software developer point-of-view you might think that they might have little to gain from accessing a robot
4559
computer, that can easily be the first door into any other resource in the network. Just because the computer is attached
46-
somehow to a robot it does not make it less of a computer just, usually, easier to exploit.
60+
somehow to a robot it does not make it less of a computer. It just, usually, makes it easier to exploit the computer.
4761

48-
Case 2
49-
++++++
62+
Case 2 - Subnet isolation
63+
+++++++++++++++++++++++++
5064

51-
A somewhat better network architecture is shown below, because there is one extra layer of isolation.
65+
A somewhat better network architecture is shown below, because there is one extra layer of isolation. The main difference
66+
here is that different parts of the company have their own subnets.
5267

5368
.. mermaid::
5469

@@ -84,8 +99,8 @@ to control the wrong robot arm from a distance. Or, the wrong camera stream is u
8499
Although ``ROS_DOMAIN_ID`` can help to filter out unwanted messages, it is too easy to set the wrong ``ID``. More importantly,
85100
it is expected that people with a minimal understanding of networking would isolate their setup further.
86101

87-
Case 3
88-
++++++
102+
Case 3 - Platform isolation
103+
+++++++++++++++++++++++++++
89104

90105
A possibly sufficient setup for most robotic demonstrators that need isolation is shown below.
91106

@@ -112,4 +127,7 @@ A possibly sufficient setup for most robotic demonstrators that need isolation i
112127
junctionCenter2:B -- T:robot2
113128
junctionCenter2:L -- R:junctionCenter1
114129

130+
In this setup, you can imagine each robotic demonstrator having their own, isolated, network. This can be easily
131+
achieved physically using a `switching hub <https://en.wikipedia.org/wiki/Network_switch>`_. This type of physical isolation
132+
of interfaces tends to be beneficial in development environments where software infrastructure is often changing.
115133

0 commit comments

Comments
 (0)