Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add minutes for 24 Nov 2020 meeting #9

Merged
merged 2 commits into from
Dec 11, 2020
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
112 changes: 112 additions & 0 deletions meetings/2020_11_24/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,112 @@
# ROS 2 Security Working Group Meeting Minutes
24 Nov 2020

[Meeting Recording](https://youtu.be/7ZJidRtTqXI) | [Meeting Announcement](https://discourse.ros.org/t/security-wg-meeting/17519)


## Agenda

- Administrivia: future meeting minutes
- G-turtle goals
- MoveIt2 security use case
- ROS 2 without a file system, [rcl #545](https://github.com/ros2/rcl/issues/545) and [discourse post](https://discourse.ros.org/t/ros-2-without-a-file-system/16942)
- [Galactic Roadmap](https://index.ros.org/doc/ros2/Roadmap/#id2)
- sros2 quality status: any comments?
- ROS2 secure launch and access control
- [RMF](https://osrf.github.io/ros2multirobotbook) as a use case, see the [demo](https://github.com/osrf/rmf_demos)
- Revoking keys

## Attendees
[Iker Luengo Gil](https://github.com/IkerLuengo),
[Jacob Hassold](https://github.com/jhdcs),
[Jaime Martin Losa](https://github.com/JaimeMartin),
[Jeremie Deray](https://github.com/artivis),
[Kyle Fazzari](https://github.com/kyrofa),
[Marco Gutierrez](https://github.com/marcoag),
[Mikael Arguedas](https://github.com/mikaelarguedas),
[Ruffin White](https://github.com/ruffsl),
[Sid Faber](https://github.com/sidfaber)


## Administrivia

Following a brief discussion, it was decided to move new meeting minutes to the [`ros-security/community` Github reposityr](https://github.com/ros-security/community). Existing meeting minutes in the [ROS wiki](http://wiki.ros.org/ROS2/WorkingGroups/Security) will not be ported.

The [vulnerability remediation procedure PR](https://github.com/ros-security/community/pull/8) is still open for comments.


## G-Turtle goals

Five open items could become part of our G-Turtle deliverables:
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

One thing mentioned in the last meetings and that I'd like us to look into is the ability of having configurable security levels per topic, following the ones supported by DDS-Security: NONE SIGN, ENCRYPT
Currently SROS2 is all or nothing, either all topics are encrypted or no security feature is used at all. This doesn't scale well (or makes sense) for real systems. Tracking ticket and past work on the topic available at ros2/sros2#130

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added to the "reference implementation" goal in a6e2e0e--as I understood the conversation, we need a good implementation with some complexity before we can begin configuring topic-level security.


### Reference implementation with MoveIt

Goal would be to demonstrate "Hey, look, here's an example of a real system that's secured." Although the config may be able to stand on its own, it would be more useful as an example.
This example will also be useful for us to find issues with the security implementation on a complex system to test: CPU / network utilization, what to sign, what to encrypt, overall impact to the system.
This also becomes a proving ground for NoDL.

Use this implementation to configure security levels per topic, following the ones supported by DDS-Security: NONE, SIGN, ENCRYPT. Currently SROS2 is all or nothing, either all topics are encrypted or no security feature is used at all. See [Tracking ticket #130, "Provide some granularity for individual topic protection"](https://github.com/ros2/sros2/issues/130).

Simulation may be challenging; a simulated implementation may not quite match the real world implementation. However, we should be able to spec the project in stages. Start simple and build upon the demo.

### Enable DDS security without a file system

The scope of this issue is much wider than just security. Success depends upon buy-in from both the micro-ROS community and from Open Robotics.

The WG agrees to continue to move the discussion forward to flesh out a design, but not to perform any work on the code at this time.

### [sros2 quality](https://github.com/ros2/sros2/issues/217)

Even though a quality upgrade is stalled on dependent package quality levels, we should continue working on improving sros2 quality. The most important work is to improve documentation.

Currently sros2 users aren't using online resources, and they need more / better documentation. The recommended path forward is to add a full section on security to the ROS 2 tutorials. This should build on the examples of the existing tutorials, and demonstrate how to re-do them with security enabled.

A discussion also ensued on the current status of [answers.ros.org](https://answers.ros.org/questions/).

### Permissions file size

Mikael has been working on uglifying the permissions files. Work on this continues.

### Integration test failures

Mikael described the current state of [failures in test_security](https://github.com/ros2/system_tests/issues/446). The WG agreed that these tests should be fixed, although no specific action items were identified.

### Conclusion
The WG will focus on the following primary items for G-turtle:

- A reference implementation of security
- Improving sros2 quality through documentation updates

The WG will also continue working on the following items:

- Design input for running ROS without a file system
- Reducing permission file size / complexity
- Fixing test failures

## Open Discussion
ROS launch status: the initial launch is working but does not include access control. The work is in progress, but stalled pending discussions on [launch_ros PR 180](https://github.com/ros2/launch_ros/pull/180). Some comments are suggesting a plugin solution, which would change future PRs.

Marco suggested [the Robotics Middleware Framework (RMF)](https://github.com/osrf/rmf_demos) as a reference implementation for ROS security. This should be ready to run with ROS 2; they have already done some work with security as well.

Marco also asked about revoking keys: there's a need to handle that within RMF should an individual robot in a fleet be physically compromised. Jaime provided [information on CRLs from eProsima](https://fast-dds.docs.eprosima.com/en/latest/fastdds/security/auth_plugin/auth_plugin.html#generating-the-certificate-revocation-list-crl).

## References
More information about items that were discussed:
- [Vulnerability remediation procedure PR](https://github.com/ros-security/community/pull/8)
- [sros2 quality](https://github.com/ros2/sros2/issues/217)
- [Failures in test_security](https://github.com/ros2/system_tests/issues/446)
- [Secure launch_ros PR 180](https://github.com/ros2/launch_ros/pull/180)
- [The Robotics Middleware Framework (RMF)](https://github.com/osrf/rmf_demos)
- [RMF: Programming multiple robots with ROS 2](https://osrf.github.io/ros2multirobotbook/)
- [FastDDS and CRLs](https://fast-dds.docs.eprosima.com/en/latest/fastdds/security/auth_plugin/auth_plugin.html#generating-the-certificate-revocation-list-crl)

## Open action items

- 2020/09/22: [Test failures on test_security](https://github.com/ros2/system_tests/issues/446)
- 2020/06/09 (sid): Draft guidance for vendors on how to create a vulnerability disclosure policy.

Closing the following items as this work is actively in progress:

- 2020/09/22: Kyle/Mikael to add an issue for uglifying permissions files
- 2020/07/28: Mikael and Ruffin to try and shave size off the perm files and wildcard to optimize, then push upstream. Follow up with a discussion on matrix. See https://github.com/ros-swg/turtlebot3_demo/pull/34#issuecomment-665439493.
- 2020/05/12: Review [Move security related filesystem and env utilities outside rcl · Issue #545 · ros2/rcl](https://github.com/ros2/rcl/issues/545) and comment