Reducing Attack Surfaces (Part 1)
SPR lets users create adaptive, micro-segmented networks for connecting and managing devices.
In addition to fine-grained network visibility we also build hardened software and
work to avoid common security flaws. As SPR has matured we've started taking on further efforts
to eliminate attack surfaces.
When it comes to native code: we introduce none. As in, we have not written new native code for SPR anywhere.
We have one BPF filter, and its otherwise golang all the way down. We also do not run standard native services
where we can avoid them. We have replaced traditional C code for services such as DNS and DHCP with golang implementations, namely CoreDNS and CoreDHCP.
The remaining native code targets that we have in SPR are as follows:
- The Linux kernel. For example: ethernet, the tcp/ip stack, nftables, the mac80211 framework and vendor drivers
- 802.11 Firmware, Ethernet Firmware
- Hostapd
- PPP Daemon (off by default)
- OS Services (Ubuntu)