Steel Shield
Steel Shield is NetRecon's security hardening framework. It provides multiple layers of protection for self-hosted deployments, ensuring the integrity and authenticity of all platform components.
Overview
Steel Shield includes four core security mechanisms:
| Feature | Purpose |
|---|---|
| Binary Integrity | Verify that executables have not been tampered with |
| Certificate Pinning | Prevent man-in-the-middle attacks on API communication |
| Tamper Response | Detect and respond to unauthorized modifications |
| Runtime Protection | Guard against memory manipulation and debugging |
Binary Integrity Verification
Every NetRecon binary (probe backend, agents, services) is digitally signed. On startup, each component verifies its own integrity.
How It Works
- During build, each binary is signed with a private key held by NetRecon
- The signature is embedded in the binary metadata
- On startup, the binary computes a SHA-256 hash of itself
- The hash is verified against the embedded signature
- If verification fails, the binary refuses to start and logs an alert
Manual Verification
Verify a binary's integrity manually:
# Verify the probe backend
netrecon-verify /usr/local/bin/netrecon-probe
# Verify an agent
netrecon-verify /usr/local/bin/netrecon-agent
# Expected output:
# Binary: /usr/local/bin/netrecon-probe
# SHA-256: a1b2c3d4e5f6...
# Signature: VALID
# Signed by: NetRecon Build System
# Signed at: 2026-03-15T10:00:00Z
Docker Image Verification
Docker images are signed using Docker Content Trust (DCT):
# Enable content trust
export DOCKER_CONTENT_TRUST=1
# Pull with signature verification
docker pull netrecon/api-gateway:latest
Certificate Pinning
Certificate pinning ensures that NetRecon components only communicate with legitimate servers, preventing interception even if a certificate authority is compromised.
Pinned Connections
| Connection | Pinning Type |
|---|---|
| Agent to Probe | Public key pin |
| Admin Connect to Probe | Certificate fingerprint |
| Probe to Update Server | Public key pin |
| Probe to License Server | Certificate fingerprint |
How It Works
- The expected certificate public key hash is embedded in each client binary
- When establishing a TLS connection, the client extracts the server's public key
- The client computes a SHA-256 hash of the public key
- If the hash does not match the pinned value, the connection is rejected
- Failed pin validation triggers a security alert
Pin Rotation
When certificates are rotated:
- New pins are distributed via the update server before the certificate change
- Both old and new pins are valid during the transition period
- After the transition, old pins are removed in the next update
For self-hosted deployments, update pins in the configuration:
# /etc/netrecon/security.yaml
certificate_pins:
api_gateway:
- "sha256/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=" # Current
- "sha256/BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=" # Backup
Tamper Response
Steel Shield monitors critical files and configurations for unauthorized changes.