NRG Sentinel, runtime security for Node-RED

Sentinel's UI. Node Permissions, Network and CSP rules are added on a separate file called .sentinel-permissions.json to avoid exposing settings.js. All RED.* pass through sentinel's proxy and can't be monkey-patched by custom nodes or plugins anymore. This means you can now install unaudited packages without fearing exposing your data. Only admins have access to Sentinel.

Threats: all threats that Sentinel detected during startup and runtime.

Permissions: nodes can be configured with permissions to open up methods, props, credentias, context, wires, events to other nodes.


Network: configure which outbound calls client/server can perform

CSP: Content-security-policies. It can be used to let nodes/plugins load assets from different places

Just a note: This tool WILL break some custom nodes.

That is the goal. It locks the whole runtime. Users have to open things up.

You can all try NRG Sentinel.

I've toned down the language. Lets keep it clean please.

1 Like

In what circumstances would my Node-red installations benefit from this additional runtime security?

Who are the attackers you have protected from - my own staff / family , Internet based users of my dashboard, authorised but malicious logged-in editors?

You can install public plugins or nodes that haven’t been audited without worrying about data exfiltration. Even if your Node-RED instance isn’t exposed to the internet, attacks can still come from inside.

A malicious or compromised node can:

  • Modify the runtime
  • Alter other installed packages
  • Tamper with your flows without you noticing

It’s even possible to reroute messages through “invisible” wires—logic that doesn’t appear in the editor or in flows.json—so your data could be redirected elsewhere without any visible trace.

Imagine you trusted a node or plugin and have been using it for years, with automatic updates enabled. One day, an update could introduce malicious behavior and start doing exactly the kind of things Sentinel is designed to prevent—without any obvious indication that something has changed.

The key issue is that anyone can publish packages to npm or the Node-RED library, and they become immediately available to any instance pulling from those registries. That means you’re ultimately trusting code that hasn’t necessarily been verified.

1 Like

All techniques I used to secure the runtime are documented here

Security in Node-RED is still an afterthought in many production environments.

If you’re responsible for deploying Node-RED at scale, it’s worth asking directly:
What is your actual security model for third-party nodes today?

Because by default, there isn’t one.

Most Node-RED instances in production are effectively running with full trust in every installed package—no permission boundaries, no runtime enforcement, and no visibility into what those nodes are actually doing under the hood.

Sentinel exists to close that gap:

  • Make capabilities explicit
  • Enforce them at runtime
  • Give operators control before and after installation

The challenge isn’t the technology—it’s awareness.
Until teams clearly understand how easily flows and nodes can be abused for data exfiltration or manipulation, security will continue to be deprioritized.

That’s the gap I'm working to close.

Sentinel isn’t expensive when you look at the problem it solves—it eliminates an entire class of risk. People tend to associate cybersecurity with companies, but that’s outdated thinking. Your personal environment is just as exposed, and in many ways, less protected.

At home, you’re not just dealing with data—you’re dealing with identity, location, habits, and access to everything you own digitally. If that gets compromised, the impact isn’t a “business loss”—it’s your personal safety, your privacy, and your control over your own life. That’s a much harder thing to recover from.

The real question isn’t the price—it’s the cost of not having that protection in place. Sentinel positions itself as a safeguard layer where most people currently have none.

Get sentinel at: NRG Sentinel — Runtime Security for Node-RED