Security engine

Twenty detectors. Four stages. No single one can act.

The engine depends on neither Discord nor the database, which is what makes testing a rule structurally incapable of touching your server rather than merely careful about it.

0Independent detectors
0Detection stages
0Resolved forms per message
0Distinct reason codes
0+Tests passing

The detectors

Every one has a ceiling it cannot exceed.

Each detector contributes evidence up to a limit, and no further, however much it found. Where those limits sit is visible and tunable in your dashboard. It is not published here, for reasons that should be obvious.

Content

What the message actually says, once any disguise has been undone.

Word rules
Your own terms, checked past the disguises
Pattern rules
Your own patterns, safety checked before they run
Link analysis
Look-alike domains and links that hide where they go
Masked links
A label that disagrees with its real destination
Server invites
Invites to elsewhere, including disguised ones
Obfuscation
Text assembled to defeat a naive filter
Attachments
Executables and files pretending to be something else
Character spam
Emoji floods, shouting, repetition
Support impersonation
The shapes a fake help desk takes
Wallet and seed scams
Phrasing that only ever precedes a theft

Behaviour

What this account has been doing lately. Editing a message is never counted as flooding.

Message rate
Floods, measured over a window you set
Repetition
The same thing again, and near enough the same
Mention spam
Mass pings and everyone abuse

Identity

Who is speaking. Never able to reach a verdict on its own.

Account age
How new the account is. An indicator, never proof
Membership age
How new to your server. An indicator, never proof
Staff impersonation
Names shadowing the people members trust
Profile and status
A scam parked somewhere other than a message
Bots and webhooks
Automated accounts are scanned too

External

Optional, off until you turn it on, and never consulted when you are only testing.

Threat intelligence
Known bad destinations. Optional, and off by default
AI review
A second opinion on the genuinely ambiguous

Safety of the platform itself

The engine has to survive what you configure.

A security tool that can be brought down by its own rules is a liability. These are the defences that point inward.

Your rules cannot hang your server

Patterns are checked for dangerous constructions before they can be saved, then run isolated and time bounded. One that would otherwise run away is stopped, and Wardnox can tell you which one it was rather than leaving you to bisect your own ruleset.

Domains are matched properly

A familiar name buried inside an unfamiliar domain is not that domain. Wardnox resolves what a domain genuinely is rather than comparing the end of a string, which is the single most common way naive filters get walked past.

A rule that misfires pulls itself

Wardnox watches how often each of your rules fires relative to what it is seeing. One that starts behaving like a mistake stops enforcing and your moderators are notified. It keeps logging, because silently disabling a rule somebody wrote is its own kind of surprise.

Following a link cannot be turned inward

When link resolution is enabled, every protection applies to every hop rather than only the first, and Wardnox refuses to be aimed at anything on your own infrastructure. It never reads, parses or executes what it finds. It only wants to know where the link ended up.

One failure is not an outage

Each stage settles independently. Something timing out or throwing removes that one opinion and nothing else. The message is still assessed, and the bot never falls over because Discord said no.

Your servers cannot see each other

Every stored row belongs to exactly one server, and every read is filtered by that on the row being read rather than somewhere upstream. The boundary is covered by tests that run against a real database, not by convention.

Optional, and doubly gated

Nothing leaves by default.

Threat intelligence and AI review are both off, and each needs an environment variable and a server setting before a single byte goes anywhere. When they are on, what leaves is the minimum needed to ask the question, and never user IDs, usernames, channel IDs or guild IDs.

The reputation lookups are read only and never submit anything for scanning, because submitting would publish a link from a private Discord server to a public analysis service. Several independent limits hold the AI stage down, and they are enforced outside it: a provider should not be trusted to police its own influence.

See it assess your own traffic.

Monitor mode first, always. Join the whitelist and we will be in touch when your server can be added.

No spam, no newsletter. One email when your server can be added.