Thanks to everyone who attended today!
Meeting Recording
Meeting Notes
SROS2 improvements suggestions
During the meeting, we went through the different ideas and potential designs. Most of the content is captured in the tickets, but there was some additional questions / comments (see below).
Security Profile Library for AppArmor
https://github.com/ros2/sros2/issues/105
One challenge for this task is to define an appropriate strategy to bundle those files.
What is @{ROS_INSTALL_LIB}
in the profile config files?
This is an AppArmor variable, expended to the ROS install directory. This is not e.g. an environment variable.
Are profiles always read from the system?
Additional profiles can also be injected using CLI tools.
Replace openssl subprocess calls with python cryptography library
https://github.com/ros2/sros2/issues/109
Dropping OpenSSL could mean dropping support for third-party OpenSSL engines providing access to the keys in HSMs?
Private keys could be flashed on HSMs by manufacturers.
Integration for DDS Security Builtin Logging Plugin
https://github.com/ros2/sros2/issues/110
Subscribe to a secure logging topic with permissions issues, etc. Can be used to improve the policy.
Is there any overlap between ROS 2 logging and DDS logging?
Actually not that much overlap, separation between application layer and transport layer is good to have.
Auto generation interface for Access Control Profiles
https://github.com/ros2/sros2/issues/112
Having a tool similar to aa-genprof / aa-logprof in AppArmor world,
The application is audited first and a “template” config file is generated by the tool, asking the
user to confirm if each rule is OK. It also can server as a “linter” / suggest improvements.
We could implement the same for DDS ACL policies.
Could be implemented either using the DDS logging modules or by scraping DDS discovery information.
There are also some idea about allowing ROS 2 nodes to declare IDLs containing the list of topics they public/subscribe to, actions, services, parameters, etc.
Thomas: this would be interesting as it would allow us to run linting / static analysis on applications (are all IDLs compatible), add additional properties to topics like rate limitation and automate e2e testing up to a certain point (IDL declare this node listens to /tf
, a test could be generated to check this is actually the case).