Security design

This document describes how our security processes are designed.

Audience

The audience for this document is people who stake with us that are technically inclined and curious about how we design things or people who wish to use our VaaS (Validator as a Service) platform.

Description

We don’t do security through obscurity. In most cases, that ends up being obscurity. Therefore, we are transparent with our designs rather than hide behind promises. With both professional security experience and hands-on industry certifications, such as OSCP, you can rest assured that you’re in good hands. We’re not playing catch up with the hacker mindset - we adopted that a long time ago. We lead in this space rather than follow.

Security features

This is a list of the things that we do to build one of the most secure staking providers out there, if not the most secure.

Hardware wallets

We use hardware wallets for managing our staking provider. While your funds are always safe as we run a non-custodial service, the purpose is to protect the management of our staking provider itself.

Full disk encryption

We use full disk encryption for all our servers. The purpose is to avoid leaking any data at rest, whether this is due to decommissioned hardware or theft.

File integrity monitoring

We run file integrity monitoring services on our servers to detect any unauthorised change.

Two-factor authentication

We employ two-factor authentication whenever this is possible. This adds a secondary protection layer as merely holding a key or a password is not enough to access our servers or accounts as the 2FA tokens are generated separately.

Network access reduced to a minimum

The only publicly available networking is the one needed for us to be able to run our services. Everything else is dropped by default.

The proactive measures that we take:

  • Firewall enabled by default.
  • Shadow services. We do not open administrative interfaces to the world so it’s impossible to tell whether an administrative process even runs.

Automated assessments

We run automated suites for auditing, hardening, and compliance testing.

Patch policy

We keep our systems fully up to date. It is surprising how many companies out there fail to keep up with this very basic, yet very important, security aspect.

On top of pulling security updates from upstream, we also take proactive measures by using dynamic patching for the kernel (KernelCare) and critical libraries (LibraryCare). This allows us to shift specific maintenance windows to avoid disrupting the service whilst nodes are active (eligible state for Elrond), yet still, keep up with security patching.

Encrypted secrets storage

We use Hashicorp Vault as the validator key storage and seed from Vault when a node machine is initialised. We also employ single-use tokens that automatically expire as soon as these keys are read from Vault and exported on a new validator machine.

The Elrond node service itself requires a key to be stored as plaintext on the filesystem on the server running that particular node service, hence our strict requirement for full disk encryption.

Enterprise Linux 8

This is another design choice where we do things differently. The reason for this is that EL8 (whether Red Hat or rebuilds) have more secure defaults compared to what the vast majority of the network is using. Our machines run with SELinux in enforcing mode.

We do maintain compatibility with Ubuntu 20.04 in terms of tooling, apart from the extra features provided by EL8. However, our deployment target is EL8.

Own setup tooling

We developed our setup tooling from scratch to avoid certain security deficiencies with the upstream setup tools for Elrond.