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: 1_reconnaissance/robot_footprinting/tutorial1/README.md
+7-1
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,6 @@
1
-
# Footprinting ROS systems
1
+
\newpage
2
+
3
+
## Footprinting ROS systems
2
4
3
5
Footprinting, (also known as *reconnaissance*) is the technique used for gathering information about digital systems and the entities they belong to. To get this information, a security analyst might use various tools and technologies. This information is very useful when performing a series attacks over an specific system.
4
6
@@ -21,18 +23,22 @@ docker run --privileged -it basic_cybersecurity_footprinting1:latest
21
23
### ROS footprinting basics
22
24
23
25
The first thing we do to test the capabilities of `aztarna` is to get a container with the right dependencies and the tool installed:
Copy file name to clipboardexpand all lines: 2_robot_vulnerabilities/tutorial1/README.md
+16-14
Original file line number
Diff line number
Diff line change
@@ -1,10 +1,12 @@
1
-
# Robot sanitizers in ROS 2 Dashing
1
+
\newpage
2
+
3
+
## Robot sanitizers in ROS 2 Dashing
2
4
3
5
Sanitizers are dynamic bug finding tools[1]. In this tutorial we'll use some common and open source sanitizers over the ROS 2 codebase. In particular, by reproducing previously available results[2,3], we'll review the security status of ROS 2 Dashing Diademata.
4
6
5
7
The first few sections provide a walkthrough on the attempt to make things run in OS X. The sections that follow automate the process through a Docker container.
6
8
7
-
## OS X
9
+
###OS X
8
10
9
11
<details><summary>Setup in OS X, natively</summary>
#### Results of the test indicate `Interceptors are not working. This may be because AddressSanitizer is loaded too late ... interceptors not installed`
136
+
#####Results of the test indicate `Interceptors are not working. This may be because AddressSanitizer is loaded too late ... interceptors not installed`
docker run --privileged -it -v /tmp/log:/opt/ros2_asan_ws/log basic_cybersecurity_vulnerabilities1:latest /bin/bash
@@ -171,8 +173,8 @@ colcon test --build-base=build-asan --install-base=install-asan \
171
173
```
172
174
results are under `/tmp/log`.
173
175
174
-
## Analyzing results
175
-
### Analyzing example
176
+
###Analyzing results
177
+
####Analyzing example
176
178
I'll try and analyze here the example provided at https://github.com/colcon/colcon-sanitizer-reports/blob/master/README.rst before jumping into a new one to gain additional understanding:
177
179
178
180
It appears that ASan detected memory leaks in the `rcpputils` module:
@@ -226,7 +228,7 @@ Direct leak of 4 byte(s) in 1 object(s) allocated from:
226
228
Inspecting the dumps, there seems to be an issue in `test_basic` related to `FakeGuarded::FakeGuarded()`. In particular, this [line](https://github.com/ros2/rcpputils/pull/9/files#diff-be1f2d1334d30376c4dec7b53eda0f55L247) wasn't necessary and was replaced by a destructor instead.
227
229
228
230
229
-
### Processing new bugs
231
+
####Processing new bugs
230
232
Let's now analyze a new bug and try to reason about it. Let's take the first the `sanitizer_report.csv` generated and from it, the first item (dumped at [sanitizer_report_ros2dashing_asan.csv](sanitizer_report_ros2dashing_asan.csv)):
231
233
232
234
```bash
@@ -321,7 +323,7 @@ A complete report with all the bugs found is available at [sanitizer_report_ros2
321
323
322
324
A further discussion into this bug and an analysis with GDB is available at [tutorial3](../tutorial3).
323
325
324
-
## Looking for bugs and vulnerabilities with ThreadSanitizer (TSan)
326
+
###Looking for bugs and vulnerabilities with ThreadSanitizer (TSan)
325
327
326
328
Similar to ASan, we can use the ThreadSanitizer:
327
329
@@ -335,7 +337,7 @@ A complete report with all the bugs found is available at [sanitizer_report_ros2
Copy file name to clipboardexpand all lines: 2_robot_vulnerabilities/tutorial2/README.md
+7-5
Original file line number
Diff line number
Diff line change
@@ -1,8 +1,10 @@
1
-
# Robot sanitizers in MoveIt 2
1
+
\newpage
2
+
3
+
## Robot sanitizers in MoveIt 2
2
4
3
5
In this tutorial we'll apply the robot santizers over the the moveit2 alpha release code and review the results. This tutorial builds on top of [tutorial1](../tutorial1/), originally inspired by [1].
4
6
5
-
## Looking for bugs and vulnerabilities in MoveIt 2 with AddressSanitizer (ASan)
7
+
###Looking for bugs and vulnerabilities in MoveIt 2 with AddressSanitizer (ASan)
6
8
We'll dockerize the process to simplify reproduction of results.
7
9
Let's compile the moveit2 code with the right flags for dynamic bugs finding:
Both, `geometric_shapes` and `moveit_core` depend on quite a few other packages so one would probably pick `octomap` for starters and try fixing that bug first scaliting into other packages.
67
69
68
-
### Fixing bugs
70
+
####Fixing bugs
69
71
As per the original [report](https://gist.github.com/vmayoral/25b3cff2c954b099eeb4d1471c1830e2) the `moveit_core` related bug detected by ASan is listed below:
0 commit comments