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.
Monitored Items
| Item | Check Frequency | Response |
|---|---|---|
| Binary files | On startup + every 1 hour | Alert + optional shutdown |
| Configuration files | Every 5 minutes | Alert + revert to backup |
| Database integrity | Every 15 minutes | Alert + consistency check |
| TLS certificates | Every 5 minutes | Alert if changed |
| System packages | Daily | Alert if unexpected changes |
Response Actions
When tampering is detected, Steel Shield can:
- Log — record the event in the security audit log
- Alert — send a notification via configured channels
- Revert — restore the tampered file from a known-good backup
- Isolate — restrict network access to management-only
- Shutdown — stop the service to prevent further compromise
Configure the response level:
# /etc/netrecon/security.yaml
tamper_response:
level: "alert_and_revert" # Options: log, alert, alert_and_revert, isolate, shutdown
notify_email: "[email protected]"
File Integrity Database
Steel Shield maintains a hash database of all protected files:
# Initialize the integrity database
netrecon-shield init
# Check integrity manually
netrecon-shield verify
# Expected output:
# Checked 47 files
# Status: ALL INTACT
# Last verified: 2026-03-15T14:30:00Z
Runtime Protection
Anti-Debugging
In production mode, NetRecon binaries include anti-debugging measures:
- Detection of attached debuggers (ptrace on Linux, IsDebuggerPresent on Windows)
- Timing checks for single-step execution
- When debugging is detected in production, the process exits gracefully
Anti-debugging is disabled in development builds to allow normal debugging workflows.
Memory Protection
- Sensitive data (tokens, keys, passwords) is stored in protected memory regions
- Memory is zeroed after use to prevent remnant data exposure
- On Linux,
mlockis used to prevent sensitive pages from being swapped to disk