References
- Discussion list topic "ONAP Support for Secure Communication"
- Discussion list topic "[aai] Support for 2-way SSL?"
- ONAP security Recomendation Development
- Platform Maturity Requirements (S3P)
- R2 proposals for Non-functional requirements
Survey of Options
- https://www.tinc-vpn.org/
- https://www.zerotier.com/
- https://www.wireguard.com/
- https://github.com/dswd/vpncloud.rs
- https://serverfault.com/questions/685820/are-there-any-distributed-mesh-like-p2p-vpns
- https://peervpn.net/
- https://github.com/heyaaron/openmesher/
Expectations
- Ability to secure the intra-ONAP communications, i.e. between ONAP projects, such as SO-to-AAI, UUI-to-MSB, OOF-to-VID, etc.
- Ability to secure the ONAP-to-external-system communications, i.e. ONAP-to-database-cluster, ONAP-to-NetworkFunctions, ONAP-to-other-ONAP, etc.
- Ability to scale with the defined ONAP projects (static per ONAP release)
- Ability to scale with the number of deployed instances of ONAP VMs (dynamic)
- Ability to scale with the number of deployed instances of ONAP pods (dynamic)
- Ability to scale with the number of deployed instances of ONAP microservices (dynamic)
- Ability to scale with the number of external-system connections (configurable)
- Ability to work with HEAT-based deployment
- Ability to work with OOM-based deployment
- Ability to work with other (non-HEAT, non-OOM) deployment
- Ability to operate with other layers of security
- Ability to securely upgrade ONAP in-the-field
- Ability for resilient and fault-tolerant ONAP communications in-the-field
- Minimal efforts to implement across all ONAP projects
- Minimal impact on resource usage and performance across ONAP
Threat Models
- External attacker analyzes the captured traffic among services to steal secrets such as passwords and certificates
- Internal attacker analyzes the captured traffic among services to steal secrets such as passwords and certificates
- External attacker bombards the container services with new connections, leading to large number forked processes and threads leading to resource issues on other workloads (containers) in the system
- Internal attacker bombards the container services with new connections, leading to large number forked processes and threads leading to resource issues on other workloads (containers) in the system
- External attacker exploits downloads of containers from repositories to tamper with them and inject malicious code
- Internal attacker exploits downloads of containers from repositories to tamper with them and inject malicious code
- External attacker introduces malicious VM into ONAP environment to steal data and subvert operations
- Internal attacker introduces malicious VM into ONAP environment to steal data and subvert operations
- External attacker introduces malicious pod into ONAP environment to steal data and subvert operations
- Internal attacker introduces malicious pod into ONAP environment to steal data and subvert operations
- External attacker introduces malicious microservice into ONAP environment to steal data and subvert operations
- Internal attacker introduces malicious microservice into ONAP environment to steal data and subvert operations
- External attacker introduces malicious external-system into ONAP environment to steal data and subvert operations
- Internal attacker introduces malicious external-system into ONAP environment to steal data and subvert operations
Discussion
- There has already been discussion and recommendation for using Istio https://istio.io/
- This page is gathering thoughts for alternative solutions
Discussion of Istio
- tbc
Discussion of Tinc VPN
- VPN appears to the IP level network code as a normal network device
- Automatic full mesh routing. Regardless of how you set up the tinc daemons to connect to each other, VPN traffic is always (if possible) sent directly to the destination, without going through intermediate hops.
- Easily expand your VPN. When you want to add nodes to your VPN, all you have to do is add an extra configuration file, there is no need to start new daemons or create and configure new devices or network interfaces
- Ability to bridge ethernet segmentsYou can link multiple ethernet segments together to work like a single segment, allowing you to run applications and games that normally only work on a LAN over the Internet.
- Runs on many operating systems and supports IPv6. Currently Linux, FreeBSD, OpenBSD, NetBSD, OS X, Solaris, Windows 2000, XP, Vista and Windows 7 and 8 platforms are supported. tinc has also full support for IPv6.
From https://www.tinc-vpn.org/pipermail/tinc/2017-May/004864.html:
In general however, I would advise against trusting other nodes, even with StrictSubnets=yes. tinc is not currently designed to provide strong protection against insider attacks - for the most part it assumes that every node inside the metaconnection graph can be trusted. In my opinion tinc will do poorly in a scenario where a "compromised node" is part of your threat model.
Discussion of ZeroTier
- tbc
Discussion of WireGuard
- tbc
Discussion of vpncloud.rs
- tbc
Discussion of PeerVpn
- tbc
Discussion of OpenVpn
- tbc