You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: 0_introduction/README.md
+71
Original file line number
Diff line number
Diff line change
@@ -25,6 +25,77 @@ Security is *not a product, but a process* that needs to be continuously assesse
25
25
26
26
<!-- To read more on how cybersecurity in robotics compares to IT, OT or IoT, refer to [this article](https://cybersecurityrobotics.net/it-ot-iot-and-robotics-security-comparison/). -->
27
27
28
+
\newpage
29
+
30
+
## Terminology
31
+
32
+
### Robot reconnaissance
33
+
Reconnaissance is the act of gathering preliminary data or intelligence on your target. The data is gathered in order to better plan for your attack. Reconnaissance can be performed actively (meaning that you are directly touching the target) or passively (meaning that your recon is being performed through an intermediary).
34
+
35
+
#### Robot footprinting
36
+
Footprinting, (also known as *reconnaissance*) is the technique used for gathering information about digital systems and the entities they belong to.
37
+
38
+
#### Robot enumeration
39
+
- Basic enumeration of a robotic system can be done with [ROSPenTo](https://github.com/jr-robotics/ROSPenTo)
40
+
41
+
### Robot Threat Modeling
42
+
Threat modeling is the use of abstractions to aid in thinking about risks. The output of this activity is often named as the threat model. More commonly, a threat model enumerates the potential attackers, their capabilities and resources and their intended targets. In the context of robot cybersecurity, a threat model identifies security threats that apply to the robot and/or its components (both software and hardware) while providing means to address or mitigate them in the context of a use case.
43
+
44
+
A threat model is key to a focused security defense and generally answers the following questions:
45
+
- What are you building?
46
+
- What can go wrong (from a security perspective)?
47
+
- What should you do about those things that can go wrong?
48
+
- Did you do a decent job analysing the system?
49
+
50
+
51
+
### Bugs & vulnerability identification
52
+
#### Static analysis
53
+
Static analysis means inspecting the code to look for faults. Static analysis is using a program (instead of a human) to inspect the code for faults.
54
+
55
+
#### Dynamic analysis
56
+
Dynamic analysis, simply called “testing” as a rule, means executing the code while looking for errors and failures.
57
+
58
+
#### Fuzzing
59
+
FILLME
60
+
61
+
#### Dynamic analysis (sanitizers)
62
+
Sanitizers are dynamic bug finding tools. Sanitizers analyze a single program excution and output a precise analysis result valid for that specific execution.
63
+
64
+
<details><summary>More details about sanitizers</summary>
65
+
66
+
As explained at https://arxiv.org/pdf/1806.04355.pdf:
67
+
68
+
>sanitizers are similar to many well-known *exploit mitigations* in that both types of tools insert inlined reference monitors (IRMs) into the program to enforce a fine-grained security policy. Despite this similarity, however, exploit mitigations and sanitizers significantly differ in what they aim to achieve and how they are used
69
+
70
+
The difference is better understood by the following table (also from the paper) that compares `exploit mitigations` and `sanitizers`:
71
+
72
+
| | Exploit Mitigations | Sanitizers |
73
+
|-----|-------|------|
74
+
| **The goal is to ...** | Mitigate attacks | Find vulnerabilities |
75
+
| **Used in ...** | Production | Pre-release |
76
+
| **Performance budget ...** | Very limited | Much higher |
77
+
| **Policy violations lead to ...** | Program termination | Problem diagnosis |
78
+
| **Violations triggered at location of bug ...** | Sometimes | Always |
79
+
| **Surviving benign errors is ...** | Desired | Not desired |
80
+
81
+
</details>
82
+
83
+
84
+
### Robot exploitation
85
+
An `exploit` is a piece of software, a chunk of data, or a sequence of commands that takes advantage of a bug or vulnerability to cause unintended or unanticipated behavior to occur on computer software, hardware, or something electronic (usually computerized). Exploitation is the art of taking advantage of vulnerabilities.
86
+
87
+
88
+
### Other
89
+
#### Robot forensics
90
+
Robot forensics proposes a number of scientific tests and methods to obtain, preserve and document evidence from robot-related crimes. In particular, it focuses on recovering data from robotic systems to establish who committed the crime.
Software reverse engineering (or *reversing*) is the process of extracting the knowledge or design blueprints from any software. When applied to robotics, robot reversing can be understood as the process of extracting information about the design elements in a robotic system.
96
+
97
+
\newpage
98
+
28
99
## Literature review
29
100
30
101
Arguably, the first installation of a cyber-physical system in a manufacturing plant was back in 1962 @historyofrobotics. The first human death caused by a robotic system is traced back to 1979 @firstkiller and the causes were safety-related according to the reports. From this point on, a series of actions involving agencies and corporations triggered to protect humans and environments from this machines, leading into safety standards.
0 commit comments