Dear all,
I am new to this forum and, in fact, new to PX4. I am Eric Bodden, a professor for Secure Software Engineering at Paderborn University, Germany, and I am currently participating a fully funded research project whose goal is to improve the security of UAV platforms, particularly from a software point of view. We as a team have chosen to build on top of PX4. Hence our goal over the next 3-4 years will be to help significantly harden the PX4 runtime, and maybe contribute also development/testing tools to support/ease such hardening for future releases (e.g. static analysis tools etc.).
As a first step, we are currently conducting a threat analysis of UAVs in general and PX4-based UAVs in particular. This threat analysis is then meant to inform us, among other things, about the most security-critical components and assets, attack paths, security controls, etc.
We are then interested in helping to harden the security of PX4 in several ways. We wonder if the following functionality is already supported in PX4 / NuttX, if not, we would like to know if you think it would be feasible to add or not. If yes, we propose to work on it and possibly contribute it at some point, if you are interested. In that case we would also seek a more continued exchange with the PX4 community as we progress.
Defense in Depth
- Hardening (modules in their own memory address spaces, maybe even enforced using an MPU)
- Adding permission systems / privilege models
Encryption
- Direct PX4 Support for encrypted Mavlink (e.g. by tunneling, and/or with hardware encryption)
Memory Safety
- Translating PX4 Modules to Rust, or replacing them with pure Rust implementations (rust-mavlink on crates.io)
With this post I am reaching out to inform you early about our plans such as to avoid any possibility of the same work being done twice but also to seek your consent on at least possibly accepting code contributions on such improvements in the future. Thank you!