Quickstart
Get Sentinel running in your Node-RED instance in under 5 minutes
Installation
Local install, Docker, or npm — choose your deployment path
Capability Reference
Every capability string, what it gates, and how to grant it
Defense Architecture
How the five-layer defense model works under the hood
Why NRG Sentinel?
Node-RED is a powerful flow-based programming tool, but its plugin system gives third-party packages unrestricted access to the runtime. A single malicious or compromised package can:- Read or overwrite credentials and settings
- Rewire flows to exfiltrate data
- Spawn OS processes or open raw network sockets
- Replace built-in node types with malicious implementations
- Tamper with the flow files on disk
What Sentinel blocks
| # | Attack | What it does |
|---|---|---|
| 01 | Monkey Patching | Overwrites Node-RED core functions at runtime |
| 02 | Hook Injection | Registers malicious onSend/onReceive hooks |
| 03 | Credential Theft | Reads decrypted credentials from live node instances |
| 04 | Wire Manipulation | Rewires flow connections to exfiltrate data |
| 05 | Direct Receive Injection | Bypasses auth chain via node.receive() |
| 06 | Express Middleware | Installs rogue HTTP middleware on the admin API |
| 07 | EventEmitter Hijack | Intercepts internal Node-RED events |
| 09 | Prototype Pollution | Pollutes Object.prototype to affect all objects |
| 20 | Child Process Exec | Spawns shell commands from a message handler |
| 22 | FS Read | Reads settings.js to extract the credential secret |
| 23 | Process Env Exfiltration | Harvests injected secrets and API keys |
| 25 | VM Sandbox Escape | Runs code outside Sentinel’s Module._load hooks |
| 27 | Network Socket Exfiltration | Creates a raw TCP socket to bypass the HTTP allowlist |
Defense layers
require() runs, so a package that overwrites String.prototype.includes cannot blind the stack-frame checks.
How capability grants work
By default Sentinel blocks every privileged operation for every third-party package. Grants live insettings.js:
settings.js
Node-RED’s own built-in nodes (
inject, debug, function, etc.) live outside the userDir and are never gated by Sentinel. You only need to add grants for third-party packages installed into your userDir.Key features
Zero dependencies
No npm dependencies. Everything runs from a single preload file injected before Node-RED starts.
Offline license verification
Ed25519 signature verification — no phone-home, no internet required. Works in air-gapped environments.
Safe deployment review
Visual flow diff UI intercepts deployments and queues them for operator review before they go live.
Threat log
Every blocked operation is logged with the full call stack so you can diagnose and tune grants.
Sidebar panel
Node-RED editor panel for managing grants and viewing blocked threats — no terminal needed.
Docker hardened image
Pre-built image with read-only filesystem layout, non-root user, and absolute entrypoint.